Keepalived+LVS-DR模式高可用負載均衡集羣的搭建

主機環境 redhat6.5 64位vim

實驗環境 服務端1 ip 172.25.25.113  主機名:server3.example.com   後端

         服務端2 ip 172.25.25.114  主機名:server4.example.com服務器

         管理端2 ip 172.25.25.112  主機名:server2.example.comide

         管理端1 ip 172.25.25.111  主機名:server1.example.comoop

防火牆狀態:關閉測試

虛擬ip(vip): 172.25.25.200/24spa

 


前面的博文中已經介紹過將DR添加到高可用集羣(HA)的heartbeat中避免單點故障,本節將介紹將另外一個避免單點故障的方法:將DR添加到HA的keepalived中。keepalived對後端有健康檢查,則在安裝好keepalived以後可直接添加DR。3d

本節將再也不介紹DR的配置,感興趣的可查看前面的博文,本文直接從keeepalived的安裝開始。orm


在Keepalived.org官網可下載leepalived壓縮包(keeepalived對後端有健康檢查)router

1.源碼安裝keepalived

[root@server1 mnt]# ls

keepalived-1.2.24.tar.gz

[root@server1 mnt]# tar zxf keepalived-1.2.24.tar.gz        #解壓

keepalived-1.2.24

keepalived-1.2.24.tar.gz

[root@server1 mnt]# cd keepalived-1.2.24

[root@server1 keepalived-1.2.24]# ls

aclocal.m4  ChangeLog     CONTRIBUTORS  genhash    keepalived.spec.in  missing

ar-lib       compile       COPYING       INSTALL     lib                 README

AUTHOR      configure     depcomp       install-sh  Makefile.am         TODO

bin_install configure.ac  doc           keepalived  Makefile.in

[root@server1 keepalived-1.2.24]# ./configure--prefix=/usr/local/keepalived

如有如下錯誤

wKiom1gF8yWj5HvXAAAWymmG2cA314.png

則安裝

[root@server1 keepalived-1.2.24]# yum installopenssl-devel.x86_64 -y

[root@server1 keepalived-1.2.24]# ./configure--prefix=/usr/local/keepalived

[root@server1 keepalived-1.2.24]# make

[root@server1 keepalived-1.2.24]# make install

[root@server1 keepalived-1.2.24]# cd /usr/local/

[root@server1 local]# ls

bin  etc  games include  keepalived  lib lib64  libexec  sbin share  src

[root@server1 local]# scp -r keepalived/172.25.25.112:/usr/local/

root@172.25.25.112's password:

 #做軟鏈接

[root@server1 local]# ln -s/usr/local/keepalived/etc/keepalived/ /etc/ #主配置文件的軟連接

[root@server1 local]# ln -s/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/    #啓動腳本的軟連接

[root@server1 local]# chmod +x /etc/init.d/keepalived       #改變腳本的權限

[root@server1 local]# ln -s/usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/     #配置文件的軟連接

[root@server1 local]# ln -s/usr/local/keepalived/sbin/keepalived /sbin/ #二進制文件的軟連接

[root@server1 local]# /etc/init.d/keepalived start  #測試,開啓

Starting keepalived:                                       [  OK  ]

[root@server1 local]# /etc/init.d/keepalived stop

Stopping keepalived:                                       [  OK  ]

[root@server1 local]#

 

2.將DR添加到keepalived及測試(管理端)

 1.添加DR到keepalived

[root@server1 local]# cd /etc/keepalived/

[root@server1 keepalived]# ls

keepalived.conf  samples

[root@server1 keepalived]# vim keepalived.conf  #進入主配置文件

  1 ! Configuration Filefor keepalived

  2

  3 global_defs {

  4    notification_email {

  5         root@localhost      #郵件接受端

  6    }

  7    notification_email_from keepalived@server1.example.com      #郵件發送端

  8    smtp_server 127.0.0.1    #本地迴環

  9    smtp_connect_timeout 30      #鏈接超時

 10    router_id LVS_DEVEL

 11    vrrp_skip_check_adv_addr

 12    vrrp_strict

 13    vrrp_garp_interval 0

 14    vrrp_gna_interval 0

 15 }

 16

 17 vrrp_instance VI_1 {

 18     state MASTER        #服務端1是master

 19     interface eth0      #進入接口eth0

 20     virtual_router_id 25    #虛擬路由id(1-254之間)

 21     priority 100            #在啓動keepalived服務時,系統會比較priority的值,哪一個值大哪一個就是master

 22     advert_int 1

 23     authentication {

 24         auth_type PASS

 25         auth_pass 1111

 26     }

 27     virtual_ipaddress {

 28         172.25.25.200   #虛擬ip‘

 29     }

 30 }

 31

 32 virtual_server172.25.25.200 80 {  #虛擬服務

 33     delay_loop 6

 34     lb_algo rr

 35     lb_kind DR          #DR

 36 #    persistence_timeout 50    #超時

 37     protocol TCP

 38

 39     real_server 172.25.25.113 80 {      #真正的服務端

 40         weight 1        #權重

 41         TCP_CHECK {

 42             connect_timeout 3

 43             nb_get_retry 3

 44             delay_before_retry 3

 45         }

 46     }

 47      real_server 172.25.25.114 80 {     #真正的服務端

 48         weight 1

 49         TCP_CHECK {

 50             connect_timeout 3

 51             nb_get_retry 3

 52             delay_before_retry 3

 53         }

 54     }

 55

 56 }

[root@server1 keepalived]# /etc/init.d/keepalived start   #開啓(服務端1)

Starting keepalived:                                       [  OK  ]

 

[root@server1 keepalived]# scp keepalived.conf172.25.25.112:/etc/keepalived/

root@172.25.25.112's password:      #將其傳到服務端2

keepalived.conf                                   100%1049     1.0KB/s   00:00 

[root@server2 keepalived]# vim keepalived.conf  #進入剛傳到服務端2文件,修改

 7    notification_email_from keepalived@server2.example.com#郵件發送段,本機

18     state BACKUP     #備服務器

2[root@server2 local]# /etc/init.d/keepalived start     #開啓(服務端2)

Starting keepalived:                                       [  OK  ]

1     priority 88           #比主的數值小就能夠

 

  2.測試

[root@server1 keepalived]# ipvsadm -l

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  ->RemoteAddress:Port           ForwardWeight ActiveConn InActConn

TCP  172.25.25.200:httprr

  ->server3.example.com:http     Route   1     0          0        

  ->172.25.25.114:http           Route   1     0          0    

wKioL1gF8kzzJ8BAAAAU07R_Eg8016.png

#刷新以後,服務端2

wKiom1gF8k2juWAQAAAUU_s3nk0246.png    

[root@server1 keepalived]# ip addr show   #查看ip,虛擬ip在服務端1

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueuestate UNKNOWN

    link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8scope host lo

    inet6 ::1/128 scopehost

       valid_lft foreverpreferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

    link/ether 52:54:00:ec:8b:36brd ff:ff:ff:ff:ff:ff

    inet 172.25.25.111/24brd 172.25.25.255 scope global eth0

    inet 172.25.25.200/32scope global eth0     #虛擬ip

    inet6fe80::5054:ff:feec:8b36/64 scope link

       valid_lft foreverpreferred_lft forever

 

當主機keepalived停掉,系統會將服務轉移到備機上;當主機從新打開時,系統會從新讀配置文件,來肯定主機和備機,將服務開啓到主機上

 

#將服務端1的keepalived停掉,測試

[root@server1 keepalived]# /etc/init.d/keepalived stop

Stopping keepalived:                                       [  OK  ]

#服務正常

wKioL1gF8k2BWAaoAAAU07R_Eg8308.png

#刷新以後,服務端2

wKiom1gF8lGAP__GAAAUU_s3nk0488.png

[root@server1 keepalived]# ip addr show    #查看,虛擬ip不在服務端1

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueuestate UNKNOWN

    link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8scope host lo

    inet6 ::1/128 scopehost

       valid_lft foreverpreferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

    link/ether52:54:00:ec:8b:36 brd ff:ff:ff:ff:ff:ff

    inet 172.25.25.111/24brd 172.25.25.255 scope global eth0

    inet6fe80::5054:ff:feec:8b36/64 scope link

       valid_lft foreverpreferred_lft forever

 

[root@server2 keepalived]# ip addr show  #查看ip虛擬在服務端2

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueuestate UNKNOWN

    link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scopehost lo

    inet6 ::1/128 scopehost

       valid_lft foreverpreferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

    link/ether52:54:00:85:1a:3b brd ff:ff:ff:ff:ff:ff

    inet 172.25.25.112/24brd 172.25.25.255 scope global eth0

    inet 172.25.25.200/32scope global eth0     #虛擬ip

    inet6fe80::5054:ff:fe85:1a3b/64 scope link

       valid_lft foreverpreferred_lft forever

 

#將服務端1的keepalived開啓

[root@server1 keepalived]# /etc/init.d/keepalived start

Starting keepalived:                                       [  OK  ]

#服務正常運行

wKioL1gF8lLzarTnAAAU07R_Eg8536.png

#刷新以後,服務端2

wKiom1gF8lSA4r8WAAAUU_s3nk0864.png

[root@server1 keepalived]# ip addr show     #查看虛擬ip,回到服務端1

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueuestate UNKNOWN

    link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8scope host lo

    inet6 ::1/128 scopehost

       valid_lft foreverpreferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

    link/ether52:54:00:ec:8b:36 brd ff:ff:ff:ff:ff:ff

    inet 172.25.25.111/24brd 172.25.25.255 scope global eth0

    inet 172.25.25.200/32scope global eth0     #虛擬ip

    inet6fe80::5054:ff:feec:8b36/64 scope link

       valid_lft foreverpreferred_lft forever

[root@server2 keepalived]# ip addr show    #查看,服務端2上沒有虛擬ip

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueuestate UNKNOWN

    link/loopback00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8scope host lo

    inet6 ::1/128 scopehost

       valid_lft foreverpreferred_lft forever

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdiscpfifo_fast state UP qlen 1000

    link/ether52:54:00:85:1a:3b brd ff:ff:ff:ff:ff:ff

    inet 172.25.25.112/24brd 172.25.25.255 scope global eth0

    inet6fe80::5054:ff:fe85:1a3b/64 scope link

       valid_lft foreverpreferred_lft forever

相關文章
相關標籤/搜索