検索

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

download PDF

ホストシステムと、そのホストが実行する仮想マシンとの間で、データを共有することが頻繁に必要になります。これを迅速かつ効率的に行うために、システムに NFS ファイル共有をセットアップできます。または、virtiofs を使用して、Linux および Windows 仮想マシンとデータを共有することもできます。

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

RHEL 9 ホストシステムと仮想マシンの間でファイルを効率的に共有するために、仮想マシンがマウントしてアクセスできる NFS 共有をエクスポートできます。

ただし、Linux VM では、通常、virtiofs 機能を使用する方が便利です。

前提条件

  • nfs-utils パッケージがホストにインストールされている。

    # dnf install nfs-utils -y
  • NAT または bridge タイプの仮想ネットワークが、ホストを仮想マシンに接続するように設定されている。
  • オプション: セキュリティーを強化するには、仮想マシンが NFS バージョン 4 以降と互換性があることを確認します。

手順

  1. ホストで、ネットワークファイルシステム (NFS) として共有するファイルを含むディレクトリーをエクスポートします。

    1. 既存のディレクトリーを仮想マシンと共有します。既存のディレクトリーを共有したくない場合は、新しいディレクトリーを作成します。

      # mkdir shared-files
    2. ホストからファイルを共有するために各仮想マシンの IP アドレスを取得します (例: testguest1testguest2)。

      # virsh domifaddr testguest1
      Name       MAC address          Protocol     Address
      ----------------------------------------------------------------
      vnet0      52:53:00:84:57:90    ipv4         192.0.2.2/24
      
      # virsh domifaddr testguest2
      Name       MAC address          Protocol     Address
      ----------------------------------------------------------------
      vnet1      52:53:00:65:29:21    ipv4         192.0.2.3/24
    3. ホスト上の /etc/exports ファイルを編集し、共有するディレクトリー、共有する仮想マシンの IP、および追加のオプションを含む行を追加します。

      /home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)>
      ...

      たとえば、以下は、testguest1 および testguest2 があるホストの /usr/local/shared-files ディレクトリーを共有し、仮想マシンがディレクトリーのコンテンツを編集できるようにします。

      /usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
      注記

      Windows の仮想マシンとディレクトリーを共有するには、Windows NFS クライアントに共有ディレクトリーへの書き込み権限があることを確認する必要があります。/etc/exports ファイルでは、all_squashanonuid、および anongid オプションを使用できます。

      /usr/local/shared-files/ 192.0.2.2(rw,sync,all_squash,anonuid=<directory-owner-UID>,anongid=<directory-owner-GID>)

      <directory-owner-UID><directory-owner-GID> は、ホスト上の共有ディレクトリーを所有するローカルユーザーの UID と GID です。

      NFS クライアントの権限を管理するその他のオプションについては、NFS サービスの保護 ガイドに従ってください。

    4. 更新したファイルシステムをエクスポートします。

      # exportfs -a
    5. nfs-server サービスを起動します。

      # systemctl start nfs-server
    6. ホストシステムの IP アドレスを取得して、仮想マシンに共有ディレクトリーをマウントします。

      # ip addr
      ...
      5: virbr0: [BROADCAST,MULTICAST,UP,LOWER_UP] mtu 1500 qdisc noqueue state UP group default qlen 1000
      link/ether 52:54:00:32:ff:a5 brd ff:ff:ff:ff:ff:ff
      inet 192.0.2.1/24 brd 192.0.2.255 scope global virbr0
      valid_lft forever preferred_lft forever
      ...

      関連するネットワークはホストと仮想マシンを接続してファイルを共有することに注意してください。通常、これは virbr0 です。

  2. /etc/exports ファイルで指定されている Linux 仮想マシンに共有ディレクトリーをマウントします。

    # mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
    • 192.0.2.1: ホストの IP アドレスです。
    • /usr/local/shared-files: ホスト上のエクスポートされたディレクトリーへのファイルシステムパスです。
    • /mnt/host-share: 仮想マシン上のマウントポイントです。

      注記

      マウントポイントは空のディレクトリーである必要があります。

  3. /etc/exports ファイルに指定されているように Windows 仮想マシンに共有ディレクトリーをマウントするには、次の手順を実行します。

    1. 管理者として PowerShell シェルプロンプトを開きます。
    2. Windows に NFS-Client パッケージをインストールします。

      1. サーバーバージョンにインストールするには、次のように入力します。

        # Install-WindowsFeature NFS-Client
      2. デスクトップバージョンにインストールするには、次のように入力します。

        # Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
    3. ホストによってエクスポートされたディレクトリーを Windows 仮想マシンにマウントします。

      # C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:

      この例では、以下が適用されます。

      • 192.0.2.1: ホストの IP アドレスです。
      • /usr/local/shared-files: ホスト上のエクスポートされたディレクトリーへのファイルシステムパスです。
      • Z:: マウントポイントのドライブ文字です。

        注記

        システムで使用されていないドライブ文字を選択する必要があります。

検証

  • ホストと仮想マシンの間でファイルを共有できるように、仮想マシン上の共有ディレクトリーの内容をリスト表示します。

    $ ls <mount_point>
    shared-file1  shared-file2  shared-file3

    この例では、<mount_point> を、マウントされた共有ディレクトリーへのファイルシステムパスに置き換えます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.