3장. 가상 머신 생성
RHEL 9에서 VM(가상 머신)을 생성하려면 명령줄 인터페이스 또는 RHEL 9 웹 콘솔 을 사용합니다.
3.1. 명령줄 인터페이스를 사용하여 가상 머신 생성
virt-install
유틸리티를 사용하여 RHEL 9 호스트에서 VM(가상 머신)을 생성하려면 아래 지침을 따르십시오.
사전 요구 사항
- 호스트 시스템에서 가상화가 활성화되어 있습니다.
- 디스크 공간, RAM 또는 CPU와 같이 VM에 할당할 수 있는 충분한 시스템 리소스가 있습니다. 권장 값은 의도한 작업 및 VM의 워크로드에 따라 크게 다를 수 있습니다.
운영 체제(OS) 설치 소스는 로컬 또는 네트워크에서 사용할 수 있습니다. 다음 중 하나일 수 있습니다.
- 설치 미디어의 ISO 이미지
기존 VM 설치의 디스크 이미지
주의RHEL 9에서는 호스트 CD-ROM 또는 DVD-ROM 장치에서 설치할 수 없습니다. RHEL 9에서 사용 가능한 VM 설치 방법을 사용할 때 CD-ROM 또는 DVD-ROM을 설치 소스로 선택하면 설치에 실패합니다. 자세한 내용은 Red Hat 지식베이스 를 참조하십시오.
또한 Red Hat은 제한된 게스트 운영 체제 세트에 대해서만 지원을 제공합니다.
- 선택 사항: 설치보다 빠르고 쉽게 구성할 수 있도록 Kickstart 파일을 제공할 수 있습니다.
프로세스
VM을 생성하고 OS 설치를 시작하려면 다음 필수 인수와 함께 virt-install
명령을 사용합니다.
-
--name
: 새 머신의 이름 -
--memory
: 할당된 메모리 양 -
--vCPUs
: 할당된 가상 CPU 수 -
--disk
: 할당된 스토리지의 유형 및 크기 -
--CD
ROM 또는--location
: OS 설치 소스의 유형 및 위치
선택한 설치 방법에 따라 필요한 옵션과 값은 다를 수 있습니다. 예는 아래 명령을 참조하십시오.
다음 명령은 /home/username/Downloads/Win10install.iso 파일에 로컬로 저장된 ISO 이미지에서 Windows 10 OS를 설치하는 demo-guest1 이라는 VM을 생성합니다. 이 VM에도 2048MiB의 RAM 및 2개의 vCPU가 할당되며 VM에 대해 80GiB qcow2 가상 디스크가 자동으로 구성됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
# virt-install \ --name demo-guest1 --memory 2048 \ --vcpus 2 --disk size=80 --os-variant win10 \ --cdrom /home/username/Downloads/Win10install.iso
다음 명령은 /home/username/Downloads/rhel9.iso 이미지를 사용하여 라이브 CD에서 RHEL 9 OS를 실행하는 demo-guest2 라는 VM을 생성합니다. 이 VM에 디스크 공간이 할당되지 않으므로 세션 중 변경한 내용은 유지되지 않습니다. 또한 VM에는 4096MiB의 RAM 및 4개의 vCPU가 할당됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
# virt-install \ --name demo-guest2 --memory 4096 --vcpus 4 \ --disk none --livecd --os-variant rhel9.0 \ --cdrom /home/username/Downloads/rhel9.iso
다음 명령은 기존 디스크 이미지 /home/username/backup/disk.qcow2 에 연결하는 demo-guest3 이라는 RHEL 9 VM을 생성합니다. 이는 시스템 간에 하드 드라이브를 물리적으로 이동하는 것과 유사하므로 demo-guest3에서 사용할 수 있는 OS와 데이터는 이전에 이미지가 어떻게 처리되었는지에 따라 결정됩니다. 또한 이 VM에는 2048MiB의 RAM 및 2개의 vCPU가 할당됩니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
# virt-install \ --name demo-guest3 --memory 2048 --vcpus 2 \ --os-variant rhel9.0 --import \ --disk /home/username/backup/disk.qcow2
디스크 이미지를 가져올 때
--os-variant
옵션을 사용하는 것이 좋습니다. 제공되지 않으면 생성된 VM의 성능에 부정적인 영향을 미칩니다.다음 명령은
http://example.com/OS-install
URL에서 설치하는 demo-guest4 라는 VM을 생성합니다. 설치가 성공적으로 시작하려면 URL에 작동 중인 OS 설치 트리가 포함되어야 합니다. 또한 OS는 /home/username/ks.cfg kickstart 파일을 사용하여 자동으로 구성됩니다. 이 VM에는 2048MiB의 RAM, vCPU 2개 및 160GiB qcow2 가상 디스크도 할당됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
# virt-install \ --name demo-guest4 --memory 2048 --vcpus 2 --disk size=160 \ --os-variant rhel9.0 --location http://example.com/OS-install \ --initrd-inject /home/username/ks.cfg --extra-args="inst.ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"
또한 ARM 64 호스트의 RHEL 9에서 demo-guest4를 호스팅하려면 Kickstart 파일이
kernel-64k
패키지를 설치할 수 있도록 다음 행을 포함합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow %packages -kernel kernel-64k %end
%packages -kernel kernel-64k %end
다음 명령은 그래픽 없이
RHEL9.iso
이미지 파일에서 텍스트 전용 모드로 설치하는 demo-guest5 라는 VM을 생성합니다. 게스트 콘솔을 직렬 콘솔에 연결합니다. VM에는 16384MiB의 메모리, 16 vCPU 및 280GiB 디스크가 있습니다. 이러한 종류의 설치는 느린 네트워크 링크를 통해 호스트에 연결할 때 유용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --name demo-guest5 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
다음 명령은 demo-guest5와 동일하지만 192.0.2.1 원격 호스트에 상주하는 demo-guest6 이라는 VM을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
# virt-install \ --connect qemu+ssh://root@192.0.2.1/system --name demo-guest6 --memory 16384 \ --vcpus 16 --disk size=280 --os-variant rhel9.0 --location RHEL9.iso \ --graphics none --extra-args='console=ttyS0'
다음 명령은 demo-guest5와 동일한 구성이 있는 demo-guest-7 이라는 VM을 생성하여 스토리지의 경우 DASD 미디어 장치
mdev_308a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8
을 사용하여 장치 번호1111
을 할당합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
# virt-install \ --name demo-guest7 --memory 16384 --vcpus 16 --disk size=280 \ --os-variant rhel9.0 --location RHEL9.iso --graphics none \ --disk none --hostdev mdev_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8,address.type=ccw,address.cssid=0xfe,address.ssid=0x0,address.devno=0x1111,boot-order=1 \ --extra-args 'rd.dasd=0.0.1111'
virsh nodedev-list --cap mdev
명령을 사용하여 설치에 사용 가능한 미디어 장치의 이름을 검색할 수 있습니다.
검증
- VM이 성공적으로 생성되면 VM의 그래픽 콘솔이 포함된 virt-viewer 창이 열리고 게스트 OS 설치가 시작됩니다.
문제 해결
virt-install
실패와 함께기본 네트워크 오류를 찾을 수 없는
경우:libvirt-daemon-config-network
패키지가 설치되었는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow {PackageManagerCommand} info libvirt-daemon-config-network
# {PackageManagerCommand} info libvirt-daemon-config-network Installed Packages Name : libvirt-daemon-config-network [...]
libvirt
기본 네트워크가 활성 상태인지 확인하고 자동으로 시작하도록 구성되어 있는지 확인합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow virsh net-list --all
# virsh net-list --all Name State Autostart Persistent -------------------------------------------- default active yes yes
그렇지 않은 경우 기본 네트워크를 활성화하고 auto-start로 설정합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow virsh net-autostart default virsh net-start default
# virsh net-autostart default Network default marked as autostarted # virsh net-start default Network default started
다음 오류와 함께 기본 네트워크를 활성화하면
libvirt-daemon-config-network
패키지가 올바르게 설치되지 않았습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow error: failed to get network 'default' error: Network not found: no network with matching name 'default'
error: failed to get network 'default' error: Network not found: no network with matching name 'default'
이 문제를 해결하려면
libvirt-daemon-config-network
를 다시 설치합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow {PackageManagerCommand} reinstall libvirt-daemon-config-network
# {PackageManagerCommand} reinstall libvirt-daemon-config-network
기본 네트워크를 활성화하여 다음과 유사한 오류와 함께 실패하면 기본 네트워크의 서브넷과 호스트의 기존 인터페이스 간에 충돌이 발생했습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow error: Failed to start network default error: internal error: Network is already in use by interface ens2
error: Failed to start network default error: internal error: Network is already in use by interface ens2
이 문제를 해결하려면
virsh net-edit 기본
명령을 사용하고 구성의192.0.2.*
값을 호스트에서 사용하지 않은 서브넷으로 변경합니다.
추가 리소스
-
시스템의
virt-install(1)
도움말 페이지 - 웹 콘솔을 사용하여 가상 머신 생성 및 게스트 운영 체제 설치
- 가상 머신 복제