Keepalive+Nginx高可用配置(主從)

Keepalived高可用集群

一、Keepalived介紹

Keepalived軟件主要通過VRRP協議實現高可用功能的。VRRP是Virtual Router Redundancy Protocol(虛擬路由器冗余協議)的縮寫,VRRP出現的目的就是為了解決靜態路由單點故障問題,它能夠保證當個別節點宕機時,整個網絡可以不間斷地運行。keepalived除了能夠管理LVS軟件外,還可以作為其他服務(Nginx,Haproxy、MySQL等)的高可用解決方案軟件。

二、keepalived軟件的三個主要功能

1、管理LVS負載均衡軟件

早起的LVS軟件,需要通過命令行或腳本實現管理,并且沒有針對LVS節點的健康檢查功能。為了解決LVS的這些不方便的問題,keepalived誕生了。因此keepalived跟LVS的感情很深,關系如夫妻一樣,可以緊密的結合。keepalived可以通過讀取自身的配置文件,實現通過更底層的接口直接管理LVS的配置以及控制服務的啟動、停止等功能,這使得LVS的應用更加簡單方便。

2、實現對LVS集群節點的健康檢查功能

Keepalived可以通過在自身的keepalived.conf文件里配置LVS的節點IP和相關參數實現對LVS的直接管理;除此之外,當LVS集群中的某一個甚至幾個節點服務器同時發生故障無法提供服務時,keepalived服務會自動將失效的節點服務器從LVS的正常轉發隊列清楚出去,并將請求調度到別的正常節點服務器上,保證最終用戶的訪問不受影響,故障修復以后,keepalived服務又會自動把它們加入到正常轉發隊列中。

3、作為系統網絡服務的高可用功能(failover)

keepalived可以實現任意兩臺主機之間,例如Master和Backup主機之間的故障轉移和自動切換,這個主機可以是普通的不能停機的業務服務器,也可以是LVS負載均衡、Nginx反向代理這樣的服務器。

原理就是:兩臺主機同時安好keepalived軟件并啟動服務,開始正常工作時,由角色為Master的主機獲得所有資源并對用戶提供服務,角色為Backup的主機作為Master主機的熱備;當角色為Master的主機失效或出現故障時,角色為Backup的主機將自動接管Master主機的所有工作,包括接管VIP資源及相應資源服務;而當角色為Master的主機故障修復后,又會自動接管回它原理處理的工作,角色為Backup的主機則同時釋放Master主機失效時它接管的工作,還原為最初啟動各自的角色。

三、keepalived高可用故障切換轉移原理

在Keppalived服務正常工作時,主Master節點會不斷地向備節點發送(多播的方式)心跳消息,用以告訴備Backup節點自己還活著,當主Master節點發生故障時,就無法發送心跳消息,備節點也就因此無法繼續檢測到來自主Master節點的心跳了,于是調用自身的接管程序,接管主Master節點的IP資源及服務。而當主Master節點恢復時,備Backup節點又會釋放主節點故障時自身接管的IP資源及服務,恢復到原來的備用角色。

VRRP,全稱Virtual Router Redundancy Protocol,虛擬路由冗余協議,VRRP的出現就是為了解決靜態路由的單點故障問題,VRRP是通過一種競選機制來將路由任務交給某臺VRRP路由器的。

在一組虛擬路由器中,只有作為Master的VRRP路由器會一直發送VRRP廣播包(VRRP Advertisement messages),此時Backup不會搶占Master。當Master不可用時,Backup就收不到來自Master的廣播包了,此時多臺Backup中優先級最高的路由器會搶占為Master。這種搶占非常快速的,以保證服務的連續性,處于安全性考慮,VRRP數據包使用了加密協議進行加密。


總結就是下面四句話:

(1)VRRP,全程,Virtual Router Redundancy Protocol,中文名為虛擬路由冗余協議,VRRP的出現是為了解決靜態路由的單點故障。

(2)VRRP是通過一種競選協議機制來將路由任務交給某臺VRRP路由器的

(3)VRRP是IP多播的方式,實現高可用對之間的通信。

(4)工作時主節點發包,備節點接包,當備節點接受不到主節點發的數據包的時候,就啟動接管程序接管主節點的資源。備節點可以有多個,通過優先級競選,但一般Keepalived系統運維工作中都是一對。

(5)VRRP使用了加密協議加密數據,但keepalived官方目前還是推薦用明文的方式配置認證類型和密碼

四、Keepalived高可用服務搭建準備

(1)硬件環境:四臺虛擬機,兩臺做負載均衡器,兩臺做web服務器。

(2)web服務器前面搭建好了

(3)安裝keepalived軟件:yum install keepalived -y,在兩臺負載均衡器上都裝上。時間同步

(4)啟動:systemctl start keepalived.service

(5)配置主的文件/etc/keepalived/keepalived.conf

(6)全局定義部分可以不配,實際工作中交給更擅長監控報警的zabbix或者nagios來管

主的

Keepalive+Nginx高可用配置(主從)

備份的

Keepalive+Nginx高可用配置(主從)

測試,主的開啟keepalived和禁用

19.jpg

20.jpg

然后將主的keepalived關掉,用curl測試:

18.jpg

主主的區別如下,電腦內存太小,只有4g,跑了4太虛擬機太卡,上傳張圖片幾分鐘,不折騰了。

21.jpg

原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/65402

(10)
N24_yeziN24_yezi
上一篇 2016-12-30 21:39
下一篇 2016-12-31 10:57

相關推薦

  • 第十周

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情) 1.POST 開機加電自檢,對計算機的cpu,硬盤,內存等進行檢測。 2.BIOS 對引導程序進行探測,并把控制權交給引導程序。 3.MBR Master bootloader record主引導程序.通常位于硬盤第一扇區/dev/hda(0,0)或/dev/sda(0,0). 此階…

    Linux干貨 2017-03-30
  • 7.磁盤及文件系統管理

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; (2) 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳; [root@localhost ~]# fdisk /dev/sd…

    Linux干貨 2017-08-21
  • 馬哥教育網絡班21期+第13周課程練習

    1、建立samba共享,共享目錄為/data,要求:(描述完整的過程)   1)共享名為shared,工作組為magedu;   2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop為附加組,ubuntu不屬于develop組;密碼均為用戶名;   3)添加s…

    Linux干貨 2016-08-24
  • lvs-dr

            通過為請求報文重新封裝一個MAC首部進行轉發,源MAC是DIP所在的接口的MAC,目標MAC是某挑選出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目標IP/PORT均保持不變;     VIP通常配置在lo:0…

    2017-06-29
  • 詳解LAMP源碼編譯安裝

    詳解LAMP源碼編譯安裝 LAMP簡介 LAMP是當下非常流行的一套Web架構,我們可以在GNU/Linux下通過其他人打包的程序包來進行安裝; 但是在生產環境中,很多時候都需要我們自己定制安裝AMP,編譯安裝LAMP有以下幾個優點 根據生產環境靈活定制程序 優化編譯參數,提高性能 解決不必要的軟件依賴 一、準備工作 卸載yum或rpm安…

    Linux干貨 2016-10-16

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-04-13 09:34

    贊,特別是最后一張圖,希望能看出其中和你配置不一樣的地方,并理解~~繼續加油~

欧美性久久久久