keepalived 原理、安裝與使用


 

 

1. keepalived工作原理

keepalived是集群管理中保證集群高可用的一個服務軟件,其功能類似於heartbeat,用來防止單點故障。

keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗余協議

虛擬路由冗余協議,可以認為是實現路由器高可用的協議,即將N台提供相同功能的路由器組成一個路由器組,這個組里面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在局域網內其他機器的默認路由為該vip),master會發組播,當backup收不到vrrp包時就認為master宕掉了,這時就需要根據VRRP的優先級選舉一個backup當master。這樣的話就可以保證路由器的高可用了。

keepalived主要有三個模塊(3個不同的守護進程),分別是core、check和vrrp。core模塊為keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模塊是來實現VRRP協議的。

配置文件:keepalived只有一個配置文件keepalived.conf,這里介紹該配置文件中幾個主要的區域。

vrrp_script區域

用來做健康檢查的,可調用外部腳本。

vrrp_script vs_mysql_158 {
  script "/etc/keepalived/checkMySQL.py -h 192.168.83.158 -P 3306"
  interval 60  #每60s執行一次
}

vrrp_instance區域

用來定義對外提供服務的VIP區域及其相關屬性。

vrrp_instance VI_158 {
  state BACKUP     #指定哪個為MASTER,哪個為BACKUP,必須大寫,如果設置了nopreempt這個值不起作用,主備靠priority決定
  interface eth0   #設置實例綁定的網卡
  virtual_router_id 158   #集群中主備相同
  priority 100    #優先級,高優先級競選為master
  advert_int 5    #檢查間隔,秒
  nopreempt       #不主動搶占資源,只在master這台優先級高的設置,backup不設置
  authentication {
    auth_type PASS  #認證方式
    auth_pass 1111  #認證密碼
  }
  track_script {
    vs_mysql_158   #執行vs_mysql_158
  }
  virtual_ipaddress {
    192.168.83.157  #設置vip
  }
}

virtual_server區域

virtual_server 192.168.83.157 3306 {
    delay_loop 2  #健康檢查時間間隔
    lb_algo wrr   #lvs調度算法rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR    #負載均衡轉發規則NAT|DR|RUN
    persistence_timeout 60  #會話保持時間
    protocol TCP            #使用的協議

    real_server 192.168.83.158 3306 {
        weight 3  #默認為1,0為失效
      MISC_CHECK {
          misc_path "/etc/keepalived/checkSlave.py -h 192.168.83.158 -P 3306"
          misc_timeout 15
          misc_dynamic
      }
    }
    real_server 192.168.83.159 3306 {
        weight 3
      MISC_CHECK {
          misc_path "/etc/keepalived/checkSlave.py -h 192.168.83.159 -P 3306"  #外部腳本路徑
          misc_timeout 15  #腳本執行超時時間,秒
          misc_dynamic     #如設置該項,則退出狀態碼會用來動態調整服務器的權重。返回0 正常,不修改;返回1,檢查失敗,權重改為0;返回2-255,正常,權重設置為:返回狀態碼-2
      }
    }
}

 

2. 安裝

(1) yum源安裝: 執行 yum install keepalived 即可;

(2) 二進制安裝:keepalived 官網下載地址:http://www.keepalived.org/download.html,也可去網盤上下載:http://pan.baidu.com/s/1boOEiAF

安裝環境:

  • CentOS 6.4 x64
  • keepalived-1.3.4
# yum install kernel-devel openssl-devel libnl-devel libnfnetlink-devel #安裝依賴
#
tar zxvf keepalived-1.3.4.tar.gz # cd keepalived-1.3.4 # ./configure --prefix=/usr/local/keepalived
#若有報錯,安裝相應的devel包即可 # make && make install

# 拷貝相應的文件
# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
#注意修改該配置文件,否則會啟動失敗:keepalived 已死,但是 subsys 被鎖
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# keepalived-1.3.14 的啟動文件在安裝的原文件下,以前的版本在編譯的路徑下 /usr/local/keepalived/…
# cp ../keepalived-1.3.4/keepalived/etc/init.d/keepalived /etc/init.d/

啟動keepalived:

# /etc/init.d/keepalived start
正在啟動 keepalived:                                      [確定]
# ps aux |grep keepalived
root     21390  0.0  0.0  42296  1016 ?        Ss   17:08   0:00 keepalived -D
root     21391  0.0  0.1  42416  2168 ?        S    17:08   0:00 keepalived -D
root     21392  0.0  0.0  42296  1428 ?        S    17:08   0:00 keepalived -D

 

3. 使用 

待續……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM