首页> 系统技术> 【RHCS部署系列】(三)-Red Hat 6.4下...

[文章]【RHCS部署系列】(三)-Red Hat 6.4下通过RHCS 构建极星实时数据库集群

收藏
1 718 0

1      说明

本文档讲解在RHEL 6.4下,如何在通过RHCS构建极星实时数据库集群。

2      资源清单

假设有以下资源:

资源

说明

机器

两台机器,机器名分别为:

RHEL-TEST-01

RHEL-TEST-02

在本文档中仅用于区分机器

操作系统

RHEL 6.4Red Hat Enterprise Linux 6.4

 

集群套件

RHCSRed Hat Cluster Suite

 

外网IP

10.10.100.101RHEL-TEST-01, ethX

10.10.100.102RHEL-TEST-02, ethX

用于业务

虚拟IP

10.10.100.103

也称为浮动IP,由集群支持,其他系统使用该IP访问极星实时数据库

内网IP

192.168.100.101RHEL-TEST-01, ethY

192.168.100.102RHEL-TEST-02, ethY

用于心跳

集群成员名

(集群节点名)

fastar01-privRHEL-TEST-01

fastar02-privRHEL-TEST-02

可以理解为集群内部使用的机器名称;在/etc/hosts中与内网IP绑定

共享磁盘

/dev/sdX

两台机器存放共享数据的磁盘,主要是极星实时数据库的配置和数据;在给共享磁盘创建出逻辑卷/dev/FastarVg01/FastarData01

共享磁盘挂载点

/FastarData

极星实时数据库服务运行前,集群将共享磁盘挂载到该目录

 

 

fence设备多种多样,本文档将说明两种常用的fence设备。在机器是IBM物理机的情况下,可以采用IBM机器上的智能平台管理接口 (IPMI) ;在机器是VMware ESXi虚拟机的情况下,可以采用VMware ESXi上的VMware soap接口。以下是本文档接下来使用的fence设备参数:

Fence设备

参数

说明

IPMI

IP: 192.168.100.103RHEL-TEST-01

   192.168.100.104RHEL-TEST-01

用户名:USERID

密码:PASSW0RD

每台IBM物理机器一个IPMI

VMware soap

VMware ESX账号:

IP: 10.10.100.2

用户名:rtdb

密码:p@ssw0rd

 

虚拟机UUID

564d84e0-3b17-0e82-4249-3d71a45cf077RHEL-TEST-01

564d15af-a035-ab5c-5db5-89ac236b77c7RHEL-TEST-02

 

 


3      准备

3.1   安装RHCS

请参考《RHEL 6.2下安装RHCS》。

3.2   网络

为每台机器配置内网IP和外网IP,这两个IP必须是静态的,并且不受NetworkManager控制。如果网络已经配置好,并满足要求,那么跳过此步。

每个机器的内网设备名为ethX,外网设备名为ethY,编辑以下两个文件,以完成网络配置(或使用同等效果的命令):

/etc/sysconfig/network-scripts/ifcfg-ethX

/etc/sysconfig/network-scripts/ifcfg-ethY

修改以上文件前请先备份。文件示例如下:

DEVICE="ethX"

BOOTPROTO="static"

ONBOOT="yes"

NM_CONTROLLED="no"

IPADDR=10.10.100.101

NETMASK=255.255.255.0

 

以上红色部分根据实际情况修改。编辑完文件后,通过以下命令重启网络:

service network restart

两台机器配置完成后,在每台机器上,通过ping命令验证网络是否正确配置:

ping 10.10.100.101

ping 10.10.100.102

ping 192.168.100.101

ping 192.168.100.102

3.3   集群成员名

机器在集群中以集群成员存在,集群成员名与内网IP绑定,可以通过修改/etc/hosts完成绑定。例如,每台机器的/etc/hosts加入以下内容:

192.168.100.101 fastar01-priv

192.168.100.102 fastar02-priv

 

以上所有内容根据实际情况进行修改。

在每个机器,通过ping命令验证以上配置是否正确:

ping fastar01-priv

ping fastar02-priv

3.4   共享磁盘

为便于后续极星实时数据库空间扩容,要求采用LVM管理磁盘空间,极星实时数据库最终使用LVM的逻辑卷。

假设共享磁盘为/dev/sdX,使用LVM创建逻辑分区的步骤大致为:

1. 通过parted命令对/dev/sdX划分分区,得到/dev/sdX1//dev/sdX2等多个分区(根据/dev/sdX情况决定划分多少个分区);

2. 通过pvcreate命令使用/dev/sdXn创建物理分区;

