RHCS集群套件

集群

一、 概念

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

二、优点

1 高性能
2 价格有效性
3 可伸缩性
4 高可用
5 透明性
6 可管理
7 可编程

高可用集群原理:

实际应用过程中,并不是所有的集群结点都在工作,一般为某台工作,其余作为“热备”
在这里插入图片描述
1.Corosync(心跳检测):检测集群结点是否正常,若停止“心跳”,rg组工作
2.直连线通信(交换机):连接集群结点的网卡接口
3.Fence(电源交换机):对某集群结点先断电,再重启,使得内存数据不会刷新至存储系统
4.rg组:
(1)vip–可迁移地址,一定时未被占用的ip地址,与lip无关;
(2)filesystem–共享的、集群的或是clvm的文件系统;
(3)service–服务
5.rg组工作方式:假设当前rg组工作在集群结点1上,当node1挂掉时,rg组中的vip将filesystem迁移至另一集群结点(“热备”),因此rg组对外显示的地址为vip

三、RHCS 集群组成

1 集群架构管理器

这是RHCS 集群的一个基础套件,提供您一个集群的基本功能,使各个节点组成的集群在一起工作,具体包含分布式集群管理器(CMAN),成员关系管理、锁管理(DLM)配置文件管理(CCS)、栅设备(FENCE)

2 高可用服务管理器

提供节点服务监控和服务故障转移,当一个节点服务出现故障时,将服务转移到另一个健康的节点上。

3 集群配置管理工具

通过LUCI 来管理和配置RHCS集群,LUCI是一个基于web的集群配置方式,通过luci可以轻松的搭建一个功能强大的集群系统,节点主机可以使用ricci来和luci 管理段进行通信

4 LinuxVirtualServer

LVS 是一个开源的负载均衡软件,利用LVS 可以将客户端的请求根据指定的负载策略和算法合理分配到各个节点,实现动态、智能的负载分担

5 RedHatGS(globalfilesystem)

GFS 是Redhat公司开发的一款集群文件系统,目前最新的版本是GFS2,GFS文件系统允许多个服务同时读写一个磁盘分区,通过GFS可以实现数据的集中管理,免去了数据同步和拷贝的麻烦,但GFS不能独立存在,需要RHCS的底层组件支持

6 clusterlogicalvolumemanger

CLuster 逻辑卷管理,及CLVM,是LVM的扩展,这种允许cluster 中的机器使用LVM来管理共享存储

7 ISCSI

是一种在Internet协议上,特别是以太网上进行数据传输的标准,他是一种基于IPstorage理论的新型存储技术,RHCS可以通过ISCSI技术来导出和分配共享存储的使用。

四、RHCS集群运行原理及功能介绍

1 分布式集群管理器(CMAN)

它运行在各个节点上,为RHCS提供集群管理任务
CMAN 用于管理集群成员、消息和通知。他通过监控每个节点的运行状态来了解节点成员之间的关系,当节点出现故障时,CMAN及时将这种改变通知底层,进而做出相应的调整

2锁管理(DLM)

表示一个分布式锁管理器,他是RHCS的一个底层基础构建,同时也为集群提供了一个公用的锁运行机制,在RHCS中,DLM运行在集群的每个节点上,GFS通过锁管理机制来同步访问数据系统元数据,CLVM通过锁管理其来同步更新数据到LVM卷和逻辑卷, DLM 不需要设定锁骨哪里服务器,它采用对等的锁管理方式,大大提高了处理性能,同时,DLM避免了当单个节点失败需要整体恢复的性能瓶颈,另外,DLM的请求都是本地的,不需要网络请求,因而请求会立即生效,最后,DLM通过分层机制,可以实现多个锁空间的并行管理模式

3配置文件管理(CCS)

ClusterConfigurationSystem,简称CCS,主要用于集群配置文件管理和配置文件在节点之间的同步。有时候,luci管理界面可能由于网络等方面的因素并不是那么畅快,CCS就显得很必要了。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件/etc/cluster/cluster.conf的状态,当这个文件发生任何变化时,都将此变化更新到集群中的每个节点,时刻保持每个节点的配置文件同步。例如,管理员在节点A上更新了集群配置文件,CCS发现A节点的配置文件发生变化后,马上将此变化传播到其它节点上去。
rhcs的配置文件是cluster.conf,它是一个xml文件,具体包含集群名称、集群节点信息、集群资源和服务信息、fence设备等

4栅设备(FENCE)

FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令,将服务器重启或关机,或者与网络断开连接。
FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。

RHCS的FENCE设备可以分为两种:内部FENCE和外部FENCE,常用的内部FENCE有IBMRSAII卡,HP的iLO卡,还有IPMI的设备等,外部fence设备有UPS、SANSWITCH、NETWORKSWITCH等

5高可用服务管理器(rgmanager)

高可用性服务管理主要用来监督、启动和停止集群的应用、服务和资源。
它提供了一种对集群服务的管理能力,当一个节点的服务失败时,
高可用性集群服务管理进程可以将服务从这个失败节点转移到其它健康节点上来,并且这种服务转移能力是自动、透明的。RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进程为clurgmgrd。

在一个RHCS集群中,高可用性服务包含集群服务和集群资源两个方面,集群服务其实就是应用服务,例如apache、mysql等,集群资源有很多种,例如一个IP地址、一个运行脚本、ext3/GFS文件系统等。

在RHCS集群中,高可用性服务是和一个失败转移域结合在一起的,所谓失败转移域是一个运行特定服务的集群节点的集合。在失败转移域中,可以给每个节点设置相应的优先级,通过优先级的高低来决定节点失败时服务转移的先后顺序,如果没有给节点指定优先级,那么集群高可用服务将在任意节点间转移。因此,通过创建失败转移域不但可以设定服务在节点间转移的顺序,而且可以限制某个服务仅在失败转移域指定的节点内进行切换。

6集群配置管理工具(luci和ricci)

Conga是一种新的基于网络的集群配置工具,Conga是通过web方式来配置和管理集群节点的。Conga有两部分组成,分别是luci和ricci,luci安装在一台独立的计算机上,用于配置和管理集群,ricci安装在每个集群节点上,Luci通过ricci和集群中的每个节点进行通信。

RHCS也提供了一些功能强大的集群命令行管理工具,常用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等,这些命令的用法将在下面讲述。

7 RedhatGFS

GFS是RHCS为集群系统提供的一个存储解决方案,它允许集群多个节点在块级别上共享存储,每个节点通过共享一个存储空间,保证了访问数据的一致性,更切实的说,GFS是RHCS提供的一个集群文件系统,多个节点同时挂载一个文件系统分区,而文件系统数据不受破坏,这是单一的文件系统不能实现的。

为了实现多个节点对于一个文件系统同时读写操作,GFS使用锁管理器来管理I/O操作,当一个写进程操作一个文件时,这个文件就被锁定,此时不允许其它进程进行读写操作直到这个写进程正常完成才释放锁,有当锁被释放后,其它读写进程才能对这个文件进行操作,另外,当一个节点在GFS文件系统上修改数据后,这种修改操作会通过RHCS底层通信机制立即在其它节点上可见。

在搭建RHCS集群时,GFS一般作为共享存储,运行在每个节点上,并且可以通过RHCS管理工具对GFS进行配置和管理。这些需要说明的是RHCS和GFS之间的关系,一般初学者很容易混淆这个概念:运行RHCS,GFS不是必须的,只有在需要共享存储时,才需要GFS支持,而搭建GFS集群文件系统,必须要有RHCS的底层支持,所以安装GFS文件系统的节点,必须安装RHCS组件。

五、相关配置

fence的概念

首先了解“脑裂”:当结点间的通信断开,但集群结点或服务本身正常时,此时集群结点会竞争rg组, 若集群结点同时对文件系统进行操作,则会造成文件系统毁坏,这种现象即为“脑裂”。

上述现象,当结点间的通信断开,但集群结点或服务本身正常时,交换机与fence电源交换机通信,检查另一结点是否还在运行,若还在运行,fence则对另一结点先进行断电处理,然后集群结点再重启,亦称爆头。

硬件Fence:电源Fence,通过关掉电源来踢掉坏的服务器
软件Fence:Fence卡(智能卡),通过线缆、软件来踢掉坏的服务器
实际坏境中,Fence卡连接的都是专线,使用专用的Fence网卡,不会占用数据传输线路,这样,更能保证稳定及可靠性。
Fence卡的IP网络和集群网络是相互依存的

由于红帽自带高可用套件,此处可在前端页面上对fence进行配置

1、集群节点与集群管理(前端页面的搭建)

此为红帽自带套件,因此此处先对集群管理界面进行搭建

准备两台虚拟机,用作集群节点,和真机在统一网段
分别为server1、server2,对应ip为172.25.47.1、172.25.47.2

1)server1、server2上配置yum源,添加如下包:(红帽自带集群套件)
	HighAvailability			##高可用
	LoadBalancer				##负载均衡
	ResilientStorage			##弹性存储
	ScalableFileSystem			##大文件系统

在这里插入图片描述

2)集群节点安装集群管理工具

server1和server2安装 ricci

	yum install ricci -y				##安装集群管理工具
	id ricci
	echo redhat|passwd --stdin ricci		##添加密码
	/etc/init.d/ricci start					##启动集群管理软件
	chkconfig ricci on						##开机自启
	netstat -antlp|grep ricci				##可以看到监听的是11111端口

在这里插入图片描述

3)管理端配置

Luci是RHCS基于web的集群配置管理工具,可以从系统光盘找到对应的Luci安装包
管理端一般不在集群结点上,因为在创建本身所在主机为集群结点时,可能会造成服响应过慢,还需注意在创建本机为集群结点时,一定要设置luci服务为开机自启
在server1上安装luci

yum install luci -y
/etc/init.d/luci start
chkconfig luci on

开启时显示luci监听8084端口,访问https://server1:8084可进行管理集群结点
在这里插入图片描述

4)真机
1》浏览器中

https://server1:8084
在这里插入图片描述

2》登陆,用户是超级用户,密码就是设定的rucci的密码,此处是redhat

在这里插入图片描述

3》进入管理页面

add表示添加集群结点至某个集群,该集群已经存在
Create是创建集群
在这里插入图片描述

4》创建集群
Cluster name							##集群名称
Usethe Same Password for All Nodes		##表示使用对所有结点同一密码,注意此处的密码非用户密码,根据表格信息,因为之前设置的ricci密码,ricc监听11111端口
Download Packages						##调用本地的yum源下载安装包或更新
UseLocally Installed Packages			##使用本地已有的安装包
Reboot Nodes Before Joining Cluster		##结点加入集群前应先重启
Enable Shared Storage Support			##支持共享存储

在这里插入图片描述 添加过程比较慢,添加成功如下
在这里插入图片描述

2、配置fence

1)搭建fence服务(物理真机上搭建)

物理真机—

systemctl stop firewalld
systemctl disable firewalld
yum search fence
yum install fence-virtd.x86_64 fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 -y
# fence-virtd-libvirt-0.3.2-2.el7.x86_64		  	##后端连接组件
#fence-virtd-multicast-0.3.2-2.el7.x86_64  			##多播服务
#fence-virtd-0.3.2-2.el7.x86_64        		 		##virtd服务
mkdir /etc/cluster/				##创建key文件目录
cd /etc/cluster/
ls
fence_virtd -c										##创建fence(除了br0需要添加,其余默认即可)
	Module search path [/usr/lib64/fence-virt]:		##选择默认路径
	Listener module [multicast]:					##多播监听方式,也可以安装其他方式,本机仅安装了multicast
	Multicast IP Address [225.0.0.12]:				##组播ip,选择默认(可更改,但同时需要更改集群结点端)
	Multicast IP Port [1229]:						##监听端口,选择默认1229
	Interface [virbr0]: br0							##连接br0
	Key File [/etc/cluster/fence_xvm.key]: 			##该文件用来检验集群结点身份,选择默认
	Backend module [libvirt]: 						##后端连接libvirtd
	Replace /etc/fence_virt.conf with the above [y/N]? y	##配置内容会保存至/etc/fence_virt.conf
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1		##从随即数urandom中截取128字节来生成key,一般先从urandom截取,不够时选择random
systemctl start fence_virtd.service			 ##生成key文件后,一定重启服务使key生效
scp fence_xvm.key root@172.25.47.1:/etc/cluster/			##key发给集群节点,集群结点不需手动创建/etc/cluster,ricci服务会自动生成该目录
scp fence_xvm.key root@172.25.47.2:/etc/cluster/
2)管理端添加fence设备
1》添加设备
1.选择Fence  virt(Multicase Mode)多播模式,添加设备,命名为vmfence
2.添加fence设备的过程:提交添加请求后,管理端会自动连接每个集群结点:1111,将更改保存至集群结点的cd/etc/cluster/cluster.con
该文件的修改需要调用root权限,所以若要删除某集群结点,不能仅从管理端remove,且需要修改集群结点的配置文件。

在这里插入图片描述

2》给每个结点添加fence method

添加fece设备,实现fence对结点的管理
Domain 添加节点的物理主机名或者是UUID
在这里插入图片描述

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

3》在server1、server2两个节点上查看钥匙和生成结果
cd /etc/cluster/
ls
cat cluster.conf

在这里插入图片描述

4》测试

物理机—重启服务

systemctl restart fence_virtd.service

测试1
server1

clustat						##查看状态
fence_node server2			##对server2进行立即断电,然后重启

server2会被重启

测试2
server2
把网卡关闭

ip link set eth0 down

server1上查看状态,此时server2会重启
在这里插入图片描述

3)rg组的部署
1》Failover Domains–创建域
Prioritized   ##优先级设置,数字越小级别越高,默认级别高的为数据接收方
Restricted    ##指定结点
No Failback		##选中该项表示:不回切
##回切解释:n1是master,当n1挂掉,n2接管;当n1恢复后,资源回切至n1,使n1成为master,该机制下n2为“热备”。一般在n1性能很好时可选择回切,但回切可能发生资源损失:如丢包

在这里插入图片描述

2》Resources

添加IP address,设置vip,注意一定是未被占用的ip
在这里插入图片描述

3》添加服务

server1和server2安装httpd服务,切忌服务不要开启,因为添加服务到集群,因此,服务由集群来进行操作

yum install httpd -y
cd /var/www/html
vim index.html		##写一个发布页便于看到效果

选择script脚本类型:资源切换所执行的脚本。需要保证上述域中设置的每个结点主机均有该服务

4》Service Group:服务组/资源组

此处记得先添加ip
再添加脚本http

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

5》测试

真机curl 172.25.47.200
显示是server1
在server1执行

echo c >/proc/sysrq-trigger 			##把内核写死

真机curl 172.25.47.200
显示是server2
在这里插入图片描述
server2上

clustat  		##查看状态
server1下线,server2在线

当server1上线时,不会回切,真机显示还是server2

在server2上,让server2网卡不工作

	/etc/init.d/network stop

此时真机在curl 172.25.47.200
显示server1在工作
在这里插入图片描述

4)共享存储,通过与服务结合

当用户正在写入存储时,如果服务器切换,存储会出错,此处把存储空间与服务结合到一块,由于服务每次只有一个服务器向客户服务,哪一个服务器上线,哪一个服务器写入。

1》在server3上

准备一块硬盘
在这里插入图片描述

yum install scsi-* -y
vim /etc/tgt/targets.conf
	 
 38 <target iqn.2019-04.com.example:server.target1>
 39     backing-store /dev/vda
 40     initiator-address 172.25.47.1
 41     initiator-address 172.25.47.2
 42 </target>
/etc/init.d/tgtd start
tgt-admin -s
ps ax	##起两个进程就是正确的

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

2》server1上
yum install iscsi-* -y
iscsiadm -m discovery -t st -p 172.25.47.3
iscsiadm -m node -l
vim /etc/lvm/lvm.conf
	462     locking_type = 3	##查看一下,是3就正确
/etc/init.d/clvmd status
fdisk -l

在这里插入图片描述

3》server2上
		yum install iscsi-* -y
		iscsiadm -m discovery -t st -p 172.25.47.3
		iscsiadm -m node -l
		/etc/init.d/clvmd status
4》设置磁盘

server2上

		fdisk -l
		fdisk -cu /dev/sdb	---改标签为8e
		partprobe				##server2和server1都做
		pvcreate /dev/sdb1
		partprobe
		pvcreate /dev/sdb1
		两边都pvs,可以看到同步
		vgcreate qagroup /dev/sdb1
		两边都vgs,可以看到同步
		lvcreate -L 4G -n qa qagroup
		lvs
		mkfs.ext4 /dev/qagroup/qa
		mount /dev/qagroup/qa /mnt
		cd /mnt/
		ls
		vim index.html
			hahaha
		cd
		umount /mnt/
		clustat	--发现apache在server1上运行
		在server1上执行
		clusvcadm -d apache		##关掉apachi服务

在这里插入图片描述

5》在操作平台上Resources

在这里插入图片描述

6》Service Groups
第一个添加ip地址
第二添加webdata
第三 添加httpd脚本		
保存
	勾选apache,选择start	
7》测试

真机
在这里插入图片描述

5)共享存储RedhatGFS

此处介绍gfs2版本

gfs2集群文件系统,一定是集群才可以用

在搭建RHCS集群时,GFS一般作为共享存储,运行在每个节点上,并且可以通过RHCS管理工具对GFS进行配置和管理。这些需要说明的是RHCS和GFS之间的关系,一般初学者很容易混淆这个概念:运行RHCS,GFS不是必须的,只有在需要共享存储时,才需要GFS支持,而搭建GFS集群文件系统,必须要有RHCS的底层支持,所以安装GFS文件系统的节点,必须安装RHCS组件

1》关闭apache
	clustat			##查看哪台服务器运行apache
	就在上面执行
	clusvcadm -d apache		##关闭apache服务
2》上锁
在server2上
mkfs.gfs2 -p lock_dlm -j 3 -t wanghaha:mygfs2 /dev/qagroup/qa 	
	mkfs.gfs2为gfs2文件系统创建工具,其一般常用的选项有:
	-b BlockSize:指定文件系统块大小,最小为512,默认为4096;
	-J MegaBytes:指定gfs2日志区域大小,默认为128MB,最小值为8MB;
	-j Number:指定创建gfs2文件系统时所创建的日志区域个数,一般需要为每个挂载的客户端指定一个日志区域;
	-p LockProtoName:所使用的锁协议名称,通常为lock_dlm或lock_nolock之一;
	-t LockTableName:锁表名称,一般来说一个集群文件系统需一个锁表名以便让集群节点在施加文件锁时得悉其所关联到的集群文件系统,锁表名称为clustername:fsname,其中的clustername必须跟集群配置文件中的集群名称保持一致,因此,也仅有此集群内的节点可访问此集群文件系统;此外,同一个集群内,每个文件系统的名称必须惟一;
mount /dev/qagroup/qa /mnt		
mount /dev/qagroup/qa /mnt
df
cd /mnt/
cp /etc/passwd .
ls 可以看到

在server1上
mount /dev/qagroup/qa  /mnt
ls /mnt/
rm -fr /mnt/passwd

在server2上
ls /mnt/			可以看到被删除
3》写入开机自启
		server2上
		umount /mnt/
		vim /etc/fstab
			/dev/qagroup/qa         /var/www/html           gfs2    _netdev         0 0
		mount -a	
		
		server1上
		umount /mnt/
		vim /etc/fstab
			/dev/qagroup/qa         /var/www/html           gfs2    _netdev         0 0
		mount -a
4》Server Groups
		删除共享的文件系统,保存		
5》Resources
	删除 File System		

在这里插入图片描述

6》测试
	server1上
	clustat
	clusvcadm -e apache  ##开启服务
	clustat
	df				##挂载上了
	cd /var/www/html/
		uhahaha		
	
	真机curl 172.25.47.200  能看到

在这里插入图片描述

server1上
clusvcadm -r apache -m server2  ##把apache迁移到server2上
在server2上可以,修改发布页
cd /var/www/html/
vim index.html
	uhahaha  server2xiugia
真机curl 172.25.23.200也可以看到发布页信息

在这里插入图片描述

gfs2常用命令
		gfs2_tool sb /dev/qagroup/qa all	##查看gfs2配置的状态
		gfs2_tool journals /dev/qagroup/qa	##查看日至的份数
		gfs2_jadd -j 3 /dev/qagroup/qa		##再添加3份日至
		
		##拉伸磁盘空间
		lvextend -L +1G /dev/qagroup/qa		##增大磁盘
		gfs2_grow /dev/qagroup/qa			##刷新文件系统

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RHCS(Red Hat Cluster Suite)是Red Hat开发的一套Linux高可用性集群解决方案,适用于构建高可用性集群环境。而CentOS 7是一种基于Red Hat Enterprise Linux(RHEL) 源代码构建的自由开源发行版。 在CentOS 7上搭建RHCS集群,需要进行以下步骤: 1. 安装CentOS 7操作系统:首先需要下载CentOS 7的安装介质,并按照步骤安装在每台集群节点上。 2. 安装RHCS软件包:通过Red Hat官方提供的软件仓库或者下载对应版本的RHCS软件包,并在每台节点上安装。 3. 创建共享存储:RHCS集群需要共享存储来存储和同步数据。可以使用一些常见的存储技术如NFS、iSCSI或者GFS2等。在每台节点上挂载共享存储,并确保所有节点都可以访问。 4. 配置集群资源:RHCS集群可以管理不同类型的资源,包括虚拟IP地址、文件系统、服务等。通过编辑配置文件,将要管理的资源配置到集群中。 5. 启动和管理集群:在每台节点上启动RHCS服务和集群管理软件。可以使用命令行工具,也可以使用图形化界面进行管理。在启动集群后,可以监控集群状态,并进行故障切换和资源迁移等操作。 6. 测试和验证:一旦集群配置和启动完成,可以进行一些测试和验证,例如模拟故障、切换资源和性能测试等,确保集群的可靠性和可用性。 总之,RHCS集群在CentOS 7上的搭建需要进行配置、安装和管理多个方面的工作,以实现高可用性和可靠性的应用服务。通过合理的规划和配置,能够保证系统的稳定性和可用性,提高系统的整体性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值