一、简介

RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件。红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足你的对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。对于需要最大 正常运行时间的应用来说,带有红帽集群套件(Red Hat Cluster Suite)的红帽企业 linux 集群是最佳的选择。红帽集群套件专为红帽企业 Linux 量身设计,它提供有如下两种不同类型的集群:
1、应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
2、IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡利用红帽集群套件,可以以高可用性配置来部署应用,从而使其总是处于运行状态-这赋予了企业向外扩展(scale- out)linux 部署的能力。对于网络文件系统(NFS)、Samba 和Apache 等大量应用的开源应用来说,红帽集群套件提供了一个随时可用的全面故障切换解决方案。

二、术语

分布式集群管理器(CMAN)
Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。
CMAN用于管理集群成员、消息和通知。它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。
锁管理(DLM)
Distributed Lock Manager, 简称DLM,表示一个分布式锁管理器,它是RHCS的一个底层基础构件,同时也为集群提供了一个公用的锁运行机制,在RHCS集群系统中,DLM运行在集 群的每个节点上,GFS通过锁管理器的锁机制来同步访问文件系统元数据。CLVM通过锁管理器来同步更新数据到LVM卷和卷组。
DLM不需要设定锁管理服务器,它采用对等的锁管理方式,大大的提高了处理性能。同时,DLM避免了当单个节点失败需要整体恢复的性能瓶颈,另外,DLM的请求都是本地的,不需要网络请求,因而请求会立即生效。最后,DLM通过分层机制,可以实现多个锁空间的并行锁模式。
配置文件管理(CCS)
Cluster Configuration System,简称CCS,主要用于集群配置文件管理和配置文件在节点之间的同步。CCS运行在集群的每个节点上,监控每个集群节点上的单一配置文件 /etc/cluster/cluster.conf的状态,当这个文件发生任何变化时,都将此变化更新到集群中的每个节点,时刻保持每个节点的配置文件 同步。例如,管理员在节点A上更新了集群配置文件,CCS发现A节点的配置文件发生变化后,马上将此变化传播到其它节点上去。rhcs的配置文件是cluster.conf,它是一个xml文件,具体包含集群名称、集群节点信息、集群资源和服务信息、fence设备等,这个会在后面讲述。
栅设备(FENCE)
FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现,就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令,将服务器重启或关机,或者与网络断开连接。
FENCE的工作原理是:当意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后,返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和服务始终运行在一个节点上。
RHCS的FENCE设备可以分为两种:内部FENCE和外部FENCE,常用的内部FENCE有IBM RSAII卡,HP的iLO卡,还有IPMI的设备等,外部fence设备有UPS、SAN SWITCH、NETWORK SWITCH等
高可用服务管理器
高可用性服务管理主要用来监督、启动和停止集群的应用、服务和资源。它提供了一种对集群服务的管理能力,当一个节点的服务失败时,高可用性集群服务管理进程可以将服务从这个失败节点转移到其它健康节点上来,并且这种服务转移能力是自动、透明的。RHCS通过rgmanager来管理集群服务,rgmanager运行在每个集群节点上,在服务器上对应的进程为clurgmgrd。在一个RHCS集群中,高可用性服务包含集群服务和集群资源两个方面,集群服务其实就是应用服务,例如apache、mysql等,集群资源有很多种,例如一个IP地址、一个运行脚本、ext3/GFS文件系统等。在RHCS集群中,高可用性服务是和一个失败转移域结合在一起的,所谓失败转移域是一个运行特定服务的集群节点的集合。在失败转移域中,可以给每个节点设置相应的优先级,通过优先级的高低来决定节点失败时服务转移的先后顺序,如果没有给节点指定优先级,那么集群高可用服务将在任意节点间转移。因此,通过创建失败转移域不但可以设定服务在节点间转移的顺序,而且可以限制某个服务仅在失败转移域指定的节点内进行切换。
集群配置管理工具
RHCS提供了多种集群配置和管理工具,常用的有基于GUI的system-config-cluster、Conga等,也提供了基于命令行的管理工具。
system-config-cluster是一个用于创建集群和配置集群节点的图形化管理工具,它有集群节点配置和集群管理两个部分组成,分别用于创建集群节点配置文件和维护节点运行状态。一般用在RHCS早期的版本中。Conga是一种web集群配置工具,与system-config-cluster不同的是,Conga是通过web方式来配置和管理集群节点的。Conga有两部分组成,分别是luci和ricci,luci安装在一台独立的计算机上,用于配置和管理集群,ricci安装在每个集群节点上,Luci通过ricci和集群中的每个节点进行通信。RHCS也提供了一些功能强大的集群命令行管理工具,常用的有clustat、cman_tool、ccs_tool、fence_tool、clusvcadm等。

