DRBD提供了以下的特性: web
容許單/雙節點模式,其中單主節點模式是任何資源在任何特定時間,集羣中只存在一個主節點操做數據,也最經常使用的基本模式。安全
此外還提供了雙主節點模式,即集羣中存在兩個主節點均可以操做數據,此模式下,因爲數據有併發的可能,須要採用分佈式鎖進行管理,如GFS和OCFS2。網絡
提供了A、B和C三種數據備份複製協議。併發
協議A異步
協議B分佈式
協議C.net
固然,就目前而言應用最多和應用最普遍的仍是協議C,能夠確保數據的安全。接口
無論主節點失敗、次節點失效仍是複製被中斷等,只要是複製鏈接被中斷,同步就是必須的。DRBD的數據同步服務在主節點上是不間斷的之後臺進程運行着。進程
複製(device replication)和同步(synchronization )是不一樣的,複製發生於任何對主節點資源進行寫操做時,而同步則每每伴隨在寫操做過程當中。ci
DRBD是按照線性順序同步修改塊,而不是按修改的塊的順序進行同步。這種方式有幾個好處,首先同步速度很快,由於這幾個連續的寫操做發生一次塊的同步;其次,有較少的磁盤尋址,爲保持塊同步在天然磁盤上的區塊分佈,同步也是伴隨着磁盤磁道的尋找,線性順序同步修改快能夠減小磁盤尋址的時間。固然,這種方式可能致使數據不一致,由於同步中備用節點上數據可能部分過時或已部分更新,好比在同步的過程當中,數據在備用節點上部分過期或者部分被更新,這種數據狀態便稱爲數據不一致。
這個特性在DRBD8.2.5及之後版本中可用的,用於節點之間逐塊逐塊的進行數據完整性檢查。
使用了數據塊這個概念,數據塊是一組按順序連續排列在一塊兒的幾組記錄,是主存儲器與輸入、輸出設備或外存儲器之間進行傳輸的一個數據單位,也是數據的物理記錄。數據塊與數據的邏輯記錄(邏輯上有聯繫,在存儲器上佔有一組鄰接單元的數據單位)之間的對應關係有3種方式:
①一個塊即爲一個記錄;
②一個塊包含若干個邏輯記錄;
③一個邏輯記錄佔有幾個塊。
數據塊的大小能夠是固定的或是可變的,塊與塊之間有間隙。
此外,Flash芯片中數據塊的概念是邏輯概念,是特指數據ID號相同而且在物理位置上連續的相鄰頁所構成的。一個塊中的全部頁的數據ID號是相同的,而且這些頁在芯片中的位置是相鄰的。
在DRBD中,在線設備驗證的過程以下圖所示:
固然,這種方式也各有優缺點:
優勢:
1. 提升了網絡帶寬的利用率,由於DRBD傳輸的只是摘要,而不是完整的塊,所以對網絡資源的要求比較低
2. 不會形成服務或系統的中斷
3. 不影響後續同步——保證在任何狀況下驗證不破壞冗餘
缺點:
1.是資源密集型的操做,會明顯提高CPU利用率和負載。
DRBD8.2.0及之後版本提供的特性,用於避免在複製同步的過程產生髒數據。
在實際部署環境中,會因爲各類緣由致使髒數據產生,好比TCP校驗丟棄、數據在沒有經過TCP校驗就被丟到網卡上,致使「位翻轉」、數據從網絡NIC接口傳送到對等節點的主存儲器中,發生「位翻轉」、因爲競爭、網絡接口固件或者程序錯誤和節點之間因爲網絡組建組裝致使的位翻轉或隨機髒數據的注入等。所以須要在複製傳輸過程當中驗證數據的完整性。DRBD複製傳輸完整性驗證簡要過程大體是,首先,對每個複製到對等節點的數據塊都生成信息摘要;而後,對等節點(peer)也採用一樣的方式對複製的數據塊生成信息摘要;最後,進行數據完整性驗證。
裂腦(Split brain)指兩個節點都切換爲主節點而斷開鏈接,這是一個潛在的有害狀態,由於這意味着不能複製數據到對等節點,且可能致使兩個節點的數據不一致,從而產生不可合併的分裂。
產生裂腦常見緣由大體有,集羣節點間的網絡鏈接臨時故障、集羣軟件管理干預或者人爲錯誤等。
DRBD提供了裂腦自動修復的功能,不過能不能被接受取決於我的應用。若是是數據丟失零容忍狀況下,必須須要手動修復裂腦問題。若是數據丟失容忍度較高如web應用下,可考慮丟棄修改比較少的主節點上作的修改。
過時數據( Outdated data)指在次節點上的數據是一致的,沒法再與主節點進行同步(如長時間沒有和主節點進行同步),常發生在備份過程被暫時或永久地中斷。此時斷開的次節點被認爲是乾淨的(Clean),只是狀態反映的是過去的某個時間而已。
例如當網絡中斷髮生時,此時,DRBD調用外部應用程序(如Pacemaker集羣中的Resource-Level Fencing機制),將次節點標記爲過時狀態,在此期間DRBD會拒絕該將次節點切換爲主節點,從而保證了過時數據不被使用。當網絡集羣恢復可用時,過時節點的標記將被移除,而後同步數據過程在後臺進行。
DRBD除了過時(outdated)數據,還有數據不一致(inconsistent)的狀態。不一致的數據,指不該該被存取且使用的數據,如某個節點上正在進行同步的數據,此時在這個節點上的數據是部分陳舊或部分更新的,該數據就是不一致數據。此時,該設備沒法經過自動文件系統檢查或文件系統掛載。
DRBD版本8.3.0開始提供的特性。
三重備份,指在已有的雙節點集羣中增長一個節點,用來容災備份數據,適合遠程容災備份的狀況。異地容災遠程鏡像能夠採用異步方式或週期式同步的方式進行。能夠確保數據的安全性,可是會下降存儲空間的利用率。