Centos配置LVS Keepalived高可用负载均衡服务器
Centos配置LVS Keepalived高可用负载均衡服务器
LVS IP信息:
1 2 3 4 5 | 主LVS:192.168.1.2 备LVS:192.168.1.3 虚拟IP:192.168.1.6 应用服务器1:192.168.1.12 应用服务器2:192.168.1.13 |
查看内核是否支持LVS模块:
1 2 3 4 5 6 7 8 9 10 11 12 13 | modprobe -l |grep ipvs /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_dh.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_ftp.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_lblc.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_lc.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_nq.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_rr.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_sed.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_sh.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_wlc.ko /lib/modules/2.6.18-274.17.1.el5/kernel/net/ipv4/ipvs/ip_vs_wrr.ko |
根据内核版本下载安装相应的ipvsadm:
1 2 3 4 5 6 | ln -s /usr/src/kernels/2 .6.18-274.17.1.el5-x86_64/ /usr/src/linux wget http: //www .linuxvirtualserver.org /software/kernel-2 .6 /ipvsadm-1 .24. tar .gz tar zxvf ipvsadm-1.24. tar .gz cd ipvsadm-1.24 make make install |
也可使用yum直接安装:
1 | yum install ipvsadm |
安装Keepalived:
1 2 3 4 5 6 7 | wget http: //www .keepalived.org /software/keepalived-1 .1.19. tar .gz tar zxvf keepalived-1.1.19. tar .gz cd keepalived-1.1.19 . /configure --sysconf= /etc/ --with-kernel- dir = /usr/src/kernels/2 .6.18-274.17.1.el5-x86_64/ make make install ln -s /usr/local/sbin/keepalived /sbin/keepalived |
主LVS配置keepalived:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ! Configuration File for keepalived global_defs { notification_email { admin@www.haiyun.me } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.6 } } virtual_server 192.168.1.6 80 { delay_loop 6 lb_algo rr lb_kind NAT nat_mask 255.255.255.0 persistence_timeout 50 protocol TCP real_server 192.168.1.12 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.13 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } } |
启动keepalived,同时会在主LVS绑定VIP:
1 2 3 4 5 6 | /etc/init.d/keepalived start ip add show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:e7:cc:3b brd ff:ff:ff:ff:ff:ff inet 192.168.1.3/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.6/32 scope global eth0 |
查看当前LVS参数:
1 2 3 4 5 6 7 | ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.6:http rr -> 192.168.1.12:http Route 1 0 0 -> 192.168.1.13:http Route 1 0 0 |
复制主keepalived到备LVS,修改以下参数:
1 2 | state BACKUP priority 90 |
应用服务器增加虚拟VIP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #!/bin/bash VIP=192.168.1.6 . /etc/rc .d /init .d /functions case "$1" in start) ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $SNS 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 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 echo "RealServer Stoped" ;; *) echo "Usage: $0 {start|stop}" exit 1 esac |
测试LVS故障切换,停止主LVS上keepalived服务:
1 | /etc/init.d/keepalived stop |
查看备LVS已经接管为主LVS:
1 2 3 4 5 | tail -n 10 /var/log/message Jul 14 20:30:28 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATE Jul 14 20:30:29 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATE Jul 14 20:30:29 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) setting protocol VIPs. Jul 14 20:30:29 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 192.168.1.6 |
应用服务器故障测试,停止其中之一httpd服务:
1 | /etc/init.d/httpd stop |
查看keepalved日志已将出错服务器移除并邮件报警:
1 2 3 4 | tail -n 10 /var/log/message Jul 14 21:36:18 centos5 Keepalived_healthcheckers: TCP connection to [192.168.1.12:80] failed !!! Jul 14 21:36:18 centos5 Keepalived_healthcheckers: Removing service [192.168.1.12:80] from VS [192.168.1.6:80] Jul 14 21:36:18 centos5 Keepalived_healthcheckers: Remote SMTP server [127.0.0.1:25] connected. |
1 2 3 4 5 6 | ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.6:http rr |
目录 返回
首页