一、什么是RHCS
RHCS是Red Hat Cluster Suite的缩写,也就是红帽集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。 更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。 RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。
二、RHCS提供的三个核心功能
1, 高可用集群是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。
2,RHCS通过LVS(Linux Virtual Server)来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。
3,RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
三、RHCS集群的组成
RHCS是一个集群工具的集合,主要有下面几大部分组成:
集群构架管理器:这是RHCS集群的一个基础套件,提供一个集群的基本功能,使各个节点组成集群在一起工作,具体包含分布式集群管理器(CMAN)、成员关系管理、锁管理(DLM)、配置文件管理(CCS)、栅设备(FENCE)。
高可用服务管理器:提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点。
3,搭建服务
本次实验使用的是6.5虚拟机
server1 172.25.88.1 高可用管理节点
server2 172.25.88.2 节点
1,server1配置
配置yum源,我用的本挂载/westos
cd /westos
vim /etc/yum.repo/westos.repo
[fangyuan]
name=hy
baseurl=file:///westos
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///westos/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///westos/LoadBalancer
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///westos/ResilientStorage
enabled=1
gpgcheck=0
[fangyuan]
name=hy
baseurl=file:///westos
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///westos/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///westos/LoadBalancer
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///westos/ResilientStorage
enabled=1
gpgcheck=0
yum install -y ricci luci #ricci是安装在每个节点上,它是luci与集群中节点通信的桥梁,luci只是用来通过web访问来快速的配置管理集群的。
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on #开机启动
chkconfig luci on
netstat -antuple #查看8084 11111端口是否开启
passwd ricci
2,server2配置和server1一致
vim /etc/yum.repo/westos.repo
[fangyuan]
name=hy
baseurl=file:///westos
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///westos/HighAvailability
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///westos/LoadBalancer
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///westos/ResilientStorage
enabled=1
gpgcheck=0
yum install -y ricci luci #ricci是安装在每个节点上,它是luci与集群中节点通信的桥梁,luci只是用来通过web访问来快速的配置管理集群的。
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig ricci on #开机启动
chkconfig luci on
netstat -antuple #查看8084 11111端口是否开启
passwd ricci
3,在真机配置
主机需要做解析
使用Firefox登录 https://172.25.88.1
手动添加证书
UUID在virt-manager里面查看
4,真机配置
yum search fence
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
fence_virtd -c
Interface [virbr0]: br0 ##设备选择br0,其他用默认
mkdir /etc/cluster 在这个目录下生成fence管理的key,然后传给集群
生成fence管理的key:
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
scp fence_xvm.key root@server2:/etc/cluster/
scp fence_xvm.key root@server5:/etc/cluster/
systemctl start fence_virtd.service
systemctl status fence_virtd.service #查看fence服务是否开启
netstat -antulp | grep 1229 #fence服务使用的端口
fence_node server2 #在server1上使用这条命令,server1通过fence终结server2,server2重启
fence_node server1 #在server2上使用这条命令,server2通过fence终结server1,server1重启
5,各集群节点之间服务迁移时客户端仍正常访问
server1 和 server 2配置
server1:
yum install httpd -y
server2:
yum install httpd -y
配置完成后不需要手动开启httpd服务
真机172.25.88.1配置Failover --> Add --> webfail --> Prioritized(对服务故障转移到的节点进行排序) --> Restricted(服务只能在指定的节点上运行) --> No Failback(当服务再次可用时,不要将其发送回优先级为1的节点)(若此选项选中,failover的主机在再次正常时不会按优先级大小回切,否则会)
server1优先级为1,server2优先级为10,数字越小,优先级越高
真机上测试:
curl 172.25.88.1
server1
如果关闭server1服务器
server2 #自动跳转到server2
scsi磁盘高可用
1,重新配置一个虚拟机
添加一个5G的虚拟盘
yum install -y scsi-* -y
vim /etc/tgt/targets.conf
38 <target iqn.2019-07.com.example:server.target1>
39 backing-store /dev/vda #确定共享的磁盘
40 </target>
/etc/init.d/tgtd start #启动服务
ps ax | grep tgtd #查看是否有两个进程
2,server1和server2 配置
server1:
yum install iscsi-* -y
iscsiadm -m discovery -t st -p 172.25.88.3 #共享磁盘的指向
iscsiadm -m node -l
fdisk -l #查看磁盘是否共享
fdisk -cu /dev/sdb
#设置分区为LVM类型
partprobe #同步分区表
server2:
yum install iscsi-* -y
iscsiadm -m discovery -t st -p 172.25.88.3 #共享磁盘的指向
iscsiadm -m node -l
fdisk -l #查看磁盘是否共享
server1和server2都可以来操作/dev/sdb1,实际sdb1是server3共享出来的磁盘
设置分区:
pvcreate /dev/sdb1
vgcreate haha /dev/sdb1
lvcreate -L 3G -n xixi haha
设置完成在server1 和server2 上面都可以查看此分区的信息
mkfs.ext4 /dev/haha/xixi #格式化磁盘
server1挂载/dev/haha/xixi
mount /dev/haha/xixi /mnt #挂载
cd /mnt
vim index.html #写入数据
ffffffffffffffffffffffffffff
cd
umount /mnt
网页继续配置
在真机测试访问
curl 172.25.88.100
ffffffffffffffffffffffffffff
GFS2 共享磁盘的高可用
clusvcadm -d apache #关闭服务
server1配置:
mkfs.gfs2 -p lock -j 2 -t westos:mygfs2 /dev/haha/xixi #-p使用锁协议名称, -j 指定日区域的大小 -t 当前节点所在集权的名称
vim /erc/ftab
/dev/haha/xixi /var/www/html gfs2 _netdev 0 0
#自动挂载
mount -a
server2配置:
mount /dev/haha/xixi /var/www/html #挂载
cd /var/www/html
vim index.html #编辑文件
GGGGGGGGGGGGGGGGGGGGGGGG
vim /erc/ftab
/dev/haha/xixi /var/www/html gfs2 _netdev 0 0
mount -a
#自动挂载
真机里面测试:
curl 172.25.88.100
GGGGGGGGGGGGGGGGGGGGGGGG
GFS2:可以实现多个节点的同时挂载以及数据的同步,
ext4:只支持单点的挂载,
来源:CSDN
作者:房渊
链接:https://blog.csdn.net/fangyuan1997/article/details/103659173