14.3. CLI를 사용하여 가상 머신에 연결된 장치 관리
VM(가상 머신)의 기능을 수정하려면 CLI(명령줄 인터페이스)를 사용하여 VM에 연결된 장치를 관리할 수 있습니다.
14.3.1. 가상 머신에 장치 연결
새 가상 장치를 연결하여 VM(가상 머신)에 특정 기능을 추가할 수 있습니다.
다음 절차에서는 CLI(명령줄 인터페이스)를 사용하여 가상 장치를 생성하고 VM(가상 머신)에 연결합니다. 일부 장치는 RHEL 웹 콘솔을 사용하여 VM에 연결할 수도 있습니다.
예를 들어 새 가상 디스크 장치를 연결하여 VM의 스토리지 용량을 늘릴 수 있습니다. 이를 메모리 핫 플러그 라고도 합니다.
RHEL 9에서는 메모리 핫 언플러그라고도 하는 VM에서 메모리 장치를 제거하는 것은 지원되지 않으며 Red Hat은 사용하지 않는 것이 좋습니다.
사전 요구 사항
VM에 연결하려는 장치에 필요한 옵션을 가져옵니다. 특정 장치에 사용 가능한 옵션을 보려면
virt-xml --device=?
명령을 사용합니다. 예를 들면 다음과 같습니다.# virt-xml --network=? --network options: [...] address.unit boot_order clearxml driver_name [...]
프로세스
장치를 VM에 연결하려면 장치 정의 및 필요한 옵션을 포함하여
virt-xml --add-device
명령을 사용합니다.예를 들어 다음 명령은
/var/lib/libvirt/images/
디렉터리에 20GB newdisk qcow2 디스크 이미지를 생성하여 가상 디스크로 다음 VM 시작 시 실행 중인 testguest VM에 연결합니다.# virt-xml testguest --add-device --disk /var/lib/libvirt/images/newdisk.qcow2,format=qcow2,size=20 Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
다음은 호스트의 버스 002에서 장치 004로 연결된 USB 플래시 드라이브를 VM이 실행되는 동안 testguest2 VM에 연결합니다.
# virt-xml testguest2 --add-device --update --hostdev 002.004 Device hotplug successful. Domain 'testguest2' defined successfully.
USB 정의를 위한 버스 장치 조합은
lsusb
명령을 사용하여 얻을 수 있습니다.
검증
장치가 추가되었는지 확인하려면 다음 중 하나를 수행합니다.
virsh dumpxml
명령을 사용하여 장치의 XML 정의가 VM의 XML 구성의 <devices
> 섹션에 추가되었는지 확인합니다.예를 들어 다음 출력은 testguest VM의 구성을 보여주고 002.004 USB 플래시 디스크 장치가 추가되었는지 확인합니다.
# virsh dumpxml testguest [...] <hostdev mode='subsystem' type='usb' managed='yes'> <source> <vendor id='0x4146'/> <product id='0x902e'/> <address bus='2' device='4'/> </source> <alias name='hostdev0'/> <address type='usb' bus='0' port='3'/> </hostdev> [...]
- VM을 실행하고 장치가 있고 제대로 작동하는지 테스트합니다.
추가 리소스
-
man virt-xml
명령
14.3.2. 가상 머신에 연결된 장치 수정
연결된 가상 장치의 구성을 편집하여 VM(가상 머신)의 기능을 변경할 수 있습니다. 예를 들어 VM의 성능을 최적화하려면 호스트의 CPU와 더 잘 일치하도록 가상 CPU 모델을 변경할 수 있습니다.
다음 절차에서는 CLI(명령줄 인터페이스)를 사용하여 가상 장치를 수정하는 일반적인 지침을 제공합니다. 디스크 및 NIC와 같은 VM에 연결된 일부 장치는 RHEL 9 웹 콘솔을 사용하여 수정할 수도 있습니다.
사전 요구 사항
-
VM에 연결하려는 장치에 필요한 옵션을 가져옵니다. 특정 장치에 사용 가능한 옵션을 보려면
virt-xml --device=?
명령을 사용합니다. 예를 들면 다음과 같습니다.
# virt-xml --network=?
--network options:
[...]
address.unit
boot_order
clearxml
driver_name
[...]
-
선택 사항:
virsh dumpxml vm-name
을 사용하여 VM의 XML 구성을 백업하고 출력을 파일로 전송합니다. 예를 들어 다음은 testguest1 VM의 구성을testguest1.xml
파일로 백업합니다.
# virsh dumpxml testguest1 > testguest1.xml # cat testguest1.xml <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>testguest1</name> <uuid>ede29304-fe0c-4ca4-abcd-d246481acd18</uuid> [...] </domain>
프로세스
장치 정의 및 필수 옵션을 포함하여
virt-xml --edit
명령을 사용합니다.예를 들어, 다음에서는 shut-off testguest VM의 < cpu > 구성을 지우고 host-model 으로 설정합니다.
# virt-xml testguest --edit --cpu host-model,clearxml=yes Domain 'testguest' defined successfully.
검증
장치가 수정되었는지 확인하려면 다음 중 하나를 수행합니다.
- VM을 실행하고 장치가 있는지 확인하고 수정 사항을 반영합니다.
virsh dumpxml
명령을 사용하여 장치의 XML 정의가 VM의 XML 구성에서 수정되었는지 확인합니다.예를 들어 다음 출력은 testguest VM의 구성을 보여주고 CPU 모드가 host-model 로 구성되어 있는지 확인합니다.
# virsh dumpxml testguest [...] <cpu mode='host-model' check='partial'> <model fallback='allow'/> </cpu> [...]
문제 해결
장치를 수정하면 VM을 부팅할 수 없게 되는 경우
virsh define
유틸리티를 사용하여 이전에 백업한 XML 구성 파일을 다시 로드하여 XML 구성을 복원합니다.# virsh define testguest.xml
VM의 XML 구성을 약간 변경하려면 virsh edit
명령(예: virsh edit testguest
)을 사용할 수 있습니다. 그러나 VM이 부팅되지 않도록 할 수 있는 방식으로 구성이 손상될 가능성이 높기 때문에 보다 광범위한 변경에는 이 방법을 사용하지 마십시오.
추가 리소스
-
man virt-xml
명령
14.3.3. 가상 머신에서 장치 제거
가상 장치를 제거하여 VM(가상 머신)의 기능을 변경할 수 있습니다. 예를 들어 더 이상 필요하지 않은 경우 VM 중 하나에서 가상 디스크 장치를 제거할 수 있습니다.
다음 절차에서는 CLI(명령줄 인터페이스)를 사용하여 VM(가상 머신)에서 가상 장치를 제거하는 방법을 보여줍니다. 디스크 또는 NIC와 같은 일부 장치는 RHEL 9 웹 콘솔을 사용하여 VM에서 제거할 수도 있습니다.
사전 요구 사항
-
선택 사항:
virsh dumpxml vm-name
을 사용하여 VM의 XML 구성을 백업하고 출력을 파일로 전송합니다. 예를 들어 다음은 testguest1 VM의 구성을testguest1.xml
파일로 백업합니다.
# virsh dumpxml testguest1 > testguest1.xml # cat testguest1.xml <domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>testguest1</name> <uuid>ede29304-fe0c-4ca4-abcd-d246481acd18</uuid> [...] </domain>
프로세스
장치 정의를 포함하여
virt-xml --remove-device
명령을 사용합니다. 예를 들면 다음과 같습니다.다음은 종료 후 실행 중인 testguest VM에서 vdb 로 표시된 스토리지 장치를 제거합니다.
# virt-xml testguest --remove-device --disk target=vdb Domain 'testguest' defined successfully. Changes will take effect after the domain is fully powered off.
다음은 실행 중인 testguest2 VM에서 USB 플래시 드라이브 장치를 즉시 제거합니다.
# virt-xml testguest2 --remove-device --update --hostdev type=usb Device hotunplug successful. Domain 'testguest2' defined successfully.
문제 해결
장치를 제거하면 VM을 부팅할 수 없게 되는 경우
virsh define
유틸리티를 사용하여 이전에 백업한 XML 구성 파일을 다시 로드하여 XML 구성을 복원합니다.# virsh define testguest.xml
추가 리소스
-
man virt-xml
명령