...
分类: LINUX
2012-02-17 20:27:02
LVS1-DR-Master 192.168.50.17
LVS2-DR-BACKUP 192.168.50.18
LVS-DR-VIP 192.168.50.33
WEB1-Realserver 192.168.50.56
WEB2-Realserver 192.168.50.57
2、架构图(1),图中所有机器都连在一台交换机上,这也是lvs中最简单的架构,只能保证lvs前端和后台realserver消除单点故障,但交换机的单点故障没有消除。为消除交换机单点故障,图(2)给了一份更为完美的架构。
架构图(2),图中所有机器的两个网卡都做了bond.相当于两个网卡共用了一个IP。可以保证交换机或机器的一个口在down掉情况下,仍能正常提供服务,消除了交换机和机器的单点故障。当然也可不绑定bond,但这样切换就得手动了,显得比较麻烦。
至于用哪种方式:主要看交换机的类型了,一般二层交换机和低端的三层交换机没有主备或负载均衡功能,所以,选哪种方式,完全取决于机房的实际情况了。两个网卡绑定是linux本身的功能,日后做系统,如有需要,也是一种单点的解决方案。
3、考虑日后的扩展或机房的应用,以下推荐几款交换机
交换机类型 |
层次 |
基本端口和功能 |
扩展 |
报价 |
H3C S5100-48P-SI |
二层 |
48个10/100/1000Base-T自适应以太网端口,4个1000Base-X SFP口 |
|
1.5w |
H3C S5100-48P-EI |
二层 |
48个10/100/1000Base-T自适应以太网端口,4个1000Base-X SFP口 |
EI支持简单的路由协议 |
1.8w |
H3C S5352C-PWR-SI |
三层 |
48个10/100/1000Base-T,上行2×10GE XFP插卡或者4×1000Base-X SFP |
支持热备,均衡等基本功能 |
2.5w |
H3C S5352C-PWR-EI |
三层 |
48个10/100/1000Base-T,上行2×10GE XFP插卡或者4×1000Base-X SFP
|
除有SI的功能外,支持更多的路由协议,SFP端口可用于千兆以太网和光纤通道,而XFP 则支持万兆光纤接口。 |
3.5w |
4、lvs前端软件安装。
1> 下载相关软件包
#mkdir /usr/local/src/lvs
#cd /usr/local/src/lvs
#wget
#wget
2> 安装LVS和Keepalived
#lsmod |grep ip_vs
#uname -r
2.6.9-67.Elsmp
#ln -s /usr/src/kernels/2.6.9-67.EL-i686/ /usr/src/linux
#tar zxvf ipvsadm-1.24.tar.gz
#cd ipvsadm-1.24
#make && make install
#find / -name ipvsadm # 查看ipvsadm的位置
#tar zxvf keepalived-1.1.15.tar.gz
#cd keepalived-1.1.15
#./configure && make && make install
#find / -name keepalived # 查看keepalived位置
#cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
#cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
#mkdir /etc/keepalived
#cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
#cp /usr/local/sbin/keepalived /usr/sbin/
#service keepalived start|stop #做成系统启动服务方便管理.
5、realserver端安装,只需安装ipvsadm
下载及安装
#mkdir /usr/local/src/lvs
#cd /usr/local/src/lvs
#wget
#lsmod |grep ip_vs
#uname -r
2.6.9-67.Elsmp
#ln -s /usr/src/kernels/2.6.9-67.EL-i686/ /usr/src/linux
#tar zxvf ipvsadm-1.24.tar.gz
#cd ipvsadm-1.24
#make && make install
#find / -name ipvsadm # 查看ipvsadm的位置
6、lvs前端keepalived配置.
注意:对于lvs机器如果接的是二层设备,则无需考虑。但是如果是三层设备,就必须更改下linux机器的配置,其他选项不用动,按下面来就可以了
# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
#sysctl -p
1> master配置
#Configuration File for keepalived
global_defs {
notification_email {
niulw@ifeng.com
}
notification_email_from lvs_check@ifeng.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
lvs_id LVS_ONE
}
vrrp_instance VI_1 {
state MASTER
interface bond0
lvs_sync_daemon_interface bond0
virtual_router_id 50
priority 200
advert_int 1
smtp_alert
garp_master_delay 1
preempt_delay 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.50.33/24 brd + dev bond0 scope global
}
}
virtual_server 192.168.50.33 80 {
delay_loop 5
lb_algo wlc
lb_kind DR
protocol TCP
real_server 192.168.50.56 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.50.57 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
2> backup 配置
lvs2备份机的配置基本上和主的一样,仅指出两点不同(state 和 priority)。
state BACKUP
priority 50
7、lvs后端realserver配置
把脚本放于 /etc/init.d/ipvsadm .便于做成系统服务,开机时启动。
写好之后,一定别忘了启动起来,否则lvs前端能探测到,而realserver则不能提供正常服务
#!/bin/bash
# description: Config realserver lo and apply noarp
VIP=192.168.50.33
. /etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP
/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 >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0