lvs+keepalived的安裝與配置

     最近對lvs、keepalived進行了安裝、配置熟悉,對過程進行整理同時記錄遇到的問題。此處只做單獨的lvs、keepalived的配置,假設後臺服務已配置完成。


1、需要的安裝包:ipvsadm、keepalived

2、安裝規劃:

主機 真實IP VIP
master 10.20.13.153 10.20.13.101
backup 10.20.13.231 10.20.13.101
real server 10.20.13.85  

3、lvs的安裝配置:

如果是tar的包使用:make&&make install

如果使用的是rpm包:rpm -ivh rpm包

4、驗證ipvsadm是否安裝成功

查看pvsadm --help命令是否能執行

5、分別爲主機配置vip:

ifconfig eth0:1 10.20.13.101 netmask 255.255.255.0 此種方式網卡重啓後失效,如果永久生效可以在/etc/sysconfig/network-script/下安裝eth0的複製一份修改保存

6、配置lvs:

mster服務器

ipvsadm -A  -t 10.20.13.153:80 -s rr -p 30 # -A 增加 -s 指定算法 -t 使用tcp協議 -p 指定用戶超時時間

ipvsadm -a -t 10.20.13.153:80 -r 10.20.13.85:80 -g -r指定real server -g 採用dr模式

backup服務器

ipvsadm -A  -t 10.20.13.153:80 -s rr -p 30 # -A 增加 -s 指定算法 -t 使用tcp協議 -p 指定用戶超時時間

ipvsadm -a -t 10.20.13.231:80 -r 10.20.13.85:80 -g -r指定real server -g 採用dr模式

說明ipvsadm -c是清除

7、配置完後查看

ipvsadm -n -L

[root@DEV-L002595 ipvsadm-1.26]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.20.13.101:http rr persistent 50
  -> 10.20.13.85:http             Route   1      0          0   


9、keepalived的安裝

./configure --prefix=/home/keepalived --with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64/  #prefix指定安裝路徑,with-kernel-dir指定系統內核

需要指定內核,否則會少一個進程,正確的是有3個進程。當少一個進程的時候是編譯時內核不對,或sbin中的keepalived未放。通過which keepalived查看生效的路徑。

make&&make install

cp /home/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

/home/keepalived//etc/sysconfig/keepalived /etc/sysconfig/

cp /home/keepalived/sbin/keepalived /usr/sbin/

cp /home/keepalived/sbin/keepalived /sbin/

cp /home/keepalived/etc/keepalived/keepalived.conf /etc/keepalived

10、配置keepalived.conf (兩個文件內容類似,只需要修改標紅處)

[root@DEV-L002595 keepalived]# cat keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LVS_2
}

vrrp_instance VI_2 {
    state BACKUP #設置主備
    interface eth0 #監聽的網卡
    virtual_router_id 100
    priority 100 優先級,master大於backup
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        10.20.13.101
    }
}

virtual_server 10.20.13.101 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 10.20.13

.85 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

開啓服務:chkconfig keepalived on

啓動服務:service keepalived start|stop|restart

keepalived日誌:/var/log/message

查看lvs:ipvsadm -n -L

說明:當使用keepalived時5、6步無需配置,keepalived.conf已配置會自動加載

哪個lvs生效,vip在哪個主機上可以查看到,當發生問題或變化的時候message中的日誌纔有滾動

[root@property-service-01 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 06:40:f0:00:07:33 brd ff:ff:ff:ff:ff:ff
    inet 10.20.13.153/22 brd 10.20.15.255 scope global eth0
    inet 10.20.13.101/32 scope global eth0
    inet6 fe80::440:f0ff:fe00:733/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 06:35:60:00:02:9f brd ff:ff:ff:ff:ff:ff
[root@property-service-01 ~]#

keepalived的日誌如下:

Jan 12 15:26:34 localhost Keepalived_healthcheckers: Activating healtchecker for service [10.20.14.85:80]
Jan 12 15:26:35 localhost Keepalived_vrrp: VRRP_Instance(VI_2) Transition to MASTER STATE
Jan 12 15:26:35 localhost Keepalived_healthcheckers: TCP connection to [10.20.14.85:80] failed !!!
Jan 12 15:26:35 localhost Keepalived_healthcheckers: Removing service [10.20.14.85:80] from VS [10.20.13.101:80]
Jan 12 15:26:35 localhost Keepalived_healthcheckers: Lost quorum 1-0=1 > 0 for VS [10.20.13.101:80]
Jan 12 15:26:36 localhost Keepalived_vrrp: VRRP_Instance(VI_2) Entering MASTER STATE
Jan 12 15:26:36 localhost Keepalived_vrrp: VRRP_Instance(VI_2) setting protocol VIPs.
Jan 12 15:26:36 localhost Keepalived_vrrp: VRRP_Instance(VI_2) Sending gratuitous ARPs on eth0 for 10.20.13.101
Jan 12 15:26:38 localhost ntpd[1509]: Listening on interface #36 eth0, 10.20.13.101#123 Enabled
Jan 12 15:26:41 localhost Keepalived_vrrp: VRRP_Instance(VI_2) Sending gratuitous ARPs on eth0 for 10.20.13.10

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章