RHCS 集群套件的搭建(Fence)以及高可用集群的实现(httpd为例)

一、基础概念

1.什么是集群?

是指一组相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器,这些服务器之间可以彼此通信,协同向用户提供应用程序,系统资源和数据,并以单一系统的模式加以管理。

2.集群的优点

高性能;价格有效性;可伸缩性;高可用;透明性;可管理;可编程

3.什么是RHCS?

RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。
RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。

高可用集群:
是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。

负载均衡集群:
RHCS通过LVS来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。

存储集群:
RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。

主机环境:rhel6.5 selinux and iptables disabled

主机名ip服务
rhcs1172.25.254.1ricci、luci、apache
rhcs2172.25.254.2ricci、apache
物理机172.25.254.73fence

Fence 搭建步骤:

1.在rhcs1和rhcs2上配建更高级的yum源

[root@rhcs1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[LoadBalancer]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[HighAvailability]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/HighAvailability
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ResilientStorage]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/ResilientStorage
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[ScalableFileSystem]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.73/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
[root@rhcs1 ~]# yum clean all
[root@rhcs1 ~]# yum repolist

在这里插入图片描述
rhcs2操作相同,此处用scp发过去一份;

2.添加解析(物理机、rhcs1、rhcs2都要添加)

[root@rhcs1 ~]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.254.1 rhcs1
172.25.254.2 rhcs2
172.25.254.3 rhcs3
172.25.254.4 rhcs4

物理机、rhcs2操作相同

3.在rhcs1上下载ricci、luci,启动服务,开机自启

  • ricci (图形的集群管理)
  • luci (图形界面)
  • 修改ricci 密码
[root@rhcs1 ~]# yum install ricci luci -y
[root@rhcs1 ~]# id ricci
uid=140(ricci) gid=140(ricci) groups=140(ricci)
[root@rhcs1 ~]# passwd ricci
Changing password for user ricci.
New password: 
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@rhcs1 ~]# /etc/init.d/ricci start
[root@rhcs1 ~]# /etc/init.d/luci start
[root@rhcs1 ~]# chkconfig ricci on
[root@rhcs1 ~]# chkconfig luci on

3.rhcs2上安装ricci,启动服务,开机自启
操作与rhcs1相同

[root@rhcs2 ~]# yum install ricci -y
[root@rhcs2 ~]# id ricci
[root@rhcs2 ~]# passwd ricci
[root@rhcs2 ~]# /etc/init.d/ricci start
[root@rhcs2 ~]# chkconfig ricci on

4.创建集群

01.在浏览器里输入https://172.25.254.1:8084(因为是加密访问,需要添加证书)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
02.登录帐号和密码是rhcs1里的系统用户和密码,普通用户需要经超级用户审核才能登陆,因此一般选择用超级用户登录。
在这里插入图片描述
在这里插入图片描述
03.点击集群管理(Manage Clusters),greate 一个集群
在这里插入图片描述
在这里插入图片描述

注意:安装过程中rhcs1、rhcs2会重启;重新进行连接
在这里插入图片描述
04.安装完成后,在两台主机上执行clustat或者cat /etc/clustat/ctustat.conf可以看到对应生成的文件
在这里插入图片描述
在这里插入图片描述

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

01.在物理机上安装fence,模仿现实环境中的设备

[root@foundation73 ~]# yum search fence

在这里插入图片描述

[root@foundation73 ~]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
[root@foundation73 ~]# mkdir /etc/cluster
[root@foundation73 ~]# cd /etc/cluster/

02.编辑fence的配置文件

[root@foundation73 cluster]# fence_virtd -c
Module search path [/usr/lib64/fence-virt]: 

Available backends:
    libvirt 0.1
Available listeners:
    multicast 1.2

Listener modules are responsible for accepting requests
from fencing clients.

Listener module [multicast]: 

The multicast listener module is designed for use environments
where the guests and hosts may communicate over a network using
multicast.

The multicast address is the address that a client will use to
send fencing requests to fence_virtd.

Multicast IP Address [225.0.0.12]: 

Using ipv4 as family.

Multicast IP Port [1229]: 

Setting a preferred interface causes fence_virtd to listen only
on that interface.  Normally, it listens on all interfaces.
In environments where the virtual machines are using the host
machine as a gateway, this *must* be set (typically to virbr0).
Set to 'none' for no interface.

