RHCS集群配置
一、RHCS集群简介
RHCS(Red Hat Cluster Suite)集群是红帽官方提供的子集群套件,它整合了高可用集群、负载均衡集群、存储集群,从而为用户提供了完整的一套从前端到应用到存储的集群解决方案。通过RHCS集群提供的集群服务,可以为web,数据库等关键业务提供高效,稳定的运行环境。
二、RHCS的核心功能
1、负载均衡
RHCS的负载均衡集群通过LVS(Linux Virtual Server)来实现其功能,LVS是由前端的调度器与后端的RS节点组成,客户端的访问请求通过调度器根据算法及集群类型的不同将其调度至集群的RS节点,由调度器调度到的RS节点响应客户端请求。同时,LVS提供了故障转移功能,当集群中的RS节点中有任意一个或多个出现故障时,LVS会自动将故障节点下线,将分配到故障节点的客户端请求移到无故障节点运行;故障节点修复,又将重新加入集群继续工作,从而保证了服务的不中断运行。RHCS集群类型有DR,NAT,TUN,FULLNAT,可为各种复杂的网络环境提供不同的解决方案。
2、高可用
RHCS的高可用集群中的高可用服务在无故障情况下,可运行于任意节点,通过定义组资源或者各种约束关系,将提供同一类服务的资源运行在同一个节点,当提供服务的节点故障或分裂时,集群可通过仲裁设备(非必须)判定资源运行于哪个节点,即拥有法定票数多的一方继续运行集群服务,而故障的或不拥有法定票数的一方则作下线处理。保证了服务的不中断运行。
(引自https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/s1-service-management-overview-CSO.html)
3、存储
RHCS通过GFS提供集群存储功能,GFS是一个分布式文件系统,它通过锁管理机制,使集群中的各节点互相通告共享文件锁,从而可以使多个节点同时挂载共享文件系统来完成数据读写等操作。
(引自https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Cluster_Suite_Overview/ch.gfscs.cluster-overview-CSO.html)
三、RHCS集群的组成部分(简述)
1、集群管理器CMAN
Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。CMAN用于管理集群成员、传递节点间心跳信息。它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。cman之上有ccs和fencs两个组件。
2、资源组管理器rgmanager
通过定义的集群资源,来管理这些资源,被管理的资源包括故障切换域的定义、资源(如 IP 地址)和服务。它也定义了群集服务和群集服务的故障切换行为。
3、集群配置文件管理CCS
其默认配置文件为/etc/cluster/cluster.conf,运行于集群中各节点,当某一节点的配置信息发生改变时,使同一集群内的其他节点的配置文件发生相应变化。
4、保护设备Fencs
当 CMAN 决定某个节点已经发生故障,它将告知其他群集基础结构组件。在收到通知后,fenced 将保护(fence)故障节点。其他群集基础结构组件将决定采取什么行动,也就是说,它们执行任何必需的恢复。例如,当 DLM 和 GFS 被告知节点故障时,将暂停活动,直到它们检测到 fenced 已经完成对故障节点的保护。当确认故障节点已经被保护时,DLM 和 GFS 会执行恢复。DLM 释放对失败节点的锁定;GFS 恢复故障节点的日志。GNBD也是Fencs的一个组件。
5、分布式锁管理器DLM
分布式锁管理器管理集群中挂载使用GFS的节点来同步它们对共享资源的访问,它运行于每一个集群节点,是集群中所有节点共享锁文件。CLVM使用锁管理器来同步对LVM卷和卷组(也对共享存储)的更新。
6、集群文件系统GFS
GFS 是允许集群内所有节点可同时访问某个共享的块设备的集群文件系统。GFS 是一个原生(native)文件系统,它直接和 Linux 内核文件系统接口的 VFS 层进行通信。GFS 使用分布式元数据和多个日志来优化群集操作。要维护文件系统的完整性,GFS 使用一个锁管理器来协调 I/O。当节点修改了 GFS 文件系统上的数据,这个改动马上为使用这个文件系统的其他群集节点可见。同时,GFS使整个群集只需安装一次应用程序或补丁,并可使集群内多个节点的服务对数据可以并行读/写操作。
7、集群配置管理工具Conga
Conga是为RHCS集群和存储提供集中配置和管理的软件组件集合,Conga里的主要组件是luci和ricci,它们都是可单独安装的。luci是一个服务器组件,它运行在一台机器上并通过ricci与多个群集和机器通信。ricci是运行在Conga管理的每台机器(群集成员或独立的机器)上的代理。
Conga在CentOS 7上ricci被更换为pcsd。
四、RHCS集群实验
实验准备:RHCS集群要求最少有三台以上的设备
node1:192.168.0.15 ricci
node2:192.168.0.16 ricci
node3:192.168.0.20 luci
vip:192.168.0.17
node节点系统均为CentOS 6.7
时间同步,基于主机名通信,密钥认证准备工作等详见 --> HA集群
1、在node1,node2安装ricci,在node3安装luci,并启动服务
[root@node1 ~]# yum install ricci -y [root@node1 ~]# service ricci start [root@node3 ~]# yum install luci 注意:luci使用python研发,安装的依赖包必须使用Base源的,使用epel源的包,会造成luci无法启动 [root@node3 ~]# service luci start
此时,可以浏览器访问了https://192.168.0.20:8084 登录用户名密码为系统用户(root)
注意:关闭防火墙或放行8084端口,关闭selinux
2、为ricci创建密码(node1,node2),不然会认证失败,无法添加资源
[root@node1 ~]# echo "123456" | passwd --stdin ricci Changing password for user ricci. passwd: all authentication tokens updated successfully.
3、创建集群(选择下载安装)
4、创建成功
5、创建Fence设备(RHCS必须要求有),可选择的设备,此处随便选的,生产环境下根据不同类型的服务器具体选择
6、配置故障转移域
7、创建资源(web为例)全局资源
httpd资源定义时为外部脚本
8、定义资源组(资源必须在组内才能运行)资源组内定义的资源为内部资源。
9、向组内添加资源
10、组内特性定义
11、启动资源组
12、查看当前资源运行状态
[root@node1 ~]# clustat Cluster Status for tcluster @ Sun Nov 27 15:46:58 2016 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ node1 1 Online, Local, rgmanager node2 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice node2 started
13、测试集群
14、命令行资源迁移
[root@node1 ~]# clusvcadm -r webservice -m node1 Trying to relocate service:webservice to node1...Success service:webservice is now running on node1 [root@node1 ~]# clustat Cluster Status for tcluster @ Sun Nov 27 16:34:24 2016 Member Status: Quorate Member Name ID Status ------ ---- ---- ------ node1 1 Online, Local, rgmanager node2 2 Online, rgmanager Service Name Owner (Last) State ------- ---- ----- ------ ----- service:webservice node1 started
如有错误,欢迎指正。