3. 在以上的物理分区的基础上通过vgcreate命令创建卷组FastarVg01

4. 通过lvcreate命令创建逻辑卷FastarData01,最终得到/dev/FastarVg01/FastarData01逻辑卷。

具体细节请参考《Linux LVM硬盘管理及LVM扩容》。

在另外一台机器,通过“fdisk -l”查看是否正确划分了分区,是否存在逻辑卷FastarData01,如果没有,这可能是两台机器没有同步,请重启该机器。

3.5   共享磁盘挂载点

可以选定挂载点为/FastarData,只需在每台机器创建该目录即可:

mkdir /FastarData

3.6   验证fence设备

3.6.1  验证IPMI fence设备

在每台机器上,验证是否可以通过ssh登陆到其他机器IPMI。例如:

ssh 192.168.100.103

3.6.2  验证VMware soap fence设备

在每台机器上,验证是否可以通过fence设备重启另外一台机器。以下是在RHEL-TEST-01上,验证是否可以通过fence设备重启RHEL-TEST-02

fence_vmware_soap -a 10.10.100.2 -l rtdb -p p@ssw0rd -z -o reboot -U 564d84e0-3b17-0e82-4249-3d71a45cf077

上面的IPVMware ESXi的管理IP;而“564d84e0-3b17-0e82-4249-3d71a45cf077”则为RHEL-TEST-02虚拟机的UUID

同理,在RHEL-TEST-02上,验证是否可以通过fence设备重启RHEL-TEST-01

fence_vmware_soap -a 10.10.100.2 -l rtdb -p p@ssw0rd -z -o reboot -U 564d15af-a035-ab5c-5db5-89ac236b77c7

3.7   极星实时数据库服务脚本

为了将极星实时数据库注册到集群中,我们必须提供极星数据库的运行脚本,运行脚本遵循一些规范,如支持startstop参数。

服务脚本已经编写好,脚本包含两个文件:fastar.shfastar.metadata。修改fastar.sh,以配置是否启用Ⅰ区和Ⅲ区的同步。请将这两个文件拷贝到如下位置:

/usr/share/cluster/fastar.sh

/usr/share/cluster/fastar.metadata

拷贝到对应位置后,请确保/usr/share/cluster/fastar.sh有执行权限。

chmod a+x /usr/share/cluster/fastar.sh

3.8   安装极星实时数据库

请参考《极星实时数据库主备部署》。

安装极星实时数据库后,手动挂载共享磁盘,手动运行极星实时数据库脚本/usr/share/cluster/fastar.sh,以验证该脚本是否可以正常启动极星实时数据库。注意,请不要两台机器同时挂载共享磁盘和运行极星实时数据库,这会导致文件系统损坏!

启动示例如下:

/usr/share/cluster/fastar.sh start

停止极星实时数据库示例如下:

/usr/share/cluster/fastar.sh stop

4      配置集群(通过界面)

配置集群的方式有多种,例如,通过集群配置页面,通过命令和直接修改配置文件。下面将讲解如何通过页面配置集群。

通过界面配置集群时,请确保以下服务正常运行:

service ricci status

service luci status

如果服务没有正常启动则启动这些服务:

service ricci start

service luci start

4.1   设置ricci用户密码

Red_Hat_Enterprise_Linux-6-Cluster_Administration-zh-CN》中“2.14. ricci 注意事项”:“从红帽企业版Linux6.1开始,您在任意节点中使用ricci推广更新的集群配置时要求输入密码。您在系统中安装ricci后,请使用passwd ricci命令为用户ricciricci密码设定为root。”

4.2   打开Conga页面

选择一台机器,例如RHEL-TEST-01,通过浏览器打开Conga页面地址https://rhel-test-01:8084

4.3   创建集群

创建集群,也就是将多台机器组成一个集群。

选择“Manage Clusters”,单击“Create”,如下图:


在弹出的对话框中,添加集群节点(集群成员),如下图:


执行后,结果如下:


4.4   创建fence设备

为每台机器创建一个fence设备。下面创建RHEL-TEST-01fence设备。

选择“Fence Devices”,单击“Add”,如下图:


4.4.1  IPMI fence设备

在弹出的对话框中,填写fence设备信息,如下图:


同理,为RHEL-TEST-02创建fence设备:


最终结果如下:


4.4.2  VMware soap fence设备

在弹出的对话框中,填写fence设备信息,如下图:


 

同理,为RHEL-TEST-02创建fence设备:


最终结果如下:


4.5   配置fence设备

上一节创建了fence设备,本节将这些fence设备与集群节点关联。

选择“Nodes”,选定某一个集群节点,例如fastar01-priv,如下图:


滚动页面到最下面,单击“Add Fence Method”,如下图:


在弹出的对话框中,输入fence方法名(fastar01-privfence方法命名为fence01,而fastar02-privfence方法名为fence02),如下图:


单击“Submit”,后,可以看到以下结果:


单击上图的“Add Fence Instance”,弹出以下对话框:


选择之前创建的fence设备,并填写虚拟机的UUID,提交后结果如下:



同理,为fastar02-priv创建fence方法,结果如下:


4.6   创建Failover

Failover域用于指定集群服务的切换范围。例如,集群内容有3台机器,但Failover域只指定了2台,如果一个集群服务配置为该Failover域,那么集群服务只能在这两台机器间切换。

选择“Failover Domains”,单击“Add”,如下图:


在弹出的对话框中,填写以下内容:


点击“Create”完成创建过程,结果如下:


4.7   创建资源

极星实时数据库集群服务需要3种资源:虚拟IP,文件系统和运行脚本。

选择“Resources”,单击“Add”,如下图:


我们先创建文件系统资源,因此在弹出的对话框中,根据实际情况填写:


点击“Submit”,创建结果如下:


同理,创建虚拟IP资源,如下图:


创建运行脚本资源,如下图:


最终结果如下:


4.8   创建服务组

服务组是资源的集合。

选择“Service Groups”,单击“Add”,如下图:


在弹出的对话框中,填写以下信息:


点击“Add Resource”,即可添加上一节创建的资源,如下图:


分别添加上图的三种资源,最终结果如下:


4.9   运行集群服务

为集群服务选择一个节点,点击运行按钮,即可运行集群服务,如下图:


运行结果如下:


至此,极星实时数据库集群配置完成。

5      配置集群(通过修改配置文件)

本节将讲解如何直接通过修改集群配置文件的方式配置集群。简单起见,在修改集群配置文件前,先将集群服务停止(所有机器):

service luci stop

service ricci stop

service rgmanager stop

service cman stop

完成集群配置文件的修改后,请重新启动上述服务。集群配置文件位于/etc/cluster/cluster.conf

5.1   使用IPMI fence设备的集群配置文件

使用IPMI fence设备的集群配置文件内容如下:

<?xml version="1.0"?>

<cluster config_version="19" name="fastar-cluster">

       <clusternodes>

              <clusternode name="fastar01-priv" nodeid="1">

                     <fence>

                            <method name="fence01">

                                   <device name="fastar01-fence"/>

                            </method>

                     </fence>

              </clusternode>

 

              <clusternode name="fastar02-priv" nodeid="2">

                     <fence>

                            <method name="fence02">

                                   <device name="fastar02-fence"/>

                            </method>

                     </fence>

              </clusternode>

       </clusternodes>

       <cman expected_votes="1" two_node="1"/>

       <fencedevices>

              <fencedevice agent="fence_ipmilan" ipaddr="192.168.100.103" lanplus="on"

             login="USERID" name="fastar01-fence" passwd="PASSW0RD"/>

              <fencedevice agent="fence_ipmilan" ipaddr="192.168.100.104" lanplus="on"

             login="USERID" name="fastar02-fence" passwd="PASSW0RD"/>

       </fencedevices>

       <rm>

              <failoverdomains>

                     <failoverdomain name="fastar-failover" nofailback="0"

                     ordered="0" restricted="0">

                            <failoverdomainnode name="fastar01-priv"/>

                            <failoverdomainnode name="fastar02-priv"/>

                     </failoverdomain>

              </failoverdomains>

              <resources>

                     <fs device="/dev/FastarVg01/FastarData01" mountpoint="/FastarData"

                 name="fastar-data" self_fence="on"/>

                     <ip address="10.10.100.103" monitor_link="on" sleeptime="10"/>

                     <script file="/usr/share/cluster/fastar.sh" name="fastar-script"/>

              </resources>

              <service domain="fastar-failover" name="fastar-service" recovery="relocate">

                     <fs ref="fastar-data"/>

                     <ip ref="10.10.100.103"/>

                     <script ref="fastar-script"/>

              </service>

       </rm>

</cluster>

 

5.2   使用VMware soap fence设备的集群配置文件

使用IPMI fence设备的集群配置文件内容如下:

<?xml version="1.0"?>

