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

jopen 10年前

系统环境: RHEL6.5x86_64 small install selinux and iptables disabled

Virtual IP             192.168.2.253

192.168.2.162    server62.exampl.com     (主节点)

192.168.2.163    server63.example.com(备用节点)

192.168.2.52      desktop52.example.com(real server)

192.168.2.53      desktop53.example.com(real server)

编辑/etc/hoststs做以上解析

一. 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 接管。

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 配置 

通过 WEB 界面配置 Piranha 服务. 

# /etc/init.d/piranha‐ gui start    //启动 Piranha 服务. 

#/usr/sbin/piranha‐ passwd    //设置密码,请设置你的 piranha 服务 WEB 配置登陆密码. 

http://192.168.2.162:3636    //输入用户名: piranha  及刚才设置的密码登陆. 

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

登陆后,选择 Global Settings  这是对 LVS 的配置 

Primary server public IP  输入公网 IP:192.168.2.162,应用后按 ACCEPT 按钮保存设置。 

通过 WEB 配置主 LVS 的信息 

1. 配置主 LVS 

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

2.配置备份 LVS 

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

3. 配置添加 LVS( VIP 信息) 

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

4. 配置 Realserver 

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

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

 启动节点

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

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

5.启动 LVS 服务 pulse 

# /etc/init.d/pulse start 

Starting pulse:                                                                                        [    OK    ] 

如果不报错,表示启动成功! 

到此 LVS 的服务器已经配置完成了启动两个程序   

1、piranha‐gui    是用来配置 LVS 的 

2、pulse              是用来启动 LVS 的 
     
  6.    备份 LVS 安装与配置 

备份 LVS 安装同主 LVS 安装方法同样.直接将 lvs.conf 拷贝到相应的目录下: 

#scp    /etc/sysconfig/ha/lvs.cf root@192.168.2.163:/etc/sysconfig/ha/ 

# /etc/init.d/pulse start  启动服务即可. 

7. 配置 Realserver 

#yum install -y arptables_jf

#ifconfig eth0:1 192.168.2.253 netmask 255.255.255.255

#arptables -A IN -d 192.168.2.253 -j DROP

#arptables -A OUT -s 192.168.2.253 -j mangle --mangle-ip-s 192.168.2.53

#service arptables_jf save

以上操作会自动生成文件/etc/sysconfig/arptables

#cd /var/www/html/        //进入Apache默认发布目录

#echo `hostname` >  index.html

#service httpd start        //启动Apache服务

测试:

1).访问虚拟ip查看能否访问到两台realserver节点的httpd服务。刷新页面显示不同内容,说明实现了轮转循环。

2).停掉负载主节点的pulse服务,备用节点自动接管任务。

3).交替stop掉或者全部stop掉两台realserver的httpd服务,查看转发列表的变化。

来自:http://my.oschina.net/leeypp1/blog/295055