RHCS+nginx实现高可用负载均衡及fence机制的添加
一、RHCS简介
RHCS即 RedHat Cluster Suite,中文意思即红帽集群套件。是一套综合的软件组件,可以通过在部署时采用不同的配置,以满足你的对高可用性,负载均衡,可扩展性,文件共享和节约成本的需要。
它提供有如下两种不同类型的集群:
1、高可用性:应用/服务故障切换-通过创建n个节点的服务器集群来实现关键应用和服务的故障切换
2、负载均衡:IP 负载均衡-对一群服务器上收到的 IP 网络请求进行负载均衡
什么是高可用集群:
高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软 件、硬件、人为造成的故障对业务的影响降低到最小程度。 2.主机:
RHCS的一个很重要概念:Failover Domain故障转移域,更准确地说应该是服务故障转移域(一个服务包括多个资源如VIP FileSystem…)key当i定义一个节点故障后,此节点上的资源能够转移的目标节点,进而限制了资源转移的范围.
FENCE 设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的“脑裂”现象,FENCE设备的出现, 就是为了解决类似这些问题,Fence设备主要就是通过服务器或存储本身的硬件管理接口,或者外部电源管理设备,来对服务器或存储直接发出硬件管理指令, 将服务器重启或关机,或者与网络断开连接。
FENCE的工作原理:
当 意外原因导致主机异常或者宕机时,备机会首先调用FENCE设备,然后通过FENCE设备将异常主机重启或者从网络隔离,当FENCE操作成功执行后, 返回信息给备机,备机在接到FENCE成功的信息后,开始接管主机的服务和资源。这样通过FENCE设备,将异常节点占据的资源进行了释放,保证了资源和 服务始终运行在一个节点上。
二.实验环境
物理主机:172.25.254.68 用作fence
server2 : 172.25.254.2 作主节点,为了提供Cong配置用户界下载ricci,luci
Server5: 172.25.254.4 下载ricci,作副节点
配置yum源:
此操作在server2和server5上均做
vim /etc/yum.repos.d/rhel-source.repo
server2:
scp -r /usr/local/nginx/ [email protected]:/usr/local/
yum install -y ricci luci
passwd ricci
chkconfig ricci on
/etc/init.d/ricci start
/etc/init.d/luci start
chkconfig luci on
Server5:
cd /usr/local/
useradd -M -d /usr/local/nginx/ -u 800 nginx
vim /etc/security/limits.conf
nginx - nofile 65535
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
yum install -y ricci
passwd ricci
chkconfig ricci on
/etc/init.d/ricci start
1.创建集群:
使用 luci 创建集群包括命名集群、在集群中添加集群节点、为每个节点输入 ricci 密码并提交创建集群请
求。如果节点信息和密码正确,则 Conga 会自动在集群节点中安装软件(如果当前没有安装适当的软件
包)并启动集群。按如下步骤创建集群:
真机浏览器:
https://server2:8084
使用server2的root密码登陆
点击Create创建集群,Add添加已经创建好的集群,集群名称不要用数字,不超过15个字符,其中的密码是ricci用户的密码
创建成功:
clustat //查看集群状态信息
2.配 置 Fence 设 备
配置 fence 设备包括为集群创建、更新和删除 fence 设备。您可在集群中为节点配置 fencing 前必须在集群
中配置 fence 设备。
创建 fence 设备包括选择 fence 设备类型以及为那个 fence 设备输入参数(例如:name、IP address、
login 和 password)。更新 fence 设备包括选择现有 fence 设备并为那个 fence 设备更改参数。删除 fence
设备包括选择现有 fence 设备并删除它。
systemctl start fence_virtd //启动服务
名字任意,fence设备类型
cat /etc/cluster/cluster.conf
真机:
yum install -y fence-virtd-libvirt fence-virtd-multicast fence-virtd fence-virtd-serial
fence-virtd-multicast-0.3.2-2.el7.x86_64 (实现广播同系机制)
fence-virtd-libvirt-0.3.2-2.el7.x86_64 (将libvirt变为fence)
fence-virtd-0.3.2-2.el7.x86_64 (模拟fence)
systemctl enable fence_virtd //设置开机自启
mkdir /etc/cluster/
cd /etc/cluster/
dd if=/dev/random of=fence_xvm.key bs=128 count=1
scp fence_xvm.key server2:/etc/cluster/
scp fence_xvm.key server5:/etc/cluster/
fence_virtd -c //编写新的fence 信息
Module search path [/usr/lib64/fence-virt]: /usr/lib64/fence-virt
Listener module [multicast]: multicast
Multicast IP Address [225.0.0.12]: 225.0.0.12
Using ipv4 as family.
Multicast IP Port [1229]: 1229
Interface [virbr0]: br0 #虚拟机使用的桥接
Key File [/etc/cluster/fence_xvm.key]: /etc/cluster/fence_xvm.key
Backend module [libvirt]: libvirt
Replace /etc/fence_virt.conf with the above [y/N]? y
cat /etc/fence_virt.conf
systemctl restart fence_virtd
systemctl status fence_virtd
点击Add Fence Method
点击Add Fence Instance
添加server2的UUID
如下图配置:
server5同样的配置:
cat /etc/cluster/cluster.conf
高可用(HA)的实现:
1. 进入luci的集群,点击Faliover Domains,点击Add,输入Name,例如webfile,选中Prioritized、Restricted(只在指定节点跑)、No Failback(资源故障回切),选中下方的server2和server5的Member并输入优先级,这里server2输入1,server5输 入10,就是以server2为主节点,数字越小优先级越高;
添加共享服务:
VIP:ip保证和其他不重复,默认10秒钟检测ip是否坏的
Montor Link 监控链接
http脚本
server2和server5安装httpd
yum install httpd -y
测试: