Keepalived + LVS-DR搭建高可用Web服務器集羣

導航:

  • Keepalived概述
  • LVS概述
  • 編譯安裝keepalived
  • 配置主調度器
  • 雙機熱備

    一、Keepalived概述

keepalived是一個類似於layer3, 4 & 5交換機制的軟件,也就是我們平時說的第3層、第4層和第5層交換。Keepalived是自動完成,不需人工干涉,需要人工做的只是修復故障的web服務器。
Layer3,4&5工作在IP/TCP協議棧的IP層,TCP層,及應用層,原理分別如下:Layer3:Keepalived使用Layer3的方式工作式時,Keepalived會定期向服務器羣中的服務器發送一個ICMP的數據包(既我們平時用的Ping程序),如果發現某臺服務的IP地址沒有激活,Keepalived便報告這臺服務器失效,並將它從服務器羣中剔除,這種情況的典型例子是某臺服務器被非法關機。Layer3的方式是以服務器的IP地址是否有效作爲服務器工作正常與否的標準。Layer4主要以TCP端口的狀態來決定服務器工作正常與否。
如webserver的服務端口一般是80,如果Keepalived檢測到80端口沒有啓動,則Keepalived將把這臺服務器從服務器羣中剔除。Layer5:Layer5就是工作在具體的應用層了,比Layer3,Layer4要複雜一點,在網絡上佔用的帶寬也要大一些。Keepalived將根據用戶的設定檢查服務器程序的運行是否正常,如果與用戶的設定不相符,則Keepalived將把服務器從服務器羣中剔除。

二、LVS概述

LVS,Linux virtual server,Linux虛擬服務器,是一個虛擬的服務集羣系統,本項目是1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。

LVS集羣採用IP負載均衡技術,屬於IP層的交換(L4)具有很好的吞吐率。調度器分析客戶端到服務器的IP報頭信息,將請求均衡地轉移到不同的服務器上執行,且調度器自動屏蔽掉服務器的故障,從而將一組服務器構成一個高性能的、高可用的虛擬服務器。主要包含四大部分:

負載調度器(loadbalancer),它是整個集羣對外面的前端機,負責將客戶的請求發送到一組服務器上執行,而客戶認爲服務是來自一個IP地址上的。當客戶請求到達時,調度器只根據負載情況從服務器池中選出一個服務器,將該請求轉發到選出的服務器,並記錄這個調度;

服務器池(serverpool),是一組真正執行客戶請求的服務器,執行的任務有WEB、MAIL、FTP和DNS等。服務器池的結點數目是可變的,當整個系統收到的負載超過目前所有結點的處理能力時,可以在服務器池中增加服務器來滿足不斷增長的請求負載

後端存儲(backend storage),它爲服務器池提供一個共享的存儲區,這樣很容易使得服務器池擁有相同的內容,提供相同的服務

Graphic Monitor是爲系統管理員提供整個集羣系統的監視器,它可以監視系統中每個結點的狀況。

LVS+keepalived架構圖

Keepalived + LVS-DR搭建高可用Web服務器集羣
測試環境:
名稱 操作系統 IP地址
LVS-Master Centos7.3-x86_64 192.168.92.134
LVS-Backup Centos7.3-x86_64 192.168.92.135
WebserverA Centos7.3-x86_64 192.168.1.103
WebserverB Centos7.3-x86_64 192.168.1.105
Client Windows10x86_64 192.168.1.101

三、編譯安裝keepalived

安裝所需的軟件 (以下是Master操作)

yum install -y openssl-devel popt-devel && yum install -y ipvsadm && wget http://www.keepalived.org/software/keepalived-1.2.13.tar.gz && cd /root && tar zxf keepalived-1.2.13.tar.gz && cd keepalived-1.2.13/ && ./configure --prefix=/ && make && make install && chkconfig --add keepalived && chkconfig keepalived on

keepalived裝完給backup裝,一樣的操作。

四、配置主調度器

安裝完成後主配置文件目錄:/etc/keepalived/keepalived.conf中,打開主配置修改如下:

vim /etc/keepalived/keepalived.conf

Keepalived + LVS-DR搭建高可用Web服務器集羣

Keepalived + LVS-DR搭建高可用Web服務器集羣

從調度器和主的差不多,直接上我的,對比修改

Keepalived + LVS-DR搭建高可用Web服務器集羣

修改完成後,master和backup的主配置文件到這裏已經結束了。接下來啓動keepalived,查看IP地址

Keepalived + LVS-DR搭建高可用Web服務器集羣
以上圖中可以看到vip地址已經承載到了這塊網卡上,接下來啓動從服務器查看IP地址

Keepalived + LVS-DR搭建高可用Web服務器集羣

從服務器沒有VIP,當master服務器宕機纔會有。

3)接下來在主服務器查看節點的狀態

現在就一個VIP沒有導向RS,接下來配置RS

在Web1和Web2上導入測試頁面,得有httpd,yum安裝就成,

Web1(RS1)
echo "This is httpA" > /var/www/html/index.html
httpd 啓動 ,防火牆 關閉,selinux 關閉,

Keepalived + LVS-DR搭建高可用Web服務器集羣

Web2(RS2)
Keepalived + LVS-DR搭建高可用Web服務器集羣

再次查看主服務器的節點狀態,查看是否有webA&B

Keepalived + LVS-DR搭建高可用Web服務器集羣

有負載就ok了

接下來取瀏覽器測試192.168.1.150

Keepalived + LVS-DR搭建高可用Web服務器集羣

Keepalived + LVS-DR搭建高可用Web服務器集羣

五、接下來測試雙機熱備

在這裏我們先看一下master和backup的ip信息。
Keepalived + LVS-DR搭建高可用Web服務器集羣

從服務器
Keepalived + LVS-DR搭建高可用Web服務器集羣

把master宕機再恢復之後從服務器IP的改變對照

Keepalived + LVS-DR搭建高可用Web服務器集羣

正如開頭所說,如果有一臺web服務器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的服務器從系統中剔除,同時使用其他服務器代替該服務器的工作,當服務器工作正常後Keepalived自動將服務器加入到服務器羣中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的服務器,這樣就實現了高可用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章