DistributedReplicated Block Device (DRBD)node
經過分佈式複製塊設備,能夠爲位於IP網絡上的兩個不一樣站點的兩個塊設備建立鏡像。和corosync一塊兒使用時,DRBD支持分佈式高可用Linux集羣,主節點和次節點經過TCP/IP協議保持同步,主節點故障,遠程節點保持着相同的數據,能夠接替主節點繼續工做。兩個節點使用heartbeat來檢測對方是否存活。網絡
DRBD確保數據的兩個副本保持相同的方式將主設備上的數據複製到次設備上。能夠將其視爲聯網的RAID1。實時對數據進行鏡像,一遍連續複製。應用程序不須要直到實際上它們的數據存儲在不一樣的磁盤上。併發
DRBD是Linux內核模塊,位於下端的I/O調度程序和上端文件系統之間。要與DRBD通訊,須要使用高級版命令drbdadm,爲了提供最大靈活性,DRBD附帶了低級別工具drbdsetup.分佈式
同步過程ide
1> 在node1上寫操做被提交,而後經過內核傳給DRBD模塊工具
2> DRBD發送寫操做到node2spa
3> 在node2上的DRBD發送寫操做給本地磁盤blog
4> 在node2上的DRBD向node1發確認信息,確認已經接收到寫操做併發送給本地磁盤資源
5> 在node1上的DRBD發送寫操做給本地磁盤get
6> node1的內核迴應寫操做完成
DRBD資源
Resource name:除了空白字符外的任一ACSII碼字符
Volumes:在雙方節點上,各自提供的存儲設備
DRBD device:/dev/drbd_,主設備號爲147,次設備號從0遞增
Connect:雙方數據同步時所使用的網絡屬性
Resource roles
在主節點上,DRBD device可不受限制讀寫、掛載。
在次節點上,DRBD device不可讀寫
同步過程依賴於DRBD的3種同步協議
Protocal A,Asynchronousreplication protocol,寫I/O到達本地磁盤和本地的TCP發送緩衝區後,返回操做成功
Protocal B,Memorysynchronous(semi-synchronous),寫I/O到達本地磁盤和遠程節點的TCP/IP協議棧以後,返回操做成功
Protocal C,Synchronousreplication protocol,寫I/O到達本地磁盤和遠程節點磁盤後,返回操做成功,單節點故障不會致使數據丟失。
DRBD支持使用Linux支持的任何塊設備,一般以下:
硬盤分區或完整硬盤
軟RAID
LVM
一般DRBD使用TCP的7788端口及更高端口進行DRBD節點間通訊。DRBD會將原始設備的最後128M用於元數據。