KeepAlived雙主模式高可用叢集

來源:互聯網
上載者:User

標籤:master   slave   keepalived高可用叢集   主主模式下的keepalived   

    一、keepalived簡介

    keepalived是vrrp協議的實現,原生設計目的是為了高可用ipvs服務,keepalived能夠設定檔中的定義產生ipvs規則,並能夠對各RS的健康狀態進行檢測;通過共用的虛擬IP地址對外提供服務;每個熱備組內同一時刻只有一台主伺服器提供服務,其他伺服器處於冗餘狀態,若當前線上的伺服器宕機,其虛擬IP地址將會被其他伺服器接替(優先順序決定接替順序),實現高可用為後端主機提供服務。

  二、keepalived組件

   Keepalived組件介紹

650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/89/7F/wKiom1gVgVqxP0nVAADi2pjRuog301.png" title="keepalived.png" alt="wKiom1gVgVqxP0nVAADi2pjRuog301.png" />

core:keepalived核心組件,主進程的啟動和維護,全域配置等。

vrrp stack:keepalived是基於vrrp協議實現高可用vps服務,vrrp則為相關子進程為其提供服務

check:檢測keepalived的健康狀態相關進程 

system call:系統調用

watch dog:監控check和vrrp進程的看管者,check負責檢測器子進程的健康狀態,當其檢測到master上的服務不可用時則通告vrrp將其轉移至backup伺服器上。

    

    三、keepalived配置 

實驗拓撲圖如下:

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/89/7F/wKiom1gVg3PDV2hIAADihRpSRO4252.png" title="keepalivedha.png" alt="wKiom1gVg3PDV2hIAADihRpSRO4252.png" />


keepalived主設定檔主要分為三段:global_defs、vrrp_instance、virtual_ip address,如下詳解: 

樣本:


編輯/etc/keepalived/keepalived.conf設定檔,將此檔案負責給另一個台keepalived伺服器,相應的修改其優先順序及其state狀態資訊

! Configuration File for keepalivedglobal_defs {   notification_email {[email protected]   }   notification_email_from [email protected]   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id centos7s   vrrp_mcast_group4 224.0.4.18}vrrp_script chk_down {   script "[[ -f /etc/keepalived/down ]] && exit 1 || exit 0"   interval 2   weight -5}vrrp_script chk_httpd {   script "killall -0 httpd"   interval 2   weight -5}vrrp_instance VI_1 {    state MASTER    interface eno16777736    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass frSAmesXYSSFmw    }    virtual_ipaddress {        10.1.10.7 dev eno16777736 labeleno16777736:0    }    track_script {    chk_down    chk_httpd    }    notify_master "/etc/keepalived/notify.sh master"    notify_backup "/etc/keepalived/notify.sh backup"    notify_fault "/etc/keepalived/notify.sh fault"}雙主模式:互為主備vrrp_instance VI_1 { #vrrp執行個體1    state MASTER #keepalived當前的狀態資訊,master為主,slave為從    interface eno16777736 #監聽的網卡介面    virtual_router_id 151 #虛擬路由的id號,範圍為0-255     priority 100 #當前keepalived的優先順序,數字越大,優先順序越高    advert_int 1 #    authentication { #authentication認證模組        auth_type PASS #驗證類型        auth_pass frSAmesXYSSFmw #密碼    }    virtual_ipaddress { #設定虛擬ip地址,此處為VIP:10.1.10.7        10.1.10.7 dev eno16777736 labeleno16777736:0    }    track_script { #調用檢測測監本    chk_down    chk_httpd    }    notify_master "/etc/keepalived/notify.sh master"    notify_backup "/etc/keepalived/notify.sh backup"    notify_fault "/etc/keepalived/notify.sh fault"}vrrp_instance VI_2 { #執行個體二,同上    state BACKUP     interface eno16777736    virtual_router_id 152    priority 98    advert_int 1    authentication {        auth_type PASS        auth_pass frSAmesXYSSymw    }    virtual_ipaddress {        10.1.10.77 dev eno16777736 labeleno16777736:1    }    track_script {    chk_down    chk_httpd    }    notify_master "/etc/keepalived/notify.sh master"    notify_backup "/etc/keepalived/notify.sh backup"    notify_fault "/etc/keepalived/notify.sh fault"}

使用lvs-dr相同的方法配置Real Server1/Real Server2:

echo 2 >/proc/sys/net/ipv4/conf/all/arp_announceecho 2 >/proc/sys/net/ipv4/conf/lo/arp_announceecho 1 >/proc/sys/net/ipv4/conf/all/arp_announceecho 1 >/proc/sys/net/ipv4/conf/lo/arp_announceifconfig lo:0 10.1.10.7 netmask 255.255.255.255 broadcast 10.1.10.7route add -host 10.1.10.7 dev lo:0


分別給Real Server提供測試頁面及其給keepalived節點配置應急響應頁面  

echo “RS1”>/var/www/html/index.html echo“sorry server”>/web/index.html

配置成功後啟動keepalived及其後端主機,在keepalived節點上查看其相應的ipvs資訊:

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/89/7D/wKioL1gVjGTxw3DrAAAk4AxNIe8289.png" title="xinxi.png" alt="wKioL1gVjGTxw3DrAAAk4AxNIe8289.png" />

現在兩節點上的keepalived均已啟動

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/7D/wKioL1gVjPKhgcW5AABZtj89rcs168.png" title="jd1.png" alt="wKioL1gVjPKhgcW5AABZtj89rcs168.png" />

650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/89/7F/wKiom1gVja3A6ixCAABYh7KDUo8179.png" title="ff.png" alt="wKiom1gVja3A6ixCAABYh7KDUo8179.png" />

類比master節點故障查看其backup節點,則全部的虛擬IP地址轉換到backup節,實現地址漂移如下:

650) this.width=650;" src="http://s5.51cto.com/wyfs02/M02/89/7D/wKioL1gVjpiDb9j_AABAZ7dlSvg521.png" title="jd.png" alt="wKioL1gVjpiDb9j_AABAZ7dlSvg521.png" />


本文採用rr演算法調度測試結果圖:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/89/7F/wKiom1gVjyCi8DNBAAAbeS31N4A706.png" title="ce.png" alt="wKiom1gVjyCi8DNBAAAbeS31N4A706.png" />

類比後端Real Server一台和全部宕機,相應的響應頁面及應急頁面:

650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/7F/wKiom1gVkMmQvEeNAAAUI_V6OYw648.png" title="dddd.png" alt="wKiom1gVkMmQvEeNAAAUI_V6OYw648.png" />


    出現上訴的結果說明你配置的keepalived高可用叢集已經實現高可用,可換為瀏覽器進行測試,或將後端主機搭建相應的服務進行測試查看其是否按照你定義的調度演算法進行輪詢。


本文出自 “小耳朵” 部落格,請務必保留此出處http://purify.blog.51cto.com/10572011/1867346

KeepAlived雙主模式高可用叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.