20장. 호스트와 가상 머신 간의 파일 공유


호스트 시스템과 실행되는 가상 머신(VM) 간에 데이터를 공유해야 하는 경우가 많습니다. 이를 빠르고 효율적으로 수행하려면 시스템에 NFS 파일 공유를 설정할 수 있습니다. 또는 virtiofs 를 사용하여 Linux 및 Windows VM과 데이터를 공유할 수도 있습니다.

20.1. NFS를 사용하여 호스트와 가상 머신 간의 파일 공유

RHEL 9 호스트 시스템과 VM(가상 머신) 간의 효율적인 파일 공유를 위해 VM에서 마운트하고 액세스할 수 있는 NFS 공유를 내보낼 수 있습니다.

그러나 Linux VM에서는 일반적으로 virtiofs 기능을 사용하는 것이 더 편리합니다.

사전 요구 사항

  • nfs-utils 패키지가 호스트에 설치되어 있습니다.

    # dnf install nfs-utils -y
  • NAT 또는 브리지 유형의 가상 네트워크는 호스트를 VM에 연결하도록 구성됩니다.
  • 선택 사항: 보안을 개선하기 위해 VM이 NFS 버전 4 이상과 호환되는지 확인하십시오.

프로세스

  1. 호스트에서 NFS(네트워크 파일 시스템)로 공유할 파일이 있는 디렉터리를 내보냅니다.

    1. VM과 기존 디렉터리를 공유합니다. 기존 디렉터리를 공유하지 않으려면 새 디렉터리를 생성합니다.

      # mkdir shared-files
    2. 호스트에서 파일을 공유할 각 VM의 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 파일을 편집하고 공유할 디렉터리, 공유할 VM IP 및 추가 옵션이 포함된 행을 추가합니다.

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

      다음 예제에서는 호스트의 /usr/local/shared-files 디렉터리를 testguest1testguest2 와 공유하고 VM에서 디렉터리의 콘텐츠를 편집할 수 있도록 합니다.

      /usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
      참고

      Windows VM과 디렉터리를 공유하려면 Windows NFS 클라이언트에 공유 디렉터리에 쓰기 권한이 있는지 확인해야 합니다. /etc/exports 파일에서 all_squash, anonuid 및ongid 옵션을 사용할 수 있습니다.

      /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. VM에 공유 디렉터리를 마운트할 호스트 시스템의 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
      ...

      관련 네트워크는 호스트를 VM과 연결하여 파일을 공유합니다. 일반적으로 virbr0 입니다.

  2. /etc/exports 파일에 지정된 Linux VM에 공유 디렉터리를 마운트합니다.

    # mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
    • 192.0.2.1: 호스트의 IP 주소입니다.
    • /usr/local/shared-files: 호스트에서 내보낸 디렉토리의 파일 시스템 경로입니다.
    • /mnt/host-share: VM의 마운트 지점

      참고

      마운트 지점은 빈 디렉터리여야 합니다.

  3. /etc/exports 파일에 언급된 대로 Windows VM에 공유 디렉터리를 마운트하려면 다음을 수행합니다.

    1. 관리자로 PowerShell 쉘 프롬프트를 엽니다.
    2. Windows에 NFS-Client 패키지를 설치합니다.

      1. 서버 버전에 설치하려면 다음을 입력합니다.

        # Install-WindowsFeature NFS-Client
      2. 데스크탑 버전에 설치하려면 다음을 입력합니다.

        # Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
    3. Windows VM에서 호스트에서 내보낸 디렉터리를 마운트합니다.

      # 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: 마운트 지점의 드라이브 문자입니다.

        참고

        시스템에서 사용하지 않는 드라이브 문자를 선택해야 합니다.

검증

  • 호스트와 VM 간에 파일을 공유할 수 있도록 VM의 공유 디렉터리 콘텐츠를 나열합니다.

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

    이 예에서는 < mount_point >를 마운트된 공유 디렉터리의 파일 시스템 경로로 바꿉니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.