RHCS高可用集群配置(luci+ricci+fence)
一、什么是RHCS
RHCS是Red Hat Cluster Suite的缩写,也就是红帽集群套件,RHCS是一个能够提供高可用性、高可靠性、负载均衡、存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用、数据库应用等提供安全、稳定的运行环境。 更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久、稳定的提供服务,同时也保证了后端数据存储的安全。 RHCS提供了集群系统中三种集群构架,分别是高可用性集群、负载均衡集群、存储集群。
二、RHCS提供的三个核心功能
高可用集群是RHCS的核心功能。当应用程序出现故障,或者系统硬件、网络出现故障时,应用可以通过RHCS提供的高可用性服务管理组件自动、快速从一个节点切换到另一个节点,节点故障转移功能对客户端来说是透明的,从而保证应用持续、不间断的对外提供服务,这就是RHCS高可用集群实现的功能。 RHCS通过LVS(Linux Virtual Server)来提供负载均衡集群,而LVS是一个开源的、功能强大的基于IP的负载均衡技术,LVS由负载调度器和服务访问节点组成,通过LVS的负载调度功能,可以将客户端请求平均的分配到各个服务节点,同时,还可以定义多种负载分配策略,当一个请求进来时,集群系统根据调度算法来判断应该将请求分配到哪个服务节点,然后,由分配到的节点响应客户端请求,同时,LVS还提供了服务节点故障转移功能,也就是当某个服务节点不能提供服务时,LVS会自动屏蔽这个故障节点,接着将失败节点从集群中剔除,同时将新来此节点的请求平滑的转移到其它正常节点上来;而当此故障节点恢复正常后,LVS又会自动将此节点加入到集群中去。而这一系列切换动作,对用户来说,都是透明的,通过故障转移功能,保证了服务的不间断、稳定运行。 RHCS通过GFS文件系统来提供存储集群功能,GFS是Global File System的缩写,它允许多个服务同时去读写一个单一的共享文件系统,存储集群通过将共享数据放到一个共享文件系统中从而消除了在应用程序间同步数据的麻烦,GFS是一个分布式文件系统,它通过锁管理机制,来协调和管理多个服务节点对同一个文件系统的读写操作。
三、RHCS集群的组成
RHCS是一个集群工具的集合,主要有下面几大部分组成:
集群构架管理器:这是RHCS集群的一个基础套件,提供一个集群的基本功能,使各个节点组成集群在一起工作,具体包含分布式集群管理器(CMAN)、成员关系管理、锁管理(DLM)、配置文件管理(CCS)、栅设备(FENCE)。
高可用服务管理器:提供节点服务监控和服务故障转移功能,当一个节点服务出现故障时,将服务转移到另一个健康节点。
四、RHCS集群的配置
实验环境主机配置及功能:
server4 ip:172.25.2.1 安装ricci(集群节点)
server1 ip 172.25.2.4 安装ricci(集群节点) 和 luci(集群管理界面)
fence主机:双ip(一个外网,一个172.25.2.2),apache服务用来挂载镜像,安装fence
1)在server1中安装ricci和luci软件包。并设置启动(首先。你需要有相应的yum源的仓库。在之前的博客中已经说明过了,在此就不多说了)
---> yum install ricci luci -y
---> /etc/init.d/ricci start # 启动ricci服务
---> chkconfig ricci on # 设置该服务为开机自启动
---> chkconfig --list ricci # 查看是该服务的状态
---> echo xniu |passwd --stdin ricci # 给ricci用户添加密码
---> /etc/init.d/luci start # 对luci进行类似的操作
---> chkconfig luci on
---> echo xniu| passwd --stdin luci
注意:在启动ricci服务的过程中,若/etc/sysconfig/network文件中没有参数NETWORKING=yes时,会出现服务启动不了的问题。
2)在server4中ricci软件的安装和服务的启动等设置
---> yum install ricci -y
---> /etc/init.d/ricci start
---> chkconfig ricci on
---> passwd xniu|grep --stdin ricci
---> server ricci status # 查看ricci的状态是否启动
3)在物理机中进行域名解析:
---> vim /etc/hosts # 修改配置文件。添加域名解析
172.25.2.1 server1
172.25.2.4 server4
4)在物理机的浏览器中进行如下添加
---> https://server1:8084 # 在浏览器中输入,会出现群管理的登陆界面 (此时添如root和之前luci用户的密码)
具体配置如下:
五、配置实现nginx的高可用(nginx的安装在之后的博客中有,在此就不多写了)
1)集群的创建:点击集群管理(Manager Clusters),然后点击create出现以下页面,创建自己的集群名称
2) 建立错误恢复域,当一个节点有问题,可以切换到另一节点上(设置server1优先级高)
3)添加要用的资源vip和nginx(ip中参数有子网掩码、vip、切换主机时间5s)
4)在集群中添加服务组,要按顺序来添加资源,首先时ip--》存储空间---》服务。
# 完成之后启动资源组,我们可以查看到当前运行的状态(运行在server1上,由于优先级问题,先启动server1)
5)在server1和server4中进行nginx服务测试。在浏览器中输入172.25.2.100会出现如下界面:(nginx的负载均衡)
# 也可以使用命令clustat查看服务在节点的运行情况
# 当server1中关闭nginx服务,自动会到server4节点上。从而实现服务的高可用(有出错检查时间,所以切换慢一点)
---> /etc/init.d/nginx stop
6)clusvcdm集群管理的基本操作
六、FENCE设备与nginx结合的高可用
fence:当发生意外导致主机异常或不是简单的停机服务时,备用机会首先调用fence设备,然后通过fence设备将异常的主机重新启动或从网络上隔离,释放异常主机占据的资源,当隔离成功,返回资源信息给备用机,备用机在接收到信息后,开始接管主机的服务和资源,
fence原理:通过栅设备可以从集群共享存储中断开一个节点,切断I/O以确保数据的完整性。当CMAN确定一个节点失败后,它在集群结构中通告这个失败的节点,fence进程将失败的节点隔离,以保证节点不破坏共享数据。它可以避免因出现不可预知的情况而造成的“脑裂”(split-brain)现象。脑裂是指当两个节点之间的心跳线中断时,两台主机均认为自己时主节点,于是对集群资源进行争用、抢夺。
RHCE的fence设备有两种:内部fence和外部fence。当节点A上的栅过程发现C节点失效时,它通过栅代理通知光纤通道交换将c节点隔离,从而释放占用的共享通道。当A上的栅过程发现c节点失效时,通过栅代理直接对服务器做power on/off操作,而不去执行操作系统的开关机。
1)在真机中安装fence服务,并设置开机自启动
---> yum install fence-virtd-libvirt.x86_64 fence-virtd-multicast.x86_64 fence-virtd.x86_64 -y
---> systemctl start fence-virtd
---> systemctl enabled fence-virtd
2)配置fence的配置文件
---> fence_virtd -c # 在nginx的高可用中说过了,在这就不多写了
3)在真机中,生成密钥
---> mkidr /etc/cluster
---> dd if=/dev/urandom of/fence_xvm bs=128 count=1 # 截取密码文件
4)将生成的fence_xvm发送给server1和server4
---> scp /etc/cluster/fence_xvm server1:/etc/cluster
---> scp /etc/cluster/fence_xvm server4:/etc/cluster
5)在luci管理界面添加fence
# 首先在fence Dvice中添加vmfence1和vmfence2
# 添加完成后情况如下所示
#在节点server1和server4中把对应的vmfence添加进去(此处的uuid为vm1的唯一的id),此处为server1为例子
# 添加完成可以看到vmfence的信息
6)完成后启动nginx资源组,并进行测试。
---> echo c> /proc/sysrq-trigger # 使server4主机崩了之后,服务会自动切换到server1上。(此时server4状态为offline)
# 过一会,server4主机自启动之后,结果为:(servr4为online)
RHCS高可用集群配置(luci+ricci+fence)的更多相关文章
- MongoDB高可用集群配置的方案
>>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. ...
- SpringCloud-day04-Eureka高可用集群配置
5.4Eureka高可用集群配置 在高并发的情况下一个注册中心难以满足,因此一般需要集群配置多台. 我们再新建两个module microservice-eureka-server-2002, m ...
- Eureka注册中心高可用集群配置
Eureka高可用集群配置 当注册中心扛不住高并发的时候,这时候 要用集群来扛: 我们再新建两个module microservice-eureka-server-2002 microservic ...
- MongoDB高可用集群配置方案
原文链接:https://www.jianshu.com/p/e7e70ca7c7e5 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非 ...
- Hadoop入门学习笔记-第三天(Yarn高可用集群配置及计算案例)
什么是mapreduce 首先让我们来重温一下 hadoop 的四大组件:HDFS:分布式存储系统MapReduce:分布式计算系统YARN: hadoop 的资源调度系统Common: 以上三大组件 ...
- MongoDB分片技术原理和高可用集群配置方案
一.Sharding分片技术 1.分片概述 当数据量比较大的时候,我们需要把数分片运行在不同的机器中,以降低CPU.内存和Io的压力,Sharding就是数据库分片技术. MongoDB分片技术类似M ...
- harbor高可用集群配置
目录 说明 双主复制 主从同步 双主复制说明 多harbor实例共享后端存储 方案说明 环境说明 配置说明 安装redis和mysql 导入registry数据库 配置harbor 挂载nfs目录 修 ...
- Hadoop(25)-高可用集群配置,HDFS-HA和YARN-HA
一. HA概述 1. 所谓HA(High Available),即高可用(7*24小时不中断服务). 2. 实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS的HA ...
- Hadoop入门学习笔记-第二天 (HDFS:NodeName高可用集群配置)
说明:hdfs:nn单点故障,压力过大,内存受限,扩展受阻.hdfs ha :主备切换方式解决单点故障hdfs Federation联邦:解决鸭梨过大.支持水平扩展,每个nn分管一部分目录,所有nn共 ...
随机推荐
- 【Head First Servlets and JSP】笔记 27: web 应用安全
典型的安全问题:假冒者.窃听者.非法升级者 认证方式: Base64 .摘要认证 .客户端证书.表单认证,重点熟悉摘要算法( HASH . MD5 等) 安全机制:授权.认证.数据完整性.机密性 80 ...
- Django学习笔记之CBV和FBV
FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. CBV CBV(class base v ...
- MWeb Lite以及Eclipse的使用感想
MWeb Lite以及Eclipse的使用感想 1.首先说明的是MWeb Lite是一种Markdown软件,Eclipse是用于做java开发的,都用于Mac系统中.因为Mac系统本身较为人性化的设 ...
- 20145312《Java程序设计》课程总结
20145312<Java程序设计>课程总结 每周读书笔记链接汇总 20145312<Java程序设计>第一周学习总结 20145312<Java程序设计>第二周学 ...
- 20144303 《Java程序设计》第四周学习总结
20144303 <Java程序设计>第四周学习总结 教材学习内容总结 继承(extends): 1.作用:提高代码复用性 让类与类产生了关系,有了这个关系才有了多态的特性 2.注意:千万 ...
- mongodb入门很简单(1)
mongodb简介: 如前边介绍的两个键-值数据库: memcached和redis属于(key/value)数据库: 而mongodb是文档数据库:存储的是文档(Bson->json的二进制) ...
- Django安装及创建工程
Django MTV模型介绍 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻 ...
- STL的其他用法(adjacent_find, find_first_of, sort_heap, merge, binary_search)总结
2017-08-20 17:26:07 writer:pprp 1.adjacent_find() 下面是源码实现: template <class ForwardIterator> Fo ...
- HDU 1827 Summer Holiday
http://acm.hdu.edu.cn/showproblem.php?pid=1827 题意: 听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家 ...
- tcpdump抓包笔记
抓取指定端口的数据包 并保存文件,用wireshark分析 tcpdump -Ans 4096 -i any port 8080 -w ../mpass.cap 抓取指定端口和指定ip的数据包 并保存 ...