btrfs 主機上的檔案伺服器虛擬機

btrfs 主機上的檔案伺服器虛擬機

我想建立一個檔案伺服器/NAS,同時使用 btrfs 來保護資料(防止 bitrot),但我想使用現有的 KVM/QEMU 伺服器(帶有 btrfs raid1 的 debian)並為此目的建立一個虛擬機器。

如果我建立 VM 並將資料儲存在 ext4 檔案系統中,主機伺服器上的 btrfs 校驗和是否會偵測到 VM 上的資料損壞?

--------------------
|    KVM server    |
|   btrfs - raid1  |
|   -----------    |
|   | VM-ext4 |    |
|   -----------    |
|------------------|

如果前面的答案是否定的,我是否還必須使用 btrfs 作為其檔案系統來建立 VM?

在這種情況下,為了保持 btrfs 的「自我修復」功能,我必須建立至少 2 個虛擬磁碟才能在 raid1 中擁有 btrfs。

---------------------
|     KVM server    |
|    btrfs - raid1  |
|   ------------    |
|   | VM-btrfs |    |
|   | 2 x vda  |    |
|   ------------    |
|-------------------|

但這樣我會浪費很多空間...主機伺服器中的 raid1 加上虛擬機器中的 raid1。

或者也許最好的解決方案是直接在主機伺服器上實現檔案伺服器(儘管我更願意在這兩個角色之間保持一定的分離)?

更新1
儘管我偏好 btrfs,但我的主要問題是 btrfs/zfs 在偵測和修正 VM 磁碟中的靜默損壞方面的有用性。這些檔案系統如何區分虛擬磁碟上的靜默損壞和正常磁碟寫入?

更新2
經過更多谷歌搜索後,我只能找到更多關於此的信息伺服器故障的問題
根據一些評論,虛擬客戶系統也將面臨風險,除非實現更複雜的檔案系統(可能是 raid1 主機檔案系統內的 raid1 客戶檔案系統)。

所以我現在的想法是這樣的:

  • 在kvm主機伺服器上設定檔案伺服器
  • 確保檔案伺服器(已使用 btrfs)上的關鍵資料安全,並透過 NFS 與虛擬機器共用
  • 停用 VM 磁碟映像資料夾的 COW
  • 建立虛擬機器的 kvm 快照並將其設定檔備份到 NFS 共用

這是一個合理的解決方案還是我忘了一些重要的細節?

答案1

我主要是基於此伺服器故障後 但我會嘗試回答自己。

如果我建立 VM 並將資料儲存在 ext4 檔案系統中,主機伺服器上的 btrfs 校驗和是否會偵測到 VM 上的資料損壞?

不會。

如果前面的答案是否定的,我是否還必須使用 btrfs 作為其檔案系統來建立 VM?

是的。

或者也許最好的解決方案是直接在主機伺服器上實現檔案伺服器(儘管我更願意在這兩個角色之間保持一定的分離)?

就我而言,解決方案是:

  • 在kvm主機伺服器上設定檔案伺服器
  • 確保檔案伺服器(已使用 btrfs)上的關鍵資料安全,並透過 NFS 與虛擬機器共用
  • 停用 VM 磁碟映像資料夾的 COW
  • 建立虛擬機器的 kvm 快照並將其設定檔備份到 NFS 共用

相關內容