红帽RHCS套件包括 RHCM 和 piranha两个分别是高可靠性集群和负载均衡集群。

Piranha方案优点:
1.1.1配置简洁高效:
配置简便一个lvs.conf配置文件即可搞定(keepalived方案.)

1.1.2WEB配置界面.
WEB配置对于那些不懂LVS配置的人员来说非常吸引力,你几乎只要花15分钟就可以配置好一个完美的负载均衡及高可用性方案.

1.1.3完整的功能:

主备LVS (Load Balancer)HeartbeatHA (pulse,send_arp)
LoadBalancerReal Server间进程服务的Heartbeat (nanny)
IPVS功能 (lvsd)
IPVS的管理 (ipvsadm)

Piranha方案原理结构描述:
Piranha方案是基于LVS基础上设计的一套负载均衡高可用解决方案.
LVS运行在一对有相似配置的计算机上:
一个作为活动LVS Router(Active LVS Router)
一个作为备份LVS Router(Backup LVS Router)

活动LVS Router服务有两个角色:
* 均衡负载到真实服务器上。
* 检查真实服务器提供的服务是否正常。
备份LVS Router用来监控活动的LVS Router,以备活动的LVS Router失败时由备份LVS Router接管。

Pulse:
Pulse进程运行在活动LVS Router和备份LVS Router上。
在备份LVS Router上,pulse发送一个心跳(heartbeat)到活动LVS Router的公网接口上以检查活动LVS Router是否正常。
在活动LVS Router上,pulse启动lvs进程并响应来自于备份LVS Router的心跳。

lvsd:
lvs进程调用ipvsadm工具去配置和维护IPVS路由表,并为每一个在真实服务器上的虚拟服务启动一个nanny进程。

nanny:
每一个nanny进程去检查真实服务器上的虚拟服务状态,并将故障情况通知lvs进程。假如一个故障被发现,lvs进程通知ipvsadm在IPVS路由表中将此节点删除。

send_arp:
如果备份LVS Router未收到来自于活动LVS Router的响应,
它将调用send_arp将虚拟IP地址再分配到备份LVS Router的公网接口上。
并在公网接口和局域网接口上分别发送一个命令去关掉活动LVS Router上的lvs进程。同时启动自己的lvs进程来调度客户端请求。

安装软件:

yum install ipvsadm modcluster piranha system-config-cluster php php-cli php-common

配置文件介绍:
/etc/sysconfig/ha/lvs.cf //由http://ip:3636 web界面配置的配置文件写入此文件.
/etc/init.d/piranha-gui start //启动piranha服务的WEB配置界面.
/etc/init.d/pulse //启动piranha服务读取的就是/etc/sysconfig/ha/lvs.cf.

准备2台高可用主机,2台real server主机
yum install piranha -y 在2台高可用主机
rpm -ql piranha 查看安装路径
/etc/init.d/piranha-gui start
netstat -antlp 查看piranha-gui httpd服务的端口
在浏览器 访问 192.168.0.99:3636 提示输入用户名,密码
密码可以用piranha-passwd 设置
在全局设置里 设置主调度主机的双网卡ip
此时会自动将配置写到/etc/sysconfig/ha/lvs.cf 文件中
在备份 调度主机 设置双网卡ip,心跳频率,死亡检查,心跳端口,监控nic链路,同步
在virtual server 里设置 服务:web,80,tcp,虚拟ip,eth0:0设备,轮询调度算法,其他保持默认。
添加real server ,server45.example.com 192.168.0.45
server81.example.com 192.168.0.81
下来激活两台real server 及web服务
然后在两台real server :
ifconfig lo:0 192.168.0.252 netmask 255.255.255.255 up
route add -host 192.168.0.252 dev lo:0
并且启动httpd服务
/etc/init.d/httpd start
在/var/www/html 目录下写上主页文件

将主调度主机的lvs.cf 复制给备份的主机
在两台调度主机开启pulse服务:
/etc/init.d/pulse start
此时查看eth0:0 接口是否开启
查看调度列表: ipvsadm -l
与heartbeat集群不一样的是:在调度主机上的httpd服务不开启

遇到的问题:

配置好之后,在调度机上 ipvsadm -l,没有检测到 real server,可能是piranha的图形配置界面有点问题,配置real server 后 刷新界面 不要从up变成down了,如果变了说明有问题,还有 virtual server 的配置 要activate。这个 问题 当时把我折腾了半天。


如果访问的时候,只访问一台主机,则需设置arp:
arp -s 192.168.0.252 52:54:00:53:1F:C3

查看详细链接信息:watch ipvsadm -Lnc

然后将主调度主机的pulse服务关闭,查看备份调度主机是否接管。
将real server 的httpd服务关闭,查看调度主机的调度列表是否更新。
如果将httpd关闭,则需几秒延迟,当将httpd又开启时,时间比关闭的刷新延迟时间还长。效率没有keepalived 的高。