实验环境(RHEL6.5版本):
Selinux与Iptables状态均为disabled
主机名 | IP | 服务 |
---|---|---|
server1 | 172.25.4.1 | HA1(高可用节点1:ricci) 和 管理节点(luci) |
server2 | 172.25.4.2 | HA2(高可用节点2:ricci) |
fountion真机 | 172.25.4.250 | fence集群端 |
RHCS实现高可用的部署:
一.两HA节点(server1与server2)搭建高级yum源:
[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[HighAvailability] ##高可用
name=HighAvailability
baseurl=http://172.25.4.250/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer] ##负载均衡
name=LoadBalancer
baseurl=http://172.25.4.250/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage] ##存储
name=ResilientStorage
baseurl=http://172.25.4.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=0
[ScalableFileSystem] ##文件系统
name=ScalableFileSystem
baseurl=http://172.25.4.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=0
二.安装ricci与luci软件:
配置server1(高可用节点与管理节点):
1.安装ricci与luci,设置开机自启,以及设置ricci用户密码(安装ricci后会自动生成ricci用户)
[root@server1 yum.repos.d]# yum install -y ricci luci ##luci是RHCS基于web的集群管理工具
[root@server1 yum.repos.d]# passwd ricci
redhat
[root@server1 yum.repos.d]# /etc/init.d/ricci start ##开启服务
[root@server1 yum.repos.d]# /etc/init.d/luci start
[root@server1 yum.repos.d]# chkconfig ricci on ##开机自启
[root@server1 yum.repos.d]# chkconfig luci on ##开机自启
2.查看luci服务端口:netstat -tnlp
配置server2(高可用节点):
1.安装ricci并开启服务,设定ricci用户密码,设置开机自启
[root@server2 ~] yum install -y ricci
[root@server2 ~]passwd ricci
[root@server2 ~]/etc/init.d/ricci start ##开启服务
[root@server2 ~]chkconfig ricci on ##开机自启
三.网页登陆集群管理并添加集群:
1.打开集群管理网页(使用server1IP,因为server1安装luci集群管理工具)
输入:https://172.25.4.1:8084
2.登陆(使用server1的root用户及密码登陆)
3.创建集群:选择Manage Clusters,点击create开始创建
创建好后,点击Create Cluster,提交成功后server1与server2会自动重启
4.检测集群是否创建成功(以server1为例)
[root@server1 ~]# cat /etc/cluster/cluster.conf ##查看集群配置
[root@server1 ~]# clustat ##查看集群状态
注意:集群添加成功的前提是做好server1与server2的解析,因为创建集群时写的是主机名而不是ip
5.添加fence设备:点击Fence Device开始进行添加,添加完后点击Submit提交
6.fountion真机上fence的安装及配置
1).fence的安装
[root@foundation4 ~]# yum install -y fence-virt.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
2).进行初始化设置(其中要将接口设备改为br0,其他默认回车,最后一项输入y确定即可)
[root@foundation4 ~]# fence_virtd -c
3).生成及发送fence_xvm.key
[root@foundation4 ~]# mkdir /etc/cluster ##建立目录
[root@foundation4 ~]# cd /etc/cluster/
[root@foundation4 cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 ##dd截取,生成fence_xvm.key
[root@foundation4 cluster]# hexdump -C fence_xvm.key ##查看key
[root@foundation4 cluster]# scp fence_xvm.key root@172.25.4.1:/etc/cluster/ ##发送key
[root@foundation4 cluster]# scp fence_xvm.key root@172.25.4.2:/etc/cluster/
[root@foundation4 cluster]# systemctl start fence_virtd.service ##配置完成后开启fence服务
四.HA节点与fence的关联
1.关联server1节点:
点击Nodes,双击server1,接着点击Add fence Method添加fence策略,最后submit提交即可
接着点击Add Fence Instance添加fence实例,最后submit提交即可
注意:其中添加fence实例时的Domain写的server1的UUID
关联成功后:
2.关联server2节点:
点击Nodes,双击server2,接着点击Add fence Method添加fence策略,最后submit提交即可
接着点击Add Fence Instance添加fence实例,最后submit提交即可
同样此处的Domain也为server2的UUID
关联成功后:
测试:
1.fountion真机上开启fence服务
[root@foundation4 cluster]# systemctl start fence_virtd.service
2.通过server1使server2重启
[root@server1 ~]# fence_node server2
五.配置Failover Domains(故障回切域)
1.点击Failover Domains进行故障切换域设置,接着点击add进行添加
<No Failback选项为不回切的意思,如果勾选则vip不回切,否则则会自动回切
Priority是优先级的意思,数字越小优先级越高>
到此处为止,部署基本完成,HA高可用就可以实现了,接下来我们只需要在添加资源,更具体的实现一些服务的高可用
六.添加apache资源:
1.选择Resources,点击add进行添加
1)添加vip:
(其中5为等待时间)
2).添加Script脚本
2.server1与server2上安装apache服务,在/var/www/html目录下建立发布文件index.html
[root@server1 ~] yum install httpd -y
[root@server1 ~] vim /var/www/html/index.html
写入:server1
[root@server2 ] yum install -y httpd
[root@server2] vim /var/www/html/index.html
写入:server2
七.资源整合
1.选择Service Groups,点击add进行添加
接着点击Add Resource
选择前面添加过的vip和script脚本
测试:
资源整合完后,点击submit进行提交(提交前将server1与server2的http服务关掉),提交后可看到server2的http服务在跑,而且vip也在server2上(因为server2的优先级大于server1,所以服务会现在server2上跑)
此时我们手动模拟server2节点宕机:
因为http服务与vip都在server2上,我们手动让它宕机,看vip是否回漂移到server1上,实现高可用
1.执行命令:echo c> /proc/sysrq-trigger(手动时server2宕机)
2.此时,vip会漂移到server1上节点
3.但是5秒后当server2重新起来后,vip又会回切到server2上(因为我们之前设置的是自动回切)
此时clustat查看集群状态,apache服务在server2上跑
通过真机访问curl 172.25.4.100,出现server2的页面内容