RHCS集群套件

一、RHCS简介

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

二、RHCS的三大功能

1、高可用集群是RHCS的核心功能。当正使用的节点出现故障时,RHCS提供的高可用管理组件自动、快速的将应用使用的当前服务节点切换到另一个节点,保证应用的正常进行,而且节点转移功能对客户来说是透明的,所以也能实现应用持续、不间断的对外提供服务

2、负载均衡集群是RHCS通过使用LVS(Linux Virtual Server)实现的。LVS是 一个开源的且功能强大的基于IP的负载均衡技术,LVS 由调度器服务器节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各服务器节点上,当然,还可以自定义多种负载均衡策略,当客户请求进来时,调度器根据负载均衡策略判断应该将请求分配到哪个服务器节点上,然后由分配的服务器节点去响应客户请求。不仅如此,LVS 还提供了服务节点故障转移功能,简单来说就是当某个服务节点出故障后,LVS 会自动屏蔽这个节点并将它从集群踢除,同时将新来此节点的请求平滑的转移到其它正常节点上,当故障节点恢复正常后LVS 又会自动将此节点加入集群中。这所有操作对客户而言都是透明的,从而保证了服务的不间断,稳定运行!

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

三、实验环境

server1	172.25.64.1		luci,ricci		RHEL6.5
server2	172.25.64.2		ricci			RHEL6.5

四、RHCS高可用

server1和server2

1、配置yum源

[root@server1 ~]# vim /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.64.250/rhel6.5
enabled=1
gpgcheck=0

[HighAvailability]
name=HighAvailability
baseurl=http://172.25.64.250/rhel6.5/HighAvailability 
enabled=1
gpgcheck=0

[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.64.250/rhel6.5/LoadBalancer
enabled=1
gpgcheck=0

[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.64.250/rhel6.5/ResilientStorage
enabled=1
gpgcheck=0

[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.64.250/rhel6.5/ScalableFileSystem
enabled=1
gpgcheck=0

2、安装软件

server1

[root@server1 ~]# yum install ricci luci -y		#安装ricci、luci
[root@server1 ~]# passwd ricci					#给ricci用户设置密码
[root@server1 ~]# /etc/init.d/ricci start		#启动ricci
[root@server1 ~]# /etc/init.d/luci start		#启动luci
[root@server1 ~]# chkconfig ricci on			#开机自启
[root@server1 ~]# chkconfig luci on
[root@server1 ~]# vim /etc/hosts		#编写本地解析,后面通过web添加集群需要
172.25.64.1 server1
172.25.64.2 server2

[root@server1 ~]# yum install httpd -y			#阿帕奇用来测试
[root@server1 ~]# vim /var/www/html/index.html
 server1
[root@server1 ~]# /etc/init.d/httpd start

server2

[root@server2 ~]# yum install ricci -y			#只安装ricci即可
[root@server2 ~]# /etc/init.d/ricci start		
[root@server2 ~]# chkconfig ricci on
[root@server2 ~]# passwd ricci
[root@server2 ~]# vim /etc/hosts
172.25.64.1 server1
172.25.64.2 server2

3、浏览器访问https://172.25.64.1:8084

可以看到luci的管理界面:

root用户登陆!

在这里插入图片描述
创建个集群看看!

还记得刚在写的本地解析吗?Node Name用的就是解析名,不是IP!
在这里插入图片描述
稍等片刻~
在这里插入图片描述
喝杯茶回来,看到创建好了
在这里插入图片描述

[root@server1 ~]# cat /etc/cluster/cluster.conf 	#可看到创建好的集群

在这里插入图片描述

[root@server1 ~]# clustat 			#这样看集群状态更直观

在这里插入图片描述

4、配置fence

物理机

[root@allen ~]# yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
[root@allen ~]# mkdir /etc/cluster
[root@allen ~]# fence_virtd -c				#fence配置

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		<<<<注意

钥匙处理:

[root@allen ~]# cd /etc/cluster/
[root@allen cluster]# ls			#什么都没有,那就手动生成钥匙

手动生成钥匙
[root@allen cluster]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
1+0 records in
1+0 records out
128 bytes (128 B) copied, 0.000210386 s, 608 kB/s

将钥匙传送给server1和server2
[root@allen cluster]# scp fence_xvm.key server1:/etc/cluster/
fence_xvm.key                           100%  128     0.1KB/s   00:00    
[root@allen cluster]# scp fence_xvm.key server2:/etc/cluster/
fence_xvm.key                           100%  128     0.1KB/s   00:00 

[root@allen cluster]# systemctl start fence_virtd.service 

浏览器添加fence设备

在这里插入图片描述
去Nodes下给集群成员fence关联,用UUID一一对应

Domain处写UUID
在这里插入图片描述

UUID
在这里插入图片描述

弄好后是这个样子

在这里插入图片描述

  • 同理,对server2也这样操作一遍
    在这里插入图片描述

  • 测试

[root@server2 ~]# fence_node server1		#将server1关掉
fence server1 success

可看到server1重启,则说名前面配置的fence其作用了!

5、添加失败回切(Failover domains)

选中Prioritized:对服务故障转移到的节点进行排序、Restricted:服务只能在指定的节点上运行、No Failback(资源故障不回切),选中下方的server1和server2的Member并输入优先级,这里server1输入1,server2输入10,就是以server1为主节点,数字越小优先级越高

在这里插入图片描述

6、添加集群资源(Resource)

  • 运行服务的脚本资源
    在这里插入图片描述

  • IP地址
    在这里插入图片描述

  • 可以看到还没有被使用
    在这里插入图片描述

7、添加服务组

  • 将刚才添加的集群资源添加进服务组
    在这里插入图片描述
    在这里插入图片描述

  • 可以看到刚添加的资源正在被使用
    在这里插入图片描述

7、测试

[root@server2 ~]# clustat 
  • 可以看到服务在server1上
    在这里插入图片描述
[root@server1 ~]# echo c > /proc/sysrq-trigger		#破坏内核
  • server1出故障后服务自动漂移到了server2上
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值