rhcs原理:
在网上找了一篇很不错的原理归纳,主要是将rhcs的三个核心功能:高可用,lvs提供负载均衡,gfs提供共享存储等,具体所涉及的协议现在还未整理,过段时间专门攻克iso七层模型和所包含的常用原理:
http://wzlinux.blog.51cto.com/8021085/1725373
rhcs套件的搭建:
前提:域名解析/高可用镜像/关闭火墙/关闭selinux
一台luci:172.25.67.1
两台ricci:172.25.67.1 —->server1
172.25.67.2——>server2
[root@server2 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.67.1 server1
172.25.67.2 server2
172.25.67.3 server3
172.25.67.4 server4
172.25.67.5 server5
172.25.67.6 server6
[root@server1 ~]# cat /etc/yum.repos.d/rhel-source.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.67.250/rhel6.5
gpgcheck=0
[HighAvailability]
name=Red Hat Enterprise Linux HighAvailability
baseurl=http://172.25.67.250/rhel6.5/HighAvailability
gpgcheck=0
[LoadBalancer]
name=Red Hat Enterprise Linux LoadBalancer
baseurl=http://172.25.67.250/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=Red Hat Enterprise Linux ResilientStorage
baseurl=http://172.25.67.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=Red Hat Enterprise Linux ScalableFileSystem
baseurl=http://172.25.67.250/rhel6.5
gpgcheck=0
安装luci和节点ricci
[root@server1yum.repos.d]# yum install ricci -y #安装ricci
[root@server1yum.repos.d]# passwd ricci #修改ricci密码
Changingpassword for user ricci.
Newpassword:
BADPASSWORD: it is based on a dictionary word
BADPASSWORD: is too simple
Retypenew password:
passwd:all authentication tokens updated successfully.
[root@server1yum.repos.d]# /etc/init.d/ricci start #开启ricci
Startingsystem message bus: [ OK ]
Startingoddjobd: [ OK ]
generatingSSL certificates... done
GeneratingNSS database... done
Startingricci: [ OK ]
[root@server1yum.repos.d]# chkconfig ricci on #开机自动开启2和服务端1做相同的操作
上面修改密码这一步也可以用echo倒入:
echo westos |passwd --stdin ricci
安装luci
[root@server1 ~]#yum install -y luci
[root@server1 ~]#/etc/init.d/luci start
过滤luci的端口:
[root@server1 ~]# netstat -an |grep 8084
tcp 0 0 0.0.0.0:8084 0.0.0.0:* LISTEN
tcp 0 0 172.25.67.1:8084 172.25.67.250:38811 ESTABLISHED
tcp 54 0 172.25.67.1:8084 172.25.67.250:38809 CLOSE_WAIT
Luci是一个图形用户界面,您可以使用管理红帽高可用性增加。但是请注意,为了有效地使用这个接口,您需要对底层概念有一个清晰的理解。不推荐通过探索用户界面中的可用特性来学习集群配置,因为它可能导致系统不够健壮,无法在组件失败时保持所有服务的运行。
在访问用户界面的时候一定要注意https://ip:8084
登陆:用户:root
密码:安装luci主机的密码
新建:
进入cluster界面,点击create 的以下界面,相关的配置如图中所示
上面打钩的意思:
加入群集前重新启动节点
启用共享存储支持
图中Cluster Name是集群名字,随意起一个即可,不要和内网其他集群重复,接下来添加的节点就是我们两个安装ricci的机器,密码就是我们装完软件给ricci用户设置的密码,最后切记ricci要在那两台机器上都启动。
注意:在此时缓存的过程中,我们需要注意的是web页面在缓存,实则将信息写入文件中:
[root@server2 ~]# vim /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="3" name="zpy_cluster">
<clusternodes>
<clusternode name="server1" nodeid="1"/>
<clusternode name="server2" nodeid="2"/>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
</cluster>
同时两个节点的主机上安装了clustat服务,执行此命令可以查看节点状态
即:
如下图即成功加入两个节点:
此时已经成功配置简单的rhcs套件的节点,下面我们可以使用rhcs套件的高可用性,对其他服务进行控制和绑定:
配置fence虚拟端点处理机制
我们把集群创建好后,却无法测试一下集群是否生效,现在咱们装上这个电源管理fence,真实情况下这是一个硬件,来让服务器直接断电的,这时候大家会问了为什么要给服务器直接断电,这样不会丢失数据吗?现在设想一个情况,有两台服务器一台是存储服务器如nfs或者scsi,结点1是正常向外提供服务的机器,但是结点1突然挂掉了,高可用集群就会将服务迁移到结点2,而且存储也接到了结点2,为了防止结点1继续向存储服务器上写数据,我们就要让他断电,因为直接断电,服务器不会执行sync,也就是将内存上的数据写到磁盘上,这样就保护了存储服务器的硬盘。
现在通过这个管理软件conga,我们来添加一个虚拟的fence。
如图:添加fence虚拟设备:名字随便起,前提是和其他不重复
将fence加入到上面已经配置好的两个节点:
输入虚拟机uuid
提交后,可以查看cluster文件:
[root@server1 ~]# cat /etc/cluster/cluster.conf
<?xml version="1.0"?>
<cluster config_version="8" name="zpy_cluster">
<clusternodes>
<clusternode name="server1" nodeid="1">
<fence>
<method name="fence1">
<device domain="1f93b4ac-d83f-4a60-a2af-0f645676d3c2" name="zpy_fence"/>
</method>
</fence>
</clusternode>
<clusternode name="server2" nodeid="2">
<fence>
<method name="fence2">
<device domain="ed1f4674-6eb8-4b45-906f-e62302976825" name="zpy_fence"/>
</method>
</fence>
</clusternode>
</clusternodes>
<cman expected_votes="1" two_node="1"/>
<fencedevices>
<fencedevice agent="fence_xvm" name="zpy_fence"/>
</fencedevices>
</cluster>
[root@server1 ~]#
[root@server1 ~]# clustat
Cluster Status for zpy_cluster @ Tue Oct 10 09:47:41 2017
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server1 1 Online, Local
server2 2 Online
两个结点均这样添加好后,Conga端的fence配置就结束了,现在需要让真机支持fence,我们需要下载真机的fence支持软件。
安装以下三个包:
fence-virtd.x86_64 : Daemon which handles requests from fence-virt
fence-virtd-libvirt.x86_64 : Libvirt backend for fence-virtd
fence-virtd-multicast.x86_64 : Multicast listener for
[root@foundation67 Desktop]# systemctl start fence_virtd.service #启动服务
[root@foundation67 Desktop]# mkdir /etc/cluster
[root@foundation67 Desktop]# dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1 #制作密钥
[root@foundation67 Desktop]# scp /etc/cluster/fence_xvm.key root@172.25.67.1:/etc/cluster/ #发送密钥
[root@foundation67 Desktop]# scp /etc/cluster/fence_xvm.key root@172.25.67.2:/etc/cluster
好了现在可以让一个断电了,然后会发现节点转移到另一个设备上;