手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网站运营>建站经验>列表

在Linux下构造高性能、高可用、高可伸缩性的服务集群(一)

来源:互联网 作者:west263.com 时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
1.2.2. Ldirectord

"ldirectord"(Linux Director Daemon)是Jacob Rief编程实现的一个单独进程,以实现对服务和物理服务器的监测,广泛地用于http和https等服务, Ldirectord和mon相比,长处如下:

  1. ldirectord是专门为LVS 监控而编写的。
  2. ldirectored能够方便地被heartbeat管理启动和停止。
  3. 他能从heartbeat的配置文档/etc/ha.d/xxx.cf中读取任何有关IPVS路由表配置的信息。当 ldirectord 运行后,IPVS路由表将被适当地配置。您也能够将不同的虚拟服务器配置保存在不同的配置文档里, 所以您能够单独修改某种服务的参数而不用停止其他的服务
  4. 另外,ldirectord安装简便,能够手工地启动和停止。您能够在没有备份负载均衡器的LVS集群上使用。

1.2.3. ldirectord heartbeat的绝妙组合

ldirectord heartbeat方案前端负载调度器采用双机热备份方式,双机均安装双网卡,一个网卡用于连接集群系统,另一个作为冗余心 跳线路连接双机。采用串口线 + 以太网口做为冗余心跳线路,以确保双机热备份的可靠性,消除由于主负载调度器或心跳线故障带来的集群单点故障。

在主负载调度器及备份负载调度器同时安装ldirectord及heartbeat,并同时运行Heartbeat,相互监控"健康"状况,一旦备 份负载调度器监测到主负载调度器发生故障,备份服务器通过运行shell脚本来启动备份调度器上服务来完成虚拟 IP 故障转移,通过ipvsadm启动LVS及ldirectord,完成负载调度器的整体接管。一旦主负载调度器恢复正常工作,备份负载将通过脚本停掉备份 负载调度器上的LVS及ldirectord,同时完成虚拟 IP 故障转移,主负载调度器重新恢复接管LVS及ldirectord监控服务。这样负载调度器就完成了一个标准的接管及恢复过程。

该方案结构清楚明了,安装简便,并且ldirectord是专门为LVS所研发,针对性强,无缝衔接,配合默契,堪称绝妙组合。

2. LVS在Red Hat 9.0上的具体实现

2.1. 实现目标:

实现以常用、效率最高的LVS-DR IP负载技术为基础,以高可用性(HA)+ 高性能 + 高性能/价格比 + 高可伸缩性为最终目的。负载均衡器采用HA技术构架,采用Heartbeat软件包,heartbeat采用串口、网络口冗余线路,确保24X7不间断运 行。结构如图:

Setup LVS using LVS-DR forwarding



________
| |
| client |
|________|
CIP= SGW =192.168.7.254/24 (eth0)
|
|
eth1 __________ |
192.168.0.1 | director | |
--------| primiary |---| DIP=192.168.7.9/24 (eth0)
| |__________| |
| ttyS0| |
|heartbeat | |
|backup | | VIP=192.168.7.110/32 (eth0:0)*
| ttyS0| |
| _____|____ |
| | director | |
--------| backup |---| DIP=192.168.7.10/24 (eth0)
eth1 |__________| |
192.168.0.2 |
|
|
|
|
-----------------------------------
| |
| |
RIP=192.168.7.11/24 (eth0) RIP=192.168.7.12/24 (eth0)
VIP=192.168.7.110/32 (lo:0) VIP=192.168.7.110/32 (lo:0)
____________ ____________
| | | |
| realserver | ----------- | realserver |
|____________| |____________|



2.2. 设备需要:

因为负载均衡器和真实服务器节点均有软件和硬件冗余保障,所以硬件设备能够根据具体资金情况及提供服务规模而定。当然最好采用支持RAID,SCSI, 内存ECC校验,热插拔等技术的专用服务器,以提供稳定高效的服务。对于非关键业务服务,也能够考虑采用最新支持IDE RAID(0,1,0+1,1.5,5)的服务器,能够获得一个良好的性能/价格比。当然,假如您是个对硬件技术细节很熟悉,说话又有分量,对自己非 常有信心,敢冒风险,崇尚节约、实用性的人,那么DIY一组高性价比的服务器集群,也是一件很有意义而且充满乐趣的工作。

2.3.原始软件环境:

Red Hat 9.0 完全安装
Red Hat 9.0 (kernel-2.4.20-8 ) gcc -3.2.2-5

假如您使用的是Red Hat 8 ,那么您很幸运。Red Hat 8 (kernel-2.4.18-14)已预先打了ipvs的补丁,在预安装的内核中已将ipvs编译成模块,能够通过检查 /lib/modules/2.4.18-14/kernel/net/ipv4/ipvs 是否存在来判断。能够直接安装ipvsadm。从Red Hat 9 (kernel-2.4.20-8),Red Hat 取消了ipvs的补丁及预编译ipvs为模块的内核,且Red Hat 9 自带的kernel-2.4.20-8的内核无法通过ipvs补丁linux-2.4.20-ipvs-1.0.9 .patch.gz的编译,至少在我的两台P4的机器上都没有通过编译。标准内核linux-2.4.20.tar.gz则能够通过编译。所以我们将采用 www.kernel.org上的标准内核kernel-2.4.20.tar.gz来构造我们的集群系统。

2.4.需下载软件包:

# Linux kernel
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.20.tar.gz

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!