lvs+keepalived+DR搭建高可用集群

lvs+keepalived+DR搭建高可用集群

环境准备:

  lvsserver1  192.168.1.10

  lvsserver2  192.168.1.11

  vip                   192.168.1.15

  rs1                   192.168.1.12

  rs2                   192.168.1.13

lvsserver1和lvsserver2操作:

  1 安装ipvsadm以及keepadlived
  2 [root@lvs1 ~]# yum install gcc* c++ * autoconf automake zlib*  libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* popt-devel libnl-devel kernel-devel ipvsadm
  3 [root@lvs1 ~]# wget http://www.keepalived.org/software/keepalived-1.1.19.tar.gz    //不推荐使用最新版本
  4 [root@lvs1 ~]# tar -xf keepalived-1.1.19.tar.gz    
  5 [root@lvs1 ~]# ./configure
  6 Keepalived configuration
  7 
  8 ------------------------
  9 
 10 Keepalived version : 1.1.17
 11 Compiler : gcc
 12 Compiler flags : -g -O2
 13 Extra Lib : -lpopt -lssl -lcrypto
 14 Use IPVS Framework : No            **使用IPVS框架,也就是负载均衡模块
 15 IPVS sync daemon support : No    **启用IPVS同步功能
 16 Use VRRP Framework : Yes        **实现高可用的必须模块
 17 Use LinkWatch : No
 18 Use Debug flags : No
 19 
 20 当出现这两个为No的时候,则需以下操作
 21 
 22 [root@lvs1 ~]# ./configure --with-kernel-dir=/usr/src/kernels/2.6.32-754.11.1.el6.x86_64/
 23 [root@lvs1 ~]# make
 24 [root@lvs1 ~]# make install
 25 [root@lvs1 ~]# cp -a /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
 26 [root@lvs1 ~]# cp -a /usr/local/etc/sysconfig/keepalived /etc/sysconfig/ 
 27 [root@lvs1 ~]# mkdir -p /etc/keepalived 
 28 [root@lvs1 ~]# cp -a /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/ 
 29 [root@lvs1 ~]# cp -a /usr/local/sbin/keepalived /usr/bin/
 30 [root@lvs1 ~]# cd /etc/keepalived && cp -a keepalived.conf keepalived.conf.bak
 31 [root@lvs1 ~]# cat keepalived.conf
 32 [root@lvs1 ~]# cat /etc/keepalived/keepalived.conf
 33 ! Configuration File for keepalived
 34 
 35 global_defs {
 36    router_id LVS_MASTER                
 37 }
 38 
 39 vrrp_instance VI_1 {    
 40     state MASTER                    **标识机器的状态,从则为BACKUP
 41     interface eth0                    **绑定ip地址接口
 42     lvs_sync_daemon_inteface eth0
 43     virtual_router_id 51            **虚拟路由id,两台机器必须一样
 44     priority 150                    **优先级,master必须比backup大,从为100
 45     advert_int 1                    **间隔时间
 46     authentication {
 47         auth_type PASS
 48         auth_pass 123456 
 49     }
 50     virtual_ipaddress {
 51     172.30.21.230                    **定义一个vip
 52     }
 53 }
 54 
 55 virtual_server 192.168.1.15 443 {
 56     delay_loop 6
 57     lb_algo wrr
 58     lb_kind DR
 59     #nat_mask 255.255.255.0
 60     persistence_timeout 50
 61     protocol TCP
 62 
 63     real_server 192.168.1.12 443 {
 64     weight 3
 65         TCP_CHECK {
 66             connect_timeout 3
 67             nb_get_retry 3
 68             delay_before_retry 3
 69             connect_port 443
 70         }
 71     }
 72 
 73     real_server 192.168.1.13 443 {
 74     weight 3
 75         TCP_CHECK {
 76             connect_timeout 3
 77             nb_get_retry 3
 78             delay_before_retry 3
 79             connect_port 443
 80         }
 81         }
 82 }
 83 
 84 virtual_server 192.168.1.15 2222 {
 85     delay_loop 6
 86     lb_algo wrr
 87     lb_kind DR
 88     #nat_mask 255.255.255.0
 89     persistence_timeout 50
 90     protocol TCP
 91 
 92     real_server 192.168.1.12 2222 {
 93     weight 3
 94         TCP_CHECK {
 95             connect_timeout 3
 96             nb_get_retry 3
 97             delay_before_retry 3
 98             connect_port 2222
 99             }
100         }
101 
102     real_server 192.168.1.13 2222 {
103     weight 3
104         TCP_CHECK {
105             connect_timeout 3
106             nb_get_retry 3
107             delay_before_retry 3
108             connect_port 443
109                }
110         }
111 }
112 
113 两台机器都启动keepalived以及ipvsadm
114 [root@lvs1 ~]# ip addr    **查看vip在哪

rs1和rs2操作:

 1 [root@lvs-nginx1 ~]# cat /etc/init.d/lvs 
 2 #!/bin/bash
 3 
 4 VIP=192.168.1.15
 5 
 6 /etc/rc.d/init.d/functions
 7 
 8 case "$1" in
 9 
10 start)
11            echo "start LVS of RealServer DR"
12            /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
13            echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
14            echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
15            echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
16            echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
17        ;;
18 stop)
19            /sbin/ifconfig lo:0 down
20            echo "close LVS of RealServer DR"
21            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
22            echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
23            echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
24            echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
25            ;;
26 *)
27           echo "Usage: $0 {start|stop}"
28           exit 1
29 esac
30 
31 exit 0
32 
33 [root@lvs-nginx1 ~]# /etc/init.d/lvs start
34 [root@lvs-nginx1 ~]# echo "/etc/init.d/lvs start" >> /etc/rc.d/rc.local

最后使用ipvsadm -L查看结果以及切换演练

猜你喜欢

转载自www.cnblogs.com/jcici/p/10607463.html
今日推荐