Marco Burmeister

  private Homepage



VMware ESXi Tipps



Auf dieser Seite sammel ich Themen außerhalb der initialen Installation oder des Upgrades, die die Arbeit mit dem System vereinfachen oder die einfach nur noch sinnvoll sind sie einzustellen.
Mein konkreter Anlass war, dass ich aufgrund eines Datenträgerfehlers meine Installation neu aufbauen durfte.

Die folgenden Themen haben wir auf der Seite:

Hinweis:
Die Nutzung der hier geschilderten Anleitung geschieht auf eigene Gefahr!

Hinweis:
Bitte nicht vergessen, vor Arbeiten ein Backup zu erstellen!




top Einspielen der Lizenz

Auf der Download-Seite zum ESXi steht auf der Webseite auch der Lizenzschlüssel.

Finden des Bereichs in der Oberfläche:

  1. Aufrufen de Web-Seite http://[hostname-ESXi-Server]/ui]
  2. mit linker Maustaste auf "Host" klicken
  3. mit linker Maustaste auf "Verwalten" klicken
  4. im rechten Fenster den TAB "Lizensierung" anklicken
Anpassung Lizenz:
  1. Es gibt in dem TAB die Möglichkeit über die Menüs eine Lizenz zu entfernen oder zuzuweisen.




top SSH Login mit Public Key

Ich gehe davon aus, dass bereits ein Key-Paar bestehend aus Private und Public Key im openssh-Format vorliegt.

  1. Anmelden an ESXi Server mittels SSH (ggfs. muss auf der ESXI Konsole erstmal der SSH-Zugang aktiviert werden!)
  2. Eingabe von Nutzer und Passwort ist nun erstmal erforderlich.
  3. In der Datei
    authorized_keys
    ist der Public Key einzutragen. Die Datei ist zu finden an der unten aufgeführten Stelle. Dabei ist darauf zu achten, dass der Pfad für jeden Nutzer unterschiedlich ist und nicht wie bei Linux üblich unterhalb von
    /home/
    liegt.
    Der Pfad befindet sich bei ESXi in:
    (Anmerkung: \ = Zeilenumbruch nur in Darstellung hier)
    /etc/ssh/keys-<username>/authorized_keys
    
    /etc/ssh/keys-<username>\
    	/authorized_keys
    			
  4. Es muss noch die Berechtigung auf das File
    authorized_keys
    wie folgt angepasst werden
    -rw-------
  5. Nach der Eintragung ist die Anmeldung via Public Key anstatt eines Passwortes möglich.
  6. Um zu prüfen, ob ROOT-Zugang richtig aktiviert ist, muss in der Datei
    /etc/ssh/sshd_config
    für den Parameter
    PermitRootLogin
    der Wert
    yes
    stehen.
  7. Optional: Wir können nun mit einem Passwort oder dem SSH-Key einen Login durchführen. Wenn Sicherheit wichtig ist, sollte nun die Anmeldung mittels Passwort deaktviert werden. Hierzu in der Datei
    /etc/ssh/sshd_config
    die Parameter
    ChallengeResponseAuthentication
    und
    PasswordAuthentication
    auf den Wert
    no
    setzen.
    Im Anschluss muss der SSH-Daemon durchgestartet bzw neugeladen werden (alternativ Server booten):
    /etc/init.d/SSH restart
    oder
    service sshd reload




top OS Alias

Manchmal möchte ich bestimmte Befehle nicht immer eingeben oder eine Kurzschreibweise haben. Hierfür bietet sich das Alias-Kommando an. Das kann auch im ESXi-Umfeld genutzt werden.

Beispiel zur Einrichtung:

  1. Anmeldung an OS vom Server
  2. mit
    vi
    die Datei
    /etc/profile.local
    anpassen
  3. Hier nun z.B. für das Kommando
    ll
    die folgende Zeile ergänzen:
    alias ll='ls -al'
  4. Bei der nächsten Anmeldung ist der Alias dann aktiv




top Konfiguration Auslagerungbereich auf den Datenspeicherbereich

Bisher habe ich das nur während Patch-Aktionen wirklich benötigt.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menü
    Verwalten
    ->
    System
    ->
    Auslagerung
    auswählen.
  3. Im folgenden Menü auf der rechten Seite kann man nun einen Datenspeicher auswählen - es werden dort keine Daten gelöscht!




top NTP Client-Dienst einrichten

Nach der Erstinstallation findet kein Abgleich der Uhrzeit mit der Welt außerhalb des Servers statt. Damit die Uhrzeit korrekt bleibt, sollte ein NTP-Dienst eingerichtet werden.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menü
    Verwalten
    ->
    System
    ->
    Uhrzeit und Datum
    auswählen.
  3. Nun den Button
    Einstellungen bearbeiten
    anlicken
  4. Folgende Einstellung vornehmen:
    FeldWert
    NTP verwendenRadio-Button aktivieren
    Startrichtlinie für NTP-DienstMit dem Host starten und beenden
    NTP-Servereigenen NTP-Server eintragen
  5. Zum Abschluss dann noch auf den Button und die Menüpunkte
    Aktion
    ->
    NTP-Dienst
    ->
    Starten
    drücken




top Einrichtung des Oracle RAC Interconnect Netzwerks

Für die Installation eines Oracle RAC für Testzwecke, zum Beispiel zur Vorbereitung einer Zertifizierung, werden mind. zwei Netzwerke / Netzwerkkarten benötigt. In einem Homelab hat man oft aber nur eine Netzwerkkarte im Rechner und auch nur eine Netzinfrastruktur. Damit trotzdem ein Oracle RAC aufgebaut werden kann, muss eine weitere Netzwerkkarte im ESXi definiert werden. Dieses Netz benötigt keine Kommunikation außerhalb des ESXi Systems, da über dieses Netz nur die VMs untereinander kommunizieren müssen und sollen.

