LVS+Keepalived構建高可用負載平衡

來源:互聯網
上載者:User
LVS+Keepalived構建高可用 負載平衡一、地址規劃 功能        hostname    IP地址         虛擬設備名   虛擬IP Director1   node0       192.168.32.30  eth0:0       192.168.32.21 Director2   node1       192.168.32.31  eth0:0       192.168.32.21 Real1       node2       192.168.32.32  lo:0         192.168.32.21 Real2       node3       192.168.32.33  lo:0         192.168.32.21  二、安裝keepalived(lvs的安裝配置略)[root@node0 ~]# uname -r 2.6.18-194.el5PAE [root@node0 ~]#tar zxvf keepalived-1.1.19.tar.gz [root@node0 ~]# cd keepalived-1.1.19 [root@node0 keepalived-1.1.19]#./configure --sysconf=/etc --with-kernel-dir=/usr/src/kerne ls/2.6.18-194.el5PAE-i686 [root@node0 keepalived-1.1.19]#make [root@node0 keepalived-1.1.19]#make install [root@node0 keepalived-1.1.19]# ln -s /usr/local/sbin/keepalived  /sbin/keepalived   #在編譯選項中,“--sysconf”指定了Keepalived設定檔的安裝路徑,即路徑為/etc/Keepalived/Keepalived.conf,“--with-kernel-dir”這是個很重要的參數,但這個參數並不是要把Keepalived編譯進核心,而是指定使用核心源碼裡面的標頭檔,就是i nclude目錄。如果要使用LVS時,才需要用到此參數,否則是不需要的。 三、配置Keepalived     主、備Director Server都需要安裝Keepalived軟體,安裝成功後,預設的設定檔路徑為/etc/Keepalived/Keepalived.conf。一個完整的keepalived設定檔,有三個部分組成,分別是全域定義部分、vrrp執行個體定義部分以及虛擬伺服器定義部分,下面詳細介紹下這個設定檔中每個選項的詳細含義和用法: 1、主Director Server配置[root@node0 ~]# cat /etc/keepalived/keepalived.conf  ! Configuration File for keepalived   #全域定義部分global_defs {    notification_email {    root@localhost.localdomain #設定警示郵件地址,可以設定多個,每行一個。注意,如果要開啟郵件警示,需要開啟原生sendmail服務。   }    notification_email_from root@localhost.localdomain   #設定郵件的發送地址   smtp_server 127.0.0.1   #設定smtp server地址,該地址必須是可到達的,否則會出錯,如果不要求email警示,請用127.0.0.1    smtp_connect_ timeout 30 #設定串連smtp伺服器逾時時間   router_ id LVS_Keepalive #運行Keepalived伺服器的一個標識。發郵件時顯示在郵件標題中的資訊}   #vrrp執行個體定義部分vrrp_instance VI_1 {     #執行個體名,自訂    state MASTER        #指定Keepalived的角色,MASTER表示此主機是主用伺服器,BACKUP表示是待命伺服器    interface eth0 #指定HA監測網路的介面    virtual_router_id 51 #虛擬路由辨別碼,這個標識是一個數字,並且同一個vrrp執行個體使用唯一的標識,即同一個vrrp_instance下,MASTER和BACKUP必須是一致的    priority 100 #定義優先順序,數字越大,優先順序越高,在一個vrrp_instance下,MASTER的優先順序必須大於BACKUP的優先順序。    advert_int 1 #設定MASTER與BACKUP負載平衡器之間同步檢查的時間間隔,單位是秒    authentication { #設定驗證類型和密碼        auth_type PASS #設定驗證類型,主要有PASS和AH兩種    auth_pass bai #設定驗證密碼,在一個vrrp_instance下,MASTER與BACKUP必須使用相同的密碼才能正常通訊    }     virtual_ipa ddress { #設定虛擬IP地址,可以設定多個虛擬IP地址,每行一個        192.168.32.21     } }   #虛擬伺服器定義部分virtual_server 192.168.32.21 80 { #設定虛擬伺服器,需要指定虛擬ip地址和服務連接埠,ip與連接埠之間用空格隔開。    delay_loop 6 #設定健全狀態檢查時間,單位是秒    lb_algo rr #設定負載調度演算法,這裡設定為rr,即輪詢演算法lb_kind DR #設定LVS實現負載平衡的機制,可以有NAT、TUN和DR三個模式可選    persistence_timeout 10 #會話保持時間,單位是秒,這個選項對於動態網頁是非常有用的,為 叢集系統中session共用提供了一個很好的解決方案。有了這個會話保持功能,使用者的請求會被一直分發到某個服務節點,直到超過這個會話保持時間。需要注意的是,這個會話保持時間,是最大無響應逾時時間,也就是說使用者在操作動態網頁面時,如果在50秒內沒有執行任何操作,那麼接下來的操作會被分發到另外節點,但是如果一直在操作動態網頁面,則不受50秒的時間限制。    proto col TCP #指定轉寄協議類型,有t cp和udp兩種      real_server 192.168.32.32 80 { #佈建服務節點1,需要指定real server的真實IP地址和連接埠,ip與連接埠之間用空格隔開。          weight 3 #佈建服務節點的權值,權值大小用數字表示,數字越大,權值越高,設定權值的大小可以為不同效能的伺服器分配不同的負載,可以對效能高的伺服器設定較高的權值,而對效能較低的伺服器設定相對較低的權值,這樣就合理的利用和分配了系統資源。 TCP_CHECK { #realserve的狀態檢測設定部分,單位是秒            connect_timeout 3 #10秒無響應逾時            nb_get_re try 3 #重試次數            delay_before_retry 3 #稍候再試        }     }     real_server 192.168.32.33 80 {         weight 3         TCP_CHECK {             connect_timeout 3             nb_get_retry 3             delay_before_retry 3         }     } }   #在配置Keepalived.conf時,需要特別注意設定檔的文法格式,因為Keepalived在啟動時並不檢測設定檔的正確性,即使沒有設定檔,Keepalived也照樣能啟動起來,因而設定檔一定要正確。#在預設情況下,Keepalived在啟動時會尋找/etc/Keepalived/Keepalived.conf設定檔,如果你的設定檔放在了其它路徑下,可以通過“Keepalived  -f”參數指定你所在的設定檔路徑即可。 2、備Director Server配置[root@node0 ~]# scp /etc/keepalived/keepalived.conf node1:/etc/keepalived/keepalived.conf [root@node1 ~]# vim /etc/keepalived/keepalived.conf  ! Configuration File for keepalived   global_defs {    notification_email {    root@localhost.localdomain    }    notification_email_from root@localhost.localdomain    smtp_server 127.0.0.1    smtp_connect_timeout 30    router_id LVS_Keepalive_Master }   vrrp_instance VI_1 {     state BACKUP     interface eth0     virtual_router_id 51     priority 80     advert_int 1     authentication {         auth_type PASS         auth_pass bai     }     virtual_ipaddress {         192.168.32.21     } }   virtual_server 192.168.32.21 80 {     delay_loop 6     lb_algo rr     lb_kind DR #   persistence_timeout 10     protocol TCP       real_server 192.168.32.32 80 {         weight 3         TCP_CHECK {             connect_timeout 3             nb_get_retry 3             delay_before_retry 3         }     }     real_server 192.168.32.33 80 {         weight 3         TCP_CHECK {             connect_timeout 3             nb_get_retry 3             delay_before_retry 3         }     } }   #相比主Director Server的配置:   將“state MASTER”更改為“state BACKUP”   將priority 100更改為一個較小的值,這裡改為“priority 80” 四、Real Server配置略 五、啟動測試1、啟動[root@node0 ~]# service keepalived start啟動 keepalived:[root@node1 ~]# service keepalived start啟動 keepalived: 2、測試(三種情況)    斷開node0網口eth0網線,觀察node1的日誌和ipvsadm狀態,接上node0網線,觀察node1的日誌和ipvsadm狀態;   重啟node0系統,觀察node1的日子和ipvsadm狀態;   關閉node0的keepalived服務,開啟node0服務,觀察node1的日子和ipvsadm狀態。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.