Nota:

Crea VM con KVM su Oracle Linux

Introduzione

La Virtual Machine (KVM) basata su kernel è un hypervisor open source type-1 (bare-metal). Questa funzionalità consente a un sistema host, ad esempio Oracle Linux 8, di ospitare più virtual machine (VM) o guest quando si esegue su hardware supportato.

Questa esercitazione distribuirà Oracle Linux Kernel Virtualization Manager (KVM) per creare una virtual machine.

Obiettivi

Prerequisiti

Qualsiasi sistema Oracle Linux 8 o versione successiva con le configurazioni seguenti:

Convalida ambiente supporta la virtualizzazione

Nota: quando si utilizza l'ambiente di laboratorio gratuito, vedere Oracle Linux Lab Basics per le connessioni e altre istruzioni d'uso.

  1. Se non è già connesso, aprire un terminale e connettersi tramite ssh all'istanza.

    ssh oracle@<ip_address_of_instance>
    
  2. Eseguire il comando seguente per determinare il tipo di CPU.

    grep -e 'vendor_id' /proc/cpuinfo
    

    Output di esempio:

    [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
    

    Questo sistema è basato su Intel, mostrato dall'output di GenuineIntel.

  3. Per i sistemi Intel, digitare il comando seguente.

    grep -e 'vmx' /proc/cpuinfo
    

    L'esistenza del flag vmx nell'output del comando indica che il sistema supporta la virtualizzazione.

  4. Controllare i moduli KVM caricati.

    lsmod | grep kvm
    

    Output di esempio:

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

    L'output mostra il modulo kernel KVM e il modulo del processore kvm_intel in base all'hardware del sistema. Questi moduli devono essere caricati per impostazione predefinita sui moderni sistemi Linux.

Installa e avvia KVM

  1. Installare i pacchetti software associati al modulo di virtualizzazione di Oracle Linux.

    sudo dnf module install virt -y
    

    Questo comando installa la raccolta di pacchetti di virtualizzazione che includono libvirt, qemu-kvm e altre dipendenze.

  2. Installare virt-install e virt-viewer.

    sudo dnf install virt-install virt-viewer -y
    

    Questa operazione completa l'installazione del set di pacchetti richiesto.

  3. Verificare che il computer host sia pronto e impostato per l'esecuzione delle VM libvirt.

    virt-host-validate
    

    Output di esempio:

    [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)
    

    Se tutti i controlli PASS vengono eseguiti, il sistema viene preparato per le VM create. Se si verifica FAIL, seguire le istruzioni per correggere il problema. Se un controllo restituisce il valore di WARN, seguire le istruzioni per migliorare le funzionalità di virtualizzazione.

  4. Avviare il daemon libvirtd e attivarlo per avviarlo automaticamente a ogni boot. Controllare quindi lo stato per verificare che sia attivo e in esecuzione.

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

    Output di esempio:

    [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
    ...
    

    L'output indica che il servizio è abilitato e in esecuzione.

Imposta la console Web Cockpit per gestire la KVM in Oracle Linux

  1. Installare l'estensione cockpit-machines per la gestione delle VM basate su Libvirt.

    sudo dnf install cockpit cockpit-machines –y
    
  2. Avviare il socket di pozzetto e abilitare l'avvio automatico al boot del sistema.

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

    Output di esempio:

    [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)
    ...
    

    L'output indica che il servizio è abilitato e in ascolto.

  3. Per accedere a questo sito in remoto, abilitare la porta firewall per il servizio di pozzetto e ricaricare la configurazione firewall per applicare le nuove modifiche.

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

    Nota: eseguire questo comando da un 2° terminale sul desktop lunabox.

  4. Aprire un terminale 2° sul desktop lunabox e immettere il comando seguente per creare una porta locale in avanti per Cockpit utilizzando ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  5. Aprire un browser Web sul desktop e individuare https://localhost:9090.

    La console Web Cockpit utilizza un certificato autofirmato per abilitare HTTPS.

    accept_cert

    Fare clic su Avanzate e accettare la connessione quando si riceve un avviso dal browser.

  6. Eseguire il login come utente oracle con password di oracle.

    login

    Viene visualizzato il dashboard Cockpit.

  7. Fare clic sul pulsante "Accesso limitato" per ottenere privilegi amministrativi.

    processo di esecuzione

  8. Chiudere la finestra di accesso amministrativo.

    claccess

Crea Virtual Machine da ISO

  1. Fare clic sull'opzione "Virtual Machines" nel pannello di navigazione a sinistra.

  2. Fare clic sul pulsante "Crea VM".

    vm

  3. Fornire le informazioni riportate di seguito.

    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. Fare clic su "Crea" per iniziare.

  5. Dalla lista di Virtual Machine, fare clic sul collegamento OL-demo.

    vmlist

  6. Scorrere verso il basso per visualizzare la console VNC.

    Se la velocità è sufficiente, verrà visualizzato un menu con le opzioni per l'installazione di Oracle Linux o il test di questo supporto e l'installazione. L'opzione Test verrà selezionata per impostazione predefinita dopo alcuni secondi. Il programma di installazione verificherà che il contenuto del supporto sia buono e quindi avvierà il programma di installazione.

    bootm

  7. Al boot del programma di installazione, viene visualizzata la schermata di benvenuto di Oracle Linux. Per iniziare l'installazione, selezionare la lingua appropriata per il processo di installazione.

    lang

    Questo laboratorio non continua con il processo di installazione.

    Nota: è possibile guardare un video gratuito che mostra il processo di installazione di Oracle Linux al seguente collegamento video: Installazione di Oracle Linux 8

  8. Chiudere il browser Web facendo clic sulla 'X' nell'angolo in alto a destra della finestra.

Crea Virtual Machine utilizzando le immagini Oracle Cloud

Nota: assicurarsi di immettere i comandi seguenti dalla finestra terminale dell'istanza cloud (ol-node01).

  1. Passare alla posizione di memorizzazione delle immagini KVM.

    cd /var/lib/libvirt/images
    
  2. Scaricare il modello VM Oracle Linux.

    sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
    
  3. Creare il file dei metadati.

    cat << 'EOF' | sudo tee ~/meta-data > /dev/null
    instance-id: iid-local01
    local-hostname: vm-01
    EOF
    
  4. Creare un file di dati utente.

    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. Generare una coppia di chiavi SSH

    ssh-keygen -t rsa -b 4096
    

    Scegliere Enter per accettare i valori predefiniti. La coppia di chiavi viene scritta nella directory .ssh della home degli utenti.

  6. Copiare la chiave pubblica nel file di dati utente.

    SSHKEY=$(cat ~/.ssh/id_rsa.pub)
    sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
    
  7. Generare l'immagine ISO.

    sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
    
  8. Creare l'istanza.

    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. Elencare le VM.

    sudo virsh list
    
  10. Recupera l'indirizzo IP della virtual machine vm-01.

    sudo virsh net-dhcp-leases --network default
    

    Nota: a seconda della velocità di avvio della virtual machine, potrebbe essere necessario eseguire di nuovo il comando per visualizzare l'indirizzo IP.

  11. In alternativa, è possibile filtrare in base all'indirizzo MAC.

    sudo virsh domiflist vm-01
    
  12. Copiare l'indirizzo MAC dall'output precedente e fornire il comando seguente.

    sudo virsh net-dhcp-leases --network default --mac <MAC_address>
    
  13. Verificare il funzionamento della virtual machine collegandosi a ssh.

    ssh opc@<vm-01-ip_address>
    

    Output di esempio:

    [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
    

[Facoltativo] Visualizzare la VM dal dashboard Cockpit

Nota: eseguire questo comando da un terminale sul desktop lunabox.

  1. Immettere il comando seguente dalla finestra del terminale del desktop lunabox per creare una porta locale in avanti per Cockpit utilizzando ssh.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  2. Aprire un browser Web sul desktop e individuare https://localhost:9090.

  3. Eseguire il login come utente oracle con password di oracle.

    login

    Viene visualizzato il dashboard Cockpit.

  4. Se necessario, fare clic sul pulsante "Accesso limitato" per ottenere privilegi amministrativi.

  5. Fare clic sull'opzione "Virtual Machines" nel pannello di navigazione a sinistra.

  6. Nell'elenco delle Virtual Machine fare clic sul collegamento vm-01.

  7. Scopri come vuoi la sezione Panoramica, la sezione Dischi, le interfacce di rete e così via.

    Nota: la console non è attiva all'interno di Cockpit poiché la virtual machine vm-01 è stata creata utilizzando l'opzione --graphical none con virt-install.

Questo conclude questo laboratorio.

Per ulteriori informazioni:

Altre risorse di apprendimento

Esplora altri laboratori su docs.oracle.com/learn o accedi ad altri contenuti per la formazione gratuita sul canale YouTube di Oracle Learning. Inoltre, visitare education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.

Per la documentazione sul prodotto, visitare Oracle Help Center.