15장. 호스트와 가상 머신 간의 파일 공유
호스트 시스템과 실행되는 가상 머신(VM) 간에 데이터를 공유해야 하는 경우가 많습니다. 이를 빠르고 효율적으로 수행하려면 시스템에 NFS 파일 공유를 설정할 수 있습니다.
15.1. NFS를 사용하여 호스트와 가상 머신 간의 파일 공유 링크 복사링크가 클립보드에 복사되었습니다!
RHEL 8 호스트 시스템과 VM(가상 머신) 간의 효율적인 파일 공유를 위해 VM에서 마운트하고 액세스할 수 있는 NFS 공유를 내보낼 수 있습니다.
사전 요구 사항
nfs-utils
패키지가 호스트에 설치되어 있습니다.yum install nfs-utils -y
# yum install nfs-utils -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
NAT
또는브리지
유형의 가상 네트워크는 호스트를 VM에 연결하도록 구성됩니다. - 선택 사항: 보안을 강화하려면 VM이 NFS 버전 4 이상과 호환되는지 확인하십시오.
프로세스
호스트에서 NFS(네트워크 파일 시스템)로 공유할 파일이 있는 디렉터리를 내보냅니다.
VM과 기존 디렉터리를 공유합니다. 기존 디렉터리를 공유하지 않으려면 새 디렉터리를 생성합니다.
mkdir shared-files
# mkdir shared-files
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서 파일을 공유할 각 VM의 IP 주소를 가져옵니다(예: testguest1 및 testguest2).
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 호스트에서
/etc/exports
파일을 편집하고 공유할 디렉터리, 공유할 VM IP 및 추가 옵션이 포함된 행을 추가합니다./home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
/home/<username>/Downloads/<shared_directory>/ <VM1-IP(options)> <VM2-IP(options)> ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예제에서는 호스트의
/usr/local/shared-files
디렉터리를 testguest1 및 testguest2 와 공유하고 VM에서 디렉터리의 콘텐츠를 편집할 수 있도록 합니다./usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
/usr/local/shared-files/ 192.0.2.2(rw,sync) 192.0.2.3(rw,sync)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고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 서비스 보안 가이드를 따릅니다.
업데이트된 파일 시스템을 내보냅니다.
exportfs -a
# exportfs -a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow nfs-server
서비스를 시작합니다.systemctl start nfs-server
# systemctl start nfs-server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VM에 공유 디렉터리를 마운트할 호스트 시스템의 IP 주소를 가져옵니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 관련 네트워크는 호스트를 VM과 연결하여 파일을 공유합니다. 일반적으로
virbr0
입니다.
/etc/exports
파일에 지정된 Linux VM에 공유 디렉터리를 마운트합니다.mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
# mount 192.0.2.1:/usr/local/shared-files /mnt/host-share
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
192.0.2.1
: 호스트의 IP 주소입니다. -
/usr/local/shared-files
: 호스트에서 내보낸 디렉터리에 대한 파일 시스템 경로입니다. /mnt/host-share
: VM의 마운트 지점참고마운트 지점은 빈 디렉터리여야 합니다.
-
/etc/exports
파일에 언급된 대로 Windows VM에 공유 디렉터리를 마운트하려면 다음을 수행합니다.- 관리자로 PowerShell 쉘 프롬프트를 엽니다.
Windows에
NFS-Client
패키지를 설치합니다.서버 버전에 설치하려면 다음을 입력합니다.
Install-WindowsFeature NFS-Client
# Install-WindowsFeature NFS-Client
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데스크탑 버전에 설치하려면 다음을 입력합니다.
Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
# Enable-WindowsOptionalFeature -FeatureName ServicesForNFS-ClientOnly, ClientForNFS-Infrastructure -Online -NoRestart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Windows VM에서 호스트에서 내보낸 디렉터리를 마운트합니다.
C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
# C:\Windows\system32\mount.exe -o anon \\192.0.2.1\usr\local\shared-files Z:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예제에서는 다음을 수행합니다.
-
192.0.2.1
: 호스트의 IP 주소입니다. -
/usr/local/shared-files
: 호스트에서 내보낸 디렉터리에 대한 파일 시스템 경로입니다. Z:
: 마운트 지점의 드라이브 문자입니다.참고시스템에서 사용하지 않는 드라이브 문자를 선택해야 합니다.
-
검증
호스트와 VM 간에 파일을 공유할 수 있도록 VM의 공유 디렉터리 콘텐츠를 나열합니다.
ls <mount_point>
$ ls <mount_point> shared-file1 shared-file2 shared-file3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는 < mount_point >를 마운트된 공유 디렉터리의 파일 시스템 경로로 바꿉니다.