주:

Oracle Linux에서 KVM을 사용하여 VM 생성

소개

KVM(커널 기반 가상 머신)은 오픈 소스 type-1(베어 메탈) 하이퍼바이저입니다. 이 기능을 사용하면 Oracle Linux 8과 같은 호스트 시스템에서 여러 VM(가상 시스템) 또는 지원되는 하드웨어에서 실행 중인 게스트를 호스트할 수 있습니다.

이 사용지침서에서는 가상 머신을 생성하기 위해 Oracle Linux KVM(커널 가상화 관리자)을 배포합니다.

목표

필요 조건

다음 구성을 사용하는 모든 Oracle Linux 8 이상 시스템:

환경 지원 가상화 검증

주: 무료 실습 환경을 사용하는 경우 Oracle Linux Lab Basics에서 연결 및 기타 사용 지침을 참조하십시오.

  1. 아직 연결되지 않은 경우 터미널을 열고 ssh를 통해 Instance에 연결합니다.

    ssh oracle@<ip_address_of_instance>
    
  2. 다음 명령을 실행하여 CPU 유형을 확인합니다.

    grep -e 'vendor_id' /proc/cpuinfo
    

    예제 출력:

    [oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo
    vendor_id	: GenuineIntel 
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    vendor_id	: GenuineIntel
    

    이 시스템은 GenuineIntel의 출력에 표시된 Intel 기반 시스템입니다.

  3. Intel 시스템의 경우 다음 명령을 입력합니다.

    grep -e 'vmx' /proc/cpuinfo
    

    명령 출력에 vmx 플래그가 있으면 이 시스템이 가상화를 지원함을 나타냅니다.

  4. 로드된 KVM 모듈을 확인합니다.

    lsmod | grep kvm
    

    예제 출력:

    [oracle@ol-node01 ~]$ lsmod |grep kvm
    kvm_intel             262144  0 
    kvm                   696320  1 kvm_intel
    irqbypass              16384  1 kvm
    

    출력에는 이 시스템의 하드웨어를 기반으로 하는 KVM 커널 모듈 및 kvm_intel 프로세서 모듈이 표시됩니다. 이러한 모듈은 최신 Linux 시스템에서 기본적으로 로드되어야 합니다.

KVM 설치 및 시작

  1. Oracle Linux 가상화 모듈과 연관된 소프트웨어 패키지를 설치합니다.

    sudo dnf module install virt -y
    

    이 명령은 libvirt, qemu-kvm 및 기타 종속성을 포함하는 가상화 패키지 모음을 설치합니다.

  2. virt-installvirt-viewer를 설치합니다.

    sudo dnf install virt-install virt-viewer -y
    

    이렇게 해서 필요한 패키지 세트 설치가 완료되었습니다.

  3. 호스트 시스템이 준비되었고 libvirt VM을 실행하도록 설정되었는지 검증합니다.

    virt-host-validate
    

    예제 출력:

    [oracle@ol-node01 ~]$ virt-host-validate
    QEMU: Checking for hardware virtualization                                 : PASS
    QEMU: Checking if device /dev/kvm exists                                   : PASS
    QEMU: Checking if device /dev/kvm is accessible                            : PASS
    QEMU: Checking if device /dev/vhost-net exists                             : PASS
    QEMU: Checking if device /dev/net/tun exists                               : PASS
    QEMU: Checking for cgroup 'cpu' controller support                         : PASS
    QEMU: Checking for cgroup 'cpuacct' controller support                     : PASS
    QEMU: Checking for cgroup 'cpuset' controller support                      : PASS
    QEMU: Checking for cgroup 'memory' controller support                      : PASS
    QEMU: Checking for cgroup 'devices' controller support                     : PASS
    QEMU: Checking for cgroup 'blkio' controller support                       : PASS
    QEMU: Checking for device assignment IOMMU support                         : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
    QEMU: Checking for secure guest support                                    : WARN (Unknown if this platform has Secure Guest support)
    

    모든 검사가 PASS이면 생성된 VM에 대해 시스템이 준비됩니다. 확인이 실패하면 지침을 따라 문제를 해결합니다. 검사가 WARN 값을 반환하는 경우 가상화 기능을 향상시키기 위해 다음 지침을 고려하십시오.

  4. libvirtd 데몬을 시작하고 부트 시 자동으로 시작되도록 설정합니다. 그런 다음 상태를 검사하여 작동 및 실행 중인지 확인합니다.

    sudo systemctl enable --now libvirtd.service
    sudo systemctl status libvirtd.service
    

    예제 출력:

    [oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service
    [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service
    * libvirtd.service - Virtualization daemon
       Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr>
       Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago
         Docs: man:libvirtd(8)
               https://libvirt.org
    ...
    

    출력은 서비스가 사용으로 설정되고 실행 중임을 나타냅니다.

Oracle Linux에서 KVM을 관리하도록 Cockpit 웹 콘솔 설정

  1. Libvirt를 기반으로 VM을 관리하기 위한 조종석 기계 확장을 설치합니다.

    sudo dnf install cockpit cockpit-machines –y
    
  2. 조종석 소켓을 시작하고 시스템 부트 시 자동 시작되도록 설정합니다.

    sudo systemctl enable --now cockpit.socket
    sudo systemctl status cockpit.socket
    

    예제 출력:

    [oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket
    Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket.
    [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket
    * cockpit.socket - Cockpit Web Service Socket
       Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres>
       Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago
         Docs: man:cockpit-ws(8)
       Listen: [::]:9090 (Stream)
    ...
    

    출력은 서비스가 사용으로 설정되고 수신 중임을 나타냅니다.

  3. 이 사이트에 원격으로 액세스하려면 조종 장치 서비스에 대한 방화벽 포트를 사용으로 설정하고 방화벽 구성을 다시 로드하여 새 변경사항을 적용합니다.

    sudo firewall-cmd --add-service=cockpit --permanent
    sudo firewall-cmd --reload
    

    주: lunabox Desktop의 두번째 터미널에서 이 다음 명령을 실행하십시오.

  4. lunabox Desktop에서 두번째 터미널을 열고 다음 명령을 입력하여 ssh를 사용하여 Cockpit에 대한 로컬 포트 전달을 만듭니다.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  5. 바탕 화면에서 웹 브라우저를 열고 https://localhost:9090로 이동합니다.

    Cockpit 웹 콘솔은 자체 서명된 인증서를 사용하여 HTTPS를 사용으로 설정합니다.

    accept_cert

    Advanced를 누르고 브라우저에서 경고가 나타나면 연결을 적용합니다.

  6. 암호가 oracleoracle 유저로 로그인합니다.

    로그인

    Cockpit 대시보드가 표시됩니다.

  7. "Limited Access" 버튼을 눌러 관리 권한을 얻습니다.

    액세스

  8. Administrative access window를 닫습니다.

    claccess

ISO에서 가상 시스템 생성

  1. 왼쪽의 탐색 패널에서 "Virtual Machines(가상 머신)" 옵션을 누릅니다.

  2. "Create VM" 버튼을 누릅니다.

    VM

  3. 다음 정보를 제공합니다.

    Name: OL-demo
    Connection: System
    Installation type: URL (ISO image or distro install tree)
    Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso
    Operating system: Oracle Linux 8.6
    Storage: Create new volume
    Size: 20 GiB
    Memory: 16 GiB
    Immediately start VM: check
    

    VM

  4. "Create"를 눌러 시작합니다.

  5. Virtual Machines 리스트에서 OL-demo 링크를 누릅니다.

    vmlist

  6. 아래로 이동하여 VNC 콘솔을 확인합니다.

    충분히 빠른 경우 Install Oracle Linux or Test this media and Install(Oracle Linux 설치 또는 이 매체 테스트 및 설치) 옵션이 포함된 메뉴가 표시됩니다. 테스트 옵션은 몇 초 후 기본적으로 선택됩니다. 설치 프로그램이 매체의 내용을 검증한 다음 설치 프로그램을 시작합니다.

    부트

  7. 설치 프로그램이 부트되면 Welcome to Oracle Linux 화면이 표시됩니다. 설치 프로세스의 언어를 선택하여 설치를 시작합니다.

    lang

    이 연습은 설치 프로세스를 진행하지 않습니다.

    주: Oracle Linux 8 설치 비디오 링크에서 Oracle Linux 설치 프로세스를 보여주는 무료 비디오를 시청할 수 있습니다.

  8. 창 오른쪽 상단 모서리에서 'X'를 눌러 웹 브라우저를 닫습니다.

Oracle Cloud 이미지를 사용하여 가상 시스템 생성

주: 클라우드 인스턴스(ol-node01) 터미널 창에서 다음 명령을 입력해야 합니다.

  1. KVM 이미지 저장소 위치로 변경합니다.

    cd /var/lib/libvirt/images
    
  2. Oracle Linux VM 템플리트를 다운로드합니다.

    sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
    
  3. 메타데이터 파일을 생성합니다.

    cat << 'EOF' | sudo tee ~/meta-data > /dev/null
    instance-id: iid-local01
    local-hostname: vm-01
    EOF
    
  4. 유저 데이터 파일을 생성합니다.

    cat << 'EOF' | sudo tee ~/user-data > /dev/null
    #cloud-config
    
    system_info:
      default_user:
        name: opc
    
    ssh_authorized_keys:
      - <paste_public_key_here>
    EOF
    
  5. SSH 키 쌍 생성

    ssh-keygen -t rsa -b 4096
    

    각 기본값을 적용하려면 Enter를 누릅니다. 키 쌍은 사용자 홈의 .ssh 디렉토리에 기록됩니다.

  6. 공개 키를 사용자 데이터 파일에 복사합니다.

    SSHKEY=$(cat ~/.ssh/id_rsa.pub)
    sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
    
  7. ISO 이미지를 생성합니다.

    sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
    
  8. 인스턴스를 생성합니다.

    sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcow
    
    sudo virt-install --name vm-01 \
    --memory 2048 \
    --vcpus 2 \
    --disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \
    --disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \
    --os-type linux --os-variant ol8.6 \
    --virt-type kvm --graphics none \
    --network network=default,model=virtio \
    --noautoconsole \
    --import
    
  9. VM을 나열합니다.

    sudo virsh list
    
  10. vm-01 가상 시스템의 IP 주소를 검색합니다.

    sudo virsh net-dhcp-leases --network default
    

    주: 가상 시스템 시작 속도에 따라 명령을 다시 실행하여 IP 주소를 표시해야 할 수도 있습니다.

  11. 또는 MAC 주소를 기준으로 필터링할 수 있습니다.

    sudo virsh domiflist vm-01
    
  12. 이전 출력에서 MAC 주소를 복사하고 다음 명령에 제공합니다.

    sudo virsh net-dhcp-leases --network default --mac <MAC_address>
    
  13. ssh에 연결하여 가상 시스템이 작동하는지 확인합니다.

    ssh opc@<vm-01-ip_address>
    

    예제 출력:

    [oracle@ol-node01 images]$ ssh opc@192.168.122.46
    The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established.
    ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts.
      
    [opc@vm-01 ~]$ uname -a
    Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
    

[선택사항] Cockpit 대시보드에서 VM 보기

주: lunabox Desktop의 터미널에서 이 다음 명령을 실행하십시오.

  1. lunabox Desktop 터미널 창에서 다음 명령을 입력하여 ssh를 사용하여 Cockpit에 대한 로컬 포트 전달을 만듭니다.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  2. 바탕 화면에서 웹 브라우저를 열고 https://localhost:9090로 이동합니다.

  3. 암호가 oracleoracle 유저로 로그인합니다.

    로그인

    Cockpit 대시보드가 표시됩니다.

  4. 필요한 경우 "Limited Access" 버튼을 눌러 관리 권한을 얻습니다.

  5. 왼쪽의 탐색 패널에서 "Virtual Machines(가상 머신)" 옵션을 누릅니다.

  6. 가상 시스템 목록에서 vm-01 링크를 누릅니다.

  7. Overview 섹션, Disks 섹션, 네트워크 인터페이스 등을 원하는 대로 살펴봅니다.

    주: virt-install와 함께 --graphical none 옵션을 사용하여 vm-01 가상 시스템이 생성되었으므로 콘솔이 Cockpit 내에서 활성화되지 않습니다.

이 실습을 마칩니다.

자세한 내용:

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 살펴보거나 Oracle Learning YouTube 채널에서 보다 무료 학습 컨텐츠에 접근할 수 있습니다. 또한 education.oracle.com/learning-explorer을 방문하여 Oracle Learning Explorer가 됩니다.

제품 설명서는 Oracle Help Center를 참조하십시오.