注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 模拟Linux客户端远程登陆L..
 帮助

LVS 配置方案


2008-06-15 00:54:27
 标签:方案 LVS ultramonkey   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zoukejian.blog.51cto.com/131276/82081

一、  现状

目前网站的负载均衡和高可用性是通过DNS 轮询来实现的,这种方式不符合当前标准做法.

二、  目标

用业界标准的LVS 替换当前的DNS 轮询.

三、  总体方案

3.1、系统设计

本方案将在5台服务器上实现具备负载均衡和高可用性的LVS, 使用的转发模式为直接路由, 使用的连接分配模式为源地址哈希(SH). 其中两台服务器作为负载均衡器,以实现高可用性, 另外三台服务器作为Real Server 提供 WEB 服务, 以实行负载均衡.
另外还将配置简单的GUI, 以实现对LVS的简单监控.
LVS 群集配置完成后, 需要在我们的DNS 服务器上配置相应的DNS 记录.
 
                         
 3-1

3.2、方案描述

Ø 本方案将在不增加任何硬件设备的条件下进行, 因此将把负载均衡器安装在两台提供其它服务的服务器上.
Ø 为达到很好的性能我们选用直接路由这种转发模式
Ø 为达到切实的负载均衡我们选用最少连接数这种连接分配模式.
Ø 使用成熟的LVS解决方案Ultramonkeykeepalived 也是不错的选择).

3.3、负载分析

Ø 负载均衡器的系统负载: CPU 和内存使用量都很低
Ø 负载均衡器的网络负载: 网络流量很低
因此负载均衡器可以跟其它服务共用一台服务器的资源

3.4、冗余设计

       我们选用的这种配置(如图3-1所示)本身就具备冗余能力.

3.5IP 地址分配

功能类别        内网IP地址    公网 IP 地址    IP of lo:0 /VIP
WEB服务器1      192.168.1.1                   1.1.1.6
WEB服务器2      192.168.1.2                   1.1.1.6
WEB服务器3      192.168.1.3                   1.1.1.6
负载均衡器1     192.168.1.4    1.1.1.4 
   负载均衡器2     192.168.1.5    1.1.1.5

3.6、安装应用软件时,必须有设备名称,软件版本,安装目录

设备名称              软件                                              安装目录
web-svr-001         arptables-noarp-addr (rpm )      --
web-svr-002         同上                                               --
web-svr-003         同上                                               --
lb-svr-mst              heartbeat                                        --
                              heartbeat-ldirectord                       --
                              heartbeat-pils                                --
                              heartbeat-stonith                          --
                              ipvsadm                                        --
                              libnet                                            --
                              perl-Authen-SASL                       --
                              perl-Digest-HMAC                     --
                              perl-Digest-SHA1                       --
                              perl-IO-Socket-SSL                    --
                              perl-ldap                                      --
                              perl-Mail-IMAPClient                  --
                              perl-Net-DNS                              --
                              perl-Net-SSLeay                          --
                              perl-Parse-RecDescent                 --
                              (以上是rpm)                        
                              libart_lgpl                             /usr/local/libart
                              rrd-tool                                /usr/local/rrd-tool  
                              lvs-rrd                                 /var/www/html/lvs-rrd
                              (以上为tarball)
lb-svr-slv               同上                                    同上

四、  实施步骤

4.1施工计划与时间

计划安排
预计完成时间(分钟)
主要负责人
获取跟配置LVS相关的信息
30
邹可见
配置负载均衡器
60
邹可见
配置后端WEB 服务器
30
邹可见
验证LVS 集群
30
邹可见
配置LVS集群监控工具
30
邹可见
检查LVS集群监控工具的运行状况
15
邹可见
修改DNS记录
15
邹可见
再次验证LVS 集群
30
邹可见

4.2操作步骤(详细到命令级别)

预估花费时间
预计开始时间-完成时间
实际开始时间-完成时间
4小时
待定
 
 
 
1)  登录到将建立集群的每台服务器上,执行 uname –n 获取主机名。
 
2)  登录到将作为负载均衡器的两台服务器上,执行LB/script/install.sh 安装相关软件包并拷贝配置文件到/etc/ha.d目录下。

