HA高可用集群(ricci+luci+fence_virted)

时间:2022-11-16 03:06:19

实验准备:两台redhat6.5的虚拟机server1 172.25.20.1 server4 172.25.20.4,一台安装fence_virtd的物理机

一.使用集群管理工具ricci和集群图形化工具luci搭建集群

1.两台虚拟机分别配置yum源,添加高可用性、负载均衡、存储、文件系统

cd /var/www/html/rhel6.5
ls
vim /etc/yum.repos/rhel-sorce.repo

HA高可用集群(ricci+luci+fence_virted)

HighAvailability是高可用相关软件包,LoadBalancer是负载均衡相关软件包。
yum repolist 查看

2.server1安装ricci,luci
server4 安装 ricci,
ricci安装完成后,passwd ricci设置密码
luci和ricci搭建在一个虚拟机里,luci服务也需要开机自启动 chkconfig luci on

/etc/init.d/ricci start
chkconfig ricci on

3.创建节点:
Luci服务的端口是8084,https协议访问。
浏览器输入 https://172.25.20.1:8084

HA高可用集群(ricci+luci+fence_virted)

create new cluster
HA高可用集群(ricci+luci+fence_virted)
HA高可用集群(ricci+luci+fence_virted)

cat /etc/cluster/cluster.conf
clustat

HA高可用集群(ricci+luci+fence_virted)

二、Fence机制

当集群其中节点网络出现故障,互相之间无法通信,会以为对方出现故障,从而都会接管资源,此时出现资源争抢。Fence机制是直接将故障节点掉电。防止资源争抢

1.安装fence_virtd

HA高可用集群(ricci+luci+fence_virted)

fence_virtd -c

Module search path [/usr/lib64/fence-virt]:
Listener module [multicast]: ##多播
Multicast IP Address [225.0.0.12]: ##多播ip
Multicast IP Port [1229]: ##多播端口号
Interface [br0]:
Key File [/etc/cluster/fence_xvm.key]: ##key文件路径
Backend module [libvirt]:
Configuration complete.
=== Begin Configuration ===
fence_virtd {
listener = “multicast”;
backend = “libvirt”;
module_path = “/usr/lib64/fence-virt”;
}

listeners {
multicast {
key_file = “/etc/cluster/fence_xvm.key”;
address = “225.0.0.12”;
interface = “br0”;
family = “ipv4”;
port = “1229”;
}

}

backends {
libvirt {
uri = “qemu:///system”;
}

}

=== End Configuration ===

生成key文件

HA高可用集群(ricci+luci+fence_virted)

 systemctl 
scp /etc/cluster/fence_xvm.key root@172.25.20.1:/etc/cluster/
scp /etc/cluster/fence_xvm.key root@172.25.20.4:/etc/cluster/
systemctl restart fence_virted

5.创建fence设备
浏览器输入 https://172.25.20.1:8084

HA高可用集群(ricci+luci+fence_virted)

选择Nodes server1
HA高可用集群(ricci+luci+fence_virted)

Domain为server1uuid

HA高可用集群(ricci+luci+fence_virted)

server4同理.

cat /etc/cluster/cluster.conf 可查看fence设置
测试一,直接fence server1,server4会接管集群资源,server1断电后,重新启动。
[root@server4 ~]# fence_node server1

测试二,down掉server1的虚拟网卡eth0,fence机制检测到server1网络有问题,server4接管集群资源,server1断电,重新启动。
[root@server1 ~]# ip link set eth0 down

三.集群的故障转移域

1.failover domains,Prioritized,设定集群节点优先级;Pestricted,指定在特定的节点上运行服务;No Failback,不回切机制,当故障节点恢复后,集群资源不回切。

HA高可用集群(ricci+luci+fence_virted)

2.给集群添加VIP资源,全局。resource,设置虚拟ip

HA高可用集群(ricci+luci+fence_virted)

3.给集群添加httpd服务,全局。必须为节点中已经存在的服务或自定义脚本

HA高可用集群(ricci+luci+fence_virted)

4.给集群创建一个服务组,并添加VIP资源和httpd资源service group

HA高可用集群(ricci+luci+fence_virted)
HA高可用集群(ricci+luci+fence_virted)
HA高可用集群(ricci+luci+fence_virted)

5.测试:
server1和server4均安装httpd

yum install -y httpd
clustat
ip addr #server1优先级高,vip在server1上

HA高可用集群(ricci+luci+fence_virted)

server1/etc/init.d/httpd stop #集群健康检查,server4接管服务

HA高可用集群(ricci+luci+fence_virted)

echo c > /proc/sysrq-trigger使server4内核发生故障
server1 /etc/init.d/httpd start #server1重新接管服务

server1,server4编写/var/www/html/index.html 后,
浏览器输入 虚拟ip 172.25.20.100 即可访问正在工作的虚拟机发布页