一、 现状
轮询来实现的,这种方式不符合当前标准做法.
用业界标准的LVS 替换当前的DNS 轮询.
、系统设计
本方案将在5台服务器上实现具备负载均衡和高可用性的LVS, 使用的转发模式为直接路由, 使用的连接分配模式为源地址哈希(SH). 其中两台服务器作为负载均衡器,以实现高可用性, 另外三台服务器作为Real Server 提供 WEB 服务, 以实行负载均衡.
另外还将配置简单的GUI, 以实现对LVS的简单监控.
LVS 群集配置完成后, 需要在我们的DNS 服务器上配置相应的DNS 记录.
图3-1
、方案描述
Ø 本方案将在不增加任何硬件设备的条件下进行, 因此将把负载均衡器安装在两台提供其它服务的服务器上.
Ø 为达到很好的性能我们选用直接路由这种转发模式
Ø 为达到切实的负载均衡我们选用最少连接数这种连接分配模式.
Ø 使用成熟的LVS解决方案Ultramonkey(keepalived 也是不错的选择).
、负载分析
Ø 负载均衡器的系统负载: CPU 和内存使用量都很低
Ø 负载均衡器的网络负载: 网络流量很低
因此负载均衡器可以跟其它服务共用一台服务器的资源
、冗余设计
我们选用的这种配置(如图3-1所示)本身就具备冗余能力.
、IP 地址分配
功能类别 内网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
、安装应用软件时,必须有设备名称,软件版本,安装目录
设备名称 软件 安装目录
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 同上 同上
施工计划与时间
计划安排 |
预计完成时间(分钟) |
主要负责人 |
获取跟配置LVS相关的信息 |
30 |
邹可见 |
配置负载均衡器 |
60 |
邹可见 |
配置后端WEB 服务器 |
30 |
邹可见 |
验证LVS 集群 |
30 |
邹可见 |
配置LVS集群监控工具 |
30 |
邹可见 |
检查LVS集群监控工具的运行状况 |
15 |
邹可见 |
修改DNS记录 |
15 |
邹可见 |
再次验证LVS 集群 |
30 |
邹可见 |
操作步骤(详细到命令级别)
预估花费时间 |
预计开始时间-完成时间 |
实际开始时间-完成时间 |
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配置,将[url][/url]映射到VIP上。
11)在Master 负载均衡器上执行 ipvsadm –L –n 检查LVS 分发HTTP 请求的情况。
.本方案可能会引起的风险,包括极限风险和应变措施
风险:LVS 不稳定导致无法正常访问[url][/url]
应变措施:修改DNS 配置,恢复使用DNS 轮询。
、明确采用应急方案条件
在修改DNS 配置并且配置生效后,如果无法正常访问[url][/url],必须立即回滚。
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