运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解

前言:FENCE工具的原理及作用

FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令,将服务器重启或关机,或者与网络断开连接。

FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。

RHCS的FENCE设备可以分为两种:内部FENCE和外部FENCE,常用的内部FENCE有IBMRSAII卡,HP的iLO卡,还有IPMI的设备等,外部fence设备有UPS、SANSWITCH、NETWORKSWITCH等

实验准备

1.下面的实验使用的是rhel6系列(rhel6.5)的虚拟机,因此你需要有对应的镜像和yum源
2.准备三台虚拟机,为了区分主机名与IP分别为
server1 172.25.6.1
server2 172.25.6.2
server3 172.25.6.3

以下为FENCE搭建过程详解

一、创建集群

1.为设备配置yum源

vim /etc/yum.repos.d/rhel-source.repo

在这里插入图片描述

yum clean all
yum repolist

在这里插入图片描述

为了方便起见,我们将这份配置文件发送到其他主机上

scp /etc/yum.repos.d/rhel-source.repo server2:/etc/yum.repos.d/

2.安装软件

(1)server1安装ricci和luci图形管理器,启动服务,设置开机自启

yum install -y ricci luci
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on
chkconfig luci on

安装完之后可以看到/etc/passwd文件中自动生成了一个ricci用户
在这里插入图片描述

passwd ricci				##为ricci用户用户设置密码

在这里插入图片描述
(2)server2上安装ricci,启动服务,设置开机自启,修改ricci用户密码

yum install ricci -y
/etc/init.d/ricci start
chkconfig ricci on
passwd ricci

补充:如何查看系统开机自起项

chkconfig --list

在这里插入图片描述

4.查看服务端口详情

netstat -tnlp

在这里插入图片描述

5.浏览器访问https://172.25.6.1:8084 出现下面的界面,手动导入证书

在这里插入图片描述

点击【Advanced】

在这里插入图片描述

点击【Add】

在这里插入图片描述

点击【Confirm…】

在这里插入图片描述

6.登录

登录的账号和密码是server1中的系统用户和密码,普通用户需要经过超级用户的审核才能登录,所以一般选用超级用户登录

在这里插入图片描述

7.创建集群

(1)点击集群管理(manage cluster),选择create,创建集群在这里插入图片描述

(2)设置集群的基本信息,添加节点

在这里插入图片描述

在这里插入图片描述

(3)点击create cluster开始创建,可以看到开始创建集群

在这里插入图片描述

注意:创建时两台虚拟机都会重启,如果之前没有设置服务开机启动这个时候就会报错,重启后要在虚拟机中手动打开服务创建的过程才会继续

(4)创建集群完成,节点添加成功

在这里插入图片描述

8.创建完成之后可以服务所在的主机(server1)中查看配置文件

cat /etc/cluster/cluster.conf 

在这里插入图片描述

server1和server2分别查看节点状态

server1上:
在这里插入图片描述

server2上:
在这里插入图片描述

可以看到ricci运行的端口是11111
在这里插入图片描述

注意:删除集群时要先删除节点,节点删除后集群会自动消失

集群中的服务如下:
在这里插入图片描述

二、配置fence设备

fence服务在物理机配置,(在集群之外)

1.物理机安装fence软件

yum search fence

在这里插入图片描述

yum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64

2.创建一个目录/etc/cluster,生成的key将会保存在这个目录中

在这里插入图片描述
3 . 编辑fence配置文件

fence_virtd -c

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.编辑完之后如果没有生成密钥文件,可以手动生成一个

dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1

在这里插入图片描述
5.将生成的密钥文件发送给节点server1和server2

scp fence_xvm.key server1:/etc/cluster/
scp fence_xvm.key server2:/etc/cluster/

在这里插入图片描述
server1和server2查看

ls /etc/cluster

在这里插入图片描述

6.物理机打开fence服务

systemctl start fence_virtd.service 

在这里插入图片描述

7.浏览器中luci添加分fence设备

(1)点击fence devices,点击add

在这里插入图片描述
(2)选择多播模式,设置fence设备的名字为vmfence

在这里插入图片描述

8.绑定节点

(1)点击nodes,点击server1
在这里插入图片描述
(2)点击add fence method

在这里插入图片描述

(3)起名为vmfence-1

在这里插入图片描述

(4)点击add fence instance

在这里插入图片描述

(5)选择刚刚建立的fence设备,domain后面填server1节点的UUID,UUID可以在虚拟机图形管理器中查看

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(6)点击server2,重复上面的步骤

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

设备绑定成功后如下
在这里插入图片描述

(7)两个节点都绑定后可以看到fence配置文件的内容如下

cat /etc/cluster/cluster.conf 

在这里插入图片描述
netstat可以查看到fence使用的端口

在这里插入图片描述

9.测试:

server1通过fence干掉server2,可以看到server2断电重启

fence_node server2

在这里插入图片描述

三、高可用服务配置(以httpd为例)

1.设置失败回切(故障转移域)

点击add

在这里插入图片描述

命名为webfail,当一个节点出现故障时切换到正常的哪一个上,将server1和server2添加在域中,设置两个节点的优先级,数字越小优先级越高

在这里插入图片描述
在这里插入图片描述

2.设置回切资源(以httpd的高可用为例)

点击add --> 添加ip address(集群外的VIP)—>设置切换主机的时间5秒—>submit提交

在这里插入图片描述
在这里插入图片描述

再次点击add–>添加script(因为httpd时脚本启动的)—>添加/etc/init.d/httpd文件

在这里插入图片描述

在这里插入图片描述
3.设置资源组

点击add设置资源组的名字为apache -->添加资源(上一不中添加的vip)—>添加资源(httpd脚本)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.server1和server2安装httpd,开启服务,编辑测试页

server1上:

yum install httpd -y
vim /var/www/html/index.html
/etc/init.d/httpd start

在这里插入图片描述

server2上:

yum install httpd -y
vim /var/www/html/index.html
/etc/init.d/httpd start

在这里插入图片描述

5.刷新页面,显示httpd服务运行在server1上(server1优先级高

在这里插入图片描述

(1)在两个节点上分别查看cluster的状态

在这里插入图片描述

(2)查看server1和server2的ip,发现VIP在server1上
在这里插入图片描述
在这里插入图片描述
(3)物理机测试:访问VIP访问到的是server1

在这里插入图片描述

6.在web中设置httpd运行现在server2上

(1)查看状态,httpd运行在server2上
在这里插入图片描述

(2)查看server2ip,VIP在server2上

在这里插入图片描述

在这里插入图片描述
(3)物理机测试:访问VIP,访问到的是server2

在这里插入图片描述

7.测试高可用

(1)在server2中输入echo c> /proc/sysrq-tigger,破坏server2的内核

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(3)查看状态,httpd转移在server1上运行,VIP出现在server1上

在这里插入图片描述

(4)物理机访问VIP出现的是server1

在这里插入图片描述

(5)如果手动关闭server1的httpd,服务将自动转移到server2上

/etc/init.d/httpd stop

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
总结:没有手动开启httpd服务时在web集群管理界面,刷新界面只会开启一个节点的httpd,所以当服务落在某一个节点时只能访问到虚拟ip和当前节点,其他节点是访问不到的

猜你喜欢

转载自blog.csdn.net/meltsnow/article/details/89714441