Vorgehen:

  1. Anmelden an ESXi Web-Interface
  2. Menübaum auf der linke Seite den Punkt
    Netzwerk
    auswählen.
  3. Nun über die rechte Maustaste den Punkt
    Standard-vSwitch hinzufügen
    auswählen
  4. Die folgenden Felder ausfüllen:
    FeldWert
    vSwitch-NamevSwitch-virtuell
    Sicherheit MAC-Adressänderungenaktivieren
    Sicherheit Gefälschte Übertragungenaktivieren
    Die Eingabe abschließen.
  5. Nun über die rechte Maustaste den Punkt
    Portgruppe hinzufügen
    auswählen
  6. Die folgenden Felder ausfüllen:
    FeldWert
    NameRAC-Interconnect
    VLAN-ID1 (neue Nummer)
    Virtueller SwichtvSwitch-virtuell
    Die Eingabe abschließen.
  7. Damit ist eine virtuelles Netzwerk erstellt, welches nur innerhalb des ESXi-Hosts kommunizieren wird.




top VMDK-Disk durch mehrere VMs gleichzeitig schreibbar machen (Oracle RAC)

Es gibt Situationen, in denen eine VMDK-Disk durch mehrere VMs gleichzeitig beschreibbar sein soll. Das ist zum Beispiel im Falle von Oracle RAC notwendig, wenn die Datenbank-Dateien im ASM liegen und das ASM dann in allen VMs auf die gleichen Platten zugreifen können muss. Dann finden Lese- und Schreiboperationen aus allen beteiligten VMs in die gemeinsam genutzte VMDK-Datei statt.

Im Standard erlaubt ESXi das nicht und würde nur die erste VM starten, die dieses VMDK-Datei nutzen möchte und die zweite VM würde nicht mal bis zum OS kommen.

Es gibt in der Web-Admin-Oberfläche auch eine Schaltfläche, die ich auswählen kann, wenn ich eine Disk neu anlege. Die Bezeichnung ist "Freigabe". Eine Disk, die zwischen VMs geteilt werden soll, muss als eagerzeroedthick angelegt werden, damit die Schaltfläche aktiv wird.

Ich hatte nun den Fall, dass ich eine Disk angelegt hatte, diese aus der VM herauskonfiguriert hatte und nach dem Neueinbinden, war das Drop-Down-Menü für diese Disk nicht mehr aktiv.

Hier konnte ich mir nur dadurch helfen, dass ich mich mit ssh direkt auf dem Host angemeldet hatte und dann in das Verzeichnis der betroffenen VM gewechselt bin. Dann kann in der .vmx-Datei (die ohne den -flat Teil im Namen), die die eigentliche Datendatei beschreibt, ein Eintrag vorgenommen werden, um das Verhalten der gemeinsamen Beschreibbarkeit wieder zu aktivieren.
Die VM deren Konfiguration angepasst werden soll, muss GESTOPPT sein !

Der Eintrag lautet:
Syntax:

[Controllertyp][Controllernummer]:[fortlaufende Nummer].sharing = "multi-writer"
Beispiel:

Für SCSI-Controller Nummer 1 und Disk Nummer 0 (die Zählung beginnt mit der Nummer 0) wäre der der folgende Eintrag korrekt:
SCSI1:0.sharing = "multi-writer"


Dieser Eintrag muss für jede Kombination aus Controller-Nummer und Disk eingetragen werden, die von mehreren VMs genutzt können werden soll.




top Not-Backup der Installation

Um die eigene Installation zu sichern, damit im Falle von Verlust des Datenträgers mit relativ geringem Aufwand die Installation wiederhergestellt werden kann, kann das dd-Kommando verwendet werden, wenn der ESXi-Rechner mit einer Linux Live-DVD gestartet worden ist.

Folgendes wird dafür benötigt:


Vorgehen:
  1. Reboot des ESXi-Rechners
  2. Beim Rechner-Start den Rechner von Linux Live-DVD booten lassen.
  3. USB-Speichermedium anschließen
  4. Wenn das Linux Live System gestartet worden ist, muss eine Kommand-Box geöffnet werden.
  5. Sicherstellen, dass USB-Speichermedium erreichbar ist
  6. Verzeichnis zum Mounten des USB-Speichermediums anlegen:
    sudo mkdir /bck
  7. Herausfinden, welchen Geräte-Namen das USB-Speichermedium hat:
    lsblk
    oder
    sudo fdisk -l
  8. USB-Speichermedium mounten (Beispiel-Mount einer Partition):
    sudo mount /dev/sdf2 /bck
  9. Eventuell sollte nun noch unterhalb von
    /bck
    noch ein Unterverzeichnis angelegt werden.
    Beispiel:
    sudo mkdir /bck/ESXibackup
  10. Ausführung des Backups mittels dd-Kommando

    ACHTUNG: Ein Fehler beim dd-Kommando kann Festplatten und damit Daten löschen!

    ACHTUNG: Der Namen vom Device und vom Backup-File muss auf das eigene Umfeld angepasst werden!


    Hier soll vom Device "/dev/sdb" ein Backup mittels dd-Kommando auf das File "esxi.dd" bzw. "esxi.dd.gz" ausgeführt werden.
    if=Quelle (input file)
    of=Ziel (output file)

    Beispiel1:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    sudo dd if=/dev/sdb of=/bck/ESXibackup/esxi.dd bs=2048 status=progress
    
    sudo dd if=/dev/sdb of=/bck/ESXibackup/esxi.dd ✂
    bs=2048 status=progress
    			

    Beispiel2: Zunächst eine root-Session erhalten..
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    sudo -s
    dd if=/dev/sdb bs=2048 status=progress | gzip -c > /bck/ESXibackup/esxi.dd.gz
    
    sudo -s
    dd if=/dev/sdb bs=2048 status=progress | ✂
    gzip -c > /bck/ESXibackup/esxi.dd.gz
    			
  11. Optional: Ausführung des Restores mittels dd-Kommando

    ACHTUNG: Ein Fehler beim dd-Kommando kann Festplatten und damit Daten löschen!

    ACHTUNG: Der Namen vom Device und vom Backup-File muss auf das eigene Umfeld angepasst werden!


    Hier soll vom File "esxi.dd" bzw. "esxi.dd.gz" ein Restore mittels dd-Kommando auf das Device "/dev/sdb" ausgeführt werden.
    if=Quelle (input file)
    of=Ziel (output file)

    Beispiel1:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    sudo dd if=/bck/ESXibackup/esxi.dd of=/dev/sdb bs=2048 status=progress
    
    sudo dd if=/bck/ESXibackup/esxi.dd ✂
     of=/dev/sdb bs=2048 status=progress
    			

    Beispiel2: Zunächst eine root-Session erhalten..
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    sudo -s
    gunzip -c /bck/ESXibackup/esxi.dd.gz | dd of=/dev/sdb bs=2048 status=progress
    
    sudo -s
    gunzip -c /bck/ESXibackup/esxi.dd.gz | ✂
    dd of=/dev/sdb bs=2048 status=progress
    			




