http://zoukejian.blog.51cto.com/131276/82081
http://wangxiang2010.blog.51cto.com/287785/310886
linux 下面的LVS+HEARTBEAT
原来对LVS和HEARTBEAT连个技术有点模糊概念,感觉都一样,是不是有点重复。
这里重点再解释一下,LVS是用于实现负载均衡功能,简单点说,当两台机器做服务的双机备份时候,客户访问一个服务,而二台服务器都正常运行,那来访问的数据请求会被平均的分到两台服务器上,而不会都集中到一台服务器上。
HEARTBEAT心跳技术是来检测两台服务器是否正常提供服务,如果有一台出现问题,则将所有服务请求发送到一台好的服务器上。
需要安装的软件:
LVS是由linux内核提供的一项服务,新的LINUX内核才提供这项服务,所以需要确认LINUX操作系统的内核型号,另外还需要安装ipvsadm软件。
uname -a 可以查看LINUX操作系统的内核型号
[root@bogon ha.d]# uname -a
Linux bogon 2.6.9-22.EL #1 Mon Sep 19 18:20:28 EDT 2005 i686 i686 i386 GNU/Linux
这里Linux bogon 2.6.9-22.EL内核提供负载均衡功能,所以无需调整内核和软件,只需要下载ipvsadm软件,ipvsadm-1.24-6.src.rpm
rpm -ivh ipvsadm-1.24-6.src.rpm
然后locate ipvsadm
查到目录后,再进入目录 make make install
安装结束后,使用ipvsadm -v确认安装成功
[root@bogon test]# ipvsadm -v
ipvsadm v1.24 2005/12/10 (compiled with popt and IPVS v1.2.0)
安装heartbeat
rpm -Uvh libnet-1.1.2.1-1.rh.el.um.1.i386.rpm
rpm -Uvh heartbeat-pils-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-stonith-2.0.4-1.el4.i386.rpm
rpm -Uvh heartbeat-2.0.4-1.el4.i386.rpm
rpm -Uvh ipvsadm-1.24-5.i386.rpm
直接安装,我是从这个地址下载的 http://www.ultramonkey.org/download/heartbeat/2.0.4/rhel4/
下一节直接讲配置和测试,如何有问题,请直接留言。
LVS 配置方案
一、 现状
目前网站的负载均衡和高可用性是通过DNS
轮询来实现的,这种方式不符合当前标准做法.
二、 目标
用业界标准的LVS 替换当前的DNS 轮询.
三、 总体方案
3.1、系统设计
本方案将在5台服务器上实现具备负载均衡和高可用性的LVS, 使用的转发模式为直接路由, 使用的连接分配模式为源地址哈希(SH). 其中两台服务器作为负载均衡器,以实现高可用性, 另外三台服务器作为Real Server 提供 WEB 服务, 以实行负载均衡.
另外还将配置简单的GUI, 以实现对LVS的简单监控.
LVS 群集配置完成后, 需要在我们的DNS 服务器上配置相应的DNS 记录.
图3-1
3.2、方案描述
Ø
本方案将在不增加任何硬件设备的条件下进行, 因此将把负载均衡器安装在两台提供其它服务的服务器上.
Ø
为达到很好的性能我们选用直接路由这种转发模式
Ø
为达到切实的负载均衡我们选用最少连接数这种连接分配模式.
Ø
使用成熟的LVS解决方案Ultramonkey(keepalived 也是不错的选择).
3.3、负载分析
Ø
负载均衡器的系统负载: CPU 和内存使用量都很低
Ø
负载均衡器的网络负载: 网络流量很低
因此负载均衡器可以跟其它服务共用一台服务器的资源
3.4、冗余设计
我们选用的这种配置(如图3-1所示)本身就具备冗余能力.
3.5、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
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配置,将[url]www.domain.com[/url]映射到VIP上。
11)在Master 负载均衡器上执行 ipvsadm –L –n 检查LVS 分发HTTP 请求的情况。
五、应急和回滚方案
5.1.本方案可能会引起的风险,包括极限风险和应变措施
风险:LVS 不稳定导致无法正常访问[url]www.domain.com[/url]
应变措施:修改DNS 配置,恢复使用DNS 轮询。
5.2、明确采用应急方案条件
在修改DNS 配置并且配置生效后,如果无法正常访问[url]www.domain.com[/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