集群常见的拓扑结构

RedHat 6.5下RHCS 集群的实现_RedHat

1,此集群也算是一个典型的高可用集群。下图描述了各个硬件组成部分,由2台以上服务器组成,加入到集群的服务被称为节点,通常以私有网络作为心跳,当集群中一台服务器出现故障时,其他服务器会按照集群中设定的接管机制实现“故障切换(Failover)”,为保证服务器网络及其与外部存储的连接,通常

会对网卡进行“网卡绑定”,对外部存储的HBA卡链接进行“多路径绑定”。心跳:服务器集群中的服务器通过“心跳”机制来判断自身及集群中的其他服务器是否存活,通常心跳会通过网卡或者窜口实现。

虚拟IP及公共网络:集群软件或硬件通过TCP/IP协议对客户端可见的公共网络公开了一个虚拟的IP网络,此IP由集群机制管理,指向当前活动的集群服务器节点,对于客户端而言,集群就相当于一个服务器,可以实现透明访问。

2,红帽集群套件RHCS的工作原理

2.1CMAN集群管理器

CMAN是一个基于内核的对称通用集群管理器。它由2部分组成,连接管理器(CNXMAN),用于处理成员,消息,投票数,事件通知和过渡;服务管理器(SM);用于处理那些需要通过各种方式进行集群管理的应用及外部系统,CMAN是RHCS中最核心的服务,可通过系统中的service命令进行启动、停止操作;DLM,GFS,CLVM及fence都依赖于cman集群管理器。

2.2rgmanager资料组管理器

rgmanager(Resource Group Manager)基于cman并使用DLM动态锁管理机制。与CMAN一样,rgmanager也是RHCS中的一个核心服务,可通过系统中德service命令进行启动停止操作;rgmanager管理并为集群中的service(服务)和Resource(资源)提供Failover错误切换功能。

2.3 Service(服务)

每个服务都被指定存在于一个Failover Domain中,并与多个Resource关联。每个服务可以理解为实际操作中的一个应用。如WEB服务器,JAVA中间件、数据库、文件共享系统、邮件系统等。这些应用在运行时不但对应用程序本身有要求。如某个运行指令或者多个运行脚本的组合,还要提供对诸如虚拟IP、文件系统等资源的支持。

2.4Failover Domain(错误切换域)

每个Failover Domain都与2个或以上的Node进行绑定,Failover Domain指定了集群中某个service运行时的范围。也就是指定此service将会由哪些服务器提供Failover错误切换功能。每个Node都允许与多个Failover Domain进行绑定,也就是说每个Node都可以为多个Service服务。因此可以实现“主动、双活动”方式的集群配置

2.5Resource(资源)

Resource指的是组成一个应用所需的各种组件,通常包括:应用程序,虚拟IP,文件系统,资源与service组合时,往往还会体现出一定的层次关系,例如,通常系统都要求确认虚拟IP及文件系统都已经正常链接和挂载后,才可以运行某个应用程序,这个顺序一旦调转,这会使应用程序出错。

2.6Fence机制

在RHCS集群运行时,为了避免因出现不可预知的情况而造成“脑裂”现象(如:心跳线断连,此时2台服务器都无法找到对方,无法向对方发出操作指令,都各自认为自身是主节点;又或者主服务器系统崩溃,系统能接收到备用服务器的操作指令,但无法返回运行情况的确认信号,导致备用服务器无法获知系统资源的使用情况),系统要求通过Fence机制

来保障系统切换时的I/O使用安全。

Fence主要是通过服务器或者存储本身的硬件管理接口,又或者是外部电源管理设备。来对服务器或存储发起直接的硬件管理指令。控制服务器或存储链路的开关。因此Fence机制也称为I/O屏障技术。当脑裂发生时彻底断开问题服务器的所有I/O链接。保证问题服务器不能对集群中的I/O资源(共享的文件系统资源)进行任何操作,严格保证集群环境中企业核心数据的完整性。

RedHat 6.5下RHCS 集群的实现_RedHat_02



安装前的准备工作:

1)地址规划:Node1/ 172.25.254.20;

            Node2/ 172.25.254.21

            管理节点(LUCI)/172.25.254.17

            存储网络/ 172.25.254.16

            rgmanager Virtual IP

            172.25.254.22.

2)所有的服务器关闭Iptables和Seliux;

#getenforce

disabled

#/etc/init.d/iptables stop;

3)配置/etc/hosts文件,解析各个主机名-IP地址,保证所有服务器一致。

#cat /etc/hosts

172.25.254.20 server3.example.com

172.25.254.21 server4.example.com

172.25.254.17 server9.example.com

4)准备集群ISCSI共享磁盘。

5)安装RHCS集群管理工具LUCI;

在server9.example.com上

#yum install luci -y

安装完成之后启动luci服务。

6)在2台Node服务器上安装RHCS集群包ricci

#yum install ricci -y

7)设置ricci账号密码,用于luci连接认证;

echo redhat | passwd --stdin ricci

启动服务以后进入浏览器,按照被授予的URL以HTTPS协议登陆luci客户端。

RedHat 6.5下RHCS 集群的实现_RedHat_03

RedHat 6.5下RHCS 集群的实现_RedHat_04

RedHat 6.5下RHCS 集群的实现_RHCS_05