Keepalived 雙機熱備

    Keepalived 是專門針對LVS設計的一款強大的輔助工具,主要用來提供故障切換和健康檢查功能。在非LVS集羣環境中使用時,keepalived也能夠做爲熱備軟件使用。keepalivedlinux

採用vrrp熱備份協議,以軟件的方式實現linux服務器的多機熱備功能。熱備組內的每一臺服務器都有可能成爲都有可能成爲主服務器,虛擬ip地址(vip)能夠在熱備組內的路由器之間進行轉移,因此稱之位漂移IP地址。web

1、keepalived安裝算法

1、安裝支持軟件服務器

在編譯安裝以前,必須安裝內核開發包,以及支持庫less

yum -y install popt-devel kernel-devel openssl-develdom

2、編譯安裝Keepalivedide

tar zxf keepalived-1.2.2.tar.gz工具

cd zxf keepalived-1.2.2oop

./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-220.el6.i686/測試

make && make install

chkconfig --add keepalived

chkconfig keepalived on//會自動開戶2345的級別


2、使用keepalived實現雙機熱備

基於vrrp 協議的熱備方案,keepalived能夠用作服務器的故障倒換,每一個熱備組能夠有多臺服務器,故障切換主要是針對虛擬ip地址的漂移來實現,可使用於各類應用服務器。

113604905.png

                  Keepalived雙機熱備示意圖


主、從服務器都須要安裝keepalived,具體步驟參考第一節。能夠在keepalived官網下載 http//www.keepalived.org



一、主服務器的配置

Keepalived服務的配置目錄位於/etc/keepalived,其中keepalived.conf 是主配置文件

vi /etc/keepalived/keepalived.conf


! Configuration File for keepalived


global_defs {

 notification_email {

    root@localhost.localdomain//主調度器的名稱

  }

  notification_email_from benet root@localhost.localdomain

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id LVS_01

}


vrrp_instance VI_1 {

   state MASTER//主調度器的熱備狀態

   interface eth0

   virtual_router_id 10//編號主與從的兩邊要同樣的

   priority 100//主調度器的優先級

   advert_int 1

   authentication {//主、從熱備認證信息

       auth_type PASS

       auth_pass abc123

   }

   virtual_ipaddress {//指定羣集VIP地址(虛擬服務器地址),能夠指定多個的

       192.168.0.30    

}

}


virtual_server 192.168.0.30 80 {//虛擬服務器地址(VIP)、端口

    delay_loop 6//健康檢查的間隔時間(秒)

    lb_algo rr//輪詢(rr)調度算法

    lb_kind DR//直接路由(DR)羣集工做模式

    persistence_timeout 60//鏈接保持時間(秒),若註釋掉加個"!"

    protocol TCP//應用服務採用的是TCP協議


   real_server 192.168.0.10 80 { //第一個web節點的地址、端口

       weight 1//節點的權重

       TCP_CHECK {//健康檢查方式

    connect_port 80//檢查的目標端口

            connect_timeout 3//鏈接去超時(秒)

            nb_get_retry 3//重試次數

            delay_before_retry 3//重試間隔(秒)

   }

}

   real_server 192.168.0.20 80 { //第二個web節點的地址、端口

       weight 1

       TCP_CHECK {

    connect_port 80

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

    }

 }

}



確認上述配置無誤,而後啓動keepalived服務,實際狀態爲MASTER的主服務器將爲eth0接口自動添加VIP地址,經過 ip addr show dev eth0 命令查看

service keepalived start


二、備用服務器的配置

  vi /etc/keepalived/keepalived.conf


! Configuration File for keepalived


global_defs {

 notification_email {

    root@localhost.localdomain//從調度器的名稱

  }

  notification_email_from benet root@localhost.localdomain

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id LVS_01

}


vrrp_instance VI_1 {

   state SLAVE//從調度器的熱備狀態

   interface eth0

   virtual_router_id 10//編號主與從的兩邊要同樣的

   priority 95//從調度器的優先級

   advert_int 1

   authentication {//主、從熱備認證信息

       auth_type PASS

       auth_pass abc123

   }

   virtual_ipaddress {//指定羣集VIP地址(虛擬服務器地址),能夠指定多個的

       192.168.0.30

   }

}


virtual_server 192.168.0.30 80 {//虛擬服務器地址(VIP)、端口

    delay_loop 6//健康檢查的間隔時間(秒)

    lb_algo rr//輪詢(rr)調度算法

    lb_kind DR//直接路由(DR)羣集工做模式

    persistence_timeout 60//鏈接保持時間(秒),若註釋掉加個"!"

    protocol TCP//應用服務採用的是TCP協議


   real_server 192.168.0.10 80 { //第一個web節點的地址、端口

       weight 1//節點的權重

       TCP_CHECK {//健康檢查方式

    connect_port 80//檢查的目標端口

            connect_timeout 3//鏈接去超時(秒)

            nb_get_retry 3//重試次數

            delay_before_retry 3//重試間隔(秒)

   }

}

   real_server 192.168.0.20 80 { //第二個web節點的地址、端口

       weight 1

       TCP_CHECK {

    connect_port 80

            connect_timeout 3

            nb_get_retry 3

            delay_before_retry 3

    }

 }

}


確認上述配置無誤,一樣啓動keepalived服務,此時主服務器仍然在線,漂移地址由主服務器控制,其餘服務器爲備用狀態,所以備用服務器將不會爲eth0接口添加虛擬ip地址

service keepalived start

ip addr show dev eth0


三、雙機熱備倒換測試

  Keepalived的日子消息保存在/var/log/messages 文件中,在主從測試倒換時,能夠跟蹤此文件來觀察熱備狀態的變壞。

   less /var/log/messages

相關文章
相關標籤/搜索