top Fehlermeldung: 'NoneType' object has no attribute 'close'

Während eines Updates/Upgrades via direktem Download der Daten aus dem Internet kann es zur folgenden Fehlermeldung kommen:

'NoneType' object has no attribute 'close'
Das liegt daran, dass vergessen wurde in der ESXi Firewall eine temporäre Freischaltung vorzunehmen. Nach der Freischaltung kann der letzte Befehl wiederholt werden und das Einspielen sollte nun funktionieren.

Vorgehen, um den konkreten Fehler zu verhindern:
  1. Anmelden an ESXi via SSH
  2. Das eigentliche Update wird Online mittels http-Zugriff in das Internet stattfinden. Daher muss http erlaubt werden:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli network firewall ruleset set -e true -r httpClient
    
    esxcli network firewall ruleset ✂
    set -e true -r httpClient
    			
  3. Update/Upgrade durchführen/fortsetzen
  4. Der http-Zugriff ist nun nicht mehr notwendig und sollte wieder verboten werden:
    esxcli network firewall ruleset set -e false -r httpClient
    esxcli network firewall ruleset set -e ✂
    	 false -r httpClient




top Fehlermeldung: 'not compliant with the ImageProfile acceptance level partner'

Beim Versuch VIB-Dateien einzuspielen, kann es zu der folgenden Fehlermeldung kommen:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)

 [AcceptanceConfigError]
 VIB Realtek_bootbank_net55-r8168_8.045a-napi's acceptance level is community, which is not compliant with the ImageProfile acceptance level partner
 To change the host acceptance level, use the 'esxcli software acceptance set' command.
 Please refer to the log file for more details.
			

esxcli network firewall ruleset ✂
set -e true -r httpClient
 [AcceptanceConfigError]
 VIB Realtek_bootbank_net55-r8168_8.045a-napi's ✂
 acceptance level is community, which is not ✂
 compliant with the ImageProfile acceptance level✂
  partner
 To change the host acceptance level, use the ✂
 'esxcli software acceptance set' command.
 Please refer to the log file for more details.
			

Der Meldung wird ausgegeben, wenn die zu installierende Software nicht aus dem Hause VMware kommt. Das ist eine Schutzmaßnahme. Das Profil kann mit einem Kommando umgestellt werden.

Vorgehen, um den konkreten Fehler/die Warnmeldung zu verhindern:
  1. Anmelden an ESXi via SSH
  2. Installation von VIB-Files aus fremden Quellen erlauben.
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli software acceptance set --level=CommunitySupported
    
    esxcli software acceptance ✂
    set --level=CommunitySupported
    			
  3. Installation nochmals versuchen.




top Fehlermeldung: 'VMware ESX cannot open the virtual disk, XXX.vmdk for clustering. Please verify that the virtual disk was created using the thick option.'

Nach einer Migration von einem ESXi Host zu einem neuen ESXi Host hatte ich das Problem, dass bei VMs mit gesharten Disks (siehe auch Oracle RAC - Thema - im Wording von ESXi 8 ist das eine Freigabe) beim Start der VMs ich die folgende Fehlermeldung erhielt:

Englisch:
VMware ESX cannot open the virtual disk, "/vmfs/volumes/[Pfad]/[VMName]/[VMDK-Name].vmdk" for clustering. Please verify that the virtual disk was created using the 'thick' option.
Deutsch:
VMware ESX kann die virtuelle Festplatte "/vmfs/volumes/[Pfad]/[VMName]/[VMDK-Name].vmdk" zum Erstellen von Clustern nicht öffnen. Stellen Sie sicher, dass die virtuelle Festplatte unter Verwendung der Option "Thick" erstellt wurde

