【云硬盘】使用VBD共享云硬盘搭建RHCS集群(Linux)

举报
泥巴。 发表于 2018/07/13 14:46:17 2018/07/13
【摘要】 您可以参考本帖子通过共享盘搭建RHCS(Red Hat Cluster Suite)集群系统,使用GFS2分布式文件系统,帖子内容有限,建议您可以直接参考附件的PDF,若有问题您可以留言,我看到都会及时答复~

简介

本篇内容指导搭建RHCS(Red Hat Cluster Suite)集群系统,使用GFS2分布式文件系统,实现一个共享盘在多个云服务器之间可共享文件。

RHCS集群资源规划

云服务器资源

本示例中批量创建3台云服务器,其中云服务器参数配置如 表1所示。这3台服务器组成一个小型集群,其中1台管理节点,两台业务节点。

       

表1 云服务器配置参数

节点类型

配置信息

管理节点

  • 名称:ecs-share-0003

  • 镜像:CentOS 6.5 64bit

  • 规格:通用计算型、c2.large(2vCPUs、4GB内存)

  • 弹性IP:122.3x.xx.xx

  • 私有IP地址:192.168.108.96

节点1

  • 名称:ecs-share-0001

  • 镜像:CentOS 6.5 64bit

  • 规格:通用计算型、c2.large(2vCPUs、4GB内存)

  • 弹性IP:122.1x.xx.xx

  • 私有IP地址:192.168.119.20

节点2

  • 名称:ecs-share-0002

  • 镜像:CentOS 6.5 64bit

  • 规格:通用计算型、c2.large(2vCPUs、4GB内存)

  • 弹性IP:122.2x.xx.xx

  • 私有IP地址:192.168.92.223

云硬盘资源

本示例中创建了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为例。

  1. 使用root用户登录云服务器。

  2. 执行以下命令,查看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
  3. 执行以下命令,打开“/etc/hosts”文件。

    vi /etc/hosts

  4. 按“i”进入编辑模式。

  5. 将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
  6. 按“Esc”,输入“:wq”,并按“Enter”。

    保存设置并退出vi编辑器。

  7. 参考1~6,配置其他2台云服务器ecs-share-0002和ecs-share-0003的网络。

安装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的配置相同。

  1. 使用root用户登录云服务器。

  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!
  3. 执行以下命令,关闭防火墙。

    /etc/init.d/iptables stop

    chkconfig iptables off

  4. 执行以下命令,暂停并关闭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
  5. 执行以下命令,设置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密码。

  6. 执行以下命令,启动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
  7. 执行以下命令,查看云服务器挂载的磁盘。

    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
  8. 执行以下命令,新建磁盘挂载目录。

    mkdir 挂载目录

    命令示例:

    mkdir /mnt/gfs_vbd

  9. 执行以下命令,为磁盘创建GFS2分布式文件系统。

    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
  10. 参考1~9,配置另一台云服务器ecs-share-0002。

安装luci

本章节指导用户为管理节点(即云服务器ecs-share-0003)安装配置luci。

  1. 使用root用户登录云服务器。

  2. 执行以下命令,下载并安装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!
  3. 执行以下命令,关闭防火墙。

    /etc/init.d/iptables stop

    chkconfig iptables off

  4. 执行以下命令,启动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页面创建集群并配置磁盘。

  1. 打开并登录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集群中。

icon-notice.gif 注意:      

如果重启节点ecs-share-0001和ecs-share-0002,在重启后,集群相关的服务(cman、rgmanager、ricci、modclusterd、clvmd)都会自动重启,并且会自动加入集群。如果发现有节点没有加入到mycluster集群,可以在High Availability Management中重新将节点加入到mycluster集群即可。

选择“Resources”,为集群新建磁盘资源。

在“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添加至故障切换域。

本示例添加了名称为gfs_failover的故障切换域。