Interface [virbr0]: br0

The key file is the shared key information which is used to
authenticate fencing requests.  The contents of this file must
be distributed to each physical host and virtual machine within
a cluster.

Key File [/etc/cluster/fence_xvm.key]: 

Backend modules are responsible for routing requests to
the appropriate hypervisor or management layer.

Backend module [libvirt]: 

Configuration complete.

=== Begin Configuration ===
backends {
	libvirt {
		uri = "qemu:///system";
	}

}

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

}

fence_virtd {
	module_path = "/usr/lib64/fence-virt";
	backend = "libvirt";
	listener = "multicast";
}

=== End Configuration ===
Replace /etc/fence_virt.conf with the above [y/N]? y

注意:如果此方法设置后不生效,可以在配置文件里修改)

在这里插入图片描述

03.如果没有密钥目录,自己建立一个,并截取密钥(注意必须是br0)

在这里插入图片描述
04.将生成好的密钥发送给rhcs1和rhcs2,确保使用的是同一密钥

[root@foundation73 cluster]# scp fence_xvm.key root@172.25.254.1:/etc/cluster/
[root@foundation73 cluster]# scp fence_xvm.key root@172.25.254.2:/etc/cluster/

在接收端查看
在这里插入图片描述
在这里插入图片描述
05.打开fence服务

[root@foundation73 cluster]# systemctl start fence_virtd.service
[root@foundation73 cluster]# systemctl status fence_virtd.service

在这里插入图片描述
6.添加fence设备

01.点击Fence Devices,add一个多播模式的fence
在这里插入图片描述

02.绑定节点
对于rhcs1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:此处的Domain是对应主机的UUID,virt-manager可以查看
在这里插入图片描述

对应的rhcs2:
操作相同
在这里插入图片描述

03.对应的配置完成后,会生成相应文件
在这里插入图片描述
在这里插入图片描述
7.在物理机重启服务

[root@foundation73 cluster]# systemctl restart fence_virtd.service
测试:

模拟让设备rhcs2断电(在rhcs1上将rhcs2爆头,让他重启)

[root@rhcs1 cluster]# fence_node rhcs2
fence rhcs2 success

在这里插入图片描述
在这里插入图片描述
模拟让设备rhcs1断电(在rhcs2上将rhcs1爆头,让他重启)

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

高可用服务的配置

1.添加故障转移域
将rhcs1、rhcs2添加在域中,当其中一个出现故障时,切换到另一个正常的上面;(集群打开后,服务落在优先级高的上)

注意:数字越小,优先级越高
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.添加对应的服务以及服务所需的资源(以http为例)

在这里插入图片描述
添加VIP

在这里插入图片描述
添加启动httpd的脚本
在这里插入图片描述
在这里插入图片描述

3.在集群中添加资源组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:要注意资源添加顺序(先VIP后开启服务)
在这里插入图片描述

4.在rhcs1和rhcs2上安装httpd服务

[root@rhcs1 cluster]# yum install httpd -y
[root@rhcs1 cluster]# cd /var/www/html/
[root@rhcs1 html]# vim index.html
[root@rhcs1 html]# cat index.html 
rhcs1
[root@rhcs1 html]# /etc/init.d/httpd status
httpd is stopped

[root@rhcs2 cluster]# yum install httpd -y
[root@rhcs2 ~]# cd /var/www/html/
[root@rhcs2 html]# vim index.html
[root@rhcs2 html]# cat index.html 
rhcs2
[root@rhcs2 html]# /etc/init.d/httpd status
httpd is stopped

5.将组资源开启
在这里插入图片描述

测试

此时rhcs1和rhcs2都正常,但rhcs1优先级高,所以httpd在rhcs1开启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试1:模拟rhcs1内核故障
echo c >/proc/sysrq-trigger
在这里插入图片描述
在这里插入图片描述
注意:当rhcs1重启后,服务会自动回到rhcs1

测试2:将rhcs2的httpd服务关闭
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
一般在企业中,需要勾选 No Failback (故障不会切) ;即当server2挂掉后,服务自动转到server1上,并且VIP也会自动飘过来,即使server2重启成功了,服务也不会再转回去

测试3:将rhcs1的网络关闭,模拟网络故障
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值