红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

架构安排红帽(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,如图:红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

点击“Login”按钮,输入用户“piranha”和在77上运行piranha-passwd时设置的密码,如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

“确定”后,进入如下界面

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

在“GLOBAL SETTINGS”页,输入primary机的地址28.6.11.77,点击“Direct Routing”按钮,确保“Current type is”是direct,然后点击“ACCEPT”按钮保存设置。

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

在“REDUNDANCY”页,输入backup机的地址28.6.11.78,然后点击“ACCEPT”按钮保存设置。

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

在“VIRTUAL SERVERS”页,点击“ADD”按钮进行添加,如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

在“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)

 

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

在“REAL SERVER”页面,点击“ADD”按钮进行添加,如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

点击“EDIT”进行编辑,如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

输入如上内容,点击“ACCEPT”保存,点击“REALSERVER”标签,进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

点击“ADD”再添加,进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

选中新添加条目,并点击“EDIT”进行编辑,进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

输入如上内容,点击“ACCEPT”保存,点击“REALSERVER”标签,进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

选中“11.79”条目,点击“(DE)ACTIVATE”按钮,使用同样的方法激活11.80条目,结果如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

处于“UP”状态,才真正进入分发目标列表里面。

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

在“MONITORING SCRIPTS”采用默认设置。

 

点击“CONTROL/MONITORING”进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

点击“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”,见下图:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

最后点击“CONTROL/MONITORING”进入如下:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

点击“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的调度策略,如下的两个界面会以同等几率出现,如下:

界面一:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

界面二:

红帽(RedHat Linux)6.1之负载均衡(Load Balancer)配置实例

 

更进一步的测试,可以依次关闭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

相关推荐