三、环境准备:

服务器:

ansible server : 192.168.8.40
node2.chinasoft.com: 192.168.8.39
node3.chinasoft.com: 192.168.8.41
node4.chinasoft.com: 192.168.8.42

1、配置/etc/hosts文件,不使用DNS解析域名

192.168.8.39 node2.chinasoft.com node2
192.168.8.42 node4.chinasoft.com node4
192.168.8.41 node3.chinasoft.com node3

2、时间同步、在ansible服务器配置免密码访问node2、node3、node4
在ansible服务器中添加rhcs组
# vim /etc/ansible/hosts
加入如下内容:

[rhcs]
node2.chinasoft.com
node3.chinasoft.com
node4.chinasoft.com

时间同步

# ansible rhcs -a "ntpdate -u 192.168.8.102"
node2.chinasoft.com | success | rc=0 >>
29 Apr 12:05:30 ntpdate[26149]: step time server 192.168.8.102 offset 4.144328 secnode3.chinasoft.com | success | rc=0 >>
29 Apr 12:05:30 ntpdate[23829]: adjust time server 192.168.8.102 offset 0.208051 secnode4.chinasoft.com | success | rc=0 >>
29 Apr 12:05:30 ntpdate[4932]: step time server 192.168.8.102 offset 2.731589 sec# ansible rhcs -a "date"
node2.chinasoft.com | success | rc=0 >>
Fri Apr 29 12:05:35 CST 2016node4.chinasoft.com | success | rc=0 >>
Fri Apr 29 12:05:35 CST 2016node3.chinasoft.com | success | rc=0 >>
Fri Apr 29 12:05:35 CST 2016

/etc/hosts文件是否相同

# ansible rhcs -m shell -a "cat /etc/hosts"
node2.chinasoft.com | success | rc=0 >>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.39 node2.chinasoft.com node2
192.168.8.42 node4.chinasoft.com node4
192.168.8.41 node3.chinasoft.com node3node4.chinasoft.com | success | rc=0 >>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.39 node2.chinasoft.com node2
192.168.8.42 node4.chinasoft.com node4
192.168.8.41 node3.chinasoft.com node3node3.chinasoft.com | success | rc=0 >>
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.39 node2.chinasoft.com node2
192.168.8.42 node4.chinasoft.com node4
192.168.8.41 node3.chinasoft.com node3

3、使用centos6.5作为yum源
注意:如果启用了epel源,其会通过epel安装Luci依赖的rpm包,这会被rhcs认为是不安全的。因此,安装luci时要禁用epel源。
检查Yum源

# ansible rhcs -m shell -a "yum repolist"
node2.chinasoft.com | success | rc=0 >>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
repo id                             repo name                             status
base                                localyum                              3995
updates                             localyum                              3995
repolist: 7990node3.chinasoft.com | success | rc=0 >>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
repo id                             repo name                             status
base                                localyum                              3995
updates                             localyum                              3995
repolist: 7990node4.chinasoft.com | success | rc=0 >>
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
repo id                             repo name                             status
base                                localyum                              3995
updates                             localyum                              3995
repolist: 7990

4、关闭几台服务器上的防火墙和selinux(避免干扰)

具体可参考前面的博文:CentOS 6.5环境实现corosync+pacemaker实现DRBD高可用
http://blog.csdn.net/reblue520/article/details/51271281

四、安装ricci和luci工具

1、在各ha节点上安装ricci
# ansible rhcs -m yum -a "name=ricci state=present disablerepo=epel"
# ansible rhcs -m yum -a "name=ricci state=present"

