版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第5章
Keepalived高可用集群方案5.1高可用集群簡介5.2Keepalived5.3Keepalived高可用服務-單主模式實例5.4Keepalived高可用服務-雙主模式實例了解高可用集群的自動偵測理解高可用集群的工作原理熟悉Keepalived單主模式方式掌握Keepalived實現(xiàn)雙主模式高可用的過程引言當用戶訪問量達到一定量時,可以組建服務器集群,利用負載均衡技術在服務器集群間進行分發(fā)流量。當業(yè)務量增長時,系統(tǒng)可通過增加服務器來滿足需求,且不影響已有業(yè)務,不降低服務質(zhì)量;單臺服務器故障時,由負載均衡設備將后續(xù)業(yè)務轉(zhuǎn)向其他服務器,不影響后續(xù)業(yè)務提供,保證業(yè)務不中斷。本章將詳細講解一個輕量級高可用集群解決方案Keepalived的相關知識。5.1高可用集群簡介高可用集群的實現(xiàn)原理高可用集群的三個階段高可用集群的工作模式高可用集群最大程度地保證了用戶服務7*24小時(一周之內(nèi))可用,當集群中的某個節(jié)點或服務器發(fā)生故障時,另一個節(jié)點或服務器將在幾秒鐘之內(nèi)自動接替它,繼續(xù)對外提供服務。對于用戶而言,這幾秒鐘時間并不會造成太大的損失,所以業(yè)務不會因服務問題受到影響,且這一切對于用戶而言是不可知的。高可用集群軟件的主要作用是實現(xiàn)故障檢查和業(yè)務切換的自動化,在單個節(jié)點發(fā)生故障時,能夠自動將資源、服務進行切換,保證服務一直在線。5.1
高可用集群簡介5.1.1
高可用集群的實現(xiàn)原理自動偵測(Auto-Detect)階段是主機上的軟件通過冗余偵測線,經(jīng)過復雜的監(jiān)聽程序和邏輯判斷來相互偵測對方,常用的方法是集群中的各節(jié)點通過心跳信息來判斷節(jié)點是否出現(xiàn)故障。如果在HA集群中兩個節(jié)點之間的“心跳線”斷開,本來是整體、協(xié)調(diào)的HA系統(tǒng)就會分裂成兩個獨立的個體。由于雙方失去了聯(lián)系,雙方都以為對方出現(xiàn)了故障,就會爭搶資源,爭取應用服務,就會造成共享資源被瓜分,應用啟動失敗或者兩邊應用同時運行,共同讀取數(shù)據(jù),造成數(shù)據(jù)損壞,這種情況叫做“腦裂”。5.1
高可用集群簡介5.1.2
高可用集群的三個階段產(chǎn)生腦裂的原因有多種,例如,心跳線不可用,網(wǎng)卡及相關驅(qū)動故障,高可用服務器開啟了防火墻或者心跳網(wǎng)卡地址等信息配置不正確等。解決腦裂的幾種常見方案。1.添加冗余的心跳線設置兩條心跳線,其中一條壞了,另一條可以繼續(xù)工作,能夠盡量減少腦裂的產(chǎn)生。2.啟用磁盤鎖正在服務的一方使用磁盤鎖,將共享磁盤鎖住,產(chǎn)生腦裂時使另一臺服務器無法搶走資源。但這種方案有一個小問題,一方不主動解除磁盤鎖,對方永遠都搶不走共享磁盤,如果一方真的發(fā)生故障,對方無法接管資源頂替運行服務。3.設置仲裁機制設置一個參考IP,當心跳線發(fā)生斷裂時,雙方都ping命令測試一下這個參考IP,如果ping不通,則說明斷點出現(xiàn)在本端。4.腦裂的監(jiān)控報警可以使用郵件或者短信進行監(jiān)控報警,當出現(xiàn)腦裂時,強制關閉一個心跳點。5.1
高可用集群簡介5.1.2
高可用集群的三個階段自動切換階段是,當某一服務器確認對方故障,則該服務器替代故障服務器繼續(xù)進行之前的任務。通俗地說,當A主機意識到集群中的B主機出現(xiàn)故障時,能夠依照容錯備援模式接替B主機進行工作,并且客戶感受不到這個變化,這個階段為自動切換階段,也叫做故障轉(zhuǎn)移(FailOver)階段。自動恢復(FailBack)是指在故障轉(zhuǎn)移后,通過手動維護后,再將服務或網(wǎng)絡資源恢復為已修好的主機。5.1
高可用集群簡介5.1.2
高可用集群的三個階段1.Active/Passive(主備模式)一臺運行業(yè)務的服務器作為主節(jié)點,另一臺待機服務器作為備用節(jié)點,當主節(jié)點故障,數(shù)據(jù)轉(zhuǎn)移到備節(jié)點,這時備用節(jié)點就成為了主節(jié)點。這種模式下,備用節(jié)點完全冗余,將會造成一定的資源浪費。2.Active/Active(雙主模式)兩臺服務器同時運行,但運行的是兩個不同的業(yè)務,互為備用節(jié)點。這種模式可以使用比較均衡的主機配置,且不會造成資源浪費。3.N+1模式N個服務器運行N個業(yè)務,只留一臺服務器作為備用。備用節(jié)點必須能夠代替任何主節(jié)點,當任意主節(jié)點故障時,備節(jié)點能夠及時替代故障節(jié)點運行相應的服務。5.1
高可用集群簡介5.1.3
高可用集群的工作模式4.N+M模式N臺服務器作為主節(jié)點,M臺服務器作為備用節(jié)點。一個備用節(jié)點可能無法具備足夠的冗余能力,但多個備用節(jié)點又會消耗大量資源,所以備用節(jié)點的數(shù)量M是成本和可靠性要求之間的折中。5.N-to-1模式
與N+1模式相同,同樣是N個主節(jié)點,一個備用節(jié)點,不同的是備用節(jié)點只能暫時成為主節(jié)點,當故障節(jié)點修復后,將繼續(xù)工作,備用節(jié)點將數(shù)據(jù)轉(zhuǎn)交給主節(jié)點并停止運行服務。5.1
高可用集群簡介5.1.3
高可用集群的工作模式5.2KeepalivedKeepalived工作原理Keepalived主要功能Keepalived模塊與配置文件Keepalived是集群管理當中保證集群高可用的一個服務軟件,主要用來防止單點故障。它可以自動偵測服務器狀態(tài)、移除故障服務器、切換到正常運行的服務器、添加修復的服務器到集群中。與之功能類似的還有HeartBeat、RoseHA,都能實現(xiàn)服務以及網(wǎng)絡的高可用。其中,HeartBeat是一個功能完善的專業(yè)高可用軟件,具備了心跳檢測、資源接管,以及監(jiān)測及群眾的系統(tǒng)服務等HA軟件的基本功能,但是它部署和使用較為麻煩。而Keepalived則是通過虛擬路由冗余來實現(xiàn)的高可用,所有的配置只需要一個配置文件就可以實現(xiàn),部署和使用方法較為簡單。5.2
KeepalivedKeepalived是基于VRRP(VirtualRouterRedundancyProtocol,虛擬路由冗余協(xié)議)實現(xiàn)的。虛擬路由冗余協(xié)議,可以認為是實現(xiàn)路由器高可用的協(xié)議,將N臺提供相同功能的服務器組成一個服務器組,該組中有一個Master和多個Backup,Master上面有一個對外提供服務的VIP(該服務器所在局域網(wǎng)內(nèi)其他機器的默認路由為該VIP)。VRRP是通過競選機制決定主備,主服務器的優(yōu)先級高于備服務器的,所以在工作時主會優(yōu)先獲取所有的資源,備節(jié)點處于準備狀態(tài),當主節(jié)點宕機時候,備節(jié)點會接管主節(jié)點的資源,然后頂替主節(jié)點對外提供服務。5.2.1
Keepalived工作原理5.2
Keepalived采用VRRP實現(xiàn)的Keepalived正常工作時,Master節(jié)點會不斷地向備節(jié)點發(fā)送心跳信息(含有優(yōu)先參數(shù)的廣播包),用來告訴備Backup節(jié)點自己在正常工作。當主Master節(jié)點發(fā)生故障時候,無法發(fā)送心跳信息,備節(jié)點因此也就無法繼續(xù)收到來自Master節(jié)點的心跳,于是調(diào)用自身的接管程序,接管Master節(jié)點的IP資源及服務。當Master節(jié)點恢復時,備Backup節(jié)點則會釋放主節(jié)點故障時自身接管的IP資源及服務,繼續(xù)恢復到原來的備用角色。5.2.1
Keepalived工作原理5.2
KeepalivedKeepalivd的核心為失敗切換和健康檢查。失敗切換主要是指配置主備模式的服務,利用VRRP維持主備服務的心跳,當主服務器故障時,由備用節(jié)點繼續(xù)提供服務,解決靜態(tài)路由的單點故障問題。此功能也是本章要介紹的重點內(nèi)容。健康檢測功能是采用TCP三次握手、ICMP請求、HTTP請求、UDPecho請求等方式對負載均衡器后端的真實服務器(通常指承載真實業(yè)務的服務器)進行?;?,在1.4節(jié)已講解過。5.2.2
Keepalived主要功能5.2
KeepalivedKeepalived結(jié)構(gòu)簡單,擴展性強,是一個高度模塊化的軟件,主要有3個模塊,分別是CORE、CHECK和VRRP。(1)CORECORE模塊為Keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。(2)CHECKCHECK負責健康檢查,包括常見的幾種檢查方式。(3)VRRPVRRP模塊用于實現(xiàn)VRRP協(xié)議。5.2.3
Keepalived模塊與配置文件5.2
Keepalived高可用軟件Keepalived只有一個配置文件:/etc/keepalived/keepalived.conf,該配置文件里主要包括以下幾個配置項,分別是global_defs、static_ipaddress、static_routes、VRRP_script、VRRP_instance和virtual_server??偟膩碚f,Keepalived主要有三類區(qū)域配置,注意不是三種配置文件,是一個配置文件里面三種不同類別的配置區(qū)域,如下所示。(1)全局配置(GlobalConfiguration)全局配置又包括兩個子配置,如下所示。全局定義(globaldefinition):global_defs全局配置標識,表示這個區(qū)域是全局配置。靜態(tài)路由配置(staticipaddress/routes):一般這個區(qū)域不需要配置,用于給服務器配置真實的IP地址和路由的,在復雜的環(huán)境下可以直接用vi/etc/sysconfig/network-script/ifcfg-eth1來配置,切記此處的網(wǎng)卡不是配置VIP。5.2.3
Keepalived模塊與配置文件5.2
Keepalived(2)VRRPD配置VRRPD配置包括三個類,如下所示。vrrp_script:VRRP腳本。vrrp_sync_group:VRRP同步組。vrrp_instance:VRRP實例。(3)LVS配置這里的LVS配置是專門為Keepalived+LVS集成準備的。注意,這里LVS配置并不是指真的安裝LVS然后用IPVSADM來配置它,而是用Keepalived的配置文件來代替IPVSADM來配置LVS,便于后期維護。主要包括以下兩個配置,如下所示。5.2.3
Keepalived模塊與配置文件5.2
Keepalived主要包括以下兩個配置,如下所示。虛擬主機組配置這個配置是可選的,根據(jù)需求來配置,這里配置主要是為了讓一臺RealServer上的某個服務可以屬于多個VirtualServer,并且只做一次健康檢查,示例代碼如下所示。5.2.3
Keepalived模塊與配置文件5.2
Keepalivedvirtual_server_group<STRING>{#VIPport<IPADDR><PORT><IPADDR><PORT>fwmark<INT>}虛擬主機配置virtualserver可以通過下面三種的任意一種來配置,如下所示。①virtualserverIPport②virtualserverfwmarkint③virtualservergroupstrin5.3Keepalived高可用服務-單主模式實例Keepalived單主架構(gòu)環(huán)境準備Keepalived主節(jié)點配置Keepalived備節(jié)點配置在主備節(jié)點上配置Nginx負載均衡Nginx+Keepalived高可用集群單主模式測試結(jié)合第2章Nginx負載均衡Web服務集群的環(huán)境搭建Keepalived高可用Web集群。本節(jié)案例配置Keepalived單主模式,即一臺Keepalived主服務器和多臺Keepalived備服務器共用一個虛擬IP(VIP)提供服務,也可以稱為主備模式。Keepalived單主模式集群架構(gòu)圖如圖所示。5.3.1
Keepalived單主架構(gòu)5.3
Keepalived高可用服務-單主模式實例Keepalived單主模式下的工作流程如下所示。(1)Keepalived主機之間是通過VRRP通信的,VRRP通過競選機制設置主備。(2)在正常情況下,主節(jié)點的優(yōu)先級大于備節(jié)點,主節(jié)點優(yōu)先獲得所有資源。因此用戶通過虛擬IP訪問Keepalived主服務器(主節(jié)點),然后向后端服務器發(fā)送請求。(3)這時,備節(jié)點處于等待狀態(tài),也是已開啟的狀態(tài),主節(jié)點會每秒向所有的備節(jié)點發(fā)送VRRP廣播包,以此告知自己是主節(jié)點,在正常工作。(4)當主節(jié)點因故障無法工作時,主節(jié)點宕機導致無法發(fā)送廣播包。備節(jié)點會在規(guī)定的時間內(nèi)認定主節(jié)點宕機,然后通過選舉機制產(chǎn)生新的主節(jié)點提供正常的服務。在圖中,若主節(jié)點宕機,虛擬IP(VIP)會自動切換到備節(jié)點,用戶的請求也會發(fā)送到備節(jié)點上,無需臨時啟動對應的Keepalived服務,在此之前已經(jīng)是開啟狀態(tài),由此實現(xiàn)高可用功能。5.3.1
Keepalived單主架構(gòu)5.3
Keepalived高可用服務-單主模式實例在第2章已經(jīng)詳細講解了Nginx做負載均衡的Web服務集群,此處可使用當時的系統(tǒng)環(huán)境。本次部署Nginx負載均衡的高可用案例,通過部署Keepalived和Web服務,演示高可用的效果。準備4臺VM虛擬機(或者物理服務器),一臺作為Keepalived主節(jié)點(lb01),一臺作為Keepalived備節(jié)點(lb02),其他兩臺作為后臺真實服務器分別為web1和web2,具體如表所示。5.3.2
環(huán)境準備5.3
Keepalived高可用服務-單主模式實例IP主機名服務0lb01Keepalived主節(jié)點+Nginx負載均衡2lb02Keepalived備節(jié)點+Nginx負載均衡3web1Web服務4web2Web服務說明:提前關閉防火墻及SELinux(過程不再贅述)。5.3.2
環(huán)境準備5.3
Keepalived高可用服務-單主模式實例1.使用宿主機的瀏覽器為客戶端,在實驗開始前,建議為這4臺服務器互相做域名解析,便于通信。域名解析可以使用修改本地hosts文件的方式,也可以使用DNS服務器解析。這里采取修改hosts文件的方式,分別在4臺服務器的/etc/hosts文件中添加以下代碼。2.為了保證各服務器的時間一致,對所有服務器進行時間校對。0lb012lb023web14web2[root@qfedu~]#ntpdate-u1做完域名解析之后,可以使用ping命令進行檢測,若無丟包現(xiàn)象,說明解析成功。為了便于讀者觀察實驗操作對象,這里分別將服務器的主機名修改為lb01、lb02、web1、web2。3.查看操作系統(tǒng)及內(nèi)核版本。[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@localhost~]#uname-r3.10.0-957.el7.x86_64[root@localhost~]#uname-mx86_645.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例1.查看本機是否安裝Keepalived軟件。2.安裝Keepalived軟件。[root@lb01~]#rpm-qakeepalived[root@lb01~]#yum-yinstallkeepalived……省略安裝步驟……已安裝:keepalived.x86_640:1.3.5-19.el7完畢!3.查看已安裝的Keepalived軟件。[root@lb01~]#rpm-qakeepalivedkeepalived-1.3.5-19.el7.x86_645.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例與其他軟件相似,Keepalived配置文件的位置為/etc/keepalived/keepalived.conf。Keepalived配置文件為keepalived.conf,主要有三個配置區(qū)域,分別是全局配置(GlobalConfiguration)、VRRPD配置、LVS配置。其中Keepalived的配置文件中與本章所學的高可用有2個部分,全局配置又包括兩個子配置:全局定義(globaldefinition)靜態(tài)IP地址和路由配置(staticipaddress/routes)。4.在Keepalived的配置文件中進行修改,修改后的文件如下所示。。1!ConfigurationFileforkeepalived23global_defs{4notification_email{51261318-@6}8smtp_server9smtp_connect_timeout305.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例4.在Keepalived的配置文件中進行修改,修改后的文件如下所示。。10router_idlb01 #設備在組中的標識,設置不一樣即可11}1213vrrp_instanceVI_1{ #VI_1。實例名兩臺路由器相同。注意區(qū)分。14stateMASTER #主或者從狀態(tài)15interfaceens33 #監(jiān)控網(wǎng)卡16virtual_router_id51 #定義虛擬路由標識VRID,主備相同17priority100 #優(yōu)先級18advert_int1 #心跳間隔19authentication{ #密鑰認證(1-8位),主備保持一致20auth_typePASS21auth_pass111122}23virtual_ipaddress{ #虛擬IP,VIP240/2425}26}5.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例對上述示例代碼中的重要參數(shù)進行詳解。!ConfigurationFileforkeepalived:Keepalived配置文件的開頭,必須以“!”符號開頭。notification_email:設置服務故障報警的郵件地址。router_id:表示該設備在集群中的標識,必須保證與其他服務器不一致。vrrp_instanceVI_1:表示VRRP協(xié)議中的實例(虛擬路由),其中VI_1表示實例名,允許用戶自定義。state:表示服務器狀態(tài),其值通常設置主為MASTER或備BACKUP。interface:用于指定檢測的網(wǎng)卡,通常物理服務器為eth0,虛擬機則以“ens”開頭。mcast_src_ip:表示該服務器的IP地址。5.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例virtual_router_id:表示虛擬路由的編號,主從必須保持一致。priority:表示優(yōu)先級(權(quán)重),通常Master服務器的權(quán)重要高于Backup服務器,允許用戶在0~254之間進行自定義。advert_int:表示Master服務器與Backup服務器之間進行健康檢查的時間間隔。authentication:表示驗證信息,保持主從同步,否則無法進行匹配。auth_type:表示驗證類型,PASS表示密碼驗證。auth_pass:表示驗證所使用的密碼。virtual_ipaddress:表示VIP地址池。Keepalived配置文件中還有更多的配置,會在后續(xù)章節(jié)介紹。5.3.3
Keepalived主節(jié)點配置5.3
Keepalived高可用服務-單主模式實例5.Keepalived配置完成后,啟動Keepalived服務,并設置為開機自啟。[root@lb01~]#systemctlstartkeepalived[root@lb01~]#systemctlenablekeepalived[root@lb01~]#systemctlstatuskeepalived●keepalived.service-LVSandVRRPHighAvailabilityMonitor……Active:active(running)since三2022-03-0213:52:45CST;5sago……6.檢查是否有虛擬IP。[root@lb01~]#ipa|grep"0"inet0/24scopeglobalsecondaryens33Keepalived服務單主實例配置完成。5.3.4
Keepalived備節(jié)點配置5.3
Keepalived高可用服務-單主模式實例1.查看本機是否安裝Keepalived軟件。[root@lb02~]#rpm-qakeepalived2.安裝Keepalived軟件。[root@lb02~]#yum-yinstallkeepalived……省略安裝步驟……已安裝:keepalived.x86_640:1.3.5-19.el7完畢!3.查看已安裝的Keepalived軟件。[root@lb02~]#rpm-qakeepalivedkeepalived-1.3.5-19.el7.x86_645.3.4
Keepalived備節(jié)點配置5.3
Keepalived高可用服務-單主模式實例4.修改Keepalived備節(jié)點(lb02)的配置文件。[root@lb02~]#vim/etc/keepalived/keepalived.conf1!ConfigurationFileforkeepalived23global_defs{4notification_email{51261318-@6}8smtp_server9smtp_connect_timeout3010router_idlb0211}1213vrrp_instanceVI_1{14stateBACKUP15interfaceens3316virtual_router_id5117priority9018advert_int119authentication{20auth_typePASS21auth_pass111122}23virtual_ipaddress{240/2425}26}修改了route_id為lb02,state為BACKUP,優(yōu)先級priority為90,其值低于主節(jié)點。5.3.4
Keepalived備節(jié)點配置5.3
Keepalived高可用服務-單主模式實例5.啟動Keepalived服務,并設置為開機自啟。[root@lb02~]#systemctlstartkeepalived[root@lb02~]#systemctlenablekeepalived6.檢查是否有虛擬IP。[root@lb02~]#ipa|grep"0"在主節(jié)點存活的狀態(tài)下,備節(jié)點若也顯示VIP的地址,則出現(xiàn)“腦裂”的問題了。發(fā)生腦裂的原因。(1)高可用服務器之間的心跳信息傳輸故障,比如網(wǎng)卡損壞、IP沖突等。(2)開啟了iptables防火墻阻擋了IP或者VRRP協(xié)議傳輸心跳消息。(3)配置文件中的參數(shù)配置錯誤,如virtual_router_id參數(shù)不一致等。并沒有返回虛擬IP,這是由于同一個VIP只能出現(xiàn)在一臺服務器上。主節(jié)點運行正常并且正在接管VIP,所以備節(jié)點不顯示VIP。5.3.4
Keepalived備節(jié)點配置5.3
Keepalived高可用服務-單主模式實例1.為了測試備節(jié)點是否能正常接管VIP,需要停掉主節(jié)點服務器或者關閉主節(jié)點的Keepalived服務,模擬主節(jié)點故障或宕機。[root@lb01~]#systemctlstopkeepalived2.關閉主節(jié)點的Keepalived服務后,查看備節(jié)點的虛擬IP。[root@lb02~]#ipa|grep"0"inet0/24scopeglobalsecondaryens333.接著啟動主節(jié)點的Keepalived服務,驗證主節(jié)點能否恢復VIP的接管。[root@lb01~]#systemctlrestartkeepalived[root@lb01~]#ipa|grep"0"inet0/24scopeglobalsecondaryens33備節(jié)點成功接管了VIP。單主模式下Keepalived成功實現(xiàn)IP的自動切換。5.3.5在主備節(jié)點上配置Nginx負載均衡5.3
Keepalived高可用服務-單主模式實例1.首先在lb01和lb02部署Nginx負載均衡器,安裝Nginx軟件。2.修改lb01和lb02的Nginx配置文件/etc/nginx/nginx.conf,添加相關服務器組。[root@lb1~]#vim/etc/nginx/nginx.confusernginx;worker_processesauto;worker_connections1024;}http{access_log/var/log/nginx/access.logmain;sendfileon;tcp_nopushon;tcp_nodelayon;keepalive_timeout65;[root@lb01~]#yum-yinstallnginx……省略安裝步驟……已安裝:nginx.x86_641:1.20.1-9.el7完畢!5.3.5在主備節(jié)點上配置Nginx負載均衡5.3
Keepalived高可用服務-單主模式實例2.修改lb01和lb02的Nginx配置文件/etc/nginx/nginx.conf,添加相關服務器組。types_hash_max_size4096;include/etc/nginx/mime.types;default_typeapplication/octet-stream;include/etc/nginx/conf.d/*.conf;server{listen80;listen[::]:80;server_name0;root/usr/share/nginx/html;include/etc/nginx/default.d/*.conf;error_page404/404.html;location=/404.html{}location=/50x.html{}
#引用服務器組location/{proxy_passhttp://html;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerREMOTE-HOST$remote_addr;}}
#配置服務器組upstreamhtml{serverweb1:80weight=5;serverweb2:80weight=5;}}5.3.5在主備節(jié)點上配置Nginx負載均衡5.3
Keepalived高可用服務-單主模式實例3.配置完成后啟動Nginx,并設置為開機自啟。4.查看Web節(jié)點端口是否開啟,以保證Web頁面的正常訪問。[root@web1~]#lsof-i:80COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnginx6816root6uIPv4373810t0TCP*:http(LISTEN)nginx6816root7uIPv6373820t0TCP*:http(LISTEN)nginx6817nginx6uIPv4373810t0TCP*:http(LISTEN)nginx6817nginx7uIPv6373820t0TCP*:http(LISTEN)[root@web2html]#lsof-i:80COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEnginx6843root6uIPv4377060t0TCP*:http(LISTEN)nginx6843root7uIPv6377070t0TCP*:http(LISTEN)nginx6844nginx6uIPv4377060t0TCP*:http(LISTEN)nginx6844nginx7uIPv6377070t0TCP*:http(LISTEN)[root@master~]#systemctlstartnginx[root@master~]#systemctlenablenginxlb01和lb02已經(jīng)配置好Nginx負載均衡器。5.3.5在主備節(jié)點上配置Nginx負載均衡5.3
Keepalived高可用服務-單主模式實例5.為Web服務器創(chuàng)建測試頁面。#切換web1端,創(chuàng)建Web頁面[root@web1~]#cat/usr/share/nginx/html/index.htmlloadingweb1#切換web2端,創(chuàng)建Web頁面[root@web2~]#cat/usr/share/nginx/html/index.htmlloadingweb2lb01和lb02已經(jīng)配置好Nginx負載均衡器。5.3.6
Nginx+Keepalived高可用集群單主模式測試5.3
Keepalived高可用服務-單主模式實例1.在本地客戶端瀏覽器訪問VIP,可以按Ctrl+F5強制刷新頁面,會出現(xiàn)如下兩種頁面。在Keepalived主節(jié)點運行正常的情況下,能順利訪問到后端真實服務器。2.為Web服務器創(chuàng)建測試頁面關閉Keepalived主節(jié)點或停止Keepalived主節(jié)點的Keepalived服務,模擬主節(jié)點宕機。[root@lb01~]#systemctlstopkeepalived[root@lb01~]#ipa|grep"0"5.3.6
Nginx+Keepalived高可用集群單主模式測試5.3
Keepalived高可用服務-單主模式實例4.客戶端仍可正常訪問Web服務集群,這是因為備節(jié)點接管了VIP資源。[root@lb02~]#ipa|grep"0"inet0/24scopeglobalseco3.重新訪問VIP。5.4Keepalived高可用服務-雙主模式實例Keepalived雙主架構(gòu)環(huán)境準備Keepalived節(jié)點配置配置Web服務端Nginx+Keepalived高可用集群雙主模式測試5.4.1
Keepalived雙主架構(gòu)5.4
Keepalived高可用服務-雙主模式實例Keepalived主備模式下,備節(jié)點的機器基本上屬于空閑狀態(tài),浪費了硬件資源。在高可用的原則上讓Keepalived互為主備,構(gòu)建雙主模式,配置多個實例。Keepalived雙主模式,即兩臺Keepalived服務器互為主備,使用兩個虛擬IP(VIP)提供服務。5.4.1
Keepalived雙主架構(gòu)5.4
Keepalived高可用服務-雙主模式實例Keepalived雙主模式集群架構(gòu)圖。Keepalived雙主模式可以實現(xiàn)多實例多業(yè)務雙向主備模式,如A業(yè)務在lb01節(jié)點上是主節(jié)點,在lb02節(jié)點上是備節(jié)點;而B業(yè)務在lb02節(jié)點上是主節(jié)點,在lb01節(jié)點上是備節(jié)點。在企業(yè)中,使用Keepalived雙主模式是比較常用集群方案。在5.3節(jié)已經(jīng)詳細講解了Keepalived高可用集群的單主方案,此處可使用當時的系統(tǒng)環(huán)境。web1和web2運行A業(yè)務,再添加2臺Web服務器運行B業(yè)務,具體如表所示。說明:提前關閉防火墻及SELinux(過程不再贅述)。5.4.2
環(huán)境準備5.4
Keepalived高可用服務-雙主模式實例IP主機名服務0lb01Keepalived主節(jié)點+Nginx負載均衡2lb02Keepalived備節(jié)點+Nginx負載均衡3web1Web服務(模擬運行A業(yè)務)4web2Web服務(模擬運行A業(yè)務)5web3Web服務(模擬運行B業(yè)務)6web4Web服務(模擬運行B業(yè)務)1.使用宿主機的瀏覽器為客戶端,在實驗開始前,建議為負載均衡和Web服務器互相做域名解析,便于通信。域名解析可以使用修改本地hosts文件的方式,也可以使用DNS服務器解析。這里采取修改hosts文件的方式,分別在lb01和lb02服務器的/etc/hosts文件中添加以下代碼。3.為了保證各服務器的時間一致,對所有服務器進行時間校對。5web36web4[root@localhost~]#ntpdate-u13.查看操作系統(tǒng)及內(nèi)核版本。[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.6.1810(Core)[root@localhost~]#uname-r3.10.0-957.el7.x86_64[root@localhost~]#uname-mx86_645.4.2
環(huán)境準備5.4
Keepalived高可用服務-雙主模式實例做完域名解析之后,可以使用ping命令進行檢測,若無丟包現(xiàn)象,說明解析成功。為了便于讀者觀察實驗操作對象,這里分別新添加的Web服務器的主機名修改為web3、web4。2.分別在web3和web4服務器的/etc/hosts文件中添加以下代碼。0lb012lb025.4.3
Keepalived節(jié)點配置5.4
Keepalived高可用服務-雙主模式實例1.修改lb01節(jié)點的Keepalived配置文件,再添加一個實例vrrp_instanceVI_2。[root@lb01~]#vi/etc/keepalived/keepalived.conf!ConfigurationFileforkeepalivedglobal_defs{notification_email{1261318-@}notification_email_fromAlexandre.Cassen@firewall.locsmtp_serversmtp_connect_timeout30router_idlb01}vrrp_instanceVI_1{stateMASTERinterfaceens33virtual_router_id51priority100advert_int1authentication{
auth_typePASS
auth_pass1111}virtual_ipaddress{0/24}}vrrp_instanceVI_2{stateBACKUPinterfaceens33virtual_router_id52priority90advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{1/24}}5.4.3
Keepalived節(jié)點配置5.4
Keepalived高可用服務-雙主模式實例2.修改lb02節(jié)點的Keepalived配置文件,添加一個實例vrrp_instanceVI_2。[root@lb02~]#cat/etc/keepalived/keepalived.conf!ConfigurationFileforkeepalivedglobal_defs{notification_email{1261318-@}notification_email_fromAlexandre.Cassen@firewall.locsmtp_serversmtp_connect_timeout30router_idlb02}vrrp_instanceVI_1{stateBACKUPinterfaceens33virtual_router_id51priority90advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{0/24}}vrrp_instanceVI_2{stateMASTERinterfaceens33virtual_router_id52priority100advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{1/24
}}對比lb01和lb02的配置文件,vrrp_instanceVI_2實例中,對于新建虛擬IP(1)來說,lb01成為lb02的備節(jié)點,且優(yōu)先級低于主節(jié)點。5.4.3
Keepalived節(jié)點配置5.4
Keepalived高可用服務-雙主模式實例3.Keepalived兩個節(jié)點重新啟動Keepalived服務。4.查看lb01端,查看虛擬IP的接管狀態(tài)。[root@lb01~]#ipa|egrep"0|1"inet0/24scopeglobalsecondaryens33[root@lb01~]#systemctlrestartkeepalived[root@lb02~]#systemctlrestartkeepalived5.查看lb02端,查看虛擬IP的接管狀態(tài)。[root@lb01~]#ipa|egrep"0|1"inet0/24scopeglobalsecondaryens335.4.3
Keepalived節(jié)點配置5.4
Keepalived高可用服務-雙主模式實例6.修改lb01和lb02負載均衡器Nginx的配置文件,添加一個server模塊。[root@lb01~]#cat/etc/nginx/nginx.conf……省略部分代碼……h(huán)ttp{log_formatmain'$remote_addr-$remote_user[$time_local]"$request"''$status$body_bytes_sent"$http_referer"''"$http_user_agent""$http_x_forwarded_for"';access_log/var/log/nginx/access.logmain;sendfileon;tcp_nopushon;tcp_nodelayon;keepalive_timeout65;types_hash_max_size4096;include/etc/nginx/mime.types;default_typeapplication/octet-stream;include/etc/nginx/conf.d/*.conf;server{listen80;listen[::]:80;server_name0;root/usr/share/nginx/html;include/etc/nginx/default.d/*.conf;error_page404/404.html;location=/404.html{}5.4.3
Keepalived節(jié)點配置5.4
Keepalived高可用服務-雙主模式實例6.修改lb01和lb02負載均衡器Nginx的配置文件,添加一個server模塊。error_page500502503504/50x.html;location=/50x.html{}
#引用服務器組location/{proxy_passhttp://html;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerREMOTE-HOST$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;}}
#配置服務器組upstreamhtml{serverweb1:80weight=5;serverweb2:80weight=5;}server{listen80;listen[::]:80;server_name1;root/usr/share/nginx/html;include/etc/nginx/default.d/*.conf;
5.4.3
Kee
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度儲煤場煤炭交易代理服務合同3篇
- 2025年度金融機構(gòu)外匯借款合同綠色金融創(chuàng)新實踐
- 二零二五年度碼頭租賃項目環(huán)保驗收及服務合同4篇
- 二零二五年度錄音系統(tǒng)定制開發(fā)與實施合同3篇
- 2025年度蘋果水果產(chǎn)地直供直銷采購合同4篇
- 2025版木工模板租賃與園林景觀設計施工承包合同范本3篇
- 二零二五年度寵物醫(yī)院寵物食品研發(fā)與生產(chǎn)合作協(xié)議3篇
- 二零二五年度辦公家具銷售合同(含安裝)2篇
- 二零二五年度天使投資協(xié)議書:生物科技研發(fā)項目風險投資合同
- 二零二五年度商標授權(quán)及商標市場推廣合同范本2篇
- 2024-2030年中國招標代理行業(yè)深度分析及發(fā)展前景與發(fā)展戰(zhàn)略研究報告
- 醫(yī)師定期考核 (公共衛(wèi)生)試題庫500題(含答案)
- 基因突變和基因重組(第1課時)高一下學期生物人教版(2019)必修2
- 內(nèi)科學(醫(yī)學高級):風濕性疾病試題及答案(強化練習)
- 音樂劇好看智慧樹知到期末考試答案2024年
- 辦公設備(電腦、一體機、投影機等)采購 投標方案(技術方案)
- 案卷評查培訓課件模板
- 2024年江蘇省樣卷五年級數(shù)學上冊期末試卷及答案
- 人教版初中英語七八九全部單詞(打印版)
- 波浪理論要點圖解完美版
- 金融交易數(shù)據(jù)分析與風險評估項目環(huán)境敏感性分析
評論
0/150
提交評論