<cluster config_version="1" name="fastar-cluster">

       <clusternodes>

              <clusternode name="fastar01-priv" nodeid="1">

                     <fence>

                            <method name="fence01">

                                   <device name="fastar01-fence"

                                       ssl="on" uuid="564d84e0-3b17-0e82-4249-3d71a45cf077"/>

                            </method>

                     </fence>

              </clusternode>

              <clusternode name="fastar02-priv" nodeid="2">

                     <fence>

                            <method name="fence02">

                                   <device name="fastar02-fence"

                                       ssl="on" uuid="564d15af-a035-ab5c-5db5-89ac236b77c7"/>

                            </method>

                     </fence>

              </clusternode>

       </clusternodes>

       <cman expected_votes="1" two_node="1"/>

       <fencedevices>

              <fencedevice agent="fence_vmware_soap" ipaddr="10.10.100.2"

                            login="rtdb" name="fastar01-fence" passwd="p@ssw0rd"/>

              <fencedevice agent="fence_vmware_soap" ipaddr="10.10.100.2"

                            login="rtdb" name="fastar02-fence" passwd="p@ssw0rd"/>

       </fencedevices>

       <rm>

              <failoverdomains>

                     <failoverdomain name="fastar-failover" nofailback="0"

                            ordered="0" restricted="0">

                            <failoverdomainnode name="fastar01-priv"/>

                            <failoverdomainnode name="fastar02-priv"/>

                     </failoverdomain>

              </failoverdomains>

              <resources>

                     <fs device="/dev/FastarVg01/FastarData01" mountpoint="/FastarData"

                            name="fastar-data" self_fence="on"/>

                     <ip address="10.10.100.103" monitor_link="on" sleeptime="10"/>

                     <script file="/usr/share/cluster/fastar.sh" name="fastar-script"/>

              </resources>

 

              <service domain="fastar-failover" name="fastar-service" recovery="relocate">

                     <fs ref="fastar-data"/>

                     <ip ref="10.10.100.103"/>

                     <script ref="fastar-script"/>

              </service>

       </rm>

</cluster>

 

6      验证集群

配置集群后,必须验证配置的正确性,尽早发现问题。

验证集群前,请确保集群服务进程已启动。可通过以下命令启动集群服务进程(所有机器)。

service cman start

service rgmanager start

service ricci start

service luci start

 

6.1   验证fence设备

在每台机器上,验证是否可以通过fence设备重启其他机器,例如,在fastar01-priv上,验证是否可以重启fastar02-priv

fence_node fastar02-priv

同理,在fastar02-priv上,验证是否可以重启fastar01-priv

fence_node fastar02-priv

如果以上操作无法成功,那么可以从以下方面着手检查:

1. Fence设备的参数是否正确

2. 是否为集群节点创建了fence方法,并关联了正确的fence设备

6.2   验证文件系统

在已经运行了极星实时数据库服务的机器上,执行以下命令,看是否已经正确挂载文件系统:

mount

ls /FastarData

6.3   验证虚拟IP

在已经运行了极星实时数据库服务的机器上,执行以下命令,验证虚拟IP是否正常:

ping 10.10.100.103

6.4   验证极星实时数据库进程

在已经运行了极星实时数据库服务的机器上,通过ps命令,查看极星实时数据库后台进程是否存在,例如:

ps -ef | grep FES

6.5   SMT登陆验证

SMT以虚拟IP登陆到极星实时数据库,验证是否可以正常使用。

6.6   验证服务迁移

通过命令或者Conga界面,迁移极星实时数据库服务,以验证是否可以迁移服务(在一台机器上可以正常运行并不能保证在另外一台机器也可以正常运行)。下面以命令方式为为例。

首先通过clustat查看集群运行状态:


从上图可以看出,极星实时数据库目前在fastar02-priv上运行。下面通过clusvcadm命令将极星实时数据库服务迁移到fastar01-priv


迁移服务后,按前面一个小节的步骤,验证新的集群节点是否正确配置

6.7   重启验证

重启主机,验证集群服务是否自动切换到备机,通过SMT验证fastar点和数据是否正常。同理,重启当前主机,验证是否正常切换到另外一台机器,通过SMT验证fastar点和数据是否正常。

同时重启两台机器,待启动后查看集群是否正常。通过SMT验证fastar点和数据是否正常。

6.8   进程异常验证

在主机上杀死前端或者DSSManager,验证进程是否会被重启。同理,切换服务到其他机器,执行相同的过程。

6.9   网络异常验证

拔掉主机的业务网络的网线,验证是否正常切换到其他机器。同理,切换服务到其他机器,执行相同的过程。

系统技术
最近热帖
{{item.Title}} {{item.ViewCount}}
近期热议
{{item.Title}} {{item.PostCount}}