1、认识RHCS
是Red Hat公司开发整合的一套综合集群软件组件,提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群,可以通过在部署时采用不同的配置,以满足你的对高可用性、负载均衡、可扩展性、文件共享和节约成本的需要。
1-1、RHCS工作实现
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都是工作在内核空间。
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);注意这时候高可用功能移到了用户空间。
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等。
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连接各节点,这样就可以在跳板机上给各节点分发命令了,这里简单就不给出了)
3、下载安装
配置好yum源,直接在各节点上分别执行安装,如下:
[root@node1 ~]# yum install cman rgmanager system-config-cluster
三节点主机如上安装好,下面开始配置。
4、配置集群
启动集群前,需要先创建一个集群(配置文件/etc/cluster/cluster.conf),需要完成:给集群都有惟一集群名称、添加节点和添加至少有一个fence设备,这些可以选一个节点上操作,然后该节点就有配置信息的/etc/cluster/cluster.conf文件了;
启动集群后,可以用ccsd进程会自动把配置文件发到其他节点上,而后再进行VIP和httpd服务资源的配置。
下面我们用system-config-cluster图形界面的方式来配置,system-config-cluster可以完成上面的启动前和启动后配置;而其他的ccs_tool、cman_tool等工具也可以用来配置,但这些命令行工具也只是能配置上面所说的启动前的配置,而不能配置启动后的资源配置,这里不就用其进行配置了,下图是它们的说明:
4-1、启动GUI,创建新配置
这里的RHCS配置文件为/etc/cluster/cluster.conf,其在每个节点上都必须有一份,且内容均相同,其默认不存在,因此需要事先创建。另外,每个集群通过集群ID来标识自身,因此,在创建集群配置文件时需要为其选定一个集群名称,这里假设其为tjiyu_cluster。
先在集群中的某个节点上执行配置,我们在node1上,启动system-config-cluster图形工具来配置,提示中选择创建新配置就好,然后输入我们的集群名称tjiyu_cluster,多播地址不设置会随机生成,如下:
[root@node1 ~]# system-config-cluster
4-2、添加节点和Fence设备
添加三个节点,名称要和前面配置的"uname -n"一样,票数都为1;然后添加一个fence设备,给一个名称标识,如下:
4-3、保存配置,退出GUI
退出GUI前,先点击上面的"文件-保存",把配置保存到/etc/cluster/cluster.conf,然后我们查看一下文件内容,如下:
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
然后查看下node2和node3上的配置文件,可以看到node1上的配置文件被同步到了node2和node3,如下:
4-5、配置VIP和httpd资源
再次启动system-config-cluster图形工具来配置VIP和httpd资源,分别如下配置,注意httpd为LSB类型服务代理,在RHCS中为script类型:
4-6、新建服务,并配置
在RHCS中资源是无法单独运行的,运行的是服务,所以新建服务webservice,并把VIP和httpd服务资源添加到服务中,如下:
4-7、同步配置到其他节点
配置好后,可以点击上面的"send to cluster",把配置文件同步到其他节点,如下:
5、测试集群服务
而在浏览器上访问VIP,返回的也正是node1上的页面,如下:
2、用命令把服务迁移到node2上;然后通过查看集群状态,可以看到服务运行在node2上;在浏览器上访问VIP,返回的也正是node2上的页面,如下:
[root@node1 cluster]# clusvcadm -r webservice -m node2.tjiyu.com
、用命令把服务迁移到node3上;然后通过查看集群状态,可以看到服务运行在node3上;在浏览器上访问VIP,返回的也正是node3上的页面,如下:
[root@node1 cluster]# clusvcadm -r webservice -m node3.tjiyu.com
所有痛苦都是来自对自己无能的愤怒