Replication

使用快照的 ZFS 可以使用同步協議 A 替換 DRBD 嗎?

  • May 16, 2021

這個問題與以前的一個更通用的問題有關,但這次我想更具體地問一下 ZFS 是否可以在像我這樣的案例中取代 DRBD。也就是說,兩台伺服器都託管自己的虛擬機或其他服務,同時將虛擬機或其他一些數據相互複製,以縮短硬體故障或維護時的停機時間。此設置符合預期,我想要首選的本地讀取/寫入,並且可以在某個任意時間範圍內承受潛在的數據失去。

DRBD 使用不同的鏡像協議支持這種場景,其中複製協議 A是非同步的,因為我需要它。DRBD 在我的設置中的主要好處是切換到更同步的協議很容易,只需配置和重新啟動即可。此外,可以將 dm-crypt 放在 DRBD 塊設備之上,並將文件系統放入 dm-crypt 中,以便對每個數據進行加密。

另一方面,DRBD 的問題是它需要塊設備,並且必須使用 RAID 和 LVM 等其他技術來關心它們的可用性和大小。尤其是調整大小的事情似乎很有趣,因為我的伺服器有空閒插槽可以在將來連接更多磁碟。為了支持調整大小,我需要在 DRBD 下使用 LVM,首先使用 LVM 添加儲存,然後調整 DRBD 的大小以考慮新儲存。比我還需要處理 dm-crypt、文件系統本身等。這讀起來很複雜,而且對我來說容易出錯。

另一方面,像 ZFS 這樣的文件系統已經提供了自己的 LVM,並且能夠發送/接收增量快照。所以理論上 ZFS 應該能夠實現相同的協議 像 DRBD 這樣的方法不需要使用 RAID、LVM 等。只需將儲存添加到伺服器,將其放入 ZFS 池中,它就可以立即用於託管更多/更大的虛擬機或其他。發送/接收快照聽起來和 DRBD 所做的一樣高效,因為它只是增量二進制數據,需要任何成本來描述接收 ZFS 中要理解的更改。我讀過有人使用無限循環,沒有睡眠時間發送/接收 ZFS 快照,然後再次直接在源中刪除它們,因為它們僅用於短期複製。

不過,加密對 ZFS 來說似乎是個問題。dm-crypt 可能適用於 zvols 之類的東西,將來它可能會直接支持加密,但目前不支持。此外,發送/接收快照似乎總是非同步的,如果需要,沒有辦法實現像 DRBD 提供的更同步的協議。不過這可能是可以接受的,因為不需要使用 LVM 並使整體設置更容易。

還是我錯了,除了發送/接收快照之外,還有其他方法 ZFS 如何能夠將數據轉發到開箱即用的其他主機和僅 ZFS?

您是否發現在短時間內使用 ZFS 與 DRBD 鏡像協議發送/接收快照存在一些基本的性能差異或限制?後者可能會更有效率,因為我猜只有塊級別。

您能想到 DRBD 和 ZFS 之間的其他區別嗎?請記住,我目前不需要 DRBD 的 HA 東西,我現在專注於數據的複制。

謝謝!

我最近問了一個有點相似(但不同)的問題

簡而言之,這完全取決於您想要實現的複制目標以及 ZoL 是否適合您的案例:

  • 如果時間點複製足夠,發送增量快照是一個非常好的策略
  • 如果需要接近或完全實時同步,則必須使用 DRBD設置網路鏡像 zpool(請參閱上面我的問題的連結)
  • 在選擇使用 ZoL 時,考慮到提供 ARC,它基本上自己重新實現了很大一部分“頁面記憶體”程式碼。這意味著文件系統程式碼會增加記憶體消耗。此外,作為 CoW 文件系統,ZFS 有自己特定的性能行為/要求。

另一方面,我建議你不要使用 ZVOL,它隱藏了一些令人討厭的驚喜

引用自:https://serverfault.com/questions/852557