20.2. virtiofs を使用してホストと仮想マシン間でファイルを共有する


virtiofs を使用すると、ホストと仮想マシン (VM) の間で、ローカルファイルシステムの構造と同じように機能するディレクトリーツリーとしてファイルを共有できます。

20.2.1. virtiofs を使用してホストと仮想マシン間でファイルを共有する

RHEL 9 をハイパーバイザーとして使用する場合は、virtiofs 機能を使用して、ホストシステムとその仮想マシン間でファイルを効率的に共有できます。

前提条件

  • 仮想化は、RHEL 9 ホストでインストールされ、有効になります。
  • 仮想マシンと共有するディレクトリーがある。既存のディレクトリーを共有しない場合は、shared-files などの新しいディレクトリーを作成します。

    # mkdir /root/shared-files
  • データを共有する仮想マシンは、ゲストオペレーティングシステムとして Linux ディストリビューションを使用します。

手順

  1. 仮想マシンと共有するホストの各ディレクトリーを、仮想マシンの XML 設定の virtiofs ファイルシステムとして設定します。

    1. 目的の仮想マシンの XML 設定を開きます。

      # virsh edit vm-name
    2. 仮想マシンの 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 として表示するように設定します。

  2. 仮想マシンの共有メモリーを設定します。そのためには、共有メモリーバッキングを XML 設定の <domain> セクションに追加します。

    <domain>
     [...]
     <memoryBacking>
       <access mode='shared'/>
     </memoryBacking>
     [...]
    </domain>
  3. 仮想マシンを起動します。

    # virsh start vm-name
  4. ゲストオペレーティングシステムにファイルシステムをマウントします。以下の例では、Linux ゲストオペレーティングシステムで事前に設定した host-file-share ディレクトリーをマウントします。

    # mount -t virtiofs host-file-share /mnt

検証

  • 共有ディレクトリーが仮想マシンからアクセス可能になり、ディレクトリーに保存されているファイルを開けるようになりました。

既知の問題と制限

  • noatimestrictatime など、アクセス時間に関連するファイルシステムのマウントオプションは virtiofs では機能しない可能性が高く、Red Hat はその使用を推奨しません。

トラブルシューティング

  • virtiofs がユースケースに最適でない場合、またはシステムでサポートされていない場合は、代わりに NFS を使用できます。

20.2.2. virtiofs を使用してホストと Windows 仮想マシン間でファイルを共有する

RHEL 9 をハイパーバイザーとして使用する場合、virtiofs 機能と virtio-win パッケージを使用して、ホストシステムと Windows 仮想マシン (VM) の間でファイルを効率的に共有できます。

注記

virtiofs.exe コマンドと -i パラメーターを使用して、Windows 仮想マシン上で virtiofs サービスを大文字と小文字を区別しないモードで実行できます。

前提条件

手順

  1. Windows 仮想マシンで WinFsp をインストールします。これを行うには、virtio-win ISO イメージをマウントし、winfsp MSI インストーラーを起動して、プロンプトに従います。

    インストールウィザードの Custom Setup ウィンドウで、仮想マシンにインストールする機能を選択します。

  2. virtiofs サービスを起動します。

    # sc start VirtioFsSvc
  3. This PC に移動します。

    File Explorer This PC

    virtiofs は、Windows 仮想マシン上で、z: から逆順に遡る、使用可能な最初のドライブ文字として使用できます。たとえば、my_viofs (Z:) です。

    重要

    共有ディレクトリーにアクセスするには、仮想マシンを再起動するたびに virtiofs サービスを再起動する必要があります。

  4. オプション: 追加の virtiofs インスタンスを設定するには、以下を実行します。

    1. virtiofs サービスを停止します。

      # sc stop VirtioFsSvc
      # sc config VirtioFsSvc start=demand
    2. 複数の virtiofs インスタンスをセットアップするように WinFSP.Launcher サービスを設定します。

      # "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
    3. virtiofs インスタンスをドライブにマウントします。

      たとえば、mount_tag0 タグを持つ virtiofs を Y: ドライブにマウントするには、以下を実行します。

      "C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
    4. 前の手順を繰り返して、すべての virtiofs インスタンスをマウントします。
    5. virtiofs インスタンスをアンマウントするには、以下を実行します。

      "C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY

検証

  1. Windows 仮想マシンで、This PC に移動します。

    File Explorer This PC

    • virtiofs サービスのセットアップ時にマウントポイントを指定しなかった場合は、z: から逆順に遡る、使用可能な最初のドライブ文字が使用されます。
    • 複数の virtiofs インスタンスをセットアップした場合、それらはインスタンスに割り当てた文字を持つドライブとして表示されます。

20.2.3. Web コンソールで virtiofs を使用してホストとその仮想マシン間でファイルを共有する

RHEL Web コンソールを使用すると、virtiofs 機能を使用して、ホストシステムとその仮想マシン (VM) 間でファイルを効率的に共有できます。

前提条件

  • Web コンソールの仮想マシンプラグインが システムにインストールされている
  • 仮想マシンと共有するディレクトリーがある。既存のディレクトリーを共有したくない場合は、たとえば centurion という名前の新しいディレクトリーを作成します。

    # mkdir /home/centurion
  • データを共有する仮想マシンは、ゲストオペレーティングシステムとして Linux ディストリビューションを使用します。

手順

  1. 仮想マシン インターフェイスで、ファイルを共有する VM をクリックします。

    新しいページが開き、選択した VM に関する基本情報を含む 概要 セクションと、コンソール セクションが表示されます。

  2. 共有ディレクトリー までスクロールします。

    共有ディレクトリー セクションには、その VM と共有されているホストファイルとディレクトリーに関する情報、および共有ディレクトリーを 追加 または 削除 するためのオプションが表示されます。

    選択した VM と共有されているディレクトリーを表示するイメージ。
  3. 共有ディレクトリーの追加 をクリックします。

    ホストディレクトリーをゲストと共有する ダイアログが表示されます。

    ホストディレクトリーをゲストと共有するダイアログボックスを表示するイメージ。
  4. 以下の情報を入力します。

    • ソースパス - 共有するホストディレクトリーへのパス。
    • マウントタグ - VM がディレクトリーをマウントするために使用するタグ。
  5. 追加オプションを設定します。

    • 拡張属性 - 共有ファイルとディレクトリーで拡張属性 xattr を有効にするかどうかを設定します。
  6. 共有 をクリックします。

    選択したディレクトリーは仮想マシンと共有されます。

検証

  • 共有ディレクトリーが VM でアクセス可能であり、そのディレクトリーに保存されているファイルを開くことができるようになったことを確認します。

20.2.4. Web コンソールで virtiofs を使用してホストとその仮想マシン間の共有ファイルを削除する

RHEL Web コンソールを使用すると、virtiofs 機能を使用してホストシステムとその仮想マシン (VM) 間で共有されているファイルを削除できます。

前提条件

手順

  1. 仮想マシン インターフェイスで、共有ファイルを削除する VM をクリックします。

    新しいページが開き、選択した VM に関する基本情報を含む 概要 セクションと、コンソール セクションが表示されます。

  2. 共有ディレクトリー までスクロールします。

    共有ディレクトリー セクションには、その VM と共有されているホストファイルとディレクトリーに関する情報、および共有ディレクトリーを 追加 または 削除 するためのオプションが表示されます。

    選択した VM と共有されているディレクトリーを表示するイメージ。
  3. 仮想マシンとの共有を解除するディレクトリーの横にある Remove をクリックします。

    ファイルシステムの削除 ダイアログが表示されます。

    ファイルシステムの削除ダイアログボックスを表示するイメージ。
  4. 削除 をクリックします。

    選択したディレクトリーは VM と共有されていません。

検証

  • 共有ディレクトリーは、VM で使用できなくなり、アクセスできなくなります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.