第19章 ホストとその仮想マシン間でのファイルの共有


場合によっては、ホストシステムとそれが実行する仮想マシン (VM) 間でデータを共有することが頻繁に必要になります。これを迅速かつ効率的に行うには、virtio ファイルシステム (virtiofs) を使用できます。

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

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

19.1.1. コマンドラインを使用してホストと Linux 仮想マシン間でファイルを共有する

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

前提条件

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

    # mkdir /root/shared-files
    Copy to Clipboard
  • ファイルを共有する仮想マシンが、ゲストオペレーティングシステムとして Linux ディストリビューションを使用している。

手順

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

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

      # virsh edit vm-name
      Copy to Clipboard
    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>
      Copy to Clipboard

      この例では、ホスト上の /root/shared-files ディレクトリーを仮想マシンに対して host-file-share として表示するように設定します。

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

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

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

    # mount -t virtiofs host-file-share /mnt
    Copy to Clipboard

検証

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

既知の問題と制限

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

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

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

前提条件

  • 仮想マシンと共有するディレクトリーがある。既存のディレクトリーを共有したくない場合は、たとえば centurion という名前の新しいディレクトリーを作成します。

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

手順

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

    新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、Console セクションが表示されます。

  2. Shared directories までスクロールします。

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

  3. Add shared directory をクリックします。

    Share a host directory with the guest が表示されます。

  4. 以下の情報を入力します。

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

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

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

検証

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

19.1.3. Web コンソールを使用してホストと Linux 仮想マシン間で共有されているファイルを削除する

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

前提条件

手順

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

    新しいページが開き、選択した仮想マシンに関する基本情報を含む Overview セクションと、Console セクションが表示されます。

  2. Shared directories までスクロールします。

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

  3. 仮想マシンとの共有を解除するディレクトリーの横にある Remove をクリックします。

    Remove filesystem ダイアログが表示されます。

  4. Remove をクリックします。

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

検証

  • 仮想マシンで共有ディレクトリーが使用できなくなり、アクセスできなくなっていることを確認します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat