1、认识RHCS

是Red Hat公司开发整合的一套综合集群软件组件,提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群,可以通过在部署时采用不同的配置,以满足你的对高可用性、负载均衡、可扩展性、文件共享和节约成本的需要。

1-1、RHCS工作实现

Centos7 高可用群集 rhcs集群centos7_高可用

       RHCS通过LVS(Linux Virtual Server)(以及现在RHEL7文档中建议的Keepalived和HAProxy)来提供负载均衡集群,保证了服务的不间断、稳定运行。

       RHCS通过GFS2文件系统来提供存储集群功能,GFS是Global File System的缩写,它通过分布式锁管理机制DLM,来协调和管理多个服务节点对同一个文件系统的读写操作;包括cLVM、iSCSI作为共享存储设备空间管理。

       而高可用集群是RHCS的核心功能,主要组合corosync + Cman + rgmanager/ corosync +pacemaker,下面将主要介绍和配置RHCS高可用集群。

1-2、RHCS历史

1、RHEL4/Centos4:Cman

       在RHEL4/Centos4上,Cman(Cluster manager)来实现高可用功能,ccsd作这用户空间的配置工具;Cman的配置文件为/etc/cluster/cluster.conf ;Cman、DLM和GFS都是工作在内核空间。

Centos7 高可用群集 rhcs集群centos7_高可用_02

2、RHEL5/Centos5:OpenAIS + Cman + rgmanager

       在RHEL5/Centos5上,引入了OpenAIS(aisexec为核心进程)作为基础信息层, 而Cman作为投票系统以aisexec插件的形式工作,但Cman还是主导整个高可用集群,所以配置文件也还是/etc/cluster/cluster.conf;资源管理器CRM为rgmanager(resource group manager,下图中的groupd);配置管理工具有ccsd、luci/ricci和system-config-cluster(gui);注意这时候高可用功能移到了用户空间。

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_03

3、RHEL6/Centos6:corosync + Cman + rgmanager/ corosync +pacemaker

       在RHEL6/Centos6上,OpenAIS独立成为corosync,前期corosync也还是没有投票系统,如果以Cman作为投票系统,以插件的形式工作,主导的是Cman, 所以配置文件也还是/etc/cluster/cluster.conf;资源管理器CRM为rgmanager;但如果不用Cman,CRM就可以用pacemaker,其配置文件为/etc/corosync/corosyc.conf,配置管理工具也有ccsd、luci/ricci和system-config-cluster(gui);

       而corosync的第二个版本出来后,引入votequorum后有独立完整的投票系统,投票功能比cman优秀,自此cman退出江湖,不再有主导地位,配置文件由corosync主导,CRM自然也就pacemaker了,配置工具有pcs、LCMC等。

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_04

4、RHEL7/Centos7:corosync + pacemaker

       在RHEL7/Centos7上,已经取消了RHCS组件,直接是用corosync + pacemaker来实现高可用集群。

2、相关准备配置

2-1、具体使用资源

1、节点主机系统:RHEL 5.8 64bit

2、三台节点主机node1,node2,node3(RHCS至少需要三台主机或两台加一个仲裁设备):

Node1: IP:192.168.18.241 host name:node1.tjiyu,com;

Node2: IP:192.168.18.242 host name:node2.tjiyu.com;

Node3: IP:192.168.18.243 host name:node3.tjiyu.com;

VIP:192.168.18.240

Service:httpd

3、高可用集群软件:

Cman + rgmanager + system-config-cluster/ccs

2-2、配置前所需要的准备

1、配置IP、httpd服务安装、关闭防火墙;

2、配置各节点名称;

3、时间同步;

 

       编辑各节点的/var/www/html/index.html页面,内容为"node{n} server"({n}对应第几个节点,方便测试),禁止httpd开机启动。(可以看到很多相同的命令都要在各节点上执行,可以另外加一台跳板机,可以SSH连接各节点,这样就可以在跳板机上给各节点分发命令了,这里简单就不给出了)

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_05

3、下载安装

       配置好yum源,直接在各节点上分别执行安装,如下:

[root@node1 ~]# yum install cman rgmanager system-config-cluster

Centos7 高可用群集 rhcs集群centos7_高可用_06

       三节点主机如上安装好,下面开始配置。

4、配置集群

       启动集群前,需要先创建一个集群(配置文件/etc/cluster/cluster.conf),需要完成:给集群都有惟一集群名称、添加节点和添加至少有一个fence设备,这些可以选一个节点上操作,然后该节点就有配置信息的/etc/cluster/cluster.conf文件了;

       启动集群后,可以用ccsd进程会自动把配置文件发到其他节点上,而后再进行VIP和httpd服务资源的配置。

       下面我们用system-config-cluster图形界面的方式来配置,system-config-cluster可以完成上面的启动前和启动后配置;而其他的ccs_tool、cman_tool等工具也可以用来配置,但这些命令行工具也只是能配置上面所说的启动前的配置,而不能配置启动后的资源配置,这里不就用其进行配置了,下图是它们的说明:

Centos7 高可用群集 rhcs集群centos7_高可用_07

4-1、启动GUI,创建新配置

       这里的RHCS配置文件为/etc/cluster/cluster.conf,其在每个节点上都必须有一份,且内容均相同,其默认不存在,因此需要事先创建。另外,每个集群通过集群ID来标识自身,因此,在创建集群配置文件时需要为其选定一个集群名称,这里假设其为tjiyu_cluster。

       先在集群中的某个节点上执行配置,我们在node1上,启动system-config-cluster图形工具来配置,提示中选择创建新配置就好,然后输入我们的集群名称tjiyu_cluster,多播地址不设置会随机生成,如下:

[root@node1 ~]# system-config-cluster

Centos7 高可用群集 rhcs集群centos7_IP_08

Centos7 高可用群集 rhcs集群centos7_配置文件_09

4-2、添加节点和Fence设备

       添加三个节点,名称要和前面配置的"uname -n"一样,票数都为1;然后添加一个fence设备,给一个名称标识,如下:

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_10

Centos7 高可用群集 rhcs集群centos7_配置文件_11

4-3、保存配置,退出GUI

       退出GUI前,先点击上面的"文件-保存",把配置保存到/etc/cluster/cluster.conf,然后我们查看一下文件内容,如下:

Centos7 高可用群集 rhcs集群centos7_IP_12

Centos7 高可用群集 rhcs集群centos7_配置文件_13

4-4、启动cman和rgmanager

       先启动cman服务,这和DRBD服务一样,需要在三个节点同时进行,一个节点启动会等待另外的节点启动;然后再分别执行启动rgmanager服务,都正常启动后,可以查看用命令查看节点状态和集群状态信息,如下:

[root@node1 cluster]# serivce cman start

[[root@node1 cluster]# service rgmanager start

[root@node1 cluster]# cman_tool status

[root@node1 cluster]# ccs_tool status

Centos7 高可用群集 rhcs集群centos7_配置文件_14

Centos7 高可用群集 rhcs集群centos7_IP_15

Centos7 高可用群集 rhcs集群centos7_配置文件_16

       然后查看下node2和node3上的配置文件,可以看到node1上的配置文件被同步到了node2和node3,如下:

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_17

4-5、配置VIP和httpd资源

       再次启动system-config-cluster图形工具来配置VIP和httpd资源,分别如下配置,注意httpd为LSB类型服务代理,在RHCS中为script类型:

Centos7 高可用群集 rhcs集群centos7_高可用_18

Centos7 高可用群集 rhcs集群centos7_高可用_19

4-6、新建服务,并配置

       在RHCS中资源是无法单独运行的,运行的是服务,所以新建服务webservice,并把VIP和httpd服务资源添加到服务中,如下:

Centos7 高可用群集 rhcs集群centos7_Centos7 高可用群集_20

Centos7 高可用群集 rhcs集群centos7_IP_21

4-7、同步配置到其他节点

       配置好后,可以点击上面的"send to cluster",把配置文件同步到其他节点,如下:

Centos7 高可用群集 rhcs集群centos7_配置文件_22

5、测试集群服务

而在浏览器上访问VIP,返回的也正是node1上的页面,如下:

Centos7 高可用群集 rhcs集群centos7_高可用_23

Centos7 高可用群集 rhcs集群centos7_配置文件_24

      2、用命令把服务迁移到node2上;然后通过查看集群状态,可以看到服务运行在node2上;在浏览器上访问VIP,返回的也正是node2上的页面,如下:

[root@node1 cluster]# clusvcadm -r webservice -m node2.tjiyu.com

Centos7 高可用群集 rhcs集群centos7_IP_25

、用命令把服务迁移到node3上;然后通过查看集群状态,可以看到服务运行在node3上;在浏览器上访问VIP,返回的也正是node3上的页面,如下:

[root@node1 cluster]# clusvcadm -r webservice -m node3.tjiyu.com

Centos7 高可用群集 rhcs集群centos7_高可用_26

 

所有痛苦都是来自对自己无能的愤怒