Nota:
- Questa esercitazione è disponibile in un ambiente di laboratorio gratuito fornito da Oracle.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituire questi valori con quelli specifici del tuo ambiente cloud.
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
- Distribuisci KVM
- Distribuisci Cockpit per Virtual Machine
- Crea Virtual Machine da ISO
- Crea Virtual Machine utilizzando le immagini Oracle Cloud
Prerequisiti
Qualsiasi sistema Oracle Linux 8 o versione successiva con le configurazioni seguenti:
- un utente non root con autorizzazioni sudo
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.
-
Se non è già connesso, aprire un terminale e connettersi tramite ssh all'istanza.
ssh oracle@<ip_address_of_instance>
-
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.
-
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.
-
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
-
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.
-
Installare
virt-install
evirt-viewer
.sudo dnf install virt-install virt-viewer -y
Questa operazione completa l'installazione del set di pacchetti richiesto.
-
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.
-
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
-
Installare l'estensione cockpit-machines per la gestione delle VM basate su Libvirt.
sudo dnf install cockpit cockpit-machines –y
-
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.
-
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.
-
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>
-
Aprire un browser Web sul desktop e individuare https://localhost:9090.
La console Web Cockpit utilizza un certificato autofirmato per abilitare HTTPS.
Fare clic su Avanzate e accettare la connessione quando si riceve un avviso dal browser.
-
Eseguire il login come utente
oracle
con password dioracle
.Viene visualizzato il dashboard Cockpit.
-
Fare clic sul pulsante "Accesso limitato" per ottenere privilegi amministrativi.
-
Chiudere la finestra di accesso amministrativo.
Crea Virtual Machine da ISO
-
Fare clic sull'opzione "Virtual Machines" nel pannello di navigazione a sinistra.
-
Fare clic sul pulsante "Crea VM".
-
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
-
Fare clic su "Crea" per iniziare.
-
Dalla lista di Virtual Machine, fare clic sul collegamento OL-demo.
-
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.
-
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.
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
-
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).
-
Passare alla posizione di memorizzazione delle immagini KVM.
cd /var/lib/libvirt/images
-
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
-
Creare il file dei metadati.
cat << 'EOF' | sudo tee ~/meta-data > /dev/null instance-id: iid-local01 local-hostname: vm-01 EOF
-
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
-
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. -
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
-
Generare l'immagine ISO.
sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
-
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
-
Elencare le VM.
sudo virsh list
-
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.
-
In alternativa, è possibile filtrare in base all'indirizzo MAC.
sudo virsh domiflist vm-01
-
Copiare l'indirizzo MAC dall'output precedente e fornire il comando seguente.
sudo virsh net-dhcp-leases --network default --mac <MAC_address>
-
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.
-
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>
-
Aprire un browser Web sul desktop e individuare https://localhost:9090.
-
Eseguire il login come utente
oracle
con password dioracle
.Viene visualizzato il dashboard Cockpit.
-
Se necessario, fare clic sul pulsante "Accesso limitato" per ottenere privilegi amministrativi.
-
Fare clic sull'opzione "Virtual Machines" nel pannello di navigazione a sinistra.
-
Nell'elenco delle Virtual Machine fare clic sul collegamento vm-01.
-
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
convirt-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.
Create VMs with KVM on Oracle Linux
F58832-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.