【云硬盘】使用VBD共享云硬盘搭建RHCS集群(Linux)
简介
本篇内容指导搭建RHCS(Red Hat Cluster Suite)集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。
RHCS集群资源规划
云服务器资源
本示例中批量创建3台云服务器,其中云服务器参数配置如 表1所示。这3台服务器组成一个小型集群,其中1台管理节点,两台业务节点。
节点类型 |
配置信息 |
---|---|
管理节点 |
|
节点1 |
|
节点2 |
|
云硬盘资源
本示例中创建了1个VBD共享云硬盘,并挂载至节点1和节点2,即ecs-share-0001和ecs-share-0002。
创建资源
创建云服务器
本示例中一共创建3台云服务器,具体操作请参见PDF附件。
创建共享云硬盘
本示例中一共创建VBD共享云硬盘,并挂载至节点1和节点2,即ecs-share-0001和ecs-share-0002,具体操作请参见PDF附件。
配置云服务器网络
本章节指导用户配置3台云服务器的网络,以确保3台云服务器网络互通。
本操作以配置ecs-share-0001为例。
-
执行以下命令,查看ecs-share-0001的host文件“/etc/hosts”。
cat /etc/hosts
回显类似如下信息:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
执行以下命令,打开“/etc/hosts”文件。
vi /etc/hosts
-
按“i”进入编辑模式。
-
将3台云服务器的私有IP以及对应的云服务器名称添加至“hosts”文件,请按照以下回显样例进行配置:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.119.20 ecs-share-0001 192.168.92.223 ecs-share-0002 192.168.108.96 ecs-share-0003
-
保存设置并退出vi编辑器。
安装RHCS集群
搭建一个RHCS集群系统,需要分别为管理节点和其他节点安装luci和ricci软件,具体如下:
-
luci: RHCS集群管理工具的主控端,提供了管理RHCS集群的web页面(High Availability Management),luci安装在管理节点上,管理集群主要是通过跟集群中其他节点上的ricci通信来完成的。
-
ricci: RHCS集群管理工具的受控端,安装在集群中的其他节点上,luci就是通过每一个节点上的ricci管理后端。
安装ricci
操作场景
本章节指导用户为节点1和节点2(即云服务器ecs-share-0001和ecs-share-0002)安装ricci并配置磁盘。
本文以云服务器的操作系统为“CentOS 6.5 64bit ”为例。不同云服务器的操作系统的配置可能不同,本文仅供参考,具体操作步骤和差异请参考对应操作系统的产品文档。
操作步骤
本操作以配置ecs-share-0001为例,节点1和节点2的配置相同。
-
执行以下命令,下载并安装ricci软件包。
yum install ricci openais cman rgmanager lvm2-cluster gfs2-utils
回显类似如下信息:
...... Dependency Updated: cyrus-sasl.x86_64 0:2.1.23-15.el6_6.2 cyrus-sasl-gssapi.x86_64 0:2.1.23-15.el6_6.2 cyrus-sasl-lib.x86_64 0:2.1.23-15.el6_6.2 cyrus-sasl-plain.x86_64 0:2.1.23-15.el6_6.2 device-mapper.x86_64 0:1.02.117-12.el6_9.1 device-mapper-event.x86_64 0:1.02.117-12.el6_9.1 device-mapper-event-libs.x86_64 0:1.02.117-12.el6_9.1 device-mapper-libs.x86_64 0:1.02.117-12.el6_9.1 device-mapper-persistent-data.x86_64 0:0.6.2-0.1.rc7.el6 lvm2.x86_64 0:2.02.143-12.el6_9.1 lvm2-libs.x86_64 0:2.02.143-12.el6_9.1 sg3_utils-libs.x86_64 0:1.28-12.el6 Complete!
-
执行以下命令,关闭防火墙。
/etc/init.d/iptables stop
chkconfig iptables off
-
执行以下命令,暂停并关闭ACPI(Advanced Configuration and Power Interface,高级配置与电源接口)服务。
/etc/init.d/acpid stop
chkconfig acpid off
回显类似如下信息:
[Infographics Show] 04 A Quick Insight into EVS [root@ecs-share--0001 ~]# /etc/init.d/acpid stop Stopping acpi daemon: [ OK ] [root@ecs-share--0001 ~]# chkconfig acpid off
-
执行以下命令,设置ricci密码。
passwd ricci
回显类似如下信息:
[root@ecs-share--0002 ~]# passwd ricci Changing password for user ricci. New password: Retype new password: passwd: all authentication tokens updated successfully.
根据回显提示设置ricci密码。
-
执行以下命令,启动ricci。
/etc/init.d/ricci start
chkconfig ricci on
回显类似如下信息:
[root@ecs-share--0001 ~]# /etc/init.d/ricci start Starting oddjobd: [ OK ] generating SSL certificates... done Generating NSS database... done Starting ricci: [ OK ] [root@ecs-share--0001 ~]# chkconfig ricci on
-
执行以下命令,查看云服务器挂载的磁盘。
fdisk -l
chkconfig acpid off
回显类似如下信息:
[root@ecs-share--0001 ~]# fdisk -l Disk /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 Disk 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 Disk /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 Disk identifier: 0x00000000
-
执行以下命令,新建磁盘挂载目录。
mkdir 挂载目录
命令示例:
mkdir /mnt/gfs_vbd
-
mkfs.gfs2 -p lock_dlm -t mycluster:gfs_vbd -j 4 /dev/xvdb
回显类似如下信息:
[root@ecs-share--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: ef5ff133-bfcb-826a-92e8-4decd04d4712
安装luci
本章节指导用户为管理节点(即云服务器ecs-share-0003)安装配置luci。
-
使用root用户登录云服务器。
-
执行以下命令,下载并安装luci集群软件包。
yum install luci
回显类似如下信息:
...... python-webflash.noarch 0:0.1-0.2.a9.el6 python-webhelpers.noarch 0:0.6.4-4.el6 python-webob.noarch 0:0.9.6.1-3.el6 python-webtest.noarch 0:1.2-2.el6 python-zope-filesystem.x86_64 0:1-5.el6 python-zope-interface.x86_64 0:3.5.2-2.1.el6 python-zope-sqlalchemy.noarch 0:0.4-3.el6 Complete!
-
执行以下命令,关闭防火墙。
/etc/init.d/iptables stop
chkconfig iptables off
-
执行以下命令,启动luci。
/etc/init.d/luci start
chkconfig luci on
回显类似如下信息:
[root@ecs-share--0003 ~]# /etc/init.d/luci start Adding following auto-detected host IDs (IP addresses/domain names), corresponding to `ecs-share--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-share--0003:8084 (or equivalent) to access luci [root@ecs-share--0003 ~]# chkconfig luci on
luci启动成功后,即可以通过管理RHCS集群的web页面(High Availability Management)来进行集群的相关配置。
创建集群并配置磁盘
本章节指导用户登录High Availability Management页面创建集群并配置磁盘。
-
打开并登录High Availability Management页面。
-
地址:https://ecs-share-0003的弹性IP:8084
例如:https://122.3x.xx.xx:8084
-
帐号及密码:创建ecs-share-0003时设置的root帐号及密码
选择“Manage Cluster”,创建集群。
在“Create New Cluser”页面,根据页面提示设置以下参数:
本示例在集群中添加了两个节点。
-
Cluser Name:自定义集群名称,例如,mycluster。
-
Node Name:分别设置计算节点的名称,例如,ecs-share-0001。
-
Paasword:安装ricci中设置的ricci密码。
添加完第一个节点的信息后,单击“Add Another Node”添加第二个节点。
参数设置完成后,单击“Create Cluster”,开始创建集群。
创建成功后,两台云服务器均已添加至mycluster集群中。
注意:
如果重启节点ecs-share-0001和ecs-share-0002,在重启后,集群相关的服务(cman、rgmanager、ricci、modclusterd、clvmd)都会自动重启,并且会自动加入集群。如果发现有节点没有加入到mycluster集群,可以在High Availability Management中重新将节点加入到mycluster集群即可。
在“Add Resource to Cluster”页面,根据页面提示设置以下参数:
本示例添加了名称为GFS_VBD的磁盘资源:
-
Name:自定义磁盘资源名称,例如,GFS_VBD。
-
Mount Point:安装ricci中设置的磁盘挂载目录,例如,/mnt/gfs_vbd。
-
Device,FS Label,or UUID:此处以填写安装ricci中磁盘设备名称为例,例如,/dev/xvdb。
-
Filesystem Type:此处选择安装ricci中设置的分布式文件系统,例如,GFS2。
参数设置完成后,单击“Submit”,开始创建磁盘资源。
选择“Failover Domains”,为集群服务新建故障切换域。
在“Add Failover Domain to Cluster”页面,根据页面提示设置以下参数:
Name:自定义故障切换域的名称,例如,gfs_failover。
将节点1和节点2添加至故障切换域。
参数设置完成后,单击“Create”,开始创建故障切换域。
选择“Service Groups”,为集群中的节点创建服务组。
以ecs-share-0001为例。
在“Add Service Group to Cluster”页面,根据页面提示设置以下参数:
本示例添加了名称为GFS_SG_VBD_1的服务组,并添加了GFS_VBD磁盘资源。
-
Service Name:自定义服务组的名称,例如,GFS_SG_VBD_1。
-
Failover Domain:选择8中创建的故障切换域,例如,gfs_failover。
-
Add Resource:选择5中创建的资源,例如,GFS_VBD。
参数设置完成后,单击“Submit”,并选择Start on ecs-share-0001节点,开始为ecs-share-0001创建服务组。
参考11~13,为另一个节点ecs-share-0002创建服务组。
服务组创建完成后,执行以下步骤,分别查看云服务器ecs-share-0001和ecs-share-0002的集群状况。
以ecs-share-0001为例。
-
执行以下命令,查看服务组。
clustat
回显类似如下信息:
[root@ecs-share--0001 ~]# clustat Cluster Status for mycluster @ Wed Apr 11 16:56:51 2018 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ ecs-share-0001 1 Online, Local, rgmanager ecs-share-0002 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:GFS_SG_VBD_1 ecs-share-0001 started service:GFS_SG_VBD_2 ecs-share-0002 started
GFS_SG_VBD_1和GFS_SG_VBD_2即为14中创建的两个服务组。
-
df -h
回显类似如下信息:
[root@ecs-share--0001 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda2 36G 2.8G 31G 9% / tmpfs 1.9G 32M 1.9G 2% /dev/shm /dev/xvdb 100G 518M 100G 1% /mnt/gfs_vbd
其中,“/dev/xvdb”即为共享盘设备名,分区成功并已挂载至“/mnt/gfs_vbd”目录下。
注意:
如果执行完df -h命令发现分区表里没有挂载的共享盘,请执行“mount 磁盘设备名称 挂载目录” 命令重新挂载磁盘,例如,mount /dev/xvdb /mnt/gfs_vbd,挂载后便可与其他云服务器同步使用该共享盘。
验证磁盘共享功能
本章节指导用户验证共享盘是否可以实现在多台云服务器之间共享文件。
-
使用root用户登录云服务器ecs-share-0001。
-
执行以下步骤,在云服务器ecs-share-0001的磁盘挂载目录“/mnt/gfs_vbd”上新建文件“test-ecs1”。
-
执行以下命令,进入“/mnt/gfs_vbd/”目录。
cd /mnt/gfs_vbd/
-
执行以下命令,打开“test-ecs1”文件。
vi test-ecs1
-
按“i”进入编辑模式。
-
为“test-ecs1”文件添加内容,例如“hello1”。
-
按“Esc”,输入“:wq”,并按“Enter”。
保存设置并退出vi编辑器。
-
执行以下命令,查看“test-ecs1”文件内容。
cat test-ecs1
回显类似如下信息:
[root@ecs-share--0001 gfs_vbd]# cat test-ecs1 hello1
表示“test-ecs1”文件内容添加成功。
-
执行以下命令,再次查看“test-ecs1”文件是否存在。
ls
回显类似如下信息:
[root@ecs-share--0001 gfs_vbd]# ls test-ecs1
表示云服务器ecs-share-0001的“/mnt/gfs_vbd/”目录下存在“test-ecs1”文件。
-
-
使用root用户登录云服务器ecs-share-0002。
-
执行以下步骤,验证在云服务器ecs-share-0002的磁盘挂载目录“/mnt/gfs_vbd”中是否可以查看到2中创建的“test-ecs1”文件。
-
执行以下命令,进入“/mnt/gfs_vbd/”目录。
cd /mnt/gfs_vbd/
-
执行以下命令,查看“test-ecs1”文件是否存在。
ls
回显类似如下信息:
[root@ecs-share--0002 gfs_vbd]# ls test-ecs1
表示通过云服务器ecs-share-0001创建的“test-ecs1”文件,在云服务器ecs-share-0002的“/mnt/gfs_vbd/”目录下可以查看到。
-
执行以下命令,查看“test-ecs1”文件内容。
cat test-ecs1
回显类似如下信息:
[root@ecs-share--0002 gfs_vbd]# cat test-ecs1 hello1
表示通过云服务器ecs-share-0001添加的“test-ecs1”文件内容,在云服务器ecs-share-0002中可以看到,内容同步成功。
-
-
执行以下步骤,验证在云服务器ecs-share-0002上是否可以修改文件“test-ecs1”。
-
执行以下命令,打开“test-ecs1”文件。
vi test-ecs1
-
按“i”进入编辑模式。
-
为“test-ecs1”文件添加内容,例如“hello2”。
-
按“Esc”,输入“:wq”,并按“Enter”。
保存设置并退出vi编辑器。
-
执行以下命令,查看“test-ecs1”文件内容。
cat test-ecs1
回显类似如下信息:
[root@ecs-share--0002 gfs_vbd]# cat test-ecs1 hello1 hello2
表示在云服务器ecs-share-0002上也可以对“test-ecs1”文件内容进行修改。
-
-
使用root用户登录云服务器ecs-share-0001。
-
执行以下步骤,验证在云服务器ecs-share-0001中是否可以读取5中修改的“test-ecs1”文件内容。
-
执行以下命令,进入“/mnt/gfs_vbd/”目录。
cd /mnt/gfs_vbd/
-
执行以下命令,查看“test-ecs1”文件内容。
cat test-ecs1
回显类似如下信息:
[root@ecs-share--0001 gfs_vbd]# cat test-ecs1 hello1 hello2
表示通过云服务器ecs-share-0002修改的“test-ecs1”文件内容,在云服务器ecs-share-0001中也可以看到,内容同步成功。
-
如果您希望看到更多云硬盘的最佳实践,请您留言给我,十分感谢~
ps: 您还可以通过华为云官网访问该内容,https://support.huaweicloud.com/bestpractice-evs/zh-cn_topic_0107767325.html
- 点赞
- 收藏
- 关注作者
评论(0)