web-dev-qa-db-ja.com

btrfsホスト上のファイルサーバーVM

Btrfsを使用して(bitrotから)データを保護しながらファイルサーバー/ NASを構築したいのですが、既存のKVM/QEMUサーバー(btrfs raid1を使用したdebian)を使用して、VMこの目的のために。

VMを作成し、データをext4ファイルシステムに保存した場合、ホストサーバーのbtrfsチェックサムはVMのデータ破損を検出しますか?

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

前の答えが「いいえ」の場合、ファイルシステムとしてbtrfsを使用してVMを作成する必要がありますか?

この場合、btrfsの「自己修復」機能を維持するには、raid1にbtrfsを含めるために少なくとも2つの仮想ディスクを作成する必要があります。

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

しかし、この方法では、多くのスペースを浪費することになります...ホストサーバーのraid1とVMのraid1。

または、おそらく最善の解決策は、ファイルサーバーをホストサーバーに直接実装することです(ただし、これら2つの役割をある程度分離したいのですが)。

更新1
私はbtrfsを好みますが、私の主な質問は、VMディスクのサイレント破損の検出と修正におけるbtrfs/zfsの有用性についてです。これらのファイルシステムはどのように区別できますか仮想ディスクへの通常のディスク書き込みによるサイレント破損?

更新2
もう少しグーグルした後、私はこれについてもう少し情報を見つけることができました serverfaultからの質問
いくつかのコメントによると、より複雑なファイルシステム(raid1 Hostファイルシステム内のraid1ゲストファイルシステムなど)が実装されていない限り、仮想ゲストシステムも危険にさらされます。

だから私の考えはこれです:

  • kvmホストサーバーにファイルサーバーをセットアップします
  • 重要なデータをファイルサーバー(すでにbtrfsを使用している)で安全に保ち、NFSを介してVMと共有します
  • VMディスクイメージフォルダのCOWを無効にする
  • vMのkvmスナップショットを作成し、その構成ファイルをNFS共有にバックアップします

これは合理的な解決策ですか、それとも重要な詳細を忘れていますか?

1
xpto

私は主にそれに基づいています serverfault post しかし、私は自分自身に答えようとします。

VMを作成し、データをext4ファイルシステムに保存した場合、ホストサーバーのbtrfsチェックサムはVMのデータ破損を検出しますか?

いいえ。私が収集したものから、ホストシステムがVMファイルシステムのデータ破損を検出する方法はありません。

前の答えが「いいえ」の場合、ファイルシステムとしてbtrfsを使用してVMを作成する必要がありますか?

はい。

または、おそらく最善の解決策は、ファイルサーバーをホストサーバーに直接実装することです(ただし、これら2つの役割をある程度分離したいのですが)。

私の場合、解決策は次のようになります。

  • kvmホストサーバーにファイルサーバーをセットアップします
  • 重要なデータをファイルサーバー(すでにbtrfsを使用している)で安全に保ち、NFSを介してVMと共有します
  • VMディスクイメージフォルダのCOWを無効にする
  • vMのkvmスナップショットを作成し、その構成ファイルをNFS共有にバックアップします
1
xpto