Nach einiger Recherche habe ich für mich den folgenden Weg zur Lösung des Problems gewählt.

  1. Stoppen der betroffenen VM
  2. Anmeldung via SSH an ESXi Host
  3. Wechsel in das Verzeichnis der betroffenen VM / VMDK
  4. Anlage eines temporären Unterverzeichnis als Sicherheitskopie: mkdir savevmdk
  5. Aufruf des Tools vmkfstools, um die betroffene VMDK-Datei "umzuformatieren". Dabei belasse ich das Original und erzeuge eine neue Datei, die als Teil-String ein "_neu" erhält.
    Syntax:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    vmkfstools -i "[Name VMDK-File (ohne "-flat")].vmdk" "[Name VMDK-File (ohne "-flat")]_neu.vmdk" -d eagerzeroedthick
    
    vmkfstools -i \
    "[Name VMDK-File (ohne "-flat")].vmdk" ✂
    "[Name VMDK-File (ohne "-flat")]_neu.vmdk" ✂
    -d eagerzeroedthick			
        

    Beispiel:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    vmkfstools -i "TestVM_Diskshared1.vmdk" "TestVM_Diskshared1_neu.vmdk" -d eagerzeroedthick
    
    vmkfstools -i ✂
    "TestVM_Diskshared1.vmdk" ✂
    "TestVM_Diskshared1_neu.vmdk" ✂
    -d eagerzeroedthick
        
  6. Im Anschluss verschiebe ich die alte VMDK-Datei(en) in mein Unterverzeichnis und schiebe die neuen Dateien auf den Namen der Ausgangsdatei.
    Damit muss ich in der Konfiguration der VM nichts anpassen.
    Beispiel:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    mv "TestVM_Diskshared1.vmdk" "savevmdk/TestVM_Diskshared1.vmdk"
    mv "TestVM_Diskshared1-flat.vmdk" "savevmdk/TestVM_Diskshared1-flat.vmdk"
    
    mv "TestVM_Diskshared1_neu-flat.vmdk" "TestVM_Diskshared1-flat.vmdk"
    mv "TestVM_Diskshared1_neu.vmdk" "TestVM_Diskshared1.vmdk"
    		
    
    			
    mv "TestVM_Diskshared1.vmdk" ✂
    "savevmdk/TestVM_Diskshared1.vmdk"
    
    mv "TestVM_Diskshared1-flat.vmdk" ✂
    "savevmdk/TestVM_Diskshared1-flat.vmdk"
    
    mv "TestVM_Diskshared1_neu-flat.vmdk" ✂
    "TestVM_Diskshared1-flat.vmdk"
    
    mv "TestVM_Diskshared1_neu.vmdk" ✂
    "TestVM_Diskshared1.vmdk"
    			
        
  7. Als letzter Schritt muss nun in der neuen VMDK-Datei (die ohne den "-flat"-Anhang), der Name angepasst werden. Dort befindet sich ein Eintrag, der auf die Datei mit dem Teil-String "_neu" zeigt.
    vi "TestVM_Diskshared1.vmdk"

    Es muss der Eintrag für den Dateinamen unterhalb von Extent description angepasst werden!
    Beispiel:
    
    # Extent description
    RW 83886080 VMFS "TestVM_Diskshared1_neu-flat.vmdk"
    


    Diesen Dateinamen muss ich jetzt auf den alten Namen anpassen. Konkret muss der Teil-String "_neu" wieder entfernt werden.
    Beispiel:
    
    # Extent description
    RW 83886080 VMFS "TestVM_Diskshared1-flat.vmdk"
    
  8. Nun kann die VM wieder erfolgreich gestartet werden




top ghettoVCB - mount NFS Export als Backup-Ziel

Um mittels ghettoVCB Backups im ESXi Umfeld durchführen zu können, habe ich in meiner Umgebung als Ziel einen NFS-Server Export gewählt.
Zur grundsätzlichen Bereitstellung einer USB-Disk auf einem anderen Rechner und der Freigabe eines Verzeichnisses via NFS kann folgende Seite als Anleitung genommen werden: USB Disk mit NTFS-Filesystem via NFS-Server exportieren (Anwendungs-Beispiel: ESXi Backup-Ziel mit ghettoVCB)

Hier soll es nur darum gehen, wie ich ein via NFS-Server exportiertes Backup-Ziel auf einem ESXi-System mounten kann.
Wie stelle ich fest, welche NFS-Server mounts auf meinem ESXi-System vorhanden sind ? Hierzu kann ich den Befehl esxcli storage nfs list auf Kommand-Line verwenden oder schaue via GUI (Bereich Storage bzw. Speicher im Tree wählen).

Das Mounten und Unmounten kann via GUI durchgeführt werden. In der weiteren Anleitung beschreibe ich nur den Weg via Befehlen auf Kommand-Line, weil diese Befehle auch in eigenen Scripten verwendet werden kann. Folgende Angaben sind erforderlich:

ParameterBeschreibungBeispiel
hostNetzwerkname NFS-Servermeinserver.netz.beimirzuhause
shareNFS Export/BACKUP
volume-nameESXi Name im Bereich Storage/SpeicherNFSBACKUP
Der volume-name ist der Name, der im ESXi unterhalb von /vmfs/volumes sichtbar sein wird!

Syntax zum Mounten eines NFS-Server Exports:


(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)

esxcli storage nfs add --host=meinserver.netz.beimirzuhause --share=/BACKUP --volume-name=NFSBACKUP

esxcli storage nfs add ✂
--host=meinserver.netz.beimirzuhause ✂
--share=/BACKUP ✂
--volume-name=NFSBACKUP	


Syntax zum Un-Mounten eines NFS-Server Exports:


(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)

esxcli storage nfs remove --volume-name=NFSBACKUP

esxcli storage nfs remove ✂
	--volume-name=NFSBACKUP


Nachdem ein NFS Export gemountet wurde, kann dieser als Backup-Ziel im Tool ghettoVCB genutzt werden.




