RHCS集群中nginx下的负载均衡,及高可用

一 RHCS集群管理介绍

集群管理器CMAN
Cluster Manager,简称CMAN,是一个分布式集群管理工具,它运行在集群的各个节点上,为RHCS提供集群管理任务。CMAN用于管理集群成员、传递节点间心跳信息。它通过监控每个节点的运行状态来了解节点成员之间的关系,当集群中某个节点出现故障,节点成员关系将发生改变,CMAN及时将这种改变通知底层,进而做出相应的调整。cman之上有ccs和fencs两个组件。
资源组管理器rgmanager
通过定义的集群资源,来管理这些资源,被管理的资源包括故障切换域的定义、资源(如 IP 地址)和服务。它也定义了群集服务和群集服务的故障切换行为。
集群配置文件管理CCS
其默认配置文件为/etc/cluster/cluster.conf,运行于集群中各节点,当某一节点的配置信息发生改变时,使同一集群内的其他节点的配置文件发生相应变化。
保护设备Fencs
当CMAN决定某个节点已经发生故障,它将告知其他群集基础结构组件。在收到通知后,fenced 将保护(fence)故障节点。其他群集基础结构组件将决定采取什么行动,也就是说,它们执行任何必需的恢复。例如,当 DLM 和 GFS 被告知节点故障时,将暂停活动,直到它们检测到 fenced 已经完成对故障节点的保护。当确认故障节点已经被保护时,DLM 和 GFS 会执行恢复。DLM 释放对失败节点的锁定;GFS 恢复故障节点的日志。GNBD也是Fencs的一个组件。
分布式锁管理器DLM
分布式锁管理器管理集群中挂载使用GFS的节点来同步它们对共享资源的访问,它运行于每一个集群节点,是集群中所有节点共享锁文件。CLVM使用锁管理器来同步对LVM卷和卷组(也对共享存储)的更新。
集群文件系统GFS
GFS 是允许集群内所有节点可同时访问某个共享的块设备的集群文件系统。GFS 是一个原生(native)文件系统,它直接和 Linux 内核文件系统接口的 VFS 层进行通信。GFS 使用分布式元数据和多个日志来优化群集操作。要维护文件系统的完整性,GFS 使用一个锁管理器来协调 I/O。当节点修改了 GFS 文件系统上的数据,这个改动马上为使用这个文件系统的其他群集节点可见。同时,GFS使整个群集只需安装一次应用程序或补丁,并可使集群内多个节点的服务对数据可以并行读/写操作。
集群配置管理工具Conga
Conga是新的基于网络的集群配置工具。它是web界面管理的,由luci和ricci组成,luci可以安装在一*立的计算机上,也可安装在节点上,用于配置和管理集群,ricci是一个代理,安装在每个集群节点上,luci通过ricci和集群中的每个节点通信。

二 环境搭建

1)安装软件(server1 server4)
yum install -y ricci luci
/etc/init.d/ricci start
chkconfig ricci on
/etc/init.d/luci start
chkconfig luci on
2)ricci密码设定
echo james | passwd --stdin ricci
3)重其服务之后查看信息
RHCS集群中nginx下的负载均衡,及高可用
4)在浏览器查看https://server1:8084进入luci客户端
RHCS集群中nginx下的负载均衡,及高可用
5)输入服务所在用户下的密码
RHCS集群中nginx下的负载均衡,及高可用
6)登陆进去之后添加集群和结点(必须保证server1 和server4服务都已经开启,并且时间同步)

RHCS集群中nginx下的负载均衡,及高可用
7)点击创建集群
RHCS集群中nginx下的负载均衡,及高可用
8)添加成功如下
RHCS集群中nginx下的负载均衡,及高可用
9)fence的安装(物理机安装)
yum install fence-* -y
RHCS集群中nginx下的负载均衡,及高可用
10)fence_virtd -c 对配置文件进行选定 (配置后文件内容)
RHCS集群中nginx下的负载均衡,及高可用

11)建立**放置目录
mkdir /etc/cluster
cd /etc/cluster/
dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=128 count=1
RHCS集群中nginx下的负载均衡,及高可用
12)将**文件传递各结点的对应目录下
scp /etc/cluster/fence_xvm.key server1:/etc/cluster/
scp /etc/cluster/fence_xvm.key server4:/etc/cluster/
13)启动服务
systemctl start fence_virtd.service
14)luci客户端进行设置
两个结点添加fence服务
server1=vm1:
RHCS集群中nginx下的负载均衡,及高可用
RHCS集群中nginx下的负载均衡,及高可用
server4=vm4:
RHCS集群中nginx下的负载均衡,及高可用

RHCS集群中nginx下的负载均衡,及高可用
15 )添加fence设备
RHCS集群中nginx下的负载均衡,及高可用
16)添加故障切换域
RHCS集群中nginx下的负载均衡,及高可用
17)集群添加资源
1 添加vip
RHCS集群中nginx下的负载均衡,及高可用
2 添加脚本
RHCS集群中nginx下的负载均衡,及高可用
nginx服务添加步骤查看:https://blog.csdn.net/yangkaiorange/article/details/82785498
18)为集群添加服务组,添加服务组之前,关闭两节点的 nginx 服务
否则无法正常启动服务组,因为此服务集群工作类似于原子性,原子性指事务的一个完整操作。操作成功则提交,失败则回滚,即一件事要做就做完整,要么就什么都不做
RHCS集群中nginx下的负载均衡,及高可用
全局资源添加VIP和script脚本
RHCS集群中nginx下的负载均衡,及高可用
RHCS集群中nginx下的负载均衡,及高可用
19)start启动之后,服务会在优先级高的上启动
RHCS集群中nginx下的负载均衡,及高可用
20 )结点启动查看
RHCS集群中nginx下的负载均衡,及高可用

21 )nginx 负载均衡测试
测试之前保证server1 和servre4 nginx关闭
1 nginx 配置文件增加内容

http {

     upstream test {
    server 172.25.1.3:80;
    server 172.25.1.4:80;
 }
 server {
       listen 80;
       server_name www.test.org;

       location / {
       proxy_pass http://test;
       }

}

2 server 2 和 server 3 后端web服务配置
ip访问设置
/etc/init.d/arptables_jf start
RHCS集群中nginx下的负载均衡,及高可用
RHCS集群中nginx下的负载均衡,及高可用
httpd 服务开启
RHCS集群中nginx下的负载均衡,及高可用
RHCS集群中nginx下的负载均衡,及高可用
3 负载均衡测试
RHCS集群中nginx下的负载均衡,及高可用
22 )nginx高可用测试
1 )结点服务切换
RHCS集群中nginx下的负载均衡,及高可用2 )破坏性测试 在结点2servre4上强行停机,如果能够实现以下几点说明nginx高可用是成功:
RHCS集群中nginx下的负载均衡,及高可用
1 服务能够自动切换到结点1 server1上,保证服务正常进行。
2 结点2在物理机fence服务的控制下能够实现重新启动。
3 重新启动后服务不会回切,保证效率。
1 :RHCS集群中nginx下的负载均衡,及高可用
RHCS集群中nginx下的负载均衡,及高可用
2:RHCS集群中nginx下的负载均衡,及高可用
3:
RHCS集群中nginx下的负载均衡,及高可用