参数设置完成后,单击“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为例。

  1. 使用root用户登录计算节点。

  2. 执行以下命令,查看服务组。

    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中创建的两个服务组。

  3. 执行以下命令,查看磁盘分区及挂载信息。

    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”目录下。

    icon-notice.gif 注意:        

    如果执行完df -h命令发现分区表里没有挂载的共享盘,请执行“mount 磁盘设备名称 挂载目录” 命令重新挂载磁盘,例如,mount /dev/xvdb /mnt/gfs_vbd,挂载后便可与其他云服务器同步使用该共享盘。

  4. 参考15.a~15.c,查看另一台云服务器的集群状况。

验证磁盘共享功能

本章节指导用户验证共享盘是否可以实现在多台云服务器之间共享文件。

  1. 使用root用户登录云服务器ecs-share-0001。

  2. 执行以下步骤,在云服务器ecs-share-0001的磁盘挂载目录“/mnt/gfs_vbd”上新建文件“test-ecs1”。

    1. 执行以下命令,进入“/mnt/gfs_vbd/”目录。

      cd /mnt/gfs_vbd/

    2. 执行以下命令,打开“test-ecs1”文件。

      vi test-ecs1

    3. 按“i”进入编辑模式。

    4. 为“test-ecs1”文件添加内容,例如hello1”。

    5. 按“Esc”,输入“:wq”,并按“Enter”。

      保存设置并退出vi编辑器。

    6. 执行以下命令,查看“test-ecs1”文件内容。

      cat test-ecs1

      回显类似如下信息:        

      [root@ecs-share--0001 gfs_vbd]# cat test-ecs1
      hello1

      表示“test-ecs1”文件内容添加成功。

    7. 执行以下命令,再次查看“test-ecs1”文件是否存在。

      ls

      回显类似如下信息:        

      [root@ecs-share--0001 gfs_vbd]# ls
      test-ecs1

      表示云服务器ecs-share-0001的“/mnt/gfs_vbd/”目录下存在“test-ecs1”文件。

  3. 使用root用户登录云服务器ecs-share-0002。

  4. 执行以下步骤,验证在云服务器ecs-share-0002的磁盘挂载目录“/mnt/gfs_vbd”中是否可以查看到2中创建的“test-ecs1”文件。

    1. 执行以下命令,进入“/mnt/gfs_vbd/”目录。

      cd /mnt/gfs_vbd/

    2. 执行以下命令,查看“test-ecs1”文件是否存在。

      ls

      回显类似如下信息:        

      [root@ecs-share--0002 gfs_vbd]# ls
      test-ecs1

      表示通过云服务器ecs-share-0001创建的“test-ecs1”文件,在云服务器ecs-share-0002的“/mnt/gfs_vbd/”目录下可以查看到。

    3. 执行以下命令,查看“test-ecs1”文件内容。

      cat test-ecs1

      回显类似如下信息:        

      [root@ecs-share--0002 gfs_vbd]# cat test-ecs1
      hello1

      表示通过云服务器ecs-share-0001添加的“test-ecs1”文件内容,在云服务器ecs-share-0002中可以看到,内容同步成功。

  5. 执行以下步骤,验证在云服务器ecs-share-0002上是否可以修改文件“test-ecs1”。

    1. 执行以下命令,打开“test-ecs1”文件。

      vi test-ecs1

    2. 按“i”进入编辑模式。

    3. 为“test-ecs1”文件添加内容,例如hello2”。

    4. 按“Esc”,输入“:wq”,并按“Enter”。

      保存设置并退出vi编辑器。

    5. 执行以下命令,查看“test-ecs1”文件内容。

      cat test-ecs1

      回显类似如下信息:        

      [root@ecs-share--0002 gfs_vbd]# cat test-ecs1
      hello1
      hello2

      表示在云服务器ecs-share-0002上也可以对“test-ecs1”文件内容进行修改。

  6. 使用root用户登录云服务器ecs-share-0001。

  7. 执行以下步骤,验证在云服务器ecs-share-0001中是否可以读取5中修改的“test-ecs1”文件内容。

    1. 执行以下命令,进入“/mnt/gfs_vbd/”目录。

      cd /mnt/gfs_vbd/

    2. 执行以下命令,查看“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.cn/bestpractice-evs/zh-cn_topic_0107767325.html


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。