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/linuxwget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gztar zxvf ipvsadm-1.24.tar.gzcd ipvsadm-1.24makemake 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.gztar 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/makemake installln -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 keepalivedglobal_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 startip add show eth02: 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 -LIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 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 BACKUPpriority 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/bashVIP=192.168.1.6. /etc/rc.d/init.d/functionscase "$1" instart)ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $SNSecho "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announcesysctl -p >/dev/null 2>&1echo "RealServer Start OK";;stop)ifconfig lo:0 downecho "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announceecho "RealServer Stoped";;*)echo "Usage: $0 {start|stop}"exit 1esac |
测试LVS故障切换,停止主LVS上keepalived服务:
1 | /etc/init.d/keepalived stop |
查看备LVS已经接管为主LVS:
1 2 3 4 5 | tail -n 10 /var/log/messageJul 14 20:30:28 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) Transition to MASTER STATEJul 14 20:30:29 centos5 Keepalived_vrrp: VRRP_Instance(VI_1) Entering MASTER STATEJul 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/messageJul 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 -LIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.6:http rr |
目录 返回
首页