20.2. virtiofs를 사용하여 호스트와 가상 머신 간의 파일 공유
virtiofs를 사용하여 로컬 파일 시스템 구조와 동일하게 작동하는 디렉터리 트리와 호스트(VM) 간에 파일을 공유할 수 있습니다.
20.2.1. virtiofs를 사용하여 호스트와 가상 머신 간의 파일 공유
RHEL 9를 하이퍼바이저로 사용하는 경우 virtiofs
기능을 사용하여 호스트 시스템과 VM(가상 머신) 간에 파일을 효율적으로 공유할 수 있습니다.
사전 요구 사항
- RHEL 9 호스트에 가상화가 설치 및 활성화되어 있습니다.
VM과 공유할 디렉터리입니다. 기존 디렉터리를 공유하지 않으려면 새 디렉터리를 생성합니다(예: shared-files ).
# mkdir /root/shared-files
- 데이터를 공유하려는 VM은 Linux 배포를 게스트 운영 체제로 사용하고 있습니다.
프로세스
VM과 공유할 호스트의 각 디렉터리에 대해 VM의 XML 구성에서 virtiofs 파일 시스템으로 설정합니다.
의도한 VM의 XML 구성을 엽니다.
# virsh edit vm-name
VM의 XML 구성의 <
devices&
gt; 섹션에 다음과 유사한 항목을 추가합니다.<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
디렉터리를 VM에host-file-share
로 표시하도록 설정합니다.
VM의 공유 메모리를 설정합니다. 이렇게 하려면 XML 구성의 <
domain>
섹션에 공유 메모리 지원을 추가합니다.<domain> [...] <memoryBacking> <access mode='shared'/> </memoryBacking> [...] </domain>
VM을 부팅합니다.
# virsh start vm-name
게스트 운영 체제에 파일 시스템을 마운트합니다. 다음 예제에서는 Linux 게스트 운영 체제를 사용하여 이전에 구성된
host-file-share
디렉터리를 마운트합니다.# mount -t virtiofs host-file-share /mnt
검증
- VM에서 공유 디렉터리에 액세스할 수 있게 되었고 이제 디렉터리에 저장된 파일을 열 수 있는지 확인합니다.
알려진 문제 및 제한 사항
-
noatime
및strictatime
과 같은 액세스 시간과 관련된 파일 시스템 마운트 옵션은 virtiofs에서 작동하지 않으며 Red Hat은 사용을 권장하지 않습니다.
문제 해결
-
virtiofs
가 사용 사례에 적합하지 않거나 시스템에 대해 지원되는 경우 대신 NFS 를 사용할 수 있습니다.
20.2.2. virtiofs를 사용하여 호스트와 Windows 가상 머신 간의 파일 공유
RHEL 9를 하이퍼바이저로 사용하는 경우 virtiofs
기능을 사용하여 virtio-win
패키지와 함께 호스트 시스템과 Windows VM(가상 머신) 간에 파일을 효율적으로 공유할 수 있습니다.
명령과 virtiofs
.exe-i
매개변수를 사용하여 Windows VM에서 virtiofs 서비스를 대소문자를 구분하지 않는 모드로 실행할 수 있습니다.
사전 요구 사항
- virtiofs를 사용하도록 VM의 XML 구성 파일을 구성했습니다. 자세한 내용은 20.2.1절. “virtiofs를 사용하여 호스트와 가상 머신 간의 파일 공유” 에서 참조하십시오.
-
virtio
드라이버 설치 미디어를 VM에 연결했습니다. -
Windows VM에
virtio-win
패키지를 설치했습니다. 자세한 내용은 Windows 게스트에 virtio 드라이버 설치를 참조하십시오.
프로세스
Windows VM에 WinFsp를 설치합니다. 이렇게 하려면
virtio-win
ISO 이미지를 마운트하고,winfsp
Cryostat 설치 프로그램을 시작한 다음 프롬프트를 따릅니다.설치 마법사의 사용자 지정 설정 창에서 VM에 설치할 기능을 선택합니다.
virtiofs 서비스를 시작합니다.
# sc start VirtioFsSvc
이 PC 로 이동합니다.
File Explorer
This PC Virtiofs는
z:
부터 사용 가능한 첫 번째 드라이브 문자로 Windows VM에서 사용할 수 있어야 하며 뒤로 이동합니다. 예를 들어my_viofs (Z:)
.중요공유 디렉터리에 액세스하려면 각 VM이 재부팅된 후 virtiofs 서비스를 다시 시작해야 합니다.
선택 사항: 추가 virtiofs 인스턴스를 설정하려면 다음을 수행합니다.
virtiofs 서비스를 중지합니다.
# sc stop VirtioFsSvc # sc config VirtioFsSvc start=demand
WinFSP.Launcher 서비스를 구성하여 여러 virtiofs 인스턴스를 설정합니다.
# "C:\Program Files (x86)\WinFsp\bin\fsreg.bat" virtiofs "<path to the binary>\virtiofs.exe" "-t %1 -m %2"
드라이브에 virtiofs 인스턴스를 마운트합니다.
예를 들어
mount_tag0
태그가 있는 virtiofs를Y:
드라이브에 마운트하려면 다음을 수행합니다."C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" start virtiofs viofsY mount_tag0 Y:
- 이전 단계를 반복하여 모든 virtiofs 인스턴스를 마운트합니다.
virtiofs 인스턴스를 마운트 해제하려면 다음을 수행합니다.
"C:\Program Files (x86)\WinFsp\bin\launchctl-x64.exe" stop virtiofs viofsY
검증
Windows VM에서 이 PC 로 이동합니다.
File Explorer
This PC -
virtiofs 서비스를 설정할 때 마운트 지점을 지정하지 않은 경우
z:
로 시작하는 첫 번째 사용 가능한 드라이브 문자를 사용하고 뒤로 이동합니다. - virtiofs 인스턴스가 여러 개 설정된 경우 인스턴스에 할당된 문자와 함께 드라이브로 표시됩니다.
-
virtiofs 서비스를 설정할 때 마운트 지점을 지정하지 않은 경우