這篇文章將為大家詳細(xì)講解有關(guān)基于VIP的Keepalived 高可用架構(gòu)是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
石棉網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),石棉網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為石棉成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的石棉做網(wǎng)站的公司定做!
Keepalived 的作用是檢測服務(wù)器的狀態(tài)。如果有一臺(tái) web 服務(wù)器宕機(jī),或工作出現(xiàn)故障,Keepalived 將檢測到,并將有故障的服務(wù)器從系統(tǒng)中剔除,同時(shí)使用其他服務(wù)器代替該服務(wù)器的工作,當(dāng)服務(wù)器工作正常后 Keepalived 自動(dòng)將服務(wù)器加載到服務(wù)器群中,這些工作全部自動(dòng)完成,不需要人工干涉,需要人工做的只是修復(fù)故障的服務(wù)器。
配置文件簡單:配置文件比較簡單,可通過簡單配置實(shí)現(xiàn)高可用功能。
穩(wěn)定性強(qiáng):keepalived 是一個(gè)類似于 layer3/4/7 交換機(jī)機(jī)制的軟件,具備我們平時(shí)說的第 3 層、第 4 層和第 7 層交換機(jī)的功能,常用于前端負(fù)載均衡器的高可用服務(wù),當(dāng)主服務(wù)器出現(xiàn)故障時(shí),可快速進(jìn)行切換,監(jiān)測機(jī)制靈活,成功率高。
成本低廉:開源軟件,可直接下載配置使用,沒有額外費(fèi)用。
應(yīng)用范圍廣:因?yàn)?keepalived 可應(yīng)用在多個(gè)層面,所以它幾乎可以對(duì)所有應(yīng)用做高可用,包括 LVS、數(shù)據(jù)庫、http 服務(wù)、nginx 負(fù)載均衡等等。
支持多種類型:支持主從模式、主主模式高可用,可根據(jù)業(yè)務(wù)場景靈活選擇。
WatchDog 監(jiān)控 checkers 和 VRRP 進(jìn)程的狀況。
Checkers 負(fù)責(zé)真實(shí)服務(wù)器的健康檢查 healthchecking。
VRRP Stack 負(fù)責(zé)負(fù)載均衡器之間的失敗切換。
IPVS wrapper 用來發(fā)送設(shè)定的規(guī)則到內(nèi)核 IPVS 代碼。
Netlink Reflector 用來設(shè)定 vrrp 的 vip 地址等。
Keepalived 是以 VRRP 協(xié)議為實(shí)現(xiàn)基礎(chǔ)的,VRRP 全稱 Virtual Router Redundancy Protocol,即虛擬路由冗余協(xié)議。
VRRP 根據(jù)優(yōu)先級(jí)來確定虛擬路由器中每臺(tái)路由器的角色(Master 路由器或 Backup 路由器)。VRRP 優(yōu)先級(jí)的取值范圍為 0 到 255(數(shù)值越大表明優(yōu)先級(jí)越高),可配置的范圍是 1 到 254,優(yōu)先級(jí) 0 為系統(tǒng)保留給路由器放棄 Master 位置時(shí)候使用,255 則是系統(tǒng)保留給 IP 地址擁有者使用。優(yōu)先級(jí)越高,則越有可能成為 Master 路由器。當(dāng)兩臺(tái)優(yōu)先級(jí)相同的路由器同時(shí)競爭 Master 時(shí),比較接口 IP 地址大小。接口地址大者當(dāng)選為 Master。
core 模塊:keepalived 的核心,負(fù)責(zé)主進(jìn)程的啟動(dòng)、維護(hù)以及全局配置文件的加載和解析。
check 模塊:負(fù)責(zé)健康檢查,包括各種常見的檢查方式。
vrrp 模塊:是來實(shí)現(xiàn) VRRP 協(xié)議的。
IP:互聯(lián)網(wǎng)協(xié)議。
ICMP:互聯(lián)網(wǎng)控制報(bào)文協(xié)議。
ARP:地址轉(zhuǎn)換協(xié)議。
RARP:反向地址轉(zhuǎn)換協(xié)議。
Keepalived 在網(wǎng)絡(luò)層采用的最常見的工作方式是通過 ICMP 協(xié)議向服務(wù)器集群中的那個(gè)節(jié)點(diǎn)發(fā)送一個(gè) ICMP 數(shù)據(jù)包(類似于 ping 實(shí)現(xiàn)的功能),如果某個(gè)節(jié)點(diǎn)沒有返回響應(yīng)數(shù)據(jù)包,那么認(rèn)為此節(jié)點(diǎn)發(fā)生了故障,Keepalived 將報(bào)告此節(jié)點(diǎn)失效,并從服務(wù)器集群中剔除故障節(jié)點(diǎn)。
在傳輸層,提供了兩個(gè)主要的協(xié)議:傳輸控制協(xié)議 TCP 和用戶數(shù)據(jù)協(xié)議 UDP。傳輸控制協(xié)議 TCP 可以提供可靠的數(shù)據(jù)傳輸服務(wù)、IP 地址和端口代表 TCP 的一個(gè)連接端。要獲得 TCP 服務(wù),需要在發(fā)送機(jī)的一個(gè)端口上和接收機(jī)的一個(gè)端口上建立連接。
Keepalived 在傳輸層就是利用 TCP 協(xié)議的端口連接和掃描技術(shù)來判斷集群點(diǎn)是否是正常的。比如,對(duì)于常見的 WEB 服務(wù)默認(rèn)的 80 端口、SSH 服務(wù)默認(rèn)的 22 端口等,Keepalived 一旦在傳輸層探測到這些端口沒有響應(yīng)數(shù)據(jù)返回,就認(rèn)為這些端口發(fā)生異常,然后強(qiáng)制將此端口對(duì)應(yīng)的節(jié)點(diǎn)從服務(wù)器集群組中移除。
在應(yīng)用層,可運(yùn)行 FTP、TELNET、HTTP、DNS 等各種不同類型的高層協(xié)議。
Keepalived 在應(yīng)用層的運(yùn)行方式也更加全面化和復(fù)雜化,用戶可以通過自定義 Keepalived 的工作方式;例如:用戶可以通過編寫程序來運(yùn)行 keepalived。而 keepalived 將根據(jù)用戶的設(shè)定檢測各種程序或服務(wù)是否運(yùn)行正常,如果 Keepalived 的檢測結(jié)果與用戶設(shè)定不一致時(shí),Keepalived 將把對(duì)應(yīng)的服務(wù)從服務(wù)器中移除。
集群是一組相互獨(dú)立的、通過高速網(wǎng)絡(luò)互連的計(jì)算機(jī),它們構(gòu)成了一個(gè)組,并以單一系統(tǒng)的模式加以管理。一個(gè)客戶與集群相互作用時(shí),集群像是一個(gè)獨(dú)立的服務(wù)器。
通過集群技術(shù),可以在付出較低成本的情況下獲得在性能、可靠性、靈活性方面的相對(duì)較高的收益,其任務(wù)調(diào)度則是集群系統(tǒng)中的核心技術(shù)。
集群組成后,可以利用多個(gè)計(jì)算機(jī)和組合進(jìn)行海量請(qǐng)求處理(負(fù)載均衡),從而獲得很高的處理效率,也可以用多個(gè)計(jì)算機(jī)做備份(高可用),使得任何一個(gè)計(jì)算機(jī)壞了整個(gè)系統(tǒng)還是能正常運(yùn)行。集群在目前互聯(lián)網(wǎng)公司是必備的技術(shù),極大提高互聯(lián)網(wǎng)業(yè)務(wù)的可用性和可縮放性。
HA(High Available),高可用性集群是通過系統(tǒng)的可靠性(reliability)和維護(hù)性(maintainability)來度量的。
工程上,通常用平均無故障時(shí)間(MTTF)來度量系統(tǒng)的可靠性,用平均維修時(shí)間(MTTR)來度量系統(tǒng)的可維護(hù)性。于是可用性被定義為:HA=MTTF/(MTTF+MTTR)*100%
(平均無故障時(shí)間/總時(shí)間,總時(shí)間=平均無故障時(shí)間+平均維修時(shí)間)。
具體 HA(可用性)衡量標(biāo)準(zhǔn):
99% 一年宕機(jī)時(shí)間不超過 4 天。
99.9% 一年宕機(jī)時(shí)間不超過 10 小時(shí)。
99.99% 一年宕機(jī)時(shí)間不超過 1 小時(shí)。
99.999% 一年宕機(jī)時(shí)間不超過 6 分鐘。
高可用工作方式
主從方式(非對(duì)稱方式)
雙機(jī)雙工方式(互備互援)
集群工作方式(多服務(wù)器互備方式)
高可用的資源分類
網(wǎng)絡(luò)高可用(用戶 -> 機(jī)房、機(jī)房內(nèi)網(wǎng))
服務(wù)器高可用(CPU、內(nèi)存、磁盤)
存儲(chǔ)高可用(關(guān)系型數(shù)據(jù)庫、分布式緩存、分布式存儲(chǔ)系統(tǒng))
服務(wù)高可用等(Web 服務(wù):Nginx、DNS、cdn 等)
開源高可用解決方案
keepalived:通過實(shí)現(xiàn) vrrp 協(xié)議來實(shí)現(xiàn)地址漂移。
在系統(tǒng)中,有一個(gè) Master 節(jié)點(diǎn)和一個(gè) Backup 節(jié)點(diǎn),其中 Master 節(jié)點(diǎn)對(duì)線上業(yè)務(wù)提供服務(wù),Backup 與 Master 節(jié)點(diǎn)之間保持心跳。
當(dāng) Master 節(jié)點(diǎn)因宕機(jī)服務(wù)不可用時(shí),系統(tǒng)會(huì)切換到 Backup 節(jié)點(diǎn)上線,提供服務(wù)。
當(dāng)宕機(jī) Master 節(jié)點(diǎn)恢復(fù)后,系統(tǒng)將該 Master 節(jié)點(diǎn)作為 Backup 加入集群。
在系統(tǒng)中,有兩個(gè) Master 節(jié)點(diǎn),均對(duì)線上業(yè)務(wù)提供服務(wù),兩個(gè) Master 節(jié)點(diǎn)之間保持心跳。
當(dāng)某一臺(tái) Master 節(jié)點(diǎn)因宕機(jī)服務(wù)不可用時(shí),系統(tǒng)會(huì)將流量全部導(dǎo)向剩余的 Master 節(jié)點(diǎn),繼續(xù)提供服務(wù)。
當(dāng)宕機(jī)的 Master 節(jié)點(diǎn)恢復(fù)后,系統(tǒng)將該 Master 加入集群,提供服務(wù)。
Keepalived 在一個(gè)節(jié)點(diǎn)上啟動(dòng)之后,會(huì)生成一個(gè) Master 主進(jìn)程,這個(gè)主進(jìn)程又會(huì)生成兩個(gè)子進(jìn)程,分別是:
VRRP Stack:實(shí)現(xiàn) VRRP 協(xié)議。
Checkers:檢測 ipvs 后端 realserver 的健康狀況。
VRRP 雙方節(jié)點(diǎn)都啟動(dòng)后,要實(shí)現(xiàn)狀態(tài)轉(zhuǎn)換的,剛開始啟動(dòng)的時(shí)候,初始狀態(tài)都是 BACKUP,而后向其他節(jié)點(diǎn)發(fā)送通知,以及自己的優(yōu)先級(jí)信息,誰的優(yōu)先級(jí)高,就轉(zhuǎn)換為 MASTER,否則就還是 BACKUP。
這時(shí)候服務(wù)就在狀態(tài)為 MASTER 的節(jié)點(diǎn)上啟動(dòng),為用戶提供服務(wù),如果,該節(jié)點(diǎn)掛掉了,則轉(zhuǎn)換為 BACKUP,優(yōu)先級(jí)降低,另一個(gè)節(jié)點(diǎn)轉(zhuǎn)換為 MASTER,優(yōu)先級(jí)上升,服務(wù)就在此節(jié)點(diǎn)啟動(dòng),VIP、VMAC 都會(huì)被轉(zhuǎn)移到這個(gè)節(jié)點(diǎn)上,為用戶提供服務(wù)。
關(guān)于基于VIP的Keepalived 高可用架構(gòu)是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。