红联Linux门户
Linux帮助

Linux LVS安装和配置笔记

发布时间:2015-04-22 17:17:48来源:linux网站作者:enweitech

1.升级内核至最新,我安装的是2.6.16.16

2.http://www.linuxvirtualserver.org/software/下载对应内核的ipvsadm-1.24-6源程序,ipvsadm-1.246.src.rpm,

rpmbuild –rebuild ipvsadm-1.24-6.src.rpm
rpm -ivh /usr/src/RedHat/RPMS/i386/ipvsadm-1.24-6.i386.rpm

3.测试ipvsadm 命令,得到结果如下:
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port          Forward Weight ActiveConn InActConn
4.WindowsXP+VMware-workstation-5.5.1-19175.exe,设定VM的虚拟网络,把VMnet0(Bridged)指定到主机网卡上.安装两个linux(或安装一个以后clone)
各系统的IP如下:
1). WindowsXP: 192.168.25.36
2). Linux1: 192.168.25.199  #这是真实的linux主机LvsServer
3). Linux2: 192.168.25.190  #虚拟主机01
4). Linux3: 192.168.25.191  #虚拟主机023个Linux系统分别简称为 LvsServer(192.168.25.199),01(192.168.25.190),02(192.168.25.191),加上原本的XP一 共有4个OS.先用ping测试一下网络,看看各个系统通不通。现在已经虚拟出3台主机(与真正主机没分别),可以正式配置LVS,使用直接路由DR方 式。
LvsServer的内核是升级过的(已集成IPVS).01/02的内核2.6.9.xx。用modprobe -l 命令可查看到IPVS module在 /lib/modules/2.6.12-12mdksmp/kernel/net/ipv4/ipvs中. ipvsadm运行时会自动把IPVS module挂载到系统中,到系统服务中查看ipvsadm是否已经加入.可以用lsmod查看系统当前所有挂载的module。分别在3个Linux系统中设置Virtual IP, 在RS上必须对VIP忽略ARP响应。,在2.6内核中通过调整内核参数忽略ARP广播回应。
下面是我用的2个脚本:
LvsServer上的脚本:
#!/bin/bash
VIP=192.168.25.200
RIP1=192.168.25.199
RIP2=192.168.25.190
RIP3=192.168.25.191
GW=192.168.25.1
# set the Virtual IP Address
/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev eth0:0
#Clear IPVS table
/sbin/ipvsadm -C
#set LVS
/sbin/ipvsadm -A -t $VIP:80 -s rr
/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -g
#Run LVS
/sbin/ipvsadm

