- 論壇徽章:
- 0
|
www.drbd.org
drbd是一個開源的數據集群(clustering) 方案, 它能夠提供一種動態(tài)的主機之間的數據的同步. 它不是一個集群軟件, 它只是針對塊設備的同步.
基本架構如下,
![]()
由上圖, DRBD的實現方式是在物理的存儲設備上面, 再添加了一層塊設備. 其中使用本地的物理存儲的作為"主用" (primary), 通過網絡訪問的位于另外一個主機的存儲設備作為"次用"(secondary)設備. 就像一個通過網絡來實現的RAID-1.
對于讀操作, 都是使用"主用"的存儲, 即本地的.
對于寫操作, 問題有些復雜, 但是針對最簡單的情況, 它的實現方式如下,
1. 接到寫請求;
2. 把寫請求發(fā)送給本地底層存儲, 同時通過網絡把寫請求發(fā)送給對端的"次用"DRBD設備;
3. "次用"DRBD設備執(zhí)行寫請求, 把數據寫到物理存儲上.
4. "次用"DRBD在完成寫操作后, 發(fā)送一個"確認"給"主用"DRDB
5. 這是, "主用"DRBD應已完成對本地硬盤的寫, 返回給應用一個寫操作完成確認.
也就是說, DRBD直到完成本地和遠端的寫操作, 才返回應用一個寫完成.
當然, 這是DRBD最嚴格的一種實現. DRDB也可以有另兩種相對松散的實現,
a. 主用DRBD在接到寫請求后, 立刻返回寫完成給應用.
b. 在次用DRBD的緩存收到寫請求后, 立刻返回寫完成給應用.
DRBD還支持同時向"主用"和"次用"設備的寫操作, 實現就要復雜的多. 我的個人理解, 對于應用來說, 只面對主用設備, 在發(fā)生集群(clustering)切換之前, 應用是不直接訪問次用設備的. 結構越簡單, 可靠性越高.
注:最初的時候錯誤的使用了DRDB, 事實上是DRBD
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/14914/showart_355553.html |
|