1. 程式人生 > >Keepalived + LVS-DR搭建高可用Web伺服器叢集

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自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的伺服器,這樣就實現了高可用。