#end01/02上的脚本:
#!/bin/bash
VIP=192.168.25.200
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
/sbin/route add -host $VIP dev lo:0
echo “1″ >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo “2″ >/proc/sys/net/ipv4/conf/lo/arp_announce
echo “1″ >/proc/sys/net/ipv4/conf/all/arp_ignore
echo “2″ >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p
#end LVS的配置大至上完成,返回到XP中,打开IE、firefox或者 Opera测试,然后切换到LvsServer上用 ipvsadm –L -c查看是否有连接。  附1:
对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望
对ipvsadm 的使用者有一定的帮助。
为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍
一下:
1,virtual-service-address:是指虚拟服务器的ip 地址
2,real-service-address:是指真实服务器的ip 地址
3,scheduler:调度方法
(lna@networksbase.com 翻译 ipvsadm v1.21
ipvsadm 的用法和格式如下:
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p
[timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm –set tcp tcpfin udp
ipvsadm –start-daemon state [–mcast-interface interface]
ipvsadm –stop-daemon
ipvsadm -h
命令选项解释:
有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可
以。
-A –add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也
就是增加一台新的虚拟服务器。
-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C –clear 清除内核虚拟服务器表中的所有记录。
-R –restore 恢复虚拟服务器规则
-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a –add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器
记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l –list 显示内核虚拟服务器表
-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)
–set tcp tcpfin udp 设置连接超时值
–start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说
明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的
VRRP 功能。
–stop-daemon 停止同步守护进程
-h –help 显示帮助信息
其他的选项:
-t –tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
[vip:port] or [real-server-ip:port]
-u –udp-service service-address 说明虚拟服务器提供的是udp 的服务
[vip:port] or [real-server-ip:port]
-f –fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s –scheduler scheduler 使用的调度算法,有这样几个选项
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默认的调度算法是: wlc.
-p –persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客
户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
-M –netmask netmask persistent granularity mask
-r –real-server server-address 真实的服务器[Real-Server:port]
-g –gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i –ipip 指定LVS 的工作模式为隧道模式
-m –masquerading 指定LVS 的工作模式为NAT 模式
-w –weight weight 真实服务器的权值
–mcast-interface interface 指定组播的同步接口
-c –connection 显示LVS 目前的连接 如:ipvsadm -L -c
–timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout
–daemon 显示同步守护进程状态
–stats 显示统计信息
–rate 显示速率信息
–sort 对虚拟服务器和真实服务器排序输出
–numeric -n 输出IP 地址和端口的数字形式


附1:
对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望
对ipvsadm 的使用者有一定的帮助。
为了更好的让大家理解这份命令手册,将手册里面用到的几个术语先简单的介绍
一下:
1,virtual-service-address:是指虚拟服务器的ip 地址
2,real-service-address:是指真实服务器的ip 地址
3,scheduler:调度方法
(lna@networksbase.com 翻译 ipvsadm v1.21 2004 年4 月)
ipvsadm 的用法和格式如下:
ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p
[timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f service-address]
ipvsadm –set tcp tcpfin udp
ipvsadm –start-daemon state [–mcast-interface interface]
ipvsadm –stop-daemon
ipvsadm -h
命令选项解释:
有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可
以。
-A –add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也
就是增加一台新的虚拟服务器。
-E –edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。
-D –delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。
-C –clear 清除内核虚拟服务器表中的所有记录。
-R –restore 恢复虚拟服务器规则
-S –save 保存虚拟服务器规则,输出为-R 选项可读的格式
-a –add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器
记录。也就是在一个虚拟服务器中增加一台新的真实服务器
-e –edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录
-d –delete-server 删除一条虚拟服务器记录中的某条真实服务器记录
-L|-l –list 显示内核虚拟服务器表
-Z –zero 虚拟服务表计数器清零(清空当前的连接数量等)
–set tcp tcpfin udp 设置连接超时值
–start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说
明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的
VRRP 功能。
–stop-daemon 停止同步守护进程
-h –help 显示帮助信息
其他的选项:
-t –tcp-service service-address 说明虚拟服务器提供的是tcp 的服务
[vip:port] or [real-server-ip:port]
-u –udp-service service-address 说明虚拟服务器提供的是udp 的服务
[vip:port] or [real-server-ip:port]
-f –fwmark-service fwmark 说明是经过iptables 标记过的服务类型。
-s –scheduler scheduler 使用的调度算法,有这样几个选项
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,
默认的调度算法是: wlc.
-p –persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客
户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
-M –netmask netmask persistent granularity mask
-r –real-server server-address 真实的服务器[Real-Server:port]
-g –gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)
-i –ipip 指定LVS 的工作模式为隧道模式
-m –masquerading 指定LVS 的工作模式为NAT 模式
-w –weight weight 真实服务器的权值
–mcast-interface interface 指定组播的同步接口
-c –connection 显示LVS 目前的连接 如:ipvsadm -L -c
–timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L –timeout
–daemon 显示同步守护进程状态
–stats 显示统计信息
–rate 显示速率信息
–sort 对虚拟服务器和真实服务器排序输出
–numeric -n 输出IP 地址和端口的数字形式


案例分析演示:配置Linux—LVS (DR)
 
DR模式配置
OS:  RedHat AS4U4 内核:2.6.9-42
Server1: 192.168.1.91 (负载服务器)
虚拟服务IP: 192.168.1.99
Realserver: 192.168.1.92 (集群服务器)
实验目的:
在负载服务器上,配置LVS(DR模式),做web服务器的集群。实现最终用户访问虚拟IP,负载服务器,将请求分发到集群下的服务器,由集群服务器轮流提供web服务。
Redhat AS4U4的内核版本已经集成了ipvsadm功能模块,所以不需要安装,直接使用即可。
如果要用高版本的ipvsadm, 到http://www.linuxvirtualserver.org/software/ 注意对应自己的内核版本ipvsadm-1.24.tar.gz
tar zxvf ipvsadm-1.24.tar.gz
cd ipvsadm-1.24
make
make install
注意在make时可能会出现很多错误的信息,请按照如下操作就可以心编译正常
ln -s /usr/src/kernels/2.6.9-22.EL-i686/ /usr/src/linux
一、负载服务器
编辑一个shell文件,执行后,即启用LVS功能。
vi  /tmp/lvs.sh
#!/bin/bash
vip=192.168.1.99
rs1=192.168.1.91
rs2=192.168.1.92
gw=192.168.1.1
#set virttual ip address
/sbin/ifconfig eth1:0 $vip broadcast $vip netmask 255.255.255.255 up
/sbin/route add -host $vip dev eth1:0
#clear ipvs tables
/sbin/ipvsadm -C
#set LVS  Server
/sbin/ipvsadm -A -t $vip:80 -s rr
/sbin/ipvsadm -a -t $vip:80 -r $rs1:80 -g
/sbin/ipvsadm -a -t $vip:80 -r $rs2:80 -g
#run lvs
/sbin/ipvsadm
因为此实验本负载服务器也提供web服务,所以要在/var/www/html下建立一个测试文件 index.html,然后service httpd start 启动http服务。
二、集群服务器
所有集群服务器忽略ARP回应,在每台群服务器上都要进行如下设置
vi /tmp/lvs.sh
#!/bin/bash
vip=192.168.1.99
/sbin/ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
/sbin/route add -host $vip dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl –p
在 /var/www/html 下新建立一个index.html测试文件,然后 service httpd start启动http服务。
三、测试
在客户端反复访问:http:.//192.168.1.99 如果能轮流显示出 192.168.1.91 和192.168.1.92的http测试文件,即LVS(DR模式)配置完成。