您好,登錄后才能下訂單哦!
Keepalived簡介:
keepalived,保持存活,在網絡中就是保持在線,也就是HA,用來防止單點故障的發生,在keepalived中最重要的就是VRRP協議,它是keepalived實現高可用的基礎,。
一、VRRP協議
網絡在設計的時候必須考慮冗余容災,線路容災,設備容災,從而防止單點故障的發生,所以在路由器或三層交換機也要實現冗余,這里就要用到vrrp協議,即vrrp就是一種容錯協議,為消除在靜態缺省路由環境下的缺省路由器單點故障引起的網絡失效而設計的主備模式的協議,使得在發生故障而進行設備功能切換時可以不影響內外數據通信,不需要修改內部網絡的網絡參數。
VRRP協議將兩臺或多臺路由器設備虛擬成一個設備,對外提供虛擬路由器IP(一個或多個),而在虛擬路由器內部,對虛擬路由器有操作權限的就是Master,或者通過算法選舉產生,master實現針對虛擬路由器ip的各種網絡功能,如ARP請求,ICMP以及數據的轉發等;其他設備不擁有該ip,狀態是BACKUP,除了接收Master的VRRP狀態通告信息外,不執行對外的網絡功能。當主機失效時,Backup將接管原先的master網絡功能。
配置VRRP協議時需要配置每個路由器的虛擬路由器id也就是VRID和優先權值,使用VRID將路由器進行分組,具有相同的VRID值的路由器為同一組,VRID是一個0-255的正整數,同一組中的路由器通過使用優先級權值來選舉Master,優先級權值大的為Master,權值小的為backup,優先級權值也是0-255的正整數。
VRRP協議使用多播數據來傳輸VRRP數據,VRRP數據使用特殊的虛擬源MAC地址發送數據而不是自身網卡的MAC地址,vrrp運行時只有Master路由器定時發送vrrp通告信息,表示Master正常工作,Backup只負責接收Vrrp數據,不發送數據,如果一定時間內沒有收到Master的通告信息,各Backup將宣告自己成為Master,發送通告信息,重新進行Master選舉狀態。
相關術語:
虛擬路由器:由一個Master路由器和多個Backup路由器組成,主機將虛擬路由器當做默認網關;
虛擬IP地址:虛擬路由器的ip地址,一個虛擬路由器可以擁有一個或多個ip地址;
VRID:標識虛擬路由器,有相同VRID的一組路由器為一個虛擬路由器;
Master路由器:在虛擬路由器中承擔轉發任務的路由器;
Backup路由器:在虛擬路由器中只負責接收數據,當Master路由器出現故障時,能夠代替Master路由器工作:
VRRP在根據優先級權值選擇虛擬路由器中的每臺路由器的地位時有兩種方式:
1)非搶占式:如果Backup路由器工作在非搶占式方式下,則只要Master路由器沒有出現故障,即使Backup路由器之后被配置了更高的優先級也不會成為Master路由器;
2)搶占方式:如果Backup路由器工作在搶占方式下,當它收到VRRP報文后,會將自己的優先級與通告中的優先級進行比較,如果自己的優先級比當前的Master優先級高,就會主動搶占成為Master路由器;否則,將保持Backup狀態。
二.keepalived原理
1.keepalived組件:
keepalived是模塊化設計,不同的模塊負責不同的功能;
keepalived的組件:core、check、vrrp、libipfwc、libipvs-2.4、libipvs-2.6
core:是keepalived的核心,負責主進程的啟動和維護,全局配置文件的加載解析等;
check:負責healthchecker(健康檢查),包括了各種健康檢查的方式以及對應配置的解析;
vrrp:vrrpd子進程,vrrpd子進程就是用來實現vrrp協議的;
libipfwc:iptables庫,在配置LVS時會用到;
libipvs*:配置LVS;
2.keepalived進程
keepalived啟動后會有三個進程:
父進程:內存管理,子進程管理;
子進程:VRRP子進程;
子進程:healthchecker子進程;
兩個子進程都被系統WatchDog看管,兩個子進程都各自負責自己的事,healthchecker子進程負責檢查各個服務器的健康狀態,如果healthchecker子進程檢查到Master服務器不可用了,就會通知本機上的兄弟vrrpd子進程,讓它刪除通告,并且去掉虛擬ip,轉換為Backup狀態。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。