实验准备:
首先rhel6.5的虚拟机server1和server2关闭防火墙。
第二步:server1和server2虚拟机配置yum源
[root@server2 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red
baseurl=http://172.25.55.250/wanggua1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.55.250/wanggua1/HighAvailability
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.55.250/wanggua1/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.55.250/wanggua1/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=Red
baseurl=http://172.25.55.250/wanggua1/ScalableFileSystem
[root@server2 ~]# yum clean all
[root@server2 ~]# yum repolist
实验步骤
第一步:安装所需软件 server1安装:(server1是高可用节点和管理节点)[root@server1 ~]# yum install ricci luci -y
[root@server1 ~]# passwd ricci
[root@server1 ~]# /etc/init.d/ricci start
[root@server1 ~]# chkconfig ricci on
[root@server1 ~]# /etc/init.d/luci start
[root@server1 ~]# chkconfig luci on
server2安装:(server2是高可用节点)
[root@server2 ~]# yum install ricci -y
[root@server2 ~]# passwd ricci
[root@server2 ~]# /etc/init.d/ricci start (开启服务)
[root@server2 ~]# chkconfig ricci on(设置开机自启)
查看server1开启的服务的端口号
第二步:网页上创建集群
访问网页:
点击左下角按钮
认证页面
点击create,创建一个集群
添加server1和server2虚拟机信息。
第四步:查看集群信息
在server1和server2上可查看到信息,集群创建成功。
此实验必须有域名解析
[root@server1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.55.1 server1
172.25.55.2 server2
172.25.55.3 server3
fence服务
fence 防止系统卡掉,如果系统夯住,强制重启。
第一步:在网页为两个虚拟机添加fence方法。
为server1和server2虚拟机,分别添加fence服务。
为server1和server2添加fence方法。
查看server1和server2的UUID
填写在Domain。
第二步:在真机上下载软件
[root@foundation55 ~]# yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
[root@foundation55 ~]# fence_virtd -c(除了br0,其他都回车)
Interface [virbr0]: br0
[root@foundation55 ~]# mkdir /etc/cluster/(创建目录)
[root@foundation55 ~]# cd /etc/cluster/
[root@foundation55 cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1(截取数据)
[root@foundation55 cluster]# ls
fence_xvm.key
[root@foundation55 cluster]# hexdump -C fence_xvm.key (可查看截取的数据)
传给server1和server2虚拟机。
[root@foundation55 cluster]# scp fence_xvm.key [email protected]:/etc/cluster
[root@foundation55 cluster]# scp fence_xvm.key [email protected]:/etc/cluster
[root@foundation55 cluster]# systemctl start fence_virtd.service (真机重启fence服务)
测试
[root@server1 ~]# fence_node server2
fence server2 success
server2虚拟机重新启动。
添加故障转移
在Failover Donmains栏目中,为集群添加故障转移。
图中的Prlorlty 优先级数字越小级别越高。
选项No Failback通常是要勾选的,勾选后,当server1发生故障后转移到server2,等server1恢复后不会再将服务回到server1上,提高了服务稳定性。此实验为了效果更明显,没有勾选此项,等出现故障的服务器恢复后,服务又会回到原本的服务器上。
在资源栏目中为集群添加资源
添加虚拟ip.
最后一行是虚拟ip所在服务端出故障后,5s后发生漂移。
添加启动httpd的脚本
为集群添加服务群
下图的Run Exclusive代表运行独占。勾选后不能通过命令将apache服务自如切换与两个服务端之间(见文末)。将之前写要的服务都加进去(ip和脚本)。
添加成功后的页面,等待片刻,此时apache服务开启在server2上。
server1和server2都安装httpd,并编写网页。
[root@server2 ~]# yum install -y httpd
[root@server1 ~]# yum install -y httpd
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
server2
测试
[root@server2 html]# clustat
Cluster Status for westos_ha @ Fri Feb 15 21:50:30 2019
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server1 1 Online, rgmanager
server2 2 Online, Local, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:apache server2 started
查看ip,虚拟ip在server2上,因为之前两个服务端的优先级设定,server2优先级高。
查看此时server2的httpd服务的状态是开启的,这是脚本的作用
[root@server2 html]# service httpd status
httpd (pid 5916) is running...
访问虚拟ip,访问到的网页是server2的网页。
[root@foundation55 cluster]# curl 172.25.55.100
server2
当server2服务端出现故障:
此时虚拟ip漂移到了server1服务端。
此时访问虚拟ip,得到的网页是server1的。
[root@foundation55 cluster]# curl 172.25.55.100
server1
[root@server1 html]# clustat(查看集群状态)
Cluster Status for westos_ha @ Fri Feb 15 21:53:56 2019
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server1 1 Online, Local, rgmanager
server2 2 Online, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:apache server1 started (此时apache服务在server1上开启)
server虚拟机恢复后:
[root@foundation55 cluster]# curl 172.25.55.100(服务回到了优先级高的server2服务端)
server2
Run Exclusive的作用
勾选Run Exclusive后,不能通过命令将服务转到别的服务端。
[root@server2 ~]# clusvcadm -r apache -m server1
Trying to relocate service:apache to server1...Operation violates dependency rule
去掉勾选
执行命令,成功将服务转移到server1服务端。
[root@server2 ~]# clusvcadm -r apache -m server1