3장. 가상 머신 생성

RHEL 9에서 VM(가상 머신)을 생성하려면 명령줄 인터페이스 또는 RHEL 9 웹 콘솔 을 사용합니다.

사전 요구 사항

  • 시스템에 가상화가 설치 및 활성화되어 있습니다.
  • 디스크 공간, RAM 또는 CPU와 같이 VM에 할당할 수 있는 충분한 시스템 리소스가 있습니다. 권장 값은 VM의 의도된 작업 및 워크로드에 따라 크게 다를 수 있습니다.

    주의

    RHEL 9에서는 호스트 CD-ROM 또는 DVD-ROM 장치에서 설치할 수 없습니다. RHEL 9에서 사용 가능한 VM 설치 방법을 사용할 때 CD-ROM 또는 DVD-ROM을 설치 소스로 선택하면 설치에 실패합니다. 자세한 내용은 Red Hat 지식베이스 를 참조하십시오.

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 지식베이스 를 참조하십시오.

  • 선택 사항: Kickstart 파일을 더 빠르고 쉽게 설치할 수 있도록 제공할 수 있습니다.

절차

VM을 생성하고 OS 설치를 시작하려면 다음 필수 인수와 함께 virt-install 명령을 사용하십시오.

  • 새 머신의 이름(--name)
  • 할당된 메모리 양(--memory)
  • 할당된 가상 CPU 수(--vcpus)
  • 할당된 스토리지의 유형 및 크기(--disk)
  • OS 설치 소스의 유형 및 위치 (--cdrom 또는 --location)

선택한 설치 방법에 따라 필요한 옵션과 값이 다를 수 있습니다. 예를 보려면 아래를 참조하십시오.

  • 다음은 /home/username/Downloads/Win10install.iso 파일에 로컬로 저장된 ISO 이미지에서 Windows 10 OS를 설치하는 demo-guest1 이라는 VM을 생성합니다. 또한 이 VM은 2048MiB RAM 및 2개의 vCPU로 할당되며 VM에 대해 80GiB qcow2 가상 디스크가 자동으로 구성됩니다.

    # 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가 할당됩니다.

    # 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가 할당됩니다.

    # 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, 2개의 vCPU 및160GiB qcow2 가상 디스크로 할당됩니다.

    # 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"
  • 다음은 그래픽 없이 RHEL9.iso 이미지 파일에서 설치하는 demo-guest5 라는 VM을 텍스트 전용 모드로 생성합니다. 게스트 콘솔을 직렬 콘솔에 연결합니다. VM에는 16384MiB의 메모리, 16개의 vCPU 및 280GiB 디스크가 있습니다. 이러한 종류의 설치는 느린 네트워크 링크를 통해 호스트에 연결할 때 유용합니다.

    # 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와 동일한 구성이 있지만 10.0.0.1 원격 호스트에 상주하는 demo-guest6 이라는 VM을 생성합니다.

    # virt-install \
        --connect qemu+ssh://root@10.0.0.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_30820a6f_b1a5_4503_91ca_0c10ba12345a_0_0_29a8 를 사용하여 장치 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 에 오류가 발생하면 기본 네트워크 오류를 찾을 수 없습니다.

    1. libvirt-daemon-config-network 패키지가 설치되었는지 확인합니다.

      # dnf info libvirt-daemon-config-network
      Installed Packages
      Name         : libvirt-daemon-config-network
      [...]
    2. libvirt 기본 네트워크가 활성 상태이고 자동으로 시작하도록 구성되었는지 확인합니다.

      # virsh net-list --all
       Name      State    Autostart   Persistent
      --------------------------------------------
       default   active   yes         yes
    3. 이 네트워크가 없는 경우 기본 네트워크를 활성화하고 auto-start로 설정합니다.

      # virsh net-autostart default
      Network default marked as autostarted
      
      # virsh net-start default
      Network default started
      1. 다음 오류와 함께 기본 네트워크 활성화에 실패하면 libvirt-daemon-config-network 패키지가 올바르게 설치되지 않았습니다.

        error: failed to get network 'default'
        error: Network not found: no network with matching name 'default'

        이 문제를 해결하려면 libvirt-daemon-config-network 를 다시 설치합니다.

        # dnf reinstall libvirt-daemon-config-network
      2. 다음과 유사한 오류와 함께 기본 네트워크 활성화가 실패하면 기본 네트워크의 서브넷과 호스트의 기존 인터페이스 간에 충돌이 발생했습니다.

        error: Failed to start network default
        error: internal error: Network is already in use by interface ens2

        이 문제를 해결하려면 virsh net-edit 기본 명령을 사용하고 구성의 192.168.122.* 값을 호스트에서 아직 사용되지 않는 서브넷으로 변경합니다.

추가 리소스

  • man virt-install 명령