lvs架构的DR模式+keepalived高可用
配置过程如下:分析架构:如果ld是单一节点,那么这个ld挂了,整个架构也就挂了,所以我们这里必须考虑到High Availabiliity(HA),我们这里就是通过keepalived这个高可用软件来实现的。1.客户端配置:#ifconfig eth0 192.168.18.106#route add default gw 192.168.18.2542.Router端配置:#ifconfig eth0 192.168.18.254#ifconfig eth0:0 192.168.19.100打开包转发#echo 1 > /proc/sys/net/ipv4/ip_forward
3.分发器Master的配置:安装lvs到分发器上面配置好yum源,保证能够读取到介质中的Cluster目录!cat /etc/yum.repos.d/aa.repo
name=aabaseurl=file:///media/Serverenabled=1gpgcheck=0name=clusterbaseurl=file:///media/Clusterenabled=1gpgcheck=0#yum -y install ipvsadm#ifconfig eth0 192.168.19.300安装keepalived,并通过其绑定VTP
#tar zxf keepalived-1.1.17.tar.gz#yum install gcc openssl-devel kernel-devel ipvsadm -y (不装一会安装会有问题)#ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)#cd keepalived-1.1.17#./configure --prefix=/usr/local/keepalived#make#make install
安装后,把人家提供好的文件进行对应的复制!#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/#mkdir -pv /etc/keepalivedmkdir: 已创建目录“/etc/keepalived”#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/#ln -s /usr/local/keepalived/sbin/keepalived /sbin/删减自定义配置文件就行:
#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id dr1}vrrp_sync_group http {group {apache}}
vrrp_instance apache {state MASTERinterface eth0virtual_router_id 51priority 180advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.19.250}}virtual_server 192.168.19.50 80 {delay_loop 6lb_algo rrlb_kind DR# persistence_timeout 3600protocol TCPreal_server 192.168.19.101 80{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}real_server 192.168.19.102 80{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}}
启动服务#/etc/init.d/keepalived start4.分发器Backup的配置:安装lvs到分发器上面
配置好yum源,保证能够读取到介质中的Cluster目录!cat /etc/yum.repos.d/aa.repo
name=aabaseurl=file:///media/Serverenabled=1gpgcheck=0name=clusterbaseurl=file:///media/Clusterenabled=1gpgcheck=0#yum -y install ipvsadm#ifconfig eth0 192.168.19.200安装keepalived,并通过其绑定VTP
#tar zxf keepalived-1.1.17.tar.gz#yum install gcc openssl-devel kernel-devel ipvsadm -y (不装一会安装会有问题)#ln -s /usr/src/kernels/2.6.18-238.el5-i686/ /usr/src/linux(这条不能复制粘贴,因为要看你机器的内核版本,可以粘过去进行tab键补齐)#cd keepalived-1.1.17#./configure --prefix=/usr/local/keepalived#make#make install
安装后,把人家提供好的文件进行对应的复制!#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/#mkdir -pv /etc/keepalivedmkdir: 已创建目录“/etc/keepalived”#cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/#ln -s /usr/local/keepalived/sbin/keepalived /sbin/删减自定义配置文件就行:
#vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id dr2 #(这里名字注意要和master的不一样就行)}vrrp_sync_group http {group {apache}}
vrrp_instance apache {state BACKUP #(这里要改成backup,备机)interface eth0virtual_router_id 51priority 100 #(这里级别要比主机低点就好)advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.19.250}}virtual_server 192.168.19.50 80 {delay_loop 6lb_algo rrlb_kind DR# persistence_timeout 3600protocol TCPreal_server 192.168.19.101 80{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}real_server 192.168.19.102 80{weight 1TCP_CHECK {connect_timeout 3connect_port 80}}}
5.real server的配置:#ifconfig eth0 192.168.19.100
绑定VTP:利用脚本来实现:
#!/bin/bash
VIP=192.168.19.250
ROUTE=192.168.19.100
start() {
ifconfig lo:0 $VIP/32 broadcast $VIP up
route add -host $VIP dev lo:0
route add default gw $ROUTE
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo start;
}
stop() {
route del default gw $ROUTE
route del -host $VIP dev lo:0
ifconfig lo:0 down
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
echo stop;
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
echo 'start | stop'
esac把这个脚本放到/etc/init.d/下面启动:/etc/init.d/vip.sh start其他real server的配置同理6.到master主机上面验证:测试第一步:查看绑定的VTP
#ip add sh1: lo:mtu 16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever2: eth0:
mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:0c:29:a6:09:10 brd ff:ff:ff:ff:ff:ffinet 192.168.19.300/24 brd 192.168.19.255 scope global eth0inet 192.168.19.250/32 scope global eth0cinet6 fe80::20c:29ff:fea6:910/64 scope linkvalid_lft forever preferred_lft forever3: sit0:mtu 1480 qdisc nooplink/sit 0.0.0.0 brd 0.0.0.0
测试第二步,查看real server的连通性l#elinks http://192.168.19.102/index.html --dump102#elinks http://192.168.19.101/index.html --dump101
测试第三步,查看ipvsadm 规则#ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.19.250:80 rr-> 192.168.19.101:80 Route 1 0 0-> 192.168.19.102:80 Route 1 0 0
测试第四步,同客户端测试# elinks http://192.168.19.250/index.html --dump101# elinks http://192.168.19.250/index.html --dump102# elinks http://192.168.19.250/index.html --dump101# elinks http://192.168.19.250/index.html --dump102启动BACKUPld2#/etc/init.d/keepalived start启动 keepalived: [确定]
关闭master上的keepalived,模拟失败再在client上测试,看访问能否继续!
如果没有问题,在real server(192.168.19.101)上关闭服务ld1#ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.19.250:80 rr-> 192.168.19.102:80 Route 1 0 0ld1#ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.19.250:80 rr-> 192.168.19.101:80 Route 1 0 0-> 192.168.19.102:80 Route 1 0 0
解决无用的广播包太多,造成ld无法绑定vipld1上执行iptables -Fiptables -A INPUT -m ttl --ttl-eq 255 -j REJECTiptables -I INPUT -s $ld2ip -j ACCEPT
ld2上执行iptables -Fiptables -A INPUT -m ttl --ttl-eq 255 -j REJECTiptables -I INPUT -s $ld1ip -j ACCEPT
精典之极就是精斑!!! 精典之极就是精斑!!! 有事秘书干,没事干秘书! 剧情再美,终究是戏。 亲爱,你不只是我的劫难还是我至死不渝的信仰 年轻时候要注定经历一些伤痛,这是因为开始时不在意
页:
[1]