詳情描述
1、 什么是DRBD?
DRBD 是由內(nèi)核模塊和相關(guān)腳本而構(gòu)成,用以構(gòu)建高可用性的集群。其實現(xiàn)方式是通過網(wǎng)絡(luò)來鏡像整個設(shè)備。它允許用戶在遠(yuǎn)程機器上建立一個本地塊設(shè)備的實時鏡像。一般與心跳連接結(jié)合使用,也可以把它看作是一種網(wǎng)絡(luò)RAID。
2、DRBD是如何工作的?
Drbd 負(fù)責(zé)接收數(shù)據(jù),把數(shù)據(jù)寫到本地磁盤,然后發(fā)送給另一個主機。另一個主機再將數(shù)據(jù)存到自己的磁盤中。并以完全相同的形式記錄在一個文件系統(tǒng)中(實際上文件系統(tǒng)的創(chuàng)建也是由DRBD的同步來實現(xiàn)的)。本地節(jié)點(主機)與遠(yuǎn)程節(jié)點(主機)的數(shù)據(jù)可以保證實時的同步,并保證IO的一致性。所以當(dāng)本地節(jié)點的主機出現(xiàn)故障時,遠(yuǎn)程節(jié)點的主機上還會保留有一份完全相同的數(shù)據(jù),可以繼續(xù)使用,以達(dá)到高可用的目的。(就像網(wǎng)絡(luò)Raid1)
DRBD是工作在系統(tǒng)內(nèi)核空間,而不是用戶空間,它直接復(fù)制的是二進(jìn)制數(shù)據(jù),這是它速度快的根本原因。
3、底層設(shè)備支持
DRBD需要構(gòu)建在底層設(shè)備之上,然后構(gòu)建出一個塊設(shè)備出來。對于用戶來說,一個DRBD設(shè)備,就像是一塊物理的磁盤,可以在上面創(chuàng)建文件系統(tǒng)。DRBD所支持的底層設(shè)備有以下這些類:
1、一個磁盤,或者是磁盤的某一個分區(qū);
2、一個soft raid 設(shè)備;
3、一個LVM的邏輯卷;
4、一個EVMS(Enterprise Volume Management System,企業(yè)卷管理系統(tǒng))的卷;
5、其他任何的塊設(shè)備。
4、 drbd與現(xiàn)在的HA集群的關(guān)系
一個drbd系統(tǒng)由兩個以上節(jié)點構(gòu)成,與HA集群類似,也有主用節(jié)點和備用節(jié)點之分,在帶有主要設(shè)備的節(jié)點上,應(yīng)用程序和操作系統(tǒng)可以運行和訪問drbd設(shè)備
在主節(jié)點寫入的數(shù)據(jù)通過drbd設(shè)備存儲到主節(jié)點的磁盤設(shè)備中,同時,這個數(shù)據(jù)也會自動發(fā)送到備用節(jié)點相應(yīng)的drbd設(shè)備,較終寫入備用節(jié)點的磁盤設(shè)備中,在備用節(jié)點上,drbd只是將數(shù)據(jù)從drbd設(shè)備寫入到備用節(jié)點的磁盤設(shè)備中。
大部分現(xiàn)行高可用性集群都會使用共享存儲,而Drbd也可以作為一個共享存儲設(shè)備,使用drbd不需要任何硬件的投資。因為它在IP網(wǎng)絡(luò)中運行,所以,利用drbd作為共享存儲設(shè)備,要節(jié)約很多成本,因為在價格上IP網(wǎng)絡(luò)要比專用的存儲網(wǎng)絡(luò)經(jīng)濟(jì)的多。
5、 DRBD內(nèi)部實現(xiàn)原理圖
6、 DRBD協(xié)議說明
A 數(shù)據(jù)一旦寫入磁盤并發(fā)送到網(wǎng)絡(luò)中就認(rèn)為完成了寫入操作.
B 收到接收確認(rèn)就認(rèn)為完成了寫入操作.
C 收到寫入確認(rèn)就認(rèn)為完成了寫入操作.
協(xié)議A 異步復(fù)制協(xié)議。只要主節(jié)點完成本地寫操作就認(rèn)為寫操作完成,并且需要復(fù)制的數(shù)據(jù)包會被存放到本地TCP發(fā)送緩存中。當(dāng)發(fā)生故障,數(shù)據(jù)可能丟失。當(dāng) 故障發(fā)生時,在standby節(jié)點的數(shù)據(jù)會認(rèn)為仍是穩(wěn)固的,然而,在crash 發(fā)生的時間點上很多較新的更新操作會丟失。
協(xié)議B 內(nèi)存同步(半復(fù)制協(xié)議。當(dāng)本地磁盤的寫已經(jīng)完成,并且復(fù)制數(shù)據(jù)包已經(jīng)到達(dá)對應(yīng)從節(jié)點,此時主節(jié)點才認(rèn)為磁盤寫已經(jīng)完成。通常情況下,發(fā)生 不會導(dǎo)致數(shù)據(jù)丟失(因為后備系統(tǒng)內(nèi)存中已經(jīng)獲得了數(shù)據(jù)更新)。然而,如果所有節(jié)點同時出現(xiàn)電源故障,則主節(jié)點數(shù)據(jù)存儲會發(fā)生不可逆的錯誤結(jié)構(gòu),主節(jié)點上多數(shù)較新寫入數(shù)據(jù)可能丟失。
協(xié)議C 同步復(fù)制協(xié)議。只有在本地和遠(yuǎn)程磁盤都確定寫入已完成時,主節(jié)點才會認(rèn)為寫入完成。這樣可確保發(fā)生單點故障時不會導(dǎo)致任何數(shù)據(jù)丟失。如果發(fā)生數(shù)據(jù)丟失的現(xiàn)象,那也只會在所有節(jié)點同時存在錯誤存儲時才會發(fā)生這種情況。
在DRBD設(shè)置中,較常用的復(fù)制協(xié)議是協(xié)議C ,選擇哪種復(fù)制協(xié)議受到部署的兩個因素影響:保護(hù)要求和延遲
7、drbd設(shè)備的三個進(jìn)程
每個drbd設(shè)備會有三個進(jìn)程:
是drbd0的主要進(jìn)程,
是primary上drbd0的數(shù)據(jù)發(fā)送進(jìn)程,
是secondary上drbd0的數(shù)據(jù)接收進(jìn)程
注意事項
1、主備服務(wù)器同步的兩個分區(qū)大小較好相同
2、開始同步兩個節(jié)點的磁盤,需要一定時間,在同步完成前,不要重啟,否則會重新同步。
3、掛載之前一定要先切換當(dāng)前節(jié)點為主節(jié)點
4、兩個節(jié)點中,同一時刻只能有一臺處于primary狀態(tài),另一臺處于secondary狀態(tài)。
5、處于從節(jié)點(secondary)狀態(tài)的服務(wù)器不能加載drbd塊設(shè)備
6、將主節(jié)點切換為從節(jié)點之前要先卸載
7、一臺機切換為主節(jié)點之前,要確保另一臺機已切換為從節(jié)點
UCACHE災(zāi)備云利用現(xiàn)有的數(shù)據(jù)中心及軟硬件的整體方案實現(xiàn)了云端災(zāi)備, ,靈活的方案,保證企業(yè)重復(fù)數(shù)據(jù)刪除技術(shù):累積重刪比高達(dá)99%,減少備份窗口,壓縮比例災(zāi)備云功能。