piranha构建高可用平台
内网私有ip(心跳线,用来加强ha集群的健壮度)
pulse和piranha进程
前者是启动服务的,后者是进行开启图形
nanny具有后端检测功能(heartbeat中使用ldirectord来检测后端RS的健康状况)
实验环境:
RHEL6.4 selinux is disabled iptables 关闭
主机以及IP准备:
node3 192.168.2.88 (VIP:192.168.2.83 PrivateIP:10.0.0.1)
node4 192.168.2.89 (VIP:192.168.2.83 PrivateIP:10.0.0.2)
node5 192.168.2.90 (VIP:192.168.2.83/32)
node6 192.168.2.93 (VIP:192.168.2.83/32)
主机规划分析:
node3和node4作为HA高可用负载均衡集群平台,VIP为发布IP,privateIP用来检测主备的存活状态,增强HA的强壮度的。
node5和node6作为后端的RS,提供真实服务。VIP的设置是因为使用LVS策略,需要直接对用户进行响应。
在每个主机/etc/hosts文件进行本地解析
node3 192.168.2.88
node4 192.168.2.89
node5 192.168.2.90
node6 192.168.2.93
在node3主机上进行安装配置:
# yum install piranha -y
# /etc/init.d/piranha-gui start 启动图形管理界面(开启的3636的web接口)
# netstat -antlp | grep httpd
tcp 0 0 :::3636 :::* LISTEN 2107/httpd
# piranha-passwd 设置图形管理密码
node4主机进行安装
# yum install piranha -y
piranha的相关配置文件
/etc/rc.d/init.d/piranha-gui 用来配置HA的
/etc/rc.d/init.d/pulse 用来启动piranha主进程
/etc/sysconfig/ha/conf/httpd.conf
/etc/sysconfig/ha/web/index.html
启动后在web界面进行配置:
http://192.168.2.88:3636 用户名piranha 密码登录
全局配置关闭
进行HA全局配置,设置主节点信息(私有IP是可选的,增强HA的健壮度)
设置BACKUP信息:
配置VIRTUAL SERVERS
添加服务:添加RS(node5和node6,权值是lvs的策略问题,用于不同负载主机的配置):
脚本配置(默认配置就可以):
启用RS和Virtual-Servers.
配置成功后的配置文件:
[root@node3 ha]# cat /etc/sysconfig/ha/lvs.cf
serial_no = 15
primary = 192.168.2.88
service = lvs
backup_active = 1
backup = 192.168.2.89
heartbeat = 1
heartbeat_port = 888
keepalive = 2
deadtime = 5
network = direct
debug_level = NONE
monitor_links = 1
syncdaemon = 0
virtual web {
active = 1
address = 192.168.2.83 eth0:1
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server node5 {
address = 192.168.2.90
active = 1
port = 80
weight = 1
}
server node6 {
address = 192.168.2.93
active = 1
port = 80
weight = 2
}
}
因为做的是高可用的负载均衡集群,因此node3和node4上之前已经安装了LVS,如果没有安装可以#yim install ipvsadm -y 进行安装。lvs具体的调度策略以及模式,请自行阅读,这里不做讲解。
HA平台搭建完毕,配置RS相关的设置
修改RS的arp和VIP
# vim /etc/sysconfig/arptables 两台rs都做相同的操作哦,因为VIP变化
*filter
:IN ACCEPT [0:0]
:OUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
[0:0] -A IN -d 192.168.2.83 -j DROP
[0:0] -A OUT -s 192.168.2.83 -j mangle --mangle-ip-s 192.168.2.90
COMMIT
# /etc/init.d/arptables_jf restart
#ifconfig eth0:1 192.168.2.83 netmask 255.255.255.255 up RS端配置VIP/32
注意:生产环境中,rs的配置中,vip必须开机启动哦!!
#/etc/init.d/httpd start 测试httpd服务
#chkconfig httpd on
启动HA端的pulse进程,并且同步HA的备机;
# /etc/init.d/pulse start (备机开启相同的服务)
#chkconfig pulse on
# scp lvs.cf node4:/etc/sysconfig/ha/
#tail -f /var/log/messages 查看HA详细日志
使用piranha搭建HA平台完毕。
测试:
负载均衡测试:
访问http://192.168.2.83 刷新出来node5和6的web页面
# ipvsadm -l
TCP 192.168.2.83:http rr
-> node5:http Route 1 0 6
-> node6:http Route 2 0 7
高可用测试:
关闭piranha主节点node3,node4会立即接管,访问服务,一切正常
(不过好像不支持回切功能)
(关闭包括关闭piranha主进程pulse或者主机关闭)
#给其中一节点崩溃内核试一试(#echo c > /proc/sysrq-trigger)
nanny对lvs后端检测测试:
关闭一个rs,观察服务的状态(发现piranha会自动检测到后台rs失败,将之剔除lvs策略表,只会提供正确的页面)
#ipvsadm -l
TCP 192.168.2.83:http rr
-> node6:http Route 2 0 21