【云硬盘】搭建HA集群,实践Linux共享卷功能
一 高可用集群
高可用集群,英文原文为High Availability Cluster,简称HACluster,简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统 就是集群的节点(node)。
高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损失。如果某个节点失效,它的备援节点将在几秒钟的时间内接管它的职责。因此,对于用户而言,集群永远不会停机。
高可用集群软件的主要作用就是实现故障检查和业务切换的自动化。只有两个节点的高可用集群又称为双机热备,即使用两台服务器互相备份。当一台服务器出现故障时,可由另一台服务器承担服务任务,从而在不需要人工干预的 情况下,自动保证系统能持续对外提供服务。双机热备只是高可用集群的一种,高可用集群系统更可以支持两个以上的节点,提供比双机热备更多、更高级的功能,更能满足用户不断出现的需求变化。
本文将搭建一个集群,利用里边的GFS2服务,提供一个共享盘在多节点的共享功能的案例。
二 节点配置
节点 | 配置信息 |
管理节点 | 名称:ecs-0003 操作系统:CentOS 6.5 64bit 硬件配置:2核,4GB内存 弹性IP:122.112.248.105 私有IP(内网IP):192.168.65.22 |
节点1 | 名称:ecs-0001 操作系统:CentOS 6.5 64bit 硬件配置:2核,4GB内存 弹性IP:122.112.237.46 私有IP(内网IP):192.168.64.196 |
节点2 | 名称:ecs-0002 操作系统:CentOS 6.5 64bit 硬件配置:2核,4GB内存 弹性IP:122.112.200.15 私有IP(内网IP):192.168.67.91 |
三 操作步骤
1. 批量创建3台虚拟机
镜像、镜像版本尽量一致;虚拟私有云、安全组、主网卡应该一致,确保主网卡在同一个网段,虚拟机之前能够相互通信;弹性IP用于远程登录虚拟机用,是虚拟机的外网IP,应该根据实际情况进行购买或使用已有。
请确保安全组中,TCP的入方向8084是开的,后面登录High Availability Management会访问这个端口。
记录root密码,用于远程登录虚拟机。
创建成功
2. 新建SCSI或VBD共享磁盘
3. 挂载共享磁盘到ecs-0001和ecs-0002节点
挂载结果
4. 节点准备
1) ecs-0001节点
配置hosts
[root@ecs-0001 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.196 ecs-0001
192.168.67.91 ecs-0002
192.168.65.22 ecs-0003
安装集群软件包
[root@ecs-0001 ~]# yum install ricci openais cman rgmanager lvm2-cluster gfs2-utils
关闭防火墙
[root@ecs-0001 ~]# /etc/init.d/iptables stop
[root@ecs-0001 ~]# chkconfig iptables off
关闭ACPI服务
[root@ecs-0001 ~]# /etc/init.d/acpid stop
Stopping acpi daemon: [ OK ]
[root@ecs-0001 ~]# chkconfig acpid off
设置ricci密码
[root@ecs-0001 ~]# passwd ricci
Changing password for user ricci.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
启动ricci服务
[root@ecs-0001 ~]# /etc/init.d/ricci start
Starting oddjobd: [ OK ]
generating SSL certificates... done
Generating NSS database... done
Starting ricci: [ OK ]
[root@ecs-0001 ~]# chkconfig ricci on
查看所挂载的磁盘
[root@ecs-0001 ~]# fdi*** -l
Di*** /dev/xvda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Di*** identifier: 0x000d6814
Device Boot Start End Blocks Id System
/dev/xvda1 1 523 4194304 82 Linux swap / Solaris
Partition 1 does not end on cylinder boundary.
/dev/xvda2 * 523 5222 37747712 83 Linux
Di*** /dev/xvdb: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Di*** identifier: 0x00000000
新建目录
[root@ecs-0001 ~]# mkdir /mnt/gfs_vbd
为磁盘创建gfs2文件系统
[root@ecs-0001 ~]# mkfs.gfs2 -p lock_dlm -t mycluster:gfs_vbd -j 4 /dev/xvdb
This will destroy any data on /dev/xvdb.
It appears to contain: data
Are you sure you want to proceed? [y/n] y
Device: /dev/xvdb
Blocksize: 4096
Device Size 100.00 GB (26214400 blocks)
Filesystem Size: 100.00 GB (26214398 blocks)
Journals: 4
Resource Groups: 400
Locking Protocol: "lock_dlm"
Lock Table: "mycluster:gfs_vbd"
UUID: 51cb6076-8155-0cde-12f8-2a813e7fd475
2) ecs-0002配置同ecs-0001。
3) 管理器
配置hosts
[root@ecs-0003 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.64.196 ecs-0001
192.168.67.91 ecs-0002
192.168.65.22 ecs-0003
安装集群软件包
[root@ecs-0003 ~]# yum install luci
关闭防火墙
[root@ecs-0003 ~]# /etc/init.d/iptables stop
[root@ecs-0003 ~]# chkconfig iptables off
启动luci
[root@ecs-0003 ~]# /etc/init.d/luci start
Adding following auto-detected host IDs (IP addresses/domain names), corresponding to `ecs-0003' address, to the configuration of self-managed certificate `/var/lib/luci/etc/cacert.config' (you can change them by editing `/var/lib/luci/etc/cacert.config', removing the generated certificate `/var/lib/luci/certs/host.pem' and restarting luci):
(none suitable found, you can still do it manually as mentioned above)
Generating a 2048 bit RSA private key
writing new private key to '/var/lib/luci/certs/host.pem'
Starting saslauthd: [ OK ]
Start luci... [ OK ]
Point your web browser to https://ecs-0003:8084 (or equivalent) to access luci
[root@ecs-0003 ~]# chkconfig luci on
5. 集群配置
登录luci高可用管理界面(网址为ecs-0003的弹性IP加上端口8084)。用ecs-0003的root账号密码登录。
转到Manage Clusters页面,点击Create创建集群,输入/etc/hosts中的节点域名和节点的ricci密码
集群创建成功
转到Resources页面,新建资源,挂载点填刚创建的目录,设备填磁盘路径
资源创建成功
转到“Failover Domain”,点击“Add”
创建成功
转到Service Groups页面,为ecs-0001新建服务组
点击“Add Resource”,选择刚创建的资源GFS_VBD
创建成功后,点击GFS_SG_VBD_1,选择Start on ecs-0001,点击Start
用同样的方法为ecs-0002创建服务组,并在详情页,选择Start on ecs-0002,点击Start
资源组创建成功
查看集群状态,可以看到GFS_SG_VBD_1和GFS_SG_VBD_2
查看分区信息
6. 验证共享功能
在ecs-0001上查看分区信息、在目录/mnt/gfs_vbd上新建文件test-ecs1
在ecs-0002的/mnt/gfs_vbd目录可以同步看到test-ecs1文件,查看文件内容,和ecs-0001上一样的。
在ecs-0002中用vi编辑test-ecs1文件,同时在ecs-0001中也尝试编辑,出现提示
说明GFS2有用同步和锁机制来保护文件不被覆盖。
在ecs-0002修改后在ecs-0001查看文件内容
内容同步成功。
7. 注意事项
节点ecs-0001和节点ecs-0002,在重启后,集群相关的服务(cman、rgmanager、ricci、modclusterd、clvmd)都会自动重启,并且会自动加入集群。如果发现有节点没有加入到mycluster集群,可以在High Availability Management中重新将节点加入mycluster。
如果df -h发现分区表里没有挂载的共享磁盘,重新用mount /dev/xvdb /mnt/gfs_vbd命令挂载磁盘,便可与其他节点同步使用共享磁盘。
- 点赞
- 收藏
- 关注作者
评论(0)