1#
大 中
小 发表于 2008-8-23 00:19 只看该作者
LVS配置方法
引用:1.lvs server端
lvs server为lvs服务器.用来分发连接
如果使用RedHat9.需要将内核版本升级到2.4.28以上.
高版本的linux内核自带lvs而无需打lvs补丁.
A.编译内核
将 手工编译内核 目录下的linux-2.4.32.tar.gz解压至/usr/src下
#tar -zxf linux-2.4.32.tar.gz
将hidden-2.4.28-1.diff (http://www.ssi.bg/~ja/) 文件复制到/usr/src/linux-2.4.32下
#cp hidden-2.4.28-1.diff /usr/src/linux-2.4.32
#patch -p1 < hidden-2.4.28-1.diff
将kernelconfig复制到/usr/src/linux-2.4.32,保存为.config
#cp kernelconfig /usr/src/linux-2.4.32/.config
顺序执行
#make oldconfig
#make dep
#make
#make modules
#make modules_install
#make install
至此kernel更新完毕.
修改/boot/grub/grub.conf
#vi /boot/grub/grub.conf
将default=1修改为=0
重启服务器
B.配置虚拟IP(Virtual IP)
修改/etc/sysctl.conf
#vi /etc/sysctl.conf
加入以下参数
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 1
net.ipv4.conf.default.send_redirects = 1
net.ipv4.conf.eth0.send_redirects = 1
#cd /etc/sysconfig/network-scripts
复制ifcfg-lo为ifcfg-eth0:0
#cp ifcfg-lo ifcfg-eth0:0
#vi ifcfg-eth0:0
按照如下修改
DEVICE=eth0:0
IPADDR=192.168.220.2
#设置为虚拟IP(VIP)
ONBOOT=yes
NAME=loopback
C.安装ipvsadm
#cd /usr/src
#ln -s linux linux-2.4.32
将ipvsadm-1.21-11.tar.gz (http://www.linuxvirtualserver.org/)
解压到/usr/loca下,编译执行]
#cp ipvsadm-1.21-11.tar.gz /usr/local
#tar -zxf ipvsadm-1.21-11.tar.gz
#make
#make install
编辑配置文件
#vi /etc/sysconfig/ipvsadm
添加如下内容
-A -t 192.168.220.2:80 -s rr
-a -t 192.168.220.2:80 -r 192.168.220.3:80 -g -w 1
-a -t 192.168.220.2:80 -r 192.168.220.4:80 -g -w 1
第一条为VIP的地址以及负载均衡的算法
-s参数为选择负载均衡算法
* 轮叫调度(Round-Robin Scheduling)RR
* 加权轮叫调度(Weighted Round-Robin Scheduling)WRR
* 最小连接调度(Least-Connection Scheduling)LCS
* 加权最小连接调度(Weighted Least-Connection Scheduling)WLC
* 基于局部性的最少链接(Locality-Based Least Connections Scheduling)LLCS
* 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)LLCRS
* 目标地址散列调度(Destination Hashing Scheduling)DHS
* 源地址散列调度(Source Hashing Scheduling)SHS
后面为增加各个节点
-w参数为每个节点的权值
启动ipvsadm
#/etc/init.d/ipvsadm restart
查看ipvsadm是否生效
#ipvsadm
2.real server端
real server为提供实际服务的服务器.用来提供实际的服务
更新real server的kernel
这里我们必须先关闭real server上虚拟IP所在的网卡对arp的响应.这是因为在使用
VS/DR的时候,real server会在一块网卡上绑定两个IP,但linux在kernel 2.2.14以后
就将eth0:1的 NO ARP FLAG关闭,这使得eth0:1仅仅是eth0的别名,任何对eth0:
1的操作都对eth0有效,因此如果此时使eth0: 1 NOARP,则也使得eth0 NOARP,
这样整个网卡都不会收到数据包.
而如果都开放ARP,当该网段的LVS接收到用户对虚拟IP的TCP connection要求时,会先在网
段中利用Arp request询问谁有VIP的地址,而包含Director与Real Servers
上所有的interface,只要他有那个ip,都会发送arp reply回去,造成网段内所有拥
有 Virtual IP的interface都会reply给LVS,最后结果就是看谁的速度快,LVS就将
该封包送给谁,如此会造成LVS的 Server并无法发挥其效果,而我们所希望的是只有Direct
or上的Virtual IP发送arp reply回去,因此需要利用hidden这个pattch,将real
server上的Virtual IP给隐藏起来,如此他就不会对Arp Request进行Reply,就可以解决AR
P 的问题.具体步骤是:
A.编译内核
将 手工编译内核 目录下的linux-2.4.32.tar.gz解压至/usr/src下
#tar -zxf linux-2.4.32.tar.gz
将hidden-2.4.28-1.diff (http://www.ssi.bg/~ja/) 文件复制到/usr/src/linux-2.4.32下
#cp hidden-2.4.28-1.diff /usr/src/linux-2.4.32
#patch -p1 < hidden-2.4.28-1.diff
将kernelconfig复制到/usr/src/linux-2.4.32,保存为.config
#cp kernelconfig /usr/src/linux-2.4.32/.config
顺序执行
#make oldconfig
#make dep
#make
#make modules
#make modules_install
#make install
至此kernel更新完毕.
修改/boot/grub/grub.conf
#vi /boot/grub/grub.conf
将default=1修改为=0
重启服务器
B.增加虚拟IP
#vi /etc/sysctl.conf
加入以下参数
net.ipv4.ip_forward = 0
net.ipv4.conf.all.hidden = 1
net.ipv4.conf.lo.hidden = 1
#cd /etc/sysconfig/network-scripts
#cp ifcfg-lo ifcfg-lo:0
#vi ifcfg-lo:0
按照如下修改
DEVICE=lo:0
IPADDR=192.168.220.2
#修改为虚拟IP(VIP)
NETMASK=255.255.255.255
ONBOOT=yes
NAME=loopback
C.验证LVS生效方法
先清空本地PC(windows)的ARP
arp -d *
ping real server的IP
使用arp -a查看几台real server节点的mac地址
使用IE访问LVS服务器
查看arp,如果虚拟IP对应的MAC地址与real server的不同.则说明lvs生效
服务控制位于/etc/init.d/ipvsadm
软件位于/usr/local/sbin/ipvsadm
配置位于/etc/sysconfig/ipvsadm
注意:
对于cisco的交换机
LVS可能会因为虚拟IP导致系统有两个重复的网关而无法正常工作
需要ifdown虚拟网卡并且手工ifup此网卡
3 Windows Real Server
增加MS Lookback Adapter
Windows服务器也可以做为RealServer,前提是必须安装MS Lookback Adapter。
你可以选择添加新硬件,添加网络适配器,选择Microsoft,选择Lookback Adapter。
然后添加VIP (Virtual IP)地址在MS Loopback Adapter上,
不要输入网关gateway IP地址。子网掩码 255.255.255.255 但在MS NT/2K/XP会被认为是无效的。
可以有以下解决方法:
在MS NT/2K/XP中,网络界面(interfaces)在:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
找到适当的网络界面IP地址,修改subnetMask子网掩码,(注意修改方式)
不需要重启,只需重新激活该网络界面即可。
空间出租:P4 3.0+1G+RIAD 1 160G+PHP+IIS+MYSQL+MDaemon
QQ:126682182
Email:hhyisw@163.com
Home:http://www.stksky.com
|