Hinweis:

VMs mit KVM auf Oracle Linux erstellen

Einführung

Kernelbasierte virtuelle Maschine (KVM) ist ein Open-Source-Hypervisor type-1 (Bare Metal). Durch diese Funktion kann ein Hostsystem wie Oracle Linux 8 mehrere virtuelle Maschinen (VMs) oder Gäste hosten, wenn sie auf unterstützter Hardware ausgeführt werden.

In diesem Tutorial wird Oracle Linux Kernel Virtualization Manager (KVM) für das Erstellen einer virtuellen Maschine bereitgestellt.

Ziele

Voraussetzungen

Jedes Oracle Linux 8- oder höher-System mit den folgenden Konfigurationen:

Validierung der Umgebung unterstützt Virtualisierung

Hinweis: Wenn Sie die kostenlose Übungsumgebung verwenden, finden Sie unter Oracle Linux Lab - Grundlagen Informationen zu Verbindungen und anderen Nutzungsanweisungen.

  1. Wenn noch nicht geschehen, öffnen Sie ein Terminal, und stellen Sie eine Verbindung über SSH zur Instanz her.

    ssh oracle@<ip_address_of_instance>
    
  2. Führen Sie den folgenden Befehl aus, um den CPU-Typ zu bestimmen.

    grep -e 'vendor_id' /proc/cpuinfo
    

    Beispielausgabe:

    [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
    

    Dieses System ist Intel-basiert, dargestellt durch die Ausgabe von GenuineIntel.

  3. Bei Intel-Systemen geben Sie den folgenden Befehl ein.

    grep -e 'vmx' /proc/cpuinfo
    

    Das Vorhandensein des Kennzeichens "vmx" in der Befehlsausgabe gibt an, dass dieses System die Virtualisierung unterstützt.

  4. Prüfen Sie, ob die geladenen KVM-Module vorhanden sind.

    lsmod | grep kvm
    

    Beispielausgabe:

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

    Die Ausgabe zeigt das KVM-Kernelmodul und das kvm_intel-Prozessormodul basierend auf der Hardware dieses Systems an. Diese Module sollten standardmäßig auf modernen Linux-Systemen geladen werden.

KVM installieren und starten

  1. Installieren Sie die Softwarepackages für das Oracle Linux-Virtualisierungsmodul.

    sudo dnf module install virt -y
    

    Dieser Befehl installiert die Sammlung von Virtualisierungspackages, einschließlich libvirt, qemu-kvm und anderen Abhängigkeiten.

  2. Installieren Sie virt-install und virt-viewer.

    sudo dnf install virt-install virt-viewer -y
    

    Damit ist die Installation des erforderlichen Pakets abgeschlossen.

  3. Prüfen Sie, ob der Hostrechner bereit ist und für die Ausführung von libvirt-VMs eingerichtet ist.

    virt-host-validate
    

    Beispielausgabe:

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

    Wenn alle PASS-Prüfungen ausgeführt werden, wird das System für erstellte VMs vorbereitet. Wenn eine Prüfung fehlschlägt, befolgen Sie die Anweisungen, um das Problem zu beheben. Wenn eine Prüfung den Wert von WARN zurückgibt, sollten Sie die Anweisungen zur Verbesserung der Virtualisierungsfunktionen befolgen.

  4. Starten Sie den libvirtd-Daemon, und aktivieren Sie ihn so, dass er bei jedem Boot-Vorgang automatisch gestartet wird. Prüfen Sie dann den Status, um zu bestätigen, dass er hochgefahren und gestartet ist.

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

    Beispielausgabe:

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

    Die Ausgabe gibt an, dass der Service aktiviert ist und ausgeführt wird.

Einrichten der Cockpit-Webkonsole zur Verwaltung von KVM unter Oracle Linux

  1. Installieren Sie die Cockpit-Maschinen-Erweiterung zur Verwaltung von VMs basierend auf Libvirt.

    sudo dnf install cockpit cockpit-machines –y
    
  2. Starten Sie den Cockpit-Socket, und aktivieren Sie ihn für den automatischen Start beim Booten des Systems.

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

    Beispielausgabe:

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

    Die Ausgabe gibt an, dass der Service aktiviert ist und horcht.

  3. Um remote auf diese Site zuzugreifen, aktivieren Sie den Firewall-Port für den Cockpit-Service, und laden Sie die Firewall-Konfiguration neu, um die neuen Änderungen anzuwenden.

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

    Hinweis: Führen Sie diesen nächsten Befehl von einem 2. Terminal auf dem lunabox Desktop aus.

  4. Öffnen Sie ein 2. Terminal auf dem lunabox Desktop, und geben Sie den folgenden Befehl ein, um einen lokalen Port nach vorne für Cockpit mit ssh zu erstellen.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  5. Öffnen Sie einen Webbrowser auf Ihrem Desktop, und navigieren Sie zu https://localhost:9090.

    Die Cockpit-Webkonsole verwendet ein selbstsigniertes Zertifikat, um HTTPS zu aktivieren.

    accept_cert

    Klicken Sie auf "Erweitert", und akzeptieren Sie die Verbindung, wenn Sie eine Warnung aus dem Browser erhalten.

  6. Melden Sie sich als Benutzer oracle mit dem Kennwort oracle an.

    Anmelden

    Das Cockpit-Dashboard wird angezeigt.

  7. Klicken Sie auf die Schaltfläche "Limited Access", um Administratorberechtigungen zu erhalten.

    Laccess

  8. Schließen Sie das Fenster für den Administratorzugriff.

    Prozess

Virtual Machine aus ISO erstellen

  1. Klicken Sie im Navigationsbereich auf der linken Seite auf die Option "Virtuelle Maschinen".

  2. Klicken Sie auf die Schaltfläche "Create VM" (VM erstellen).

    VM

  3. Stellen Sie folgende Informationen bereit:

    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. Klicken Sie auf "Erstellen", um zu beginnen.

  5. Klicken Sie in der Liste der virtuellen Maschinen auf den Link "OL-demo".

    HTML-Liste

  6. Scrollen Sie nach unten, um die VNC-Konsole anzuzeigen.

    Wenn Sie schnell genug sind, wird ein Menü mit den Optionen "Oracle Linux installieren" und "Installieren" angezeigt. Die Testoption wird nach einigen Sekunden standardmäßig ausgewählt. Das Installationsprogramm überprüft, ob der Inhalt auf dem Datenträger korrekt ist, und startet dann das Installationsprogramm.

    Bootm

  7. Sobald das Installationsprogramm gestartet wurde, wird der Oracle Linux-Bildschirm "Willkommen" angezeigt. Sie beginnen mit der Installation, indem Sie die Sprache für den Installationsprozess auswählen.

    Sprache

    Diese Übung setzt den Installationsprozess nicht fort.

    Hinweis: Über diesen Videolink können Sie ein kostenloses Video mit dem Oracle Linux-Installationsprozess anzeigen: Oracle Linux 8 installieren

  8. Schließen Sie den Webbrowser, indem Sie oben rechts im Fenster auf das "X" klicken.

Virtuelle Maschine mit Oracle Cloud-Images erstellen

Hinweis: Stellen Sie sicher, dass Sie die folgenden Befehle aus dem Terminalfenster Ihrer Cloud-Instanz (ol-node01) eingeben.

  1. Wechseln Sie zum Speicherort des KVM-Images.

    cd /var/lib/libvirt/images
    
  2. Laden Sie die Oracle Linux-VM-Vorlage herunter.

    sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
    
  3. Erstellen Sie eine Metadatendatei.

    cat << 'EOF' | sudo tee ~/meta-data > /dev/null
    instance-id: iid-local01
    local-hostname: vm-01
    EOF
    
  4. Datei mit Benutzerdaten erstellen

    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-Schlüsselpaar generieren

    ssh-keygen -t rsa -b 4096
    

    Klicken Sie auf Enter, um alle Standardwerte zu übernehmen. Das Schlüsselpaar wird in das Verzeichnis .ssh im Home-Verzeichnis der Benutzer geschrieben.

  6. Kopieren Sie den Public Key in die Benutzerdatendatei.

    SSHKEY=$(cat ~/.ssh/id_rsa.pub)
    sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
    
  7. Generieren Sie das ISO-Image.

    sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
    
  8. Erstellen Sie die Instanz.

    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. Listen Sie die VMs auf.

    sudo virsh list
    
  10. Rufen Sie die IP-Adresse der virtuellen Maschine vm-01 ab.

    sudo virsh net-dhcp-leases --network default
    

    Hinweis: Je nachdem, wie schnell die virtuelle Maschine gestartet wird, müssen Sie den Befehl möglicherweise erneut ausführen, um die IP-Adresse anzuzeigen.

  11. Alternativ können Sie nach MAC-Adresse filtern.

    sudo virsh domiflist vm-01
    
  12. Kopieren Sie die MAC-Adresse aus der vorherigen Ausgabe, und geben Sie den folgenden Befehl an.

    sudo virsh net-dhcp-leases --network default --mac <MAC_address>
    
  13. Prüfen Sie die Funktionsweise der virtuellen Maschine, indem Sie eine Verbindung mit ssh herstellen.

    ssh opc@<vm-01-ip_address>
    

    Beispielausgabe:

    [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
    

[Optional] VM vom Cockpit-Dashboard anzeigen

Hinweis: Führen Sie diesen nächsten Befehl von einem Terminal auf dem lunabox Desktop aus.

  1. Geben Sie den folgenden Befehl aus Ihrem lunabox Desktop Terminalfenster ein, um einen lokalen Port nach vorne für Cockpit mit ssh zu erstellen.

    ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
    
  2. Öffnen Sie einen Webbrowser auf Ihrem Desktop, und navigieren Sie zu https://localhost:9090.

  3. Melden Sie sich als Benutzer oracle mit dem Kennwort oracle an.

    Anmelden

    Das Cockpit-Dashboard wird angezeigt.

  4. Klicken Sie bei Bedarf auf die Schaltfläche "Begrenzter Zugriff", um Administratorberechtigungen zu erhalten.

  5. Klicken Sie im Navigationsbereich auf der linken Seite auf die Option "Virtuelle Maschinen".

  6. Klicken Sie in der Liste der virtuellen Maschinen auf den Link vm-01.

  7. Erkunden Sie je nach Bedarf den Abschnitt "Überblick", den Abschnitt "Datenträger", Netzwerkschnittstellen usw.

    Hinweis: Die Konsole ist im Cockpit nicht aktiv, da die virtuelle Maschine vm-01 mit der Option --graphical none mit virt-install erstellt wurde.

Damit endet dieses Labor.

Weitere Informationen:

Weitere Lernressourcen

Sehen Sie sich andere Übungen auf der Website docs.oracle.com/learn an, oder greifen Sie auf Inhalte zu, die Sie über den Oracle Learning-Kanal YouTube benötigen. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.

Produktdokumentation finden Sie unter Oracle Help Center.