3.1修正realserver上可能的arp problem
注意的问题:这里所说的修正系统的arp problem主要是针对realserver使用linux操作系统,而且转发方式为VS/DR和VS/TUN的情况。这是因为在使用VS/DR和VS/TUN的时候,会需要一块网卡上绑定两个IP的情况,但linux在kernel 2.2.14以后就将eth0:1的NOARP FLAG关闭,这使得eth0:1仅仅是eth0的别名,任何对eth0:1的操作都对eth0有效,因此如果此时使eth0:1 NOARP,则也使得eth0 NOARP,这样整个网卡都不会收到数据包,所以要修正系统的arp problem,使eth0:1不响应arp请求,同时eth0仍能接受数据包。有关Arp问题的详细内容请参见:LVS-HOWTO-arp problem。
由表1可以看出对应不同的转发方式,realserver上可以使用的操作系统也是不同的,而linux和windows 2000 server则是所有转发方式都支持的操作系统,作者在本文中也是分别以这两种操作系统为例予以介绍。
修正realserver上可能的arp problem时,根据转发方式和操作系统的不同分为如下几种情况:
3.1.1 VS/NAT方式
不论操作系统选择linux还是windows 2000 server,对系统不需要做任何修改。
3.1.2 VS/DR和VS/TUN方式
realserver使用linux操作系统,对系统的修改如下:
1) 下载所需的软件包
从kernel ftp site得到standard kernel linux-2.4.18.tar.gz,;从Julian's patches and software page得到hidden-2.4.5-1.diff
2)重新编译内核,修正arp problem
把linux-2.4.18.tar.gz解压倒/usr/src目录,生成了/usr/src/linux目录;(如果生成的是/usr/src/linux-2.4.18*目录,则要在/usr/src下建立一个连接 ln ?s linux-2.4.18* linux)
把hidden-2.4.5-1.diff放到/usr/src/linux下,用命令patch -p1 < hidden-2.4.5-1.diff对kernel进行patch
进入/usr/src/linux目录,依次执行make mrproper、make menuconfig(可以把安装时的配置文件copy到/usr/src/linux中:cp /boot/config-2.4.* /usr/src/linux/.config,再编译)、make dep、 make clean、make bzImage、make modules、make modules_install
3)启用新内核(与2.4节相同)
realserver使用windows 2000 server操作系统
不需对系统本身作修改,但要在配置时(图5中步骤③)屏蔽arp响应,具体方法在3.2.2中介绍。
3.2 配置LVS
对LVS的配置分为在director上的设置和在realserver上的设置,而对于不同的转发方式:VS/NAT、VS/DR 、VS/TUN,这些设置也有所不同。
3.2.1使用VS/NAT方式
1)网络拓扑(如图6)
2)Director上执行的设置(以Telnet服务, 轮叫(rr)策略为例)
3)Realserver上的设置
⑴使用Linux操作系统,执行如下命令
⑵使用windows 2000 server操作系统,则只要把默认网关设置成192.168.1.9
3.2.2使用VS/DR方式
1)网络拓扑(如图7)
2)Director上执行的设置(以Telnet服务, 轮叫(rr)策略为例)
3)Realserver上的设置
⑴使用Linux操作系统(patch过hidden-2.4.5-1.diff),执行如下命令
⑵使用windows 2000 server操作系统
3.2.3使用VS/TUN方式
1)网络拓扑(如图8)
2)Director上执行的设置(以Telnet服务, 轮叫(rr)策略为例)
3)Realserver上的设置
⑴使用Linux操作系统(patch过hidden-2.4.5-1.diff),执行如下命令
⑵使用windows 2000 server操作系统
技巧:在上文设置过程中给出的命令都可以改写成符合init语法的标准脚本,并加入到/etc/init.d/rc.local中,这样在每次系统启动时都可以自动运行进行设置了。
4.总结
本文中所讨论的负载均衡其实只是集群应用中的一个方面,其它的集群应用还包括高性能计算集群、高可用性集群等,而每种应用都涉及到很多具体的技术,希望能和大家共同交流,一同推动集群技术的应用和发展。