成都公司:成都市成华区建设南路160号1层9号
重庆公司:重庆市江北区红旗河沟华创商务大厦18楼
网络实战:LVS软件实现Linux集群
本文介绍了Linux下的cluster软件LVS,并举例介绍一个Linux下的cluster(集群)的安装和实现的详细过程。
在各种网络服务普遍应用的今天,随网络速度的提高以及用户的增加,在一些繁忙的场合,单凭一台机器已经无法就能应付所有的网络请求了。为了解决这个问题,许多用户就采用一组cluster(集群)来代替单一的机器。cluster可以将多台计算机连接起来协同运作以对外提供各种服务,比如Apache、FTP、 Mail等。
用LVS来架设一组cluster
在Linux上最常见的、也可能是运用最广泛的cluster方案就是LVS(Linux VirtualServer),很高兴LVS也是一个中国人创建和开发的开放源码项目。LVS自1998年开始,发展到现在已经是一个比较成熟的技术项目了。有许多比较著名网站和组织都在使用LVS架设的cluster,比如:www.linux.com、sourceforge.net、www.real.com等。

下面就开始介绍一下,笔者是如何利用LVS来架设一组cluster来对外提供Apache和FTP服务的。
安装操作系统
笔者选用的是Red Hat 9.0作为些cluster的director机器和所有real server机器的操作系统。RH的安装过程从略,笔者根据实际需要,只安装了少数的包。对于成批安装Linux,建议试试Kickstart来进入批理安装。
编译支持LVS的内核
LVS对Linux的kernel进行了修改和增加,所以要重新编译 linux kernel。我们先从http://www.linuxvirtualserver.org下载到LVS的内核补丁,对原有内核源代码进行更新,然后重新编译Linux的kernel。
下载LVS的内核补丁时要注意补丁版本要和kernel版本相一致,对于RH9.0,它的Linux核心版本是2.4.20,所以对应内核补丁应该是http://www.linuxvirtualserver.org/software/kernel-2.4/linux-2.4.20-ipvs-1.0.9.patch.gz
另外还有一个补丁是用来解决某些情况下ARP协议不能正常工作问题的,从http://www.ssi.bg/~ja/hidden-2.4.20pre10-1.diff下载。
把上面下载的两个补丁复制到/usr/src目录下,然后执行以下命令:
cd /usr/src
gzip -cd linux-2.4.20-ipvs-1.0.9.patch.gz
cd /usr/src/linux
patch -p1 < ../linux-2.4.20-ipvs-1.0.9.patch
patch -p1 < ../hidden-2.4.20pre10-1.diff
make mrproper
make menuconfig
执行make menuconfig时,我们将进入一个图形化的界面,在其中可以对Linux Kernel进行详细设置。与LVS相关的kernel选项都在“Networking options”中,进入“Networking options”,可以查看到“IP: Virtual Server Configuration”选项,将其它所有的子选项都选上:
<M> virtual server support (EXPERIMENTAL)
IP virtual server debugging
(12) IPVS connection table size (the Nth power of 2)
--- IPVS scheduler
<M> round-robin scheduling
<M> weighted round-robin scheduling
<M> least-connection scheduling scheduling
<M> weighted least-connection scheduling

<M> locality-based least-connection scheduling
<M> locality-based least-connection with replication scheduling
<M> destination hashing scheduling
<M> source hashing scheduling
<M> shortest expected delay scheduling
<M> never queue scheduling
--- IPVS application helper
<M> FTP protocol helper
另外,“Networking options”中的“IP: Netfilter Configuration"中的选项的所有子项,除了以下两项不要选之外,其它全可以选:
< > ipchains (2.2-style) support
< > ipfwadm (2.0-style) support
还有,“Networking options”中还有一些关于网络的选项,要注意按自己的需要去选择:
<*> Packet socket
[ ] Packet socket: mmapped IO
<*> Netlink device emulation
Network packet filtering (replaces ipchains)
Network packet filtering debugging
Socket Filtering
<*> Unix domain sockets
TCP/IP networking
IP: multicasting
IP: advanced router
IP: policy routing
[ ] IP: use netfilter MARK value as routing key
[ ] IP: fast network address translation
<M> IP: tunneling
本站推荐
- 1某企业移动通信系统网络建设落地后,成本到底节省了多少?
- 2客户用信息网络系统监理工程师做项目,选它值不值?
- 3数据通信工程师在客户网络搭建场景里是软件吗?能替代人工操作不?
- 4手机版网络通信工程软件,在偏远山区施工用它,复杂场景能 hold 住吗?
- 5客户真实应用:朋友学通信工程进大厂搞网络优化,邻居学软件工程做游戏开发赚大钱。报通信工程还是软件工程,哪个就业前景更广阔?
- 6客户搭建网络时,通信工程算硬件还是软件,选它能替代人工吗?
- 7客户搭建网络时,通信工程是硬件还是软件,咋判断合适不?
- 8客户搞网络升级,通信工程涉及系统集成吗?实测它能hold住复杂场景吗?
- 9客户建通信网络遇难题,通信工程分为系统和什么咋判断合适?

