利用红帽 Piranha 方案实现 WEB 负载均衡

实验平台  : rhel6.5 selinux&iptables disabled

实验目标  : 快速的搭建一个WEB高可用负载均衡解决方案

结构:
LVS�\ACTIVE:192.168.2.36(主机)
LVS�\BACKUP: 192.168.2.46 (备机)
LVS�\VIP:            192.168.2.111 (虚拟IP)
Realsever:        192.168.2.38,192.168.2.39(真实服务器)

一. Piranha 方案基本简绍.
1. Piranha 方案优点:
1.1 配置简洁高效:
配置简便一个 lvs.conf 配置文件即可搞定(类 keepalived 方案.)
 
1.2 WEB 配置界面.
WEB 配置对于那些不懂 LVS 配置的人员来说非常吸引力,你几乎只要花 15 分钟就可
以配置好一个完美的负载均衡及高可用性方案.
 
1.3    完整的功能:
主备 LVS (Load Balancer)的 Heartbeat 和 HA (pulse, send_arp)
Load Balancer 和 Real Server 间进程服务的 Heartbeat (nanny)
  IPVS 功能  (lvsd)
  IPVS 的管理  (ipvsadm)
 
2. Piranha 方案原理结构描述:
Piranha 方案是基于 LVS 基础上设计的一套负载均衡高可用解决方案.
LVS 运行在一对有相似配置的计算机上:
一个作为活动 LVS Router(Active LVS Router),
一个作为备份 LVS Router(Backup LVS Router)。
 
活动 LVS Router 服务有两个角色:
*  均衡负载到真实服务器上。
*  检查真实服务器提供的服务是否正常。
备份 LVS Router 用来监控活动的 LVS Router,
以备活动的 LVS Router 失败时由备份 LVS
Router 接管。
框架图:

wKiom1PllSbDvbbvAAIpzRGd07I940.jpg

●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 进程来调度客户端请求。 

3. Piranha 方案基本套件安装:
#yum install ipvsadm modcluster piranha system�\config�\cluster php php�\cli php�\common
4. 配置文件介绍:
/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.

二、piranha配置
配置主 LVS 服务器.
# vi /etc/sysctl.conf 找到下面行  //启用数据转发.
net.ipv4.ip_forward = 0 将 0  改成 1,net.ipv4.ip_forward = 1
执行如下命令来应用:sysctl �Cp
 
通过 WEB 界面配置 Piranha 服务.
# /etc/init.d/piranha�\gui start    //启动 Piranha 服务.
#piranha�\passwd    //设置密码,请设置你的 piranha 服务 WEB 配置登陆密码.
http://192.168.2.36:3636/    输入用户名: piranha  及刚才设置的密码登陆.
wKiom1PllpSi3LXiAAHwvQarpDA827.jpg

1、配置主lvs

wKiom1Pllx6jvMjGAAFbOW8giqU416.jpg

2.配置备份 LVS

wKioL1PlmGvRcy5GAAGPhQ4Fx7U976.jpg

3、配置vip

wKioL1PlmMuyWBOjAAHVfImEIBQ302.jpg

4、配置realserver

wKioL1PlmTuTFBbuAACKyMuYF8A091.jpg

wKioL1PlmTyzwsGxAAB-aS2fVkI101.jpg

5、激活服务

wKiom1PlmJeCGLKIAACoVTamxPE722.jpg

wKioL1PlmbLCEAx3AAD4QPh4eYc715.jpg

6.启动 LVS 服务 pulse
# /etc/init.d/pulse start
Starting pulse:                                                                                        [    OK    ]
      如果不报错,表示启动成功!
            到此 LVS 的服务器已经配置完成了启动两个程序   
6.1piranha�\gui    是用来配置 LVS 的
6.2pulse              是用来启动 LVS 的
7.  备份 LVS 安装与配置
     备份 LVS 安装同主 LVS 安装方法同样.直接将 lvs.conf 拷贝到相应的目录下:
     #scp    lvs.cf [email protected]:/etc/sysconfig/ha/
     # /etc/init.d/pulse start  启动服务即可. 

8、在主备机上添加ipvsadm规则

#ipvsadm -A -t 192.168.2.111:80 -s rr
#ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.38:80 -g
#ipvsadm -a -t 192.168.2.111:80 -r 192.168.2.39:80 -g
#/etc/init.d/ipvsadm save

9、配置 Realserver
配置arp机制

安装arptables_jf #yum install arptables_jf -y

在38和39上都添加虚拟IP和arptables策略

ifconfig eth0:1 192.168.2.111 netmask 255.255.255.255
 #arptables -A IN -d 192.168.2.111 -j DROP
 #arptables -A OUT -s 192.168.2.111 -j mangle  --mangle-ip-s 192.168.2.38
 #/etc/init.d/arptables_jf save
 #/etc/init.d/arptables_jf start
安装httpd并写测试文件

#yum install httpd -y

#echo `hostname` > /var/www/html/index.html

10、测试与分析

#ipvsadm -l

wKiom1Plm5axbBkJAAHjAuzrJu0910.jpg
停掉主机的pulse,备机就会接管!    ok!!

你可能感兴趣的:(ipvsadm,Pulse,Piranha)