RHCM 使用gnbd仲裁磁盘 建立HA高可用性集群 【详细图解】

首先,要安装集群管理套件。这些软件包全在/RHEL5U3/Cluster/下,建议除了那些不同语言的说明包,别的包去安装上,功能就完整了。要是需要支持iscsi ,要组建SAN的话,那些包应该在/RHEL5U3/ClusterStorage下。当然还是配置yum比较好。配置yum相比大家都知道。但是为了给大家提供方便,这里提供一个脚本。以便于大家搭建yum软件仓库。大家下载回去了以后,解压出来一个bluseyum.sh脚本,添加其运行权限,然后再linux下运行就可以了。这个脚本在RHEL系统上没有问题,别的系统还没有试验过。记得修改里面的软件包安装数路径。将RHEL5的光盘里所有内容拷贝到一个你喜欢的路径,然后修改脚本路径,然后执行脚本,就会自动创建yum安装源。以后用就会很方便了。只要知道需要安装的rpm包名字,直接yum install 就可以了。yum 配好了进/RHEL5U3/Cluster/下,yum install * 就可以了。当然你也可以指定包名字。这样就避免了那些说明文件的安装。就看你自己喜欢了。

回到正题。软件都安装好了吧。那就开始进行配置吧。

以root用户登录系统,当然要开启图形化界面,然后运行以下命令:
system-config-cluster
然后出现软件窗口,第一次使用的时候,需要创建一个/etc/cluster/cluster.conf集群管理配置文件。

1:提示窗口,提示没有cluster.conf这个配置文件,需要创建这个文件,或者我们手动指定一个目录中的这个配置文件。这里我就创建一个。

2:第二部,创建的集群管理的初始设置窗口,在这个小窗口中,我们要指定集群名,然后指定组播地址。这个组播地址应该不对,但是用这个我也成功了,正常的组播地址应该是224.0.0.0~239.255.255.255。
在下面有一个复选框后便写的 Use a Quorun Disk ,指的是使用仲裁磁盘。当然这一步可以省去。前提是没有仲裁磁盘,或者网络环境不需要创建仲裁磁盘。因为为了判定一个节点是否宕机,需要各个节点进行投票。在后边图4添加节点的时候就要指定投票值。

投票值的用法。在服务器环境中,每个节点都有一个投票值,在发现各个节点之间有一台或几台节点的心跳访问不正常的时候,就要进行投票,判定他是不是宕机了。当投票数大于集群总结点数的一半的时候,就判定那个节点宕机了,对其进行卸载资源和在故障转移域中切换到备用机上。但是有一个几乎不太可能出现的情况,但是也有可能会出现,虽然几率很小,但是还是要注意这种情况,那就是当集群系统中有一半或者一半以上的节点宕机的时候,会导致整个集群宕掉。因为投票数达到一半的时候,正常的机器就不能确定自身是不是正常的,因为没有仲裁,则他们也会判定自己宕机,然后“自杀”,我见过这个实现,正常机器传给其他机器的信息写的就是“we are dead!”,这是原话,非常有趣,当然这个有趣是在实验环境下,要是万一在生产集群上出现这样的问题,损失可就就大了!一定要重视。

所以引入了仲裁磁盘。仲裁磁盘也就是法院,一定要保证出什么问题,仲裁磁盘都不可以出问题,每台节点都会在仲裁磁盘上进行写数据测试,能写上说明其是正常的, 仲裁磁盘的投票值,必须保证仲裁加上集群中最小投票数,要大于集群中总投票数的一半。这样就能避免不出现上面出现的集群宕机的情况。还有,仲裁磁盘只能支持最多16个节点,因为如果集群中节点数大于了16个,在生产系统中不可能出现一般机器宕机的情况。也就不再需要仲裁了。

我这里仲裁磁盘使用的是gnbd磁盘,网络存储的搭建我会在后边介绍,及时关注哦,呵呵

下图中需要的一些选项的值和意义:
Interval 延时多长时间重新连接仲裁进行连接测试
TKO 当仲裁分数达到多少的时候,表明这个节点宕机了,会触发fence设备对其进行重启。
Votes 仲裁的投票值,必须保证仲裁+集群中最小投票数,要大于集群中总投票数的一半。
Minimum Score 3

---仲裁磁盘信息---
Device 设备名,这里就是你挂载的网络存储的位置
Label 这个label会跟设备的名称不同,因为这个label在创建设备的时候可以指定
---网络测试仲裁信息---
Program ping -c 192.168.0.254  仲裁探测命令,这里使用ping,用来ping 网关,会在每个节点上运行,如果某一次ping不通,则加一次分数,如果总的得分数达到了minimum score的值。则会提示提示fence设备对响应节点进行重启操作。
Scro 1 每次失败的时候增加的分数。
Interval 2 延时。

3:这里就要开始添加节点了,在cluster nodes下添加新的节点。点击Add a Cluster Node 。就会出现图4的那个创建窗口。

4:指定节点名,节点的投票值和这个节点用来进行和cluster中的其他节点间进行通信的网卡号。 这里节点名要写主机名,并且cluster中的所有节点中都要有其他节点的主机名记录,也就是在/etc/hosts下必须有集群中所有节点的记录,推荐将节点中写好一个hosts文件,然后scp到其他所有节点上,这样保证信息的统一!

5:这个图显示已经添加好了第二个节点,节点名是node11.zhou.com node12.zhou.com

6:failover domains 这里是故障转移域,创建故障转移域以后,当主机服务器出现问题的时候,集群会关闭主服务器中的相关服务和卸载相关资源,然后在备用机上挂载相关资源,并开启服务,实现转移。这里创建了一个httpd为名称的故障转移域。

7:这里往故障转移域中添加节点

8:记得在故障转移域中添加完节点了以后,需要选定那个 Restrict Failover To This Domains Members。这样就会在故障产生的时候,只在这个故障转移域内转移服务。

9:添加资源的步骤,因为故障转移的时候,对外的ip服务地址是不可以变的,所以在添加资源的时候,要添加ip资源。添加script资源是为了集群切换主备服务器的时候需要使用的脚本位置,也就是需要开启或关闭的服务的脚本的位置,各个节点中这个位置应该是同步的。

10:这里就是说的对外部提供服务的ip地址。

11:httpd脚本位置

12:添加服务名,这里添加需要的资源

13:选择failover domain ,然后添加需要转移的资源。

14:

15:都设置好了,就可以保存了。Ctrl + S


关闭以后,就可以将这个配置文件拷贝到每个节点上,然后开启cman。cman开启了以后,就可以启动资源管理了。
service cman start
service rgmanager start



16:在客户机上测试web服务器的访问。

17:这是服务器的监控状态,说明现在资源在node11.zhou.com这个节点上。

18:当我故意把node11这台机器上的httpd服务stop了以后,监控就会发现然后开始切换资源

19:资源切换完成

20:同样访问同一个ip,现实的页面不一样了,因为我们使用的服务器换了。在生产系统中,显然需要保证切换主备的时候,内容完全一样,这就需要使用gfs了。在我后编写的网络存储上就会写了。到最后我还会举一个大的案例,在里面实现最常用也最实用的集群技术。

好了,写好了。欢迎关注gfs篇,哈哈

关于这个实验的更详细的实验记录和步骤都在这个帖子中: http://zhouxuguang.blog.51cto.com/1053090/239129
跟这个文章搭配着看就好了,我就不弄到一块去了,那就成资源浪费了。呵呵

本文出自 “周旭光_不断进取” 博客,转载请与作者联系!

你可能感兴趣的:(集群,HA,高可用性,gnbd,RHCM)