IT运维专家网 联系我们: NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com 守住每一天: MSN: liuyubj520@hotmail.com 联系我们! 热情期待你的加入! 利用红帽Piranha方案实现WEB负载均衡 作者:NetSeek (IT运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明. 更新时间:2009‐01‐12 实验平台 : CentOS release 5.2 (Final) 实验目标 : 快速撑握和理解Piranha方案,并利用15分钟构建WEB高可用负载均衡解决方案. 结构: LVS‐ACTIVE:192.168.1.210 LVS‐BACKUP: 192.168.1.211 LVS‐VIP: 192.168.1.212 Realsever: 192.168.1.204,192.168.1.205 一.Piranha方案基本简绍. 1.Piranha方案优点: 1.1.1配置简洁高效: 配置简便一个lvs.conf配置文件即可搞定(类keepalived方案.) 1.1.2WEB配置界面. WEB配置对于那些不懂LVS配置的人员来说非常吸引力,你几乎只要花15分钟就可以配置好一个完美的负载均衡及高可用性方案. 1.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接管。 IT运维专家网 ¾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 联系我们: NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com 守住每一天: MSN: liuyubj520@hotmail.com 联系我们! 热情期待你的加入! IT运维专家网 4.配置文件介绍: /etc/sysconfig/ha/lvs.cf //由 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 –p 通过WEB界面配置Piranha服务. # /etc/init.d/piranha‐gui start //启动Piranha服务. #/usr/sbin/piranha‐passwd //设置密码,请设置你的piranha服务WEB配置登陆密码. 输入用户名: piranha 及刚才设置的密码登陆. 登陆后,选择Global Settings 这是对LVS的配置 Primary server public IP 输入公网IP:192.168.1.210,应用后按ACCEPT按钮保存设置。 通过WEB配置主LVS的信息 1.配置主LVS 2.配置备份LVS 联系我们: NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com 守住每一天: MSN: liuyubj520@hotmail.com 联系我们! 热情期待你的加入! IT运维专家网 1.配置添加LVS( VIP信息) 2.配置Realserver 联系我们: NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com 守住每一天: MSN: liuyubj520@hotmail.com 联系我们! 热情期待你的加入! IT运维专家网 联系我们: NetSeek: Gmail:cnseek@gmail.com msn:cnseek@msn.com 守住每一天: MSN: liuyubj520@hotmail.com 联系我们! 热情期待你的加入! 点击”编辑”添加具体的Realsever信息. 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 lvs.cf root@192.168.1.211:/etc/sysconfig/ha/ # /etc/init.d/pulse start 启动服务即可. 7.配置Realserver IT运维专家网 DR模式配置文件 ……........ ifconfig lo:0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP /sbin/route add ‐host $WEB_VIP dev lo:0 echo 1 /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 /proc/sys/net/ipv4/conf/lo/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_announce sysctl ‐p /dev/null 2&1 echo RealServer Start OK ……………………. Tunnel模式配置文件. …………………………………… ifconfig tunl0 $WEB_VIP netmask 255.255.255.255 broadcast $WEB_VIP /sbin/route add ‐host $WEB_VIP dev tunl0 echo 1 /proc/sys/net/ipv4/conf/tunl0/arp_ignore echo 2 /proc/sys/net/ipv4/conf/tunl0/arp_announce echo 1 /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 /proc/sys/net/ipv4/conf/all/arp_announce sysctl ‐p /dev/null 2&1 …………………………………………. 正确配置,并启动服务. 8.测试与日志分析. # ipvsadm –ln //查看LVS连接状态. IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags ‐ RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.212:80 wrr persistent 30 ‐ 192.168.1.204:80 Route 1 0