19.2. virtiofs를 사용하여 호스트와 해당 가상 머신 간 파일 공유
RHEL 9를 하이퍼바이저로 사용하는 경우 virtiofs
기능을 사용하여 호스트 시스템과 VM(가상 머신) 간에 파일을 효율적으로 공유할 수 있습니다.
사전 요구 사항
- RHEL 9 호스트에 가상화가 설치 및 활성화되어 있습니다.
VM과 공유할 디렉터리입니다. 기존 디렉터리를 공유하지 않으려면 새 디렉터리(예: shared-files )를 만듭니다.
# mkdir /root/shared-files
- 데이터를 공유하려는 VM은 Linux 배포를 게스트 OS로 사용하는 것입니다.
절차
VM과 공유할 호스트의 각 디렉터리에 대해 VM의 XML 구성에서 virtiofs 파일 시스템으로 설정합니다.
원하는 VM의 XML 구성을 엽니다.
# virsh edit vm-name
다음과 유사한 항목을 VM 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>
이 예에서는 호스트의
/root/shared-files
디렉터리를host-file-share
로 VM으로 표시되도록 설정합니다.
XML 구성에 공유 메모리의 NUMA 토폴로지를 추가합니다. 다음 예제에서는 모든 CPU 및 모든 RAM에 대한 기본 토폴로지를 추가합니다.
<cpu mode='host-passthrough' check='none'> <numa> <cell id='0' cpus='0-{number-vcpus - 1}' memory='{ram-amount-KiB}' unit='KiB' memAccess='shared'/> </numa> </cpu>
XML 구성의 <
domain>
섹션에 공유 메모리 백업을 추가합니다.<domain> [...] <memoryBacking> <access mode='shared'/> </memoryBacking> [...] </domain>
VM을 부팅합니다.
# virsh start vm-name
게스트 운영 체제(OS)에 파일 시스템을 마운트합니다. 다음 예제는 이전에 구성된
host-file-share
디렉터리를 Linux 게스트 OS와 함께 마운트합니다.# mount -t virtiofs host-file-share /mnt
검증
- VM에서 공유 디렉터리에 액세스할 수 있게 되고 이제 디렉터리에 저장된 파일을 열 수 있는지 확인합니다.
알려진 문제 및 제한 사항
-
noatime
및strictatime
과 같은 액세스 시간과 관련된 파일 시스템 마운트 옵션은 virtiofs에서 작동하지 않을 수 있으며 Red Hat은 사용을 권장하지 않습니다.
문제 해결
-
virtiofs
가 사용 사례에 적합하지 않거나 시스템에 지원되는 경우 NFS 를 대신 사용할 수 있습니다.