LVS+Keepalive 实现服务器的负载均衡高可用
一、安装
两台机器的安装是一样的,这里只记录一遍。
1. 下载LVS+Keepalive 所需安装包
http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
http://down1.chinaunix.net/distfiles/linux-2.6.18.tar.bz2
http://down1.chinaunix.net/distfiles/linux-2.6.32.tar.bz2
2. 安装所需环境
[root@ZH-LVS01 ~]# yum -y install glibc* gcc* cc*
[root@ZH-LVS01 ~]# yum -y install openssl-devel
[root@ZH-LVS01 ~]# yum -y install kernel-devel
3. 安装keepalive
[root@ZH-LVS01 ~]# tar -xzf keepalived-1.2.7.tar.gz
[root@ZH-LVS01 ~]# cd keepalived-1.2.7
[root@ZH-LVS01 keepalived-1.2.7]# ./configure
编译时出现以下问题原因是未安装popt的开发包
解决:
yum install popt-devel
安装好popt的开发包。
[root@ZH-LVS01 keepalived-1.2.7]# make && make install
[root@ZH-LVS01 keepalived-1.2.7]# keepalived --help #查看keepavlied的帮助信息同时也证明了keepalive已经安装成功
[root@ZH-LVS01 ~]# find / -name keepalived #查看keepalived的位置
[root@ZH-LVS01 ~]# cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
[root@ZH-LVS01 ~]# cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
[root@ZH-LVS01 ~]# mkdir /etc/keepalived
[root@ZH-LVS01 ~]# cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
[root@ZH-LVS01 ~]# cp /usr/local/sbin/keepalived /usr/sbin/
[root@ZH-LVS01 ~]# service keepalived start
启动 keepalived:
[root@ZH-LVS01 ~]# service keepalived stop
停止 keepalived: [确定]
[root@ZH-LVS01 ~]# service keepalived start
启动 keepalived: [确定]
[root@ZH-LVS01 ~]#
4. 安装ipvsadm LVS管理工具
4.1 检查kernel是否已经支持LVS的IPVS模块。
[root@ZH-LVS01 ~]# modprobe -l |grep ipvs
4.2 在安装ipvsadm之前应该做一下内核比对,/usr/local/kernels/ 下面的内核版本要和linux所使用的内核版本一样,然后做个链接。
4.3 解压并安装ipvsadm管理软件
[root@ZH-LVS01 ~]# tar -xzf ipvsadm-1.24.tar.gz
[root@ZH-LVS01 ~]# cd ipvsadm-1.24
[root@ZH-LVS01 ipvsadm-1.24]# make && make install
[root@ZH-LVS01 ipvsadm-1.24]# ipvsadm --help #看到帮助提示,表明IPVS已经安装成功。[root@ZH-LVS01 ipvsadm-1.24]# cd
[root@ZH-LVS01 ~]# find / -name ipvsadm #查看ipvsadm软件安装的位置。
二、 配置
1.
[root@ZH-LVS01 ~]# cd /etc/keepalived/
[root@ZH-LVS01 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@ZH-LVS01 keepalived]# vim keepalived.conf2. 配置LVS01为Real Server,通过创建脚本的方式来实现。
1 ! Configuration File for keepalived 2 3 global_defs { 4 notification_email { 5 acassen@firewall.loc 6 failover@firewall.loc 7 sysadmin@firewall.loc 8 } 9 notification_email_from Alexandre.Cassen@firewall.loc 10 smtp_server 192.168.200.1 11 smtp_connect_timeout 30 12 router_id LVS_DEVEL 13 } 14 vrrp_script chk_tomcat 15 { 16 script "/data/ha/scripts/ftp_check.sh" 17 interval 2 18 timeout 2 19 fall 3 20 } 21 22 23 vrrp_instance VI_1 { 24 state MASTER 25 interface eth0 26 virtual_router_id 202 27 priority 99 28 advert_int 1 29 authentication { 30 auth_type PASS 31 auth_pass 1111 32 } 33 virtual_ipaddress { 34 10.143.92.202 35 } 36 track_script { 37 chk_tomcat 38 } 39 } 40 41 virtual_server 10.143.92.202 80 { #此处端口不能写21哦,不然起来后会有问题 42 delay_loop 3 43 lb_algo wlc 44 lb_kind DR 45 nat_mask 255.255.255.255 46 persistence_timeout 50 47 protocol TCP 48 49 50 real_server 10.143.92.115 21 { 51 weight 1 52 MISC_CHECK { 53 misc_path "/usr/local/bin/check_ftpget.pl -H 10.143.92.115 -u dev -p dev" 54 misc_timeout 10 55 } 56 weight 1 57 TCP_CHECK { 58 connect_timeout 3 59 nb_get_retry 3 60 delay_before_retry 3 61 } 62 } 63 64 real_server 10.143.82.10 21 { 65 weight 1 66 MISC_CHECK { 67 misc_path "/usr/local/bin/check_ftpget.pl -H 10.143.92.116 -u dev -p dev" 68 misc_timeout 10 69 } 70 weight 1 71 TCP_CHECK { 72 connect_timeout 3 73 nb_get_retry 3 74 delay_before_retry 3 75 } 76 } 77 }