您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 利用红帽Piranha方案实现WEB负载均衡
作者:NetSeek(IT运维专家网|集群架构|性能调优)欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明.更新时间:2009-01-12实验平台:CentOSrelease5.2(Final)实验目标:快速撑握和理解Piranha方案,并利用15分钟构建WEB高可用负载均衡解决方案.结构:LVS-ACTIVE:192.168.1.210LVS-BACKUP:192.168.1.211LVS-VIP:192.168.1.212Realsever: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(LoadBalancer)的Heartbeat和HA(pulse,send_arp)LoadBalancer和RealServer间进程服务的Heartbeat(nanny)IPVS功能(lvsd)IPVS的管理(ipvsadm)2.Piranha方案原理结构描述:Piranha方案是基于LVS基础上设计的一套负载均衡高可用解决方案.LVS运行在一对有相似配置的计算机上:一个作为活动LVSRouter(ActiveLVSRouter),一个作为备份LVSRouter(BackupLVSRouter)。活动LVSRouter服务有两个角色:*均衡负载到真实服务器上。*检查真实服务器提供的服务是否正常。备份LVSRouter用来监控活动的LVSRouter,以备活动的LVSRouter失败时由备份LVSRouter接管。Pulse:Pulse进程运行在活动LVSRouter和备份LVSRouter上。在备份LVSRouter上,pulse发送一个心跳(heartbeat)到活动LVSRouter的公网接口上以检查活动LVSRouter是否正常。在活动LVSRouter上,pulse启动lvs进程并响应来自于备份LVSRouter的心跳。lvsd:lvs进程调用ipvsadm工具去配置和维护IPVS路由表,并为每一个在真实服务器上的虚拟服务启动一个nanny进程。nanny:每一个nanny进程去检查真实服务器上的虚拟服务状态,并将故障情况通知lvs进程。假如一个故障被发现,lvs进程通知ipvsadm在IPVS路由表中将此节点删除。send_arp:如果备份LVSRouter未收到来自于活动LVSRouter的响应,它将调用send_arp将虚拟IP地址再分配到备份LVSRouter的公网接口上。并在公网接口和局域网接口上分别发送一个命令去关掉活动LVSRouter上的lvs进程。同时启动自己的lvs进程来调度客户端请求。3.Piranha方案基本套件安装:[Copytoclipboard][-]CODE:#yuminstallipvsadmmodclusterpiranhasystem-config-clusterphpphp-cliphp-common4.配置文件介绍:/etc/sysconfig/ha/lvs.cf//由界面配置的配置文件写入此文件./etc/init.d/piranha-guistart//启动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-guistart//启动Piranha服务.#/usr/sbin/piranha-passwd//设置密码,请设置你的piranha服务WEB配置登陆密码.输入用户名:piranha及刚才设置的密码登陆.登陆后,选择GlobalSettings这是对LVS的配置PrimaryserverpublicIP输入公网IP:192.168.1.210,应用后按ACCEPT按钮保存设置。通过WEB配置主LVS的信息1.配置主份LVS2.配置备份LVS3.配置添加LVS(VIP信息)4.配置Realserver点击”编辑”添加具体的Realsever信息.5.启动LVS服务pulse[Copytoclipboard][-]CODE:#/etc/init.d/pulsestartStartingpulse:[OK]如果不报错,表示启动成功!到此LVS的服务器已经配置完成了启动两个程序1、piranha-gui是用来配置LVS的2、pulse是用来启动LVS的6.备份LVS安装与配置备份LVS安装同主LVS安装方法同样.直接将lvs.conf拷贝到相应的目录下:#scplvs.cfroot@192.168.1.211:/etc/sysconfig/ha/#/etc/init.d/pulsestart启动服务即可.7.配置RealserverDR模式配置文件……........[Copytoclipboard][-]CODE:ifconfiglo:0$WEB_VIPnetmask255.255.255.255broadcast$WEB_VIP/sbin/routeadd-host$WEB_VIPdevlo:0echo1/proc/sys/net/ipv4/conf/lo/arp_ignoreecho2/proc/sys/net/ipv4/conf/lo/arp_announceecho1/proc/sys/net/ipv4/conf/all/arp_ignoreecho2/proc/sys/net/ipv4/conf/all/arp_announcesysctl-p/dev/null2&1echoRealServerStartOK…………………….Tunnel模式配置文件.……………………………………[Copytoclipboard][-]CODE:ifconfigtunl0$WEB_VIPnetmask255.255.255.255broadcast$WEB_VIP/sbin/routeadd-host$WEB_VIPdevtunl0echo1/proc/sys/net/ipv4/conf/tunl0/arp_ignoreecho2/proc/sys/net/ipv4/conf/tunl0/arp_announceecho1/proc/sys/net/ipv4/conf/all/arp_ignoreecho2/proc/sys/net/ipv4/conf/all/arp_announcesysctl-p/dev/null2&1………………………………………….正确配置,并启动服务.8.测试与日志分析.#ipvsadm–ln//查看LVS连接状态.[Copytoclipboard][-]CODE:IPVirtualServerversion1.2.1(size=4096)ProtLocalAddressortSchedulerFlags-RemoteAddressortForwardWeightActiveConnInActConnTCP192.168.1.212:80wrrpersistent30-192.168.1.204:80Route100-192.168.1.205:80Route100#tail-f/var/log/messages【注】服务切换测试:停掉主LVS服务上的pulse查看master是否能正常接管.测试过程中多注意分析日志.在Linuxtone网站编写heartbeat+lvs方案的时候还需要自己送一个arping命令告诉网关我的MAC发生变化了.但是Piranha方案能自动送一个arp命令.三.LVS配置文件详解及相关技巧介绍1.lvs.conf配置及详解:修改Piranha登陆用户名及监听端口?启动/etc/init.d/piranha-gui,实际上是执行如下配置文件./usr/sbin/piranha_gui-f/etc/sysconfig/ha/conf/httpd.conf#cd/etc/sysconfig/ha下目录介绍.lvs.cf//Piranha方案实现LVS核心配置文件.conf/{httpd.conf,piranha.passwd}//apache及认证相关文件.web///此目录下存放WEB配置界面的PHP相关程序,如果想对WEB界面美化,请修改文件.mdules///apache一些相关模块.#vi/etc/sysconfig/ha/conf/httpd.conf(将原端口3636改为81,你也可以自定义此端口)默认WEB界面是能过piranha账号登陆,如何创建自己定义的账号登陆呢?[Copytoclipboard][-]CODE:#htpasswd-c/etc/sysconfig/ha/conf/lvs.passnetseek//上述命令是添加用户netseek,并将账号信息写入lvs.pass这个文件.#vi/etc/sysconfig/ha/conf/httpd.conf#/etc/init.d/piranha-guirestart重启服务即可生效.上述技巧只是简单的抛砖引玉,你可以修改WEB服务的PHP相关程序,添加一些流量或者WEB连接状态监控的代码.还可以自己给apache添加一些你自己写的模块,总之你可以再现有的piranha上做很多的改造去实现你想要的更完美的系统.更多技巧请实时关注:负载均衡版块.3.如果启动/etc/init.d/piranha-guistart若遇到以下错误提示:[Copytoclipboard][-]CODE:Startingpiranha-gui:(13)Permissiondenied:make_sock:couldnotbindtoaddress[::]:3636关闭掉selinux跟firewall一.相关参考文档1.LVS高可用性方案汇总[Linuxtone为您提供了各种高可用负载均衡解决方案2.LVS连接状态监控3.Piranha官方参考文档推荐阅读本文基于开源分享精神之上方便大家理解和了解红帽Piranha方案,希望能快速帮你解决工作中的一些问题,如有不足之处请见谅!同时欢迎各位对WEB架构,集群规划等相关的感兴趣的朋友请来加入Linuxtone这个社区。我们热情期待你的加入!运维专家网!自由+平等+互助+友爱=分享快乐!下载PDF文档(方便阅读):利用红帽Piranha方案实现WEB负载均衡.pdf(376.66KB)lvs.conf配置文件详解下载:lvs.rar(1.56KB)
本文标题:利用红帽Piranha方案实现WEB负载均衡
链接地址:https://www.777doc.com/doc-6312550 .html