top Netzwerkkarte Realtek 8168 aktivieren in ESXi 6.7

Einige Netzwerkkarten werden in privaten Homelab-Rechnern durch die ESXi Installation nicht erkannt. Hier hilft oftmals der Download und das Einspielen der Treiber aus sicheren Quellen. Das sind für mich insbesondere v-front: Download Netzwerk-Treiber-VIB (Updated driver for Realtek 8168/8111/8411/8118 based NICs) und Flings - Netzwerktreiber USB-Netzwerkkarten.
In meinem Fall wurde eine Realtek Netzwerkkarte auf meinem Motherboard nicht erkannt. Deshalb habe ich die entsprechenden Treiber von v-front heruntergeladen und installiert.
Dieser Teil funktioniert für ESXi bis 6.7.

Vorgehen Analyse:

  1. Anmelden an ESXi via SSH
  2. Nun den folgenden Befehl ausführen, um herauszufinden, welche Netzwerkkarte verbaut ist.
    lspci -v | grep "Class 0200" -B 1
    Hier kommt für mein Motherboard z.B. die folgende Ausgabe heraus:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    0000:03:00.0 Network controller Ethernet controller: Realtek Semiconductor Co., Ltd. Onboard Ethernet [vmnic1]
             Class 0200: 10ec:8168
          
    
    0000:03:00.0 Network controller ✂
    Ethernet controller: Realtek ✂
    Semiconductor Co., Ltd. Onboard ✂
    Ethernet [vmnic1]
             Class 0200: 10ec:8168
          
  3. Mit der PCI-ID
    10ec:8168
    nun bei v-front nachschauen, ob für die Netzwerkkarte dort unterstützte Treiber vorhanden sind.
    Stand April 2021 ist hier in dem Fall das folgende Treiber-Paket passend: net55-r8168

    Ist das der Fall, kann von dort der Treiber installiert werden. Hier gibt es drei Wege, die ich kenne:
    1. Installation via VIB-Datei (Download der Datei erforderlich - danach Ablage auf ESXi Rechner)
    2. Installation via ZIP-Datei (Download der Datei erforderlich - danach Ablage auf ESXi Rechner)
    3. Installation via direktem Web-Zugriff

Vorgehen Installation des Treibers:
  1. Anmelden an ESXi via SSH
  2. In den Wartungsmodus wechseln oder sicherstellen, dass keine VM läuft.
    Das geht entweder via Weboberfläche oder mit dem ESXi-Shell Befehl:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    vim-cmd /hostsvc/maintenance_mode_enter
    
    vim-cmd ✂
    /hostsvc/maintenance_mode_enter
    			
  3. Installation von VIB-Files aus fremden Quellen erlauben.
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli software acceptance set --level=CommunitySupported
    
    esxcli software acceptance ✂
    set --level=CommunitySupported
    			
  4. Installation durchführen:
    1. Variante VIB-File:
      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -v /[voller Pfad im OS]/net55-r8168-8.045a-napi.x86_64.vib
      
      esxcli software vib install -v ✂
      /[voller Pfad im OS]/ ✂
      net55-r8168-8.045a-napi.x86_64.vib
      					
    2. Variante ZIP-File:
      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -d /[voller Pfad im OS]/net55-r8168-8.045a-napi-offline_bundle.zip
      
      esxcli software vib install -d ✂
      /[voller Pfad im OS]/ ✂
      net55-r8168-8.045a-napi-offline_bundle.zip
      					
    3. Variante via direktem Zugriff in das Internet:

      Das eigentliche Update wird Online mittels http-Zugriff in das Internet stattfinden. Daher muss http erlaubt werden:
      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli network firewall ruleset set -e true -r httpClient
      
      esxcli network firewall ruleset ✂
      set -e true -r httpClient
      					

      Installation:
      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -d https://vibsdepot.v-front.de -n net55-r8168
      
      esxcli software vib install -d ✂
      https://vibsdepot.v-front.de ✂
      -n net55-r8168
      					

      Der http- Zugriff ist nun nicht mehr notwendig und sollte wieder verboten werden:
      esxcli network firewall ruleset set -e false -r httpClient
      esxcli network firewall ruleset set -e ✂
       false -r httpClient
  5. Installationsergebnis, wenn das Ergebnis erfolgreich war:
    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    	Installation Result
    Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
    Reboot Required: true
    VIBs Installed: Realtek_bootbank_net55-r8168_8.045a-napi
    VIBs Removed:
    VIBs Skipped:
    			
    
    	Installation Result
    Message: The update completed ✂
    successfully, but the system ✂
    needs to be rebooted for the ✂
    changes to be effective.
    Reboot Required: true
    VIBs Installed: Realtek_bootbank✂
    _net55-r8168_8.045a-napi
    VIBs Removed:
    VIBs Skipped:
    			
  6. Maintenance-Mode deaktivieren.
    Das geht entweder via Weboberfläche oder mit dem ESXi-Shell Befehl:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    vim-cmd /hostsvc/maintenance_mode_exit
    
    vim-cmd ✂
    /hostsvc/maintenance_mode_exit
    			
  7. Rechner rebooten




top Netzwerkkarten-Treiber Realtek 8168 entfernen in ESXi 6.7

Einige Netzwerkkarten werden in privaten Homelab-Rechnern durch die ESXi Installation nicht erkannt. Hier hilft oftmals der Download und das Einspielen der Treiber aus sicheren Quellen. Hier war der Treiber von V-Front installiert (v-front: Download Netzwerk-Treiber-VIB (Updated driver for Realtek 8168/8111/8411/8118 based NICs)).
Bei mir gab es ein Problem beim Einspielen des Upgrades, weil Treiber von ESX 6.7 u.U. in ESXi 7 nicht mehr funktionieren.

  1. Ich hatte vor einen Upgrade auf ESXi 7 durchzuführen. Hierfür habe ich den folgenden Befehl ausgeführt.
    Zunächst den Befehl zum Upgraden im DRY-RUN Modus ausführen. Damit wird das Einspielen simuliert, aber nichts wirklich geändert - Beispiel:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli software profile update -p ESXi-7.0U2e-19290878-standard  -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml --dry-run
    
    esxcli software profile update ✂
    -p ESXi-7.0U2e-19290878-standard ✂
    -d https://hostupdate.vmware.com/ ✂
    software/VUM/PRODUCTION/main/ ✂
    vmw-depot-index.xml --dry-run
    			

    Als Ausgabe erschien bei mir eine Fehlermeldung wegen eines Netzwerkkarten-Treibers, der zuküftig nicht mehr kompatibel wäre:
    
    [DependencyError]
    VIB Realtek_bootbank_net55-r8168_8.045a-napi requires vmkapi_2_2_0_0, but the requirement cannot be satisfied within the ImageProfile.
    VIB Realtek_bootbank_net55-r8168_8.045a-napi requires com.vmware.driverAPI-9.2.2.0, but the requirement cannot be satisfied within the ImageProfile.
    Please refer to the log file for more details.
    	 		
    
    [DependencyError]
    VIB Realtek_bootbank_net55-r8168_✂
    8.045a-napi requires ✂
    vmkapi_2_2_0_0, but the requirement ✂
    cannot be satisfied within ✂
    the ImageProfile.
    VIB Realtek_bootbank_net55-r8168_✂
    8.045a-napi requires ✂
    com.vmware.driverAPI-9.2.2.0, ✂
    but the requirement cannot be ✂
    satisfied within the ImageProfile.
    Please refer to the log file for ✂
    more details.
    			
  2. Nun muss also leider der Treiber entfernt werden.
    Hierfür ersteinmal ausgeben, welche Netzwerkkarten gerade bekannt sind.

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli network nic list
    
    esxcli network nic list
    			
    Beispiel-Ausgabe:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    Name    PCI Device    Driver  Admin Status  Link Status  Speed  Duplex  MAC Address         MTU  Description
    ------  ------------  ------  ------------  -----------  -----  ------  -----------------  ----  -----------------------------------------------------
    vmnic0  0000:04:06.0  e1000   Up            Up            1000  Full    90:e2:ba:0c:84:74  1500  Intel Corporation 82541PI Gigabit Ethernet Controller
    vmnic1  0000:03:00.0  r8168   Up            Down             0  Half    40:8d:5c:77:60:dd  1500  Realtek Semiconductor Co., Ltd. Onboard Ethernet
    				
    
    Name    PCI Device    Driver✂
    ------  ------------  ------✂
    vmnic0  0000:04:06.0  e1000 ✂
    vmnic1  0000:03:00.0  r8168 ✂
    
    Admin Status  Link Status 
    ------------  ----------- 
    Up            Up          
    Up            Down        
    			
  3. Nun kann mit dem folgenden Befehl eine Detail-Info erzeugt werden.

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli software vib get -n net55-r8168
    
    esxcli software vib get ✂
     -n net55-r8168
    			
    Das ergibt dann die folgende Ausgabe:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    Realtek_bootbank_net55-r8168_8.045a-napi
       Name: net55-r8168
       Version: 8.045a-napi
       Type: bootbank
       Vendor: Realtek
       Acceptance Level: CommunitySupported
       Summary: Driver for Realtek 8111/8168
       Description: Recent driver for Realtek 8111/8168. Based on original Realtek drivers
       ReferenceURLs: kb|https://vibsdepot.v-front.de/wiki/index.php/Net55-r8168
       Creation Date: 2018-04-16
       Depends: vmkapi_2_2_0_0, com.vmware.driverAPI-9.2.2.0
       Conflicts: net51-drivers
       Replaces: net-r8168
       Provides:
       Maintenance Mode Required: True
       Hardware Platforms Required:
       Live Install Allowed: False
       Live Remove Allowed: False
       Stateless Ready: True
       Overlay: False
       Tags: driver, module
       Payloads: net55-r8
    				
    
    Realtek_bootbank_net55-r8168_ ✂
    8.045a-napi
       Name: net55-r8168
       Version: 8.045a-napi
       Type: bootbank
       Vendor: Realtek
       Acceptance Level: Community ✂
    Supported
       Summary: Driver for Realtek ✂
     8111/8168
       Description: Recent driver ✂
    for Realtek 8111/8168. Based ✂
    on original Realtek drivers
       ReferenceURLs: kb|https:// ✂
    vibsdepot.v-front.de/wiki/ ✂
    index.php/Net55-r8168
       Creation Date: 2018-04-16
       Depends: vmkapi_2_2_0_0, ✂
    com.vmware.driverAPI-9.2.2.0
       Conflicts: net51-drivers
       Replaces: net-r8168
       Provides:
       Maintenance Mode Required: ✂
    True
       Hardware Platforms Required:
       Live Install Allowed: False
       Live Remove Allowed: False
       Stateless Ready: True
       Overlay: False
       Tags: driver, module
       Payloads: net55-r8
    			
  4. Nun den Treiber entfernen.

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    esxcli software vib remove -n net55-r8168
    
    esxcli software vib ✂
    remove -n net55-r8168
    			
    Das ergibt dann die folgende Ausgabe:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    Removal Result
       Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
       Reboot Required: true
       VIBs Installed:
       VIBs Removed: Realtek_bootbank_net55-r8168_8.045a-napi
       VIBs Skipped:
    				
    
    Removal Result
       Message: The update ✂
     completed successfully, ✂
     but the system needs to ✂
     be rebooted for the changes ✂
     to be effective.
       Reboot Required: true
       VIBs Installed:
       VIBs Removed: ✂
     Realtek_bootbank_net55- ✂
     r8168_8.045a-napi
       VIBs Skipped:
    			
  5. Der Server muss nun neu gestartet werden, um die Anpassung zu aktivieren.
  6. Fertig




top Befehl scsi_id gibt keine Ausgabe in VMware Linux Gast

Für das Definieren von UDEV-Regeln benötigte ich unter Linux die Ausgabe des Kommandos /usr/lib/udev/scsi_id unter openSUSE. In meiner neuen VM gab mir der Befehl aber keine Rückgabe und beendete sich schweigend.
Beispiel-Befehl:

scsi_id -g -u -d /dev/sdb


Die Lösung ist, dass mir eine Einstellung in meiner VM fehlte.
Unter ESXi8 muss folgendes eingestellt werden:
  1. Anmeldung ESXi Web-Admin-Oberfläche
  2. VM für das Verhalten geändert werden soll, muss gestoppt werden
  3. In der VM aus der Admin-Oberfläche aufrufen:
    Bearbeiten -> VM-Optionen -> Erweitert -> Konfigurationsparameter bearbeiten
  4. Hier muss der Parameter-Name disk.EnableUUID mit dem Wert TRUE eingetragen werden
  5. VM kann wieder gestartet werden


Nun gibt der Befehl auch ein Ergebnis aus:

scsi_id -g -u -d /dev/sdb
36000c292dfddac7b8934d3293313098e




top USB - Netzwerkkarte mit Chip RTL8153 aktivieren in ESXi 6.5 bis ESXi 7

Sollten an einem Homelab System die Netzwerkkarten nicht erkannt werden, so kann neben dem Neukauf einer Netzwerkkarte auch über die Nutzung eines USB-Netzwerkadapters nachgedacht werden.
Die Einstiegsseite des Projekts VMware Flings (Flings - Netzwerkartentreiber USB-Netzwerkkarten) erklärt die Einrichtung und welche Adapter unterstützt werden. Hier die Kurzversion.

  1. Herunterladen des zur ESX-Version passenden Treibers bei Flings.
  2. Ablage des Treibers in einem Datastore oder
    /tmp

    Sollte zu dem Zeitpunkt keine Netzwerkverbindung vorhanden sein, so nach Anleitung auf dieser Seite einen USB-Stick nutzen, um die Treiber auf den ESXi-Server zu bekommen.
  3. Installation des Treibers
    In Abhängigkeit der ESX-Version gibt es verschiedene Befehle. Bei mir hat aber auch der alte Befehl für ESX7 funktioniert.
    • ESXi Version 7.x

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software component apply -d </[voller Pfad im OS]/><Dateiname des ZIP-Files>
      
      esxcli software component apply ✂
      -d </[voller Pfad im OS]/> ✂
      <Dateiname des ZIP-Files>
      				
    • ESXi Version 6.5 bis 6.7

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -d </[voller Pfad im OS]/><Dateiname des ZIP-Files>
      
      esxcli software vib install -d ✂
      </[voller Pfad im OS]/>  ✂
      <Dateiname des ZIP-Files>
      				
      oder

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -v </[voller Pfad im OS]/><Dateiname des VIB-Files>
      
      esxcli software vib install -v ✂
      </[voller Pfad im OS]/>  ✂
      <Dateiname des VIB-Files>
      				
  4. USB Netzwerkkarten-Adapter anschließen
  5. Reboot Server zum Aktivieren




top USB - Netzwerkkarten Treiber (zum ESXi Patchen) entfernen in ESXi 6.7 bis ESXi 7

Sollten an einem Homelab System die Netzwerkkarten nicht erkannt werden, so kann neben dem Neukauf einer Netzwerkkarte auch über die Nutzung eines USB-Netzwerkadapters nachgedacht werden.
Die Einstiegsseite des Projekts VMware Flings (Flings - Netzwerkartentreiber USB-Netzwerkkarten) erklärt die Einrichtung und welche Adapter unterstützt werden.
Beim Patchen des ESXi Systems muss der Treiber während des Patchens entfernt werden. Nach der Patchaktion kann der Treiber wieder in der passenden Version installiert werden.

