本文共 5078 字,大约阅读时间需要 16 分钟。
RHCS的概念:
4.RHCS是Red Hat Cluster Suite的缩写,也就是红帽子集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。
RHCS三个核心功能:
高可用集群:
是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。
负载均衡集群:
RHCS通过LVS来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。
存储集群: RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File
System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
RHCS集群的组成:
集群套件的作用:
集群中luci的作用:
luci是用来配置和管理集群,监听在8084上
集群中ricci的作用:
ricci是安装在每个后端的每个节点上的,luci管理集群上的各个节点就是通过和节点上的ricci进行通信,ricci监听在11111上
集群中fence的作用:
当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。并且有效的阻止了“脑裂"的发生。
脑裂(split-brain): 指在一个高可用(HA)系统中,当联系着的两个节点断开联系时,本来为一个整体的系统,分裂为两个独立节点,这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。
实验环境(6.5版本的虚拟机):
主机 | ip | 服务 |
---|---|---|
hang11 | 172.25.11.11 | ricci,luci,httpd |
hang12 | 172.25.11.12 | ricci,httpd |
物理机 | 172.25.11.250 | fence,测试 |
创建6.5的快照虚拟机
以下的导入虚拟机,只演示hang11
修改主机名和ip,只演示hang11
利用ssh连接:配置yun源,因为这个实验需要的yum源不包含在package包里
[root@hang1 ~]# cat /etc/yum.repos.d/rhel-source.repo [rhel-source]name=Red Hat Enterprise Linux $releasever - $basearch - Sourcebaseurl=http://172.25.11.250/redhatenabled=1gpgcheck=0#高可用[HighAvailability]name=HighAvailabilitybaseurl=http://172.25.11.250/redhat/HighAvailabilityenabled=1gpgcheck=0#负载均衡[LoadBalancer]name=LoadBalancerbaseurl=http://172.25.11.250/redhat/LoadBalancerenabled=1gpgcheck=0#弹性存储[ResilientStorage]name=ResilientStoragebaseurl=http://172.25.11.250/redhat/ResilientStorageenabled=1gpgcheck=0#可伸缩文件系统[ScalableFileSystem]name=ScalableFileSystembaseurl=http://172.25.11.250/redhat/ScalableFileSystemenabled=1gpgcheck=0将这个yum源文件发送给hang12(省的我们在配置一遍)
搭建RHCS环境
第一步:
在hang11中下载rhcs图形网页管理工具,更改密码为redhat后开启其服务
yum install -y ricci luciid riccipasswd ricci/etc/init.d/ricci start/etc/init.d/luci startnetstat -tnlpchkconfig ricci onchkconfig luci on
注意:
1.ricci:图形里的集群管理
2.luci:图形界面
第二步:
在hang12里面做以下操作
yum install -y ricciid riccipasswd ricci/etc/init.d/ricci startchkconfig ricci on
第三步:
使用超级用户进行登陆(登陆帐号和密码是hang11中的系统用户和密码,普通用户需要经过超级用户的审核才能登陆,所以一般使用超级用户登陆)在浏览器里打开:
进来之后就是这个页面
创建高可用集群(之前用的是keepalived,这次用的是ricci):
第四步:
点击集群管理(Manage Clusters),->点击Create,创建集群,->填写以下内容,填写完后点击CreateCluster,会出现一个等待页,等待即可。
注意:1.Download Packages表示下载所用的包,因为之前在主机中已经下载了关于集群的包2.Reboot Nodes Before Joining Cluster表示当加入集群后重启节点,在安装包下载完后自动重启3.Enable Shared Storage Support表示是否激活集群存储,支持设备共享4.在点击创建节点之后会出现等待页,此页表示正在创建节点到集群中,正在下载包,且server1和server2会重启,然后重新连接server1和server2,此过程可能会比较慢5.在创建节点之前,在主机中一定要将集群相关的服务设置为自启动,否则将无法正常启动(没有自启动需要重新开启服务)
出现错误(因为没做解析)
在hang11和hang12上面将解析做好(最好还有真机)
接下来如下所示,过程需要等待
节点添加成功后的连接之后的界面如下:
ssh远程连接被断开:
利用clustat命令(两台主机随意)可以查看到节点的工作状态(也可以查看文件/etc/cluster/cluster.conf)
配置fence
“Fence技术”核心在于解决高可用集群在出现极端问题情况下的运行保障问题,在高可用集群的运行过程中,有时候会检测到某个节点功能不正常,比如在两台高可用服务器间的心跳线突然出现故障,这时一般高可用集群技术将由于链接故障而导致系统错判服务器宕机从而导致资源的抢夺,为解决这一问题就必须通过集群主动判断及检测发现问题并将其从集群中删除以保证集群的稳定运行,Fence技术的应用可以有效的实现这一功能。
第五步:
在物理主机中安装fence
yum search fenceyum install -y fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64
查看我们的物理网卡
做fence的一些设置:
fence_virtd -c #把接口改成br0注意:
第六步:
mkdir /etc/cluster 没有这个目录要建立cd /etc/clusterlsdd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=333 count=1ls将文件传给hang11和12scp fence_xvm.key root@172.25.11.11:/etc/cluster/scp fence_xvm.key root@172.25.11.12:/etc/cluster/
在hang11和hang12查看
第七步:
在浏览器添加fence设备
最终图:
第八步:
此时两台虚拟机里面的配置文件都没有fence信息。这是因为没有两台虚拟机添加fence。
以hang11为例子,如图所示,没有fence信息:
以hang12为例子,hang1的操作与此相同。
在浏览器添加信息
查看hang12的uid,不会偏移结果如图所示:
hang11的结果如图所示:
查看配置文件,有fence信息第九步:
在真机开启fence服务
systemctl start fence_virtd.service systemctl status fence_virtd.service
第十步:
用hang11去测试
在hang11里面输入fence_node hang12,发现hang2自己重新启动(强制断电),证明成功
同样,hang12也可以使hang11重启
高可用服务配置(httpd为例)----负载均衡
第十一步:
首先浏览器添加故障转移域
将hang11和hang12添加到域中,当其中一台主机出现故障时,会自动切换到正常的节点上,当集群打开后,服务会落在优先级高的节点上。数字越小优先级越高
在hang11和hang12安装httpd服务,编写测试页(不用启动服务)
第十三步:
网页启动apache,显示httpd服务在hang12运行,因为其优先级高
使用clustat查看节点的状态
hang12查看ip,会发现可以看到自动添加上的VIP在物理机上访问两台节点,会发现hang11无法访问(因为其httpd服务是关闭的,如果想要访问hang11中的内容,开启hang11的httpd服务即可)
在hang12中手动宕掉服务器,再次访问VIP时,会发现访问的内容是hang11中的内容再次访问VIP时,会发现访问的内容是hang11中的内容
转载地址:http://tojvb.baihongyu.com/