20.2. virtiofs を使用してホストと仮想マシン間でファイルを共有する
virtiofs を使用すると、ホストと仮想マシン (VM) の間で、ローカルファイルシステムの構造と同じように機能するディレクトリーツリーとしてファイルを共有できます。
20.2.1. virtiofs を使用してホストと仮想マシン間でファイルを共有する リンクのコピーリンクがクリップボードにコピーされました!
RHEL 9 をハイパーバイザーとして使用する場合は、virtiofs 機能を使用して、ホストシステムとその仮想マシン間でファイルを効率的に共有できます。
前提条件
- 仮想化は、RHEL 9 ホストでインストールされ、有効になります。
仮想マシンと共有するディレクトリーがある。既存のディレクトリーを共有しない場合は、shared-files などの新しいディレクトリーを作成します。
# mkdir /root/shared-files- データを共有する仮想マシンは、ゲストオペレーティングシステムとして Linux ディストリビューションを使用します。
手順
仮想マシンと共有するホストの各ディレクトリーを、仮想マシンの XML 設定の virtiofs ファイルシステムとして設定します。
目的の仮想マシンの XML 設定を開きます。
# virsh edit vm-name仮想マシンの XML 設定の
<devices>に、以下のようなエントリーを追加します。<filesystem type='mount' accessmode='passthrough'> <driver type='virtiofs'/> <binary path='/usr/libexec/virtiofsd' xattr='on'/> <source dir='/root/shared-files'/> <target dir='host-file-share'/> </filesystem>この例では、ホストの
/root/shared-filesディレクトリーを、仮想マシンのhost-file-shareとして表示するように設定します。
仮想マシンの共有メモリーを設定します。そのためには、共有メモリーバッキングを XML 設定の
<domain>セクションに追加します。<domain> [...] <memoryBacking> <access mode='shared'/> </memoryBacking> [...] </domain>仮想マシンを起動します。
# virsh start vm-nameゲストオペレーティングシステムにファイルシステムをマウントします。以下の例では、Linux ゲストオペレーティングシステムで事前に設定した
host-file-shareディレクトリーをマウントします。# mount -t virtiofs host-file-share /mnt
検証
- 共有ディレクトリーが仮想マシンからアクセス可能になり、ディレクトリーに保存されているファイルを開けるようになりました。
既知の問題と制限
-
noatime、strictatimeなど、アクセス時間に関連するファイルシステムのマウントオプションは virtiofs では機能しない可能性が高く、Red Hat はその使用を推奨しません。
トラブルシューティング
-
virtiofsがユースケースに最適でない場合、またはシステムでサポートされていない場合は、代わりに NFS を使用できます。