3)  修改其中一台负载均衡器上的/etc/ha.d 目录下的配置文件,并将修改后的配置文件拷贝到另外一台负载均衡器的/etc/ha.d目录下。

4)  启动两台负载均衡器上的/etc/init.d/heartbeat 服务:/etc/init.d/heartbeat start

5)  查看两台负载均衡器上的 /var/log/lvs.log 文件,确认它们工作正常。

6)  登录到三台后端WEB服务器上,执行RS/script/install.sh 安装相关软件包并进行配置,
RS/config/mytest.html 文件拷贝到 各台机的apache 文档目录下。

7)   Master 负载均衡器上执行 ipvsadm –L –n 确认 LVS 已经将三台后端WEB服务器加入到 Real Server Pool 中。
 
8)在两台负载均衡器上运行LB/script/install_mon.sh 安装监控软件lvs-rrd
 
9)修改lvs-rrd 的配置脚本 graph-lvs.sh lvs.rrd.update
 
10) 修改DNS配置,将www.domain.com映射到VIP上。
 
11)在Master 负载均衡器上执行 ipvsadm –L –n 检查LVS 分发HTTP 请求的情况。

五、应急和回滚方案

5.1.本方案可能会引起的风险,包括极限风险和应变措施

风险:LVS 不稳定导致无法正常访问www.domain.com
应变措施:修改DNS 配置,恢复使用DNS 轮询。

5.2、明确采用应急方案条件

在修改DNS 配置并且配置生效后,如果无法正常访问www.domain.com,必须立即回滚。

六、测试及验收

6.1施工人员测试方案

1、操作步骤详细到命令行级别
      查看LVS的连接情况: ipvsadm –L –n
      查看LVS的吞吐量情况: ipvsadm –L –n –rate
      查看LVS的统计信息: ipvsadm –L –n –stat
      如果上述步骤都返回正常信息,则检查LVS监控页面是否正常。
   WEB 浏览器中打开如下页面,检查是否能够看到LVS集群中各个服务器的 active connection inactive connection 情况。
2、明确结果正常或异常的条件
     如果看到三台WEB服务器的active connection 大体相同,则表示LVS 正常。
    反之,如果三台WEB服务器的active connection在很长一段时间内都相差悬殊,则需要作调整。
 
附:附件里面是排版工整的本文原件,和相关脚本。
 

本文出自 “邹可见” 博客,请务必保留此出处http://zoukejian.blog.51cto.com/131276/82081


附件下载:
  vs-config-part1
  vs-config-part2
  vs-config-part3




    文章评论
 
2008-06-15 21:13:17
好东东要顶~~

2008-06-15 21:14:51
方案很不错,不过主辅负载均衡器之间的裂脑现象如何避免呢?

2008-06-16 11:39:20
心跳检查(抢占式)可以避免裂脑。
当然,如果要求确实十分高,还可以同时使用串行口和以太口来做心跳检查。

2008-06-16 13:30:52
Good.

2008-06-17 09:54:27
好文章要顶..

2008-07-24 19:13:21
附件不能解压,好象少一个压缩文件,希望你提供一下.谢谢你了.

2008-07-24 19:26:45
能不能发到renxj88@foxmail.com
我好想学习一下linux的集群.

2008-07-24 22:45:19
下载下来之后,将压缩文件依次更名为1.rar, 2.rar, 3.rar ,然后就可以正常解压了。

2008-07-24 22:45:21
下载下来之后,将压缩文件依次更名为1.rar, 2.rar, 3.rar ,然后就可以正常解压了。

2008-07-25 20:09:32
谢谢您告诉我.
RS/config/mytest.html
LB/script/install_mon.sh
修改lvs-rrd 的配置脚本 graph-lvs.sh 和 lvs.rrd.update
这几个文件不能提供一下呢?(附件没有这些文件)
刚学习集群.研究一下您这个案例.
谢谢你.

2008-07-26 15:05:46
不好意思,先前的那些文件搞掉了,你可以去下面的网址下载:
http://www.sourcefiles.org/Monitoring/Network/lvs-rrd-v0.7.tar.gz.shtml

 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: