部署 lvs
部署环境
LVS : 10.0.0.5
RS1节点 :10.0.0.3
RS1节点 :10.0.0.3
[root@LVS ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)
[root@LVS ~]# uname -a
Linux LVS 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@LVS ~]# uname -r
2.6.32-431.el6.x86_64
[root@LVS ~]#
#########################################################
#########################################################
下面在LVS下操作
1.做软连接
ls -ld /usr/src/kernels/`uname -r`/
ln -s /usr/src/kernels/`uname -r`/ /usr/src/linux
ls /usr/src/linux -l
=========================================================
[root@LVS ~]# ls -ld /usr/src/kernels/`uname -r`/
/usr/src/kernels/2.6.32-431.el6.x86_64/
[root@LVS ~]# ln -s /usr/src/kernels/`uname -r`/ /usr/src/linux
[root@LVS ~]# ls /usr/src/linux -l
lrwxrwxrwx. 1 root root 39 Oct 12 09:08 /usr/src/linux -> /usr/src/kernels/2.6.32-431.el6.x86_64/
说明:
如果第一步ls -ld /usr/src/kernels/`uname -r`/没有结果,那就用下面命令安装kernel
yum install kernel-devel -y
也可以不做ln做软连接,但是可以编译的时候需要指定kernel路径
2.下载安装LVS
lsmod | grep ip_vs
先查看是否有ip_vs模块,如果没有就继续安装
[ ! -d /home/lvnian/tools ] && mkdir /home/lvnian/tools -p
cd /home/lvnian/tools
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar xf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
yum install libnl* libpopt* -y
yum install popt-static -y
make
make install
lsmod | grep ip_vs
/sbin/ipvsadm (或者modprobe ip_vs(把命令放进内核的意思))
lsmod | grep ip_vs
##########################################################
安装完上面的ipvsadmin软件,以出现下面内容为安装正确
[root@LVS ipvsadm-1.26]# lsmod | grep ip_vs
ip_vs 125220 0
libcrc32c 1246 1 ip_vs
ipv6 317340 142 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6
[root@LVS ipvsadm-1.26]#
出现上面的内容才标明安装成功
错误解决:
故障1:
make后的故障如下
libipvs.c:1072: error: too many arguments to function ‘ipvs_nl_send_message’
make[1]: *** [libipvs.o] Error 1
make[1]: Leaving directory `/home/lvnian/tools/ipvsadm-1.26/libipvs‘
make: *** [libs] Error 2
解决
[root@LVS ipvsadm-1.26]# yum install libnl* libpopt* -y
=================================
故障2:
make后的故障如下
ipvsadm.c: In function ‘print_largenum’:
ipvsadm.c:1383: warning: field width should have type ‘int’, but argument 2 has type ‘size_t’
make: *** [ipvsadm.o] Error 1
解决:
[root@LVS ipvsadm-1.26] yum install popt-static -y
安装LVS小结
1、centos5.x 安装lvs使用1.24版本
2、centos6.x 使用1.26版本
3、安装lvs,要执行ipvsadm(modprobe ip_vs)把ip_vs模块加载到内核中
###########################################################################
###########################################################################
3.手工添加LVS转发
a、手工配置VIP
ifconfig eth0:10 10.0.0.100 netmask 255.255.255.0
ifconfig
=================
[root@LVS ~]# ifconfig eth0:10 10.0.0.100 netmask 255.255.255.0
[root@LVS ~]# ifconfig eth0:10
eth0:10 Link encap:Ethernet HWaddr 00:0C:29:04:9C:CB
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
##########
添加主机路由(不是必须的)
route add -host 10.0.0.100 dev eth0
route -n
=================
[root@LVS ~]# route add -host 10.0.0.100 dev eth0
[root@LVS ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.100 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.0.0.2 0.0.0.0 UG 0 0 0 eth0
[root@LVS ~]#
在客户端windows是PING 看能不能通
###########################################
b、手工执行配置添加lvs
ipvsadm -h
ipvsadm -C
ipvsadm --set 30 5 6 ##设置超时的命令,分别是 tcp tcpfin udp的超时
ipvsadm -A -t 10.0.0.100:80 -s rr -p 20
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.3 -g
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.4 -g -w 1
ipvsadm -L -n
ipvsadm -L -n --stats
上面的命令都是临时生效的,如果要永久生效,那就写脚本,放在让其开机自动生效
[root@LVS ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr persistent 20
-> 10.0.0.5:80 Route 1 0 0
-> 10.0.0.6:80 Route 1 0 0
[root@LVS ~]#
[root@LVS ~]# ipvsadm -d -t 10.0.0.100:80 -r 10.0.0.6
[root@LVS ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr persistent 20
-> 10.0.0.5:80 Route 1 0 0
[root@LVS ~]#
[root@LVS ~]# ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.6 -g -w 3
[root@LVS ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.0.0.100:80 rr persistent 20
-> 10.0.0.5:80 Route 1 0 0
-> 10.0.0.6:80 Route 3 0 0
[root@LVS ~]#
###########################################################################
###########################################################################
4、配置RS服务器
每台RS配置VIP
ifconfig lo:100 10.0.0.100 netmask 255.255.255.255 up
ifconfig lo:100
ifconfig
route add -host 10.0.0.100 dev lo
每台RS上抑制ARP响应
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
##############################################################
配置成功
这个实验,高可用功能实现效果很差,测试的时候可以用多台客户机测试,负载均衡方面还是挺不错的。
测试 结果
客户端1:(这服务器不能是lvs和RS)
[root@moban ~]# for n in `seq 100 `;do curl 10.0.0.100 ; sleep 5;done
10.0.0.4
10.0.0.4
...
客户端2:
客户端3:
本文出自 “奋斗吧” 博客,请务必保留此出处http://lvnian.blog.51cto.com/7155281/1701999
原文:http://lvnian.blog.51cto.com/7155281/1701999