Die folgende Fehlermeldung erscheint, wenn der Treiber installiert ist und versucht wird, das ESXi zu patchen:
	
 [DependencyError]
 VIB VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.702.0.20.47140841 requires vmkapi_incompat_2_8_0_0, but the requirement 
 cannot be satisfied within the ImageProfile.
 Please refer to the log file for more details.

  1. Im Falle des Patchens des ESXi Systems:
    Herunterladen des zur neuen ESX-Version passenden Treibers bei Flings.
  2. Im Falle des Patchens des ESXi Systems:
    Ablage des Treibers in einem Datastore oder
    /tmp
  3. De-Installation des Treibers
    In Abhängigkeit der ESX-Version gibt es verschiedene Befehle. Bei mir hat aber auch der alte Befehl für ESX7 funktioniert.
    • ESXi Version 7.x

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software component remove -n VMware-vmkusb-nic-fling
      
      esxcli software component remove ✂
       -n VMware-vmkusb-nic-fling					
      				
    • ESXi Version 6.5 bis 6.7

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib remove -n vmkusb-nic-fling
      
      esxcli software vib remove ✂
       -n vmkusb-nic-fling					
      				
    Die folgende Ausgabe erscheint nach dem Entfernen des Treibers:

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    
    Removal Result
       Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
       Reboot Required: true
       VIBs Installed:
       VIBs Removed: VMW_bootbank_vmkusb-nic-fling_1.8-3vmw.702.0.20.47140841
       VIBs Skipped:
    		
    
    Removal Result
       Message: The update ✂
    completed successfully, ✂
    but the system needs to be ✂
    rebooted for the changes ✂
    to be effective.
       Reboot Required: true
       VIBs Installed:
       VIBs Removed: ✂
    VMW_bootbank_vmkusb-nic- ✂
    fling_1.8-3vmw. ✂
    702.0.20.47140841
       VIBs Skipped:
    				
  4. Im Falle des Patchens des ESXi Systems:
    Nun die Patchaktion durchführen.
    Am Ende NICHT booten.
  5. Im Falle des Patchens des ESXi Systems:
    Installation des Treibers
    In Abhängigkeit der ESX-Version gibt es verschiedene Befehle. Bei mir hat aber auch der alte Befehl für ESX7 funktioniert.
    • ESXi Version 7.x

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software component apply -d </[voller Pfad im OS]/><Dateiname des ZIP-Files>
      
      esxcli software component apply ✂
      -d </[voller Pfad im OS]/> ✂
      <Dateiname des ZIP-Files>
      				
    • ESXi Version 6.5 bis 6.7

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -d </[voller Pfad im OS]/><Dateiname des ZIP-Files>
      
      esxcli software vib install -d ✂
      </[voller Pfad im OS]/>  ✂
      <Dateiname des ZIP-Files>
      				
      oder

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      esxcli software vib install -v </[voller Pfad im OS]/><Dateiname des VIB-Files>
      
      esxcli software vib install -v ✂
      </[voller Pfad im OS]/>  ✂
      <Dateiname des VIB-Files>
      				
  6. Reboot Server zum Aktivieren




top USB-Stick unter ESXi zum Datenaustausch nutzen

Mich hat nach einem Upgrade auf ESXi 7 das Problem getroffen, dass mein Netzwerk nicht mehr verfügbar war.
Um einen Treiber auf den Server zu bekommen, brauchte ich nun einen USB-Stick auf dem die Treiber dann schon lagen, um diesen dann im ESX einzuspielen.
Ich wollte also keinen Datastore auf dem Stick erstellen !

Folgende Restriktionen für den USB-Stick in ESXi:



Das Vorgehen für den Datenaustausch unter Nutzung FAT-Filesystemen (!):
  1. Anmelden an ESXi Server (Konsole oder SSH)
  2. Deaktivieren USB-Arbitrator-Service (kann im Abschluss wieder aktiviert werden)

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    /etc/init.d/usbarbitrator stop
    
    /etc/init.d/usbarbitrator stop
    				
  3. Einstecken USB-Stick
  4. Nun kann durch einen Blick in der Datei
    /var/log/vmkernel.log
    oder mit einem
    ls /dev/disks
    nach dem Namen geschaut werden. Die Disks beginngen mit einem Namen
    mpx.
    oder
    naa.

    Beispiel:
    mpx.vmhba33:C0:T0:L0
    mpx.vmhba33:C0:T0:L0:1
  5. Nun kann der USB-Stick zum Kopieren von Daten genutzt werden.
    • Kopieren vom USB Stick auf den ESXi-Server.
      Syntax:

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      mcopy -i "<Device>" ::/<Dateien> <Zielpfad>
      
      mcopy -i "<Device>" ✂
      ::/<Dateien> ✂
      <Zielpfad>
      				
      Beispiel (Es funktioniert auch die Angabe von "*" für den Dateinamen):

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      mcopy -i "/dev/disks/mpx.vmhba33\:C0\:T0\:L0:1" ::/*.zip /tmp/mbu
      
      mcopy -i "/dev/disks/ ✂
      mpx.vmhba33\:C0\:T0\:L0:1" ✂
      ::/*.zip /tmp/mbu
      				
    • Kopieren vom ESXi-Server auf den USB-Stick.
      Hier hat in meinen Tests ein "*" als Teil des Dateinamens zu komischen Ergebnissen geführt. Deshalb halte ich es für sicherer, nur konkret spezifierte Dateien so zum USB-Stick zu übertragen.
      Syntax:

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      mcopy -i "<Device>" <Quell-Pfad und Quell-Dateiname> ::/<Ziel-Dateiname>
      
      mcopy -i "<Device>" ✂
      <Quell-Pfad und Quell- ✂
      Dateiname> ✂
      ::/<Ziel-Dateiname>
      				
      Beispiel :

      (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
      mcopy -i "/dev/disks/mpx.vmhba33\:C0\:T0\:L0:1" /var/log/vmkernel.log ::/vmkernel.log
      
      mcopy -i "/dev/disks/ ✂
      mpx.vmhba33\:C0\:T0\:L0:1" ✂
      /var/log/vmkernel.log ✂
      ::/vmkernel.log
      				
  6. Nach den Arbeiten den USB-Stick wieder entfernen.
  7. Optional: wieder Aktivieren USB-Arbitrator-Service

    (Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)
    /etc/init.d/usbarbitrator start
    
    /etc/init.d/usbarbitrator start
    				
  8. Fertig




top vCenter Converter Standalone

Für die Migration von VMs von einem ESXi Host auf einen anderen / neueren habe ich testweise auch die Software "vCenter Converter Standalone" benutzt. Das funktionierte für ein HomeLab ganz gut.

Das Programm läuft unter Windows und ist in der Bedienung selbsterklärend.
Links:





top Links zum Thema

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!
Bitte nicht vergessen, vor Arbeiten ein Backup zu erstellen!