共计 5960 个字符,预计需要花费 15 分钟才能阅读完成。
红帽(RedHat Linux)6.1 之负载均衡(Load Balancer)配置实例
一 、 架构安排
准备 4 台 linux 机器,5 个 IP 地址:
28.6.11.81:对外公布 IP【访问 79 和 80 的 httpd 服务时使用 IP】
28.6.11.77:router 的 primary 服务器
28.6.11.78:router 的 backup 服务器
28.6.11.79:httpd 服务器
28.6.11.80:httpd 服务器
其中:
77 和 78 互为备份,同一时间只有一台在工作。77 和 78 两台正常的时候,77 负责转发;77 断掉,78 接替工作;77 恢复后,78 再次处于休眠状态。
79 和 80 上面运行有通过 IP 地址 81 最终要访问的服务 httpd。79 和 80 两台正常的时候,根据策略负载 httpd 服务请求,其中一台坏掉的时候,请求被转到另外一台正常的服务器上。坏掉的服务器恢复后,负载再次被流转到该服务器上。
二、配置 yum 库,安装【Load Balancer】组包
【在 primary 和 backup 机上都要安装【Load Balancer】组包】
在光驱中放入红帽 6.1 安装光盘,进行如下操作:
[root@linux1178 ha]# mount /dev/cdrom/media/cdrom
[root@linux1178 yum.repos.d]# pwd
/etc/yum.repos.d
[root@linux1178 yum.repos.d]# virhel-source.repo
[rhel-source-lvs] name=Red Hat Enterprise Linux $releasever -$basearch – Source-lvs baseurl=file:///media/cdrom/LoadBalancer enabled=1 gpgcheck=0 |
[root@linux1178 yum.repos.d]# yum grouplist
如果没有安装【LoadBalancer】,执行:
[root@linux1178 yum.repos.d]# yum -ygroupinstall “Load Balancer”
三、服务配置
77:
[root@linux1177 ~]# service piranha-gui start【Load Balancer 配置通过 IE 界面,启动该服务才能进行配置】
[root@linux1177 ~]# service pulse start【启动该服务才可以进行负载均衡】
[root@linux1177 ~]# service iptables stop
[root@linux1177 ~]# vi /etc/sysctl.conf
确保如下设置:
# Controls IP packet forwarding net.ipv4.ip_forward= 1 |
[root@linux1177 ~]#sysctl -p【使 sysctl.conf 文件里的值生效】
[root@linux1177 ~]# piranha-passwd【设置登录配置界面时密码】
78:
[root@linux1178 ~]# service piranha-gui start【Load Balancer 配置通过 IE 界面,启动该服务才能进行配置】
[root@linux1178 ~]# service pulse start【启动该服务才可以进行负载均衡】
[root@linux1178 ~]# service iptables stop
[root@linux1178 ~]# vi /etc/sysctl.conf
确保如下设置:
# Controls IP packet forwarding net.ipv4.ip_forward= 1 |
[root@linux1178 ~]#sysctl -p【使 sysctl.conf 文件里的值生效】
[root@linux1178 ~]# piranha-passwd【设置登录配置界面时密码】
79:
[root@linux1179 ~]# service httpd start
[root@linux1179 ~]# service iptables stop
[root@linux1179 ~]# iptables -f
[root@linux1179 ~]# iptables -L
[root@linux1179 ~]# iptables -t nat -A PREROUTING -p tcp -d 28.6.11.81 –dport 80 -j REDIRECT
[root@linux1179 ~]# service iptables status
确保有如下:
[root@linux1179 ~]# service iptables status Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 REDIRECT tcp — 0.0.0.0/0 28.6.11.81 tcp dpt:80 2 REDIRECT tcp — 0.0.0.0/0 28.6.11.81 tcp dpt:80 |
[root@linux1179 html]# echo “this is 79”>a.html
确认通过 IE:http://28.6.11.79/a.html 可以访问
80:
[root@linux1180 ~]# service httpd start
[root@linux1180 ~]# service iptables stop
[root@linux1180 ~]# iptables -f
[root@linux1180 ~]# iptables -L
[root@linux1180 ~]# iptables -t nat -A PREROUTING -p tcp -d 28.6.11.81 –dport 80 -j REDIRECT
[root@linux1180 ~]# service iptables status
确保有如下:
[root@linux1180 ~]# service iptables status Table: nat Chain PREROUTING (policy ACCEPT) num target prot opt source destination 1 REDIRECT tcp — 0.0.0.0/0 28.6.11.81 tcp dpt:80 2 REDIRECT tcp — 0.0.0.0/0 28.6.11.81 tcp dpt:80 |
[root@linux1180 html]# echo “this is 80”>a.html
确认通过 IE:http://28.6.11.80/a.html 可以访问
四、Piranha 配置
(一)primary 机 77 的配置
77 和 78 的配置基本相同,77 为 primary 机,先在 77 上配置然后在把配置文件拷贝到 78 上,再根据 78 的具体情况作相应的调整。
使用 IE 登录如下:http://28.6.11.77:3636,如图:
点击“Login”按钮,输入用户“piranha”和在 77 上运行 piranha-passwd 时设置的密码,如下:
“确定”后,进入如下界面
在“GLOBAL SETTINGS”页,输入 primary 机的地址 28.6.11.77,点击“Direct Routing”按钮,确保“Current type is”是 direct,然后点击“ACCEPT”按钮保存设置。
在“REDUNDANCY”页,输入 backup 机的地址 28.6.11.78,然后点击“ACCEPT”按钮保存设置。
在“VIRTUAL SERVERS”页,点击“ADD”按钮进行添加,如下:
在“VIRTUALSERVER”页,进行如上的设置,点击“ACCEPT”按钮保存设置。
注:“Scheduling”可以进行调度策略选择。
如果 28.6.11.77 这个地址是设在 eth0 上的,上图中的“Device”字段就设置为“eth0:1”,怎么检查 11.77 是配在 eth0 上看如下,如果不是需要相应修改。
[root@linux1177~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:50:56:A5:74:53 inet addr:28.6.11.77 Bcast:28.6.11.255 Mask:255.255.255.0 inet6 addr:fe80::250:56ff:fea5:7453/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:1647186 errors:0 dropped:0overruns:0 frame:0 TX packets:1278257 errors:0 dropped:0overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:770390855 (734.7 MiB) TX bytes:91967354 (87.7 MiB) |
在“REAL SERVER”页面,点击“ADD”按钮进行添加,如下:
点击“EDIT”进行编辑,如下:
输入如上内容,点击“ACCEPT”保存,点击“REALSERVER”标签,进入如下:
点击“ADD”再添加,进入如下:
选中新添加条目,并点击“EDIT”进行编辑,进入如下:
输入如上内容,点击“ACCEPT”保存,点击“REALSERVER”标签,进入如下:
选中“11.79”条目,点击“(DE)ACTIVATE”按钮,使用同样的方法激活 11.80 条目,结果如下:
处于“UP”状态,才真正进入分发目标列表里面。
在“MONITORING SCRIPTS”采用默认设置。
点击“CONTROL/MONITORING”进入如下:
点击“Update information now”按钮,把信息同步到 77 的配置文件 /etc/sysconfig/ha/lvs.cf 中。
如上内容配置完成后,重启 pulse 服务。
[root@linux1177 ~]#service pulse restart
(二)backup 机 78 的配置
把 primary 机 77 的 lvs.cf 文件拷贝到 78 的相同目录,重新启动 piranha-gui 服务,登录 http://28.6.11.78:3636,根据实际情况修改有关内容。
如下:
[root@linux1178 ~]# ifconfig eth0 eth0: error fetching interface information:Device not found [root@linux1178 ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr00:50:56:A5:0C:50 inet addr:28.6.11.78 Bcast:28.6.11.255 Mask:255.255.255.0 inet6 addr: fe80::250:56ff:fea5:c50/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36621 errors:0 dropped:0 overruns:0 frame:0 TX packets:14600 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:10089426 (9.6 MiB) TX bytes:1049130 (1.0 MiB) |
由上可知,28.6.11.78 是配在 eth1 上的,所以在“VIRTUALSERVER”页上的“Device”字段就设置为“eth1:1”,见下图:
最后点击“CONTROL/MONITORING”进入如下:
点击“Update information now”按钮,把信息同步到 78 的配置文件 /etc/sysconfig/ha/lvs.cf 中。
如上内容配置完成后,重启 pulse 服务。
[root@linux1178~]# service pulse restart
五、验证方法
使用浏览器【建议使用微软 IE】访问如下 URL:
http://28.6.11.81/a.html
根据 Round robin 的调度策略,如下的两个界面会以同等几率出现,如下:
界面一:
界面二:
更进一步的测试,可以依次关闭 77,78,79,80 四台机器中的一台机器,看 LoadBalancer 的表现,然后根据现象排查问题。
PS:
1、piranha-gui 服务为配置用,停掉也能进行 LB
2、Master server 和 backup server 上的 httpd 服务器停掉也能进行 LB
3、无论是 eth1:1 还是 eth0:1 的写法,采用的是同一块网卡配两个地址的方式,所以是 eth1 还是 eth0,对准了很准重要,否则会有如下提示:
Sep 22 16:44:34 linux1178 lvs[7400]:create_monitor for httpd/11.79 running as pid 7411 Sep 22 16:44:34 linux1178 lvs[7400]:create_monitor for httpd/11.80 running as pid 7412 Sep 22 16:44:34 linux1178 nanny[7412]:starting LVS client monitor for 28.6.11.81:80 -> 28.6.11.80:80 Sep 22 16:44:34 linux1178 nanny[7411]:starting LVS client monitor for 28.6.11.81:80 -> 28.6.11.79:80 Sep 22 16:44:34 linux1178 nanny[7412]: [active] making 28.6.11.80:80 available Sep 22 16:44:34 linux1178 nanny[7411]: [active] making 28.6.11.79:80 available Sep 22 16:44:34 linux1178 pulse[7405]:SIOCGIFBRDADDR failed: No such device Sep22 16:44:39 linux1178 pulse[7403]: gratuitous lvs arps finished |
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-11/137574.htm