管理机安装luci并启动luci服务(8.40 安装ansible服务的机器)实际使用中,如果没有专用的跳板机,也可以以三个节点中的某节点来替代
# yum install -y luci --disablerepo=epel
# service luci start

2、启动HA节点的ricci服务并设置为开机启动

# ansible rhcs -m service -a "name=ricci state=started enabled=yes"
node2.chinasoft.com | success >> {"changed": true, "enabled": true, "name": "ricci", "state": "started"
}node3.chinasoft.com | success >> {"changed": true, "enabled": true, "name": "ricci", "state": "started"
}node4.chinasoft.com | success >> {"changed": true, "enabled": true, "name": "ricci", "state": "started"
}

随便找一台ha节点机器执行netstat -tunlp 可以看到ricci服务已启动
# netstat -tunlp | grep ricci
tcp        0      0 :::11111                    :::*                        LISTEN      26995/ricci


五、通过HA WEB配置集群
访问https://192.168.8.40:8084 可以看到HA节点的web控制台
输入root用户和密码即可登录


1、为HA节点添加ricci的密码,配置集群要用到

# ansible rhcs -m shell -a "echo centos | passwd --stdin ricci"
node2.chinasoft.com | success | rc=0 >>
Changing password for user ricci.
passwd: all authentication tokens updated successfully.node3.chinasoft.com | success | rc=0 >>
Changing password for user ricci.
passwd: all authentication tokens updated successfully.node4.chinasoft.com | success | rc=0 >>
Changing password for user ricci.
passwd: all authentication tokens updated successfully.

依次点击Manager Clusters/create创建一个名为mycluster的集群,创建会自动重新启动HA节点,需要等几分钟生效

2、故障转移域配置,如我们当前配置:故障后下线又上线不自动切换,优先级分别为node2、node3、node4

定义节点启动的优先级,数字越小级别越高

3、定义资源

添加一个VIP:地址为192.168.8.77

在HA节点上安装apache软件
# ansible rhcs -m yum -a "name=httpd state=present"
删除默认欢迎主页
# ansible rhcs -m shell -a "rm -rf /etc/httpd/conf.d/welcome.conf"

添加一个编辑各自节点主页内容为当前主机名的脚本
# vim setindex.sh
#!/bin/bash
#
echo "<h1>`uname -n`" > /var/www/html/index.html

# chmod +x setindex.sh 
将脚本拷贝到各节点
# for i in {2..4}; do scp -p setindex.sh node$i.chinasoft.com:/tmp/; done

执行脚本
# ansible rhcs -m shell -a "/tmp/setindex.sh"

验证主页是否修改成功
# ansible rhcs -a "cat /var/www/html/index.html"
node2.chinasoft.com | success | rc=0 >>
<h1>node2.chinasoft.com

node3.chinasoft.com | success | rc=0 >>
<h1>node3.chinasoft.com

node4.chinasoft.com | success | rc=0 >>
<h1>node4.chinasoft.com

4、定义服务
添加一个名为webservice的服务,并关联之前定义的webdomain

添加资源如:VIP和SCRIPTS(httpd服务)

启动服务

通过访问http://192.168.8.77/
可以看到服务运行在了node3上面,通过nodes使node3下线,此时转移到了node4上,因为将node4的优先级调整为了1
让node3重新上线此时服务依旧运行在node4上面

通过在任意HA节点上运行clustat、cman_tool status及cman_tool services命令可以看到集群的状态

通过rpm命令可以看到rhcs集群底层是把cman和corosync以插件的方式运行的

转载于:https://www.cnblogs.com/reblue520/p/6239806.html

centos6.5环境基于conga的web图形化界面方式配置rhcs集群相关推荐

  1. # java swing,awt图形化界面代码案例合集

    文章目录 java awt,swing图形化界面代码案例合集 java awt,swing图形化界面代码案例合集 package Demo1; import java.awt.*; public cl ...

  2. vue3 项目创建(UI图形化界面方式,可视化操作Vue项目,vue ui)

    vue3 项目创建 (UI图形化界面方式,可视化操作Vue项目,vue ui) 目录 一.图形化界面方式搭建vue3 项目前提条件 1.检查node 和 @vue/cli 版本信息 2.升级你的 No ...

  3. 基于Qt的ui图形化界面进行的界面设计

    qt初学者往往会发现这样的一个问题--无论是我买的相关的书,还是网上博客的内容,基本全都是利用纯代码的形式来进行界面设计的.而初学者对各种控件的代码实现并不熟悉,往往在这里耗费大量时间.故本篇文章介绍 ...

  4. Win10 + WSL2 (ubuntu18.04 LTS) + vscode开发环境,win上linux图形化界面劝退实录

    虚拟机容易崩,想用win10试试linux开发,于是坑来了

  5. linux远程图形操作系统,二、Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面...

    2.Linux操作系统之操作篇-Xmanager 远程访问Linux图形化界面 红帽配置Xmanager 远程访问Linux: 1. 修改gdm配置文件,修改内容为粗体部分. /etc/gdm/cus ...

  6. ubuntu系统 安装 图形化界面【亲测有效】

    目录 一:引言 二:ubuntu 图形化界面 安装配置 1.更新一下 2.安装ubuntu桌面图形化显示 3.安装unity桌面系统 4.安装lightdm显示管理器 5.选择 lightdm或者gd ...

  7. 【转载】VMware安装CentOS7时忘记装图形化界面——如何补装GNOME

    亲测有用 [转载链接]https://zhuanlan.zhihu.com/p/126601630 一.存在问题 在VMware虚拟机中成功安装centOS 7系统后,如果启动centOS 7系统直接 ...

  8. PC后台管理( 基于图形化界面自动安装教程)

    基于vsode开发的一套后台管理 技术选项 一.项目初始化 1.1前端项目初始化步骤 1.2后台管理的环境安装安装配置 1.3登录和退出的功能 1.4主页 把跟新后的代码提交到马云上去 三级目录 技术 ...

  9. 基于MFC框架的学生信息管理系统/学生成绩管理系统(带有图形化界面)

    系统背景: 本系统基于 Visual Studio2013的环境搭建,运用MFC框架对系统进行设计和实现,本系统带有图形化界面,具有常用的用户登录注册功能,对个人信息的增删改查功能,对成绩的增删改查功 ...

最新文章

  1. 优化实战:不要随便将字段折腾来折腾去的
  2. ora-01653表空间扩展失败产生的场景和处理方法
  3. Android学习计划制定
  4. java中二进制怎么说_面试:说说Java中的 volatile 关键词?
  5. 学python最重要的是_Python学习,要选哪个版本?
  6. Python:__all__变量用法
  7. matlab中lambertw,MATLAB解常微分方程
  8. js属性-map set
  9. AQS抽象队列同步器
  10. 「云渲染」渲染农场的架构原理、特点
  11. Random + Scanner 场景试炼
  12. VSCode通过源代码管理插件GitLens提交项目代码的过程
  13. 苹果系统这么没有关闭订阅服务器,iPhone 上没有取消订阅的选项怎么办?
  14. 人民日报大家谈:少儿编程热,需要冷思考
  15. java 快速开发平台
  16. 英语写作中常见的“转折”小结
  17. 海龟交易法则(策略源码)
  18. 不容错过的华为5G十二大DEMO
  19. SSRS 2012 管理图表 -- 柏拉图
  20. 提高百度收录:如何使用API提交之PHP推送功能(实操)

热门文章

  1. 2022.11.17补题祭
  2. 如何引流购物粉?如何引流网购粉?怎么吸购物粉?
  3. SSM网上商城购物系统(前台+后台)
  4. BAT美女哪家强?阿里云深藏第一女神!
  5. Linux中cp命令介绍
  6. XP Sp3 开机就要激活,否则无法登录windows桌面
  7. BCOP章鱼船长,6月22日晚上8点上线薄饼
  8. 软件考试:计算机组成原理:寻址方式
  9. C# 中实现注册表的写入和读取
  10. 计算机信息检索课程小结,计算机信息检索课程教案.doc