web-dev-qa-db-ja.com

ファイルシステムアクセス許可の戦略KVM共有フォルダー

ZFSデータセット(別名ファイルシステム)に(NFS経由で)アクセスできるUbuntu/KVMハイパーバイザー環境があります。私はZFSファイルシステムでVMイメージをホストしてきました。これは、世界で最速ではありませんが、非常に安定しています。

私がやりたいのは、KVM共有機能を使用してVMにZFSデータセットへのアクセスを許可し、ゲスト内にマウントすることで、ゲストVMにZFSファイルシステムへの直接アクセスを許可することです。これには2つの理由があります。

  1. 私が現在持っているZFS上のext4の代わりに、1つのファイルシステム構造(ZFS)のみが維持されるため、速度の向上を望んでいます。

  2. ユーザーがZFSのスナップショット機能にアクセスできるようにしたい。

説明どおりにボリュームをマウントできましたが、マウントできなかったため、書き込み可能です。 Webを検索すると、有効なユーザー名はlibvirt +であることがわかりましたが、機能するターゲットファイルシステムへのchmod設定を見つけることができませんでした。

誰かがこれを処理する方法についてのガイドを教えてもらえますか?

2
AlanObject

質問の戦術的な部分に答えるために、NFSを使用してゲスト/ホストの共有を行っているようです。次に、NFSパーミッションの質問になります。ホストで、zfs set sharenfs="[email protected]/N" tankのように読み取り/書き込みが共有されていることを確認します。ここで、w.x.y.z/Nは、この共有へのアクセスを許可するIPアドレスのセットです。より完全な例については、 ここ を参照してください。

しかしまた、あなたの目標について:

  1. ホストがVMディスクファイルをZFSに格納し、ゲストがその上にext4を使用する場合、ZFSがパフォーマンスの観点から多くの「ファイルシステムオーバーヘッド」を追加する可能性は低いです。結局のところ、KVMがこのモードで新しいファイルを作成することはめったにないので、ZFSでメタデータを頻繁に更新する必要はありません。VMでパフォーマンスに非常に敏感なワークロードを実行していない限り、私の推測です。 (高スループットデータベースなど)、大きな違いに気付くことはありません。

  2. ZFSのスナップショット機能をゲストのユーザーに公開する方法がわかりません。これは、Solarisのゾーン、FreeBSDのjail、LinuxのDocker/lxd/lxc(これについてはよくわかりません)で実行できますが、KVM + QEMU。KVMでこれを行う唯一の方法は、ユーザーにホスト自体のzfs snapshotへのアクセスを許可することだと思います(直接SSHアクセスまたはサービスなどを介して) )。

ホスト上にデータファイルを保持することが理にかなっている理由は他にもあります(統合に加えて、ZFSの通常のすべての利点:バックアップの容易さ、データの整合性、割り当てと予約の配置など)が、これら2つは特にそうなるとは思いません。新しい構成で簡単になります。

2
Dan