Erstellen einer dauerhaften Scratch-Partition für ESXi 4.x/5.x/6.0
search cancel

Erstellen einer dauerhaften Scratch-Partition für ESXi 4.x/5.x/6.0

book

Article ID: 344435

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

In diesem Artikel wird das Verfahren beschrieben, mit dem eine dauerhafte Scratch-Partition für ESXi erstellt wird.

VMware empfiehlt, dass ESXi über eine dauerhafte Scratch-Partition zum Speichern temporärer Daten einschließlich Protokolle, Diagnosedaten und Systemauslagerung verfügt. (Dies ist jedoch keine Anforderung.) Dauerhafter Scratch-Speicherplatz kann auf einer FAT 16-, VMFS- oder NFS-Partition bereitgestellt werden, die für den ESXi-Host zugänglich ist.

Hinweis: Scratch-Speicherplatz wird bei der Installation oder beim ersten Start eines ESXi-Hosts automatisch konfiguriert und muss nicht manuell konfiguriert werden. ESXi Installable erstellt bei der Installation eine Fat16-Partition mit 4 GB auf dem Zielgerät, wenn ausreichend Speicherplatz vorhanden ist und das Gerät als "lokal" angesehen wird.

Ab VirtualCenter 2.5 Update 1 können einem HA-Cluster nur ESXi-Systeme mit aktivierter Auslagerung hinzugefügt werden. Weitere Informationen finden Sie unter ESXi hosts without swap enabled cannot be added to a VMware High Availability Cluster (1004177).

Symptoms:

Haftungsausschluss: Dieser Artikel ist eine Übersetzung des zugrundeliegenden Artikels Creating a persistent scratch location for ESXi 4.x/5.x/6.0 (1033696). Die Übersetzung des Artikels erfolgt auf einer Minimalbasis („Best Effort“), übersetzter Inhalt der Artikel kann veraltet oder inkorrekt sein. Schadenersatzansprüche sind vollständig ausgeschlossen.


  • Wenn Sie den Befehl esxcli software vib list ausführen, wird eine Fehlermeldung ähnlich der Folgenden angezeigt:

    Traceback (most recent call last):
    File "/usr/lib/vmware/esxcli-software", line 432, in module
    setupLogging()
    File "/usr/lib/vmware/esxcli-software", line 78, in setupLogging
    handler = logging.handlers.SysLogHandler(address='/dev/log')
    File "/build/mts/release/bora-504890/bora/build/esx/release/python-
    2.6-lib-zip-stage/504890/visor/pylib/python2.6/logging/handlers.py",
    line 704, in __init__
    File "/build/mts/release/bora-504890/bora/build/esx/release/python-
    2.6-lib-zip-stage/504890/visor/pylib/python2.6/logging/handlers.py",
    line 719, in _connect_unixsocket
    File "string", line 1, in connect
    socket.error: [Errno 2] No such file or directory

  • Befehle im Zusammenhang mit esxcli software oder esxupdate funktionieren nicht.
  • Das Durchsuchen des Hosts mit Update Manager schlägt mit folgender Fehlermeldung fehl:

    General System Error

  • Durch einen Neustart des Hosts wird das Problem zunächst behoben. Es tritt in einigen Tagen jedoch erneut auf.
  • Protokolldateien fehlen im Verzeichnis /var/log/ oder werden nicht aktualisiert.
  • Sie können den HA-Agent auf betroffenen ESXi-Hosts nicht installieren.
  • ESXi ist auf einer SD-Karte oder einem USB-Stick installiert.


Environment

VMware vSphere ESXi 5.1
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 6.0
VMware vSphere ESXi 5.5
VMware ESXi 4.1.x Installable
VMware vSphere ESXi 5.0
VMware ESXi 4.1.x Embedded
VMware ESXi 4.0.x Embedded

Cause

Wenn kein dauerhafter Scratch-Speicherplatz vorhanden ist, speichert ESXi diese temporären Daten auf einer RAM-Disk, deren Speicherplatz begrenzt ist. Dies kann in Situationen mit geringem Arbeitsspeicher problematisch sein, ist jedoch für die Ausführung von ESXi nicht essentiell. Auf einer RAM-Disk gespeicherte Informationen bleiben nach einem Neustart nicht erhalten. Informationen für die Fehlerbehebung, wie beispielsweise Protokolle und Kerndateien, gehen daher möglicherweise verloren. Wenn eine dauerhafte Scratch-Partition auf dem Host nicht ordnungsgemäß konfiguriert ist, treten möglicherweise temporäre Probleme aufgrund von fehlendem Speicherplatz für temporäre Dateien auf, und die Protokolldateien werden nicht aktualisiert.

Scratch-Speicherplatz wird bei der Installation oder beim ersten Start eines ESXi 4.1 U2-Hosts (und höher) automatisch konfiguriert und muss nicht manuell konfiguriert werden.

Resolution

Scratch-Speicherplatz kann für einen ESXi-Host manuell über den vSphere Client, vCLI, PowerCLI, den Tech-Support-Modus oder während einer skriptbasierten Installation konfiguriert werden. Wählen Sie die für Ihre Umgebung geeignete Methode aus. Unabhängig von der gewählten Methode wird die Konfiguration zur Verwendung beim nächsten Startvorgang in die Konfigurationsdatei /etc/vmware/locker.conf geschrieben.

Wenn die konfigurierte Scratch-Partition geändert wird, ist ein Neustart des ESXi-Hosts erforderlich, damit die Änderungen wirksam werden. Verwenden Sie vMotion, um alle virtuellen Maschinen auf dem ESXi-Host zu migrieren oder auszuschalten, bevor Sie die Änderungen durchführen. Weitere Informationen finden Sie unter Rebooting an ESX Server host (1003530).

Die konfigurierte Scratch-Partition muss auf ein Verzeichnis in einem für den ESXi-Host zugänglichen Dateisystem verweisen, beispielsweise ein Fat16- oder VMFS-Volume. Der Speicherort kann ein Verzeichnis auf einer freigegebenen Festplatte oder einer Remotefestplatte sein, solange dem ESXi-Host sein eigenes Verzeichnis zugewiesen wird.

Achtung: Geben Sie kein Scratch-Locker-Verzeichnis für mehrere ESXi-Hosts frei.

Hinweis: Die Konfiguration einer Scratch-Partition in einem VSAN-Datenspeicher wird nicht unterstützt.

Es kann erforderlich sein, den ESXi-Host neu zu starten, bevor diese Verfahren abgeschlossen werden.

Konfigurieren einer dauerhaften Scratch-Partition über den vSphere Client

So konfigurieren Sie dauerhaften Scratch-Speicherplatz für ESXi über den vSphere Client:
  1. Stellen Sie über den vSphere Client eine Verbindung zu vCenter Server oder zum ESXi-Host her.
  2. Klicken Sie in der Bestandsliste auf den ESXi-Host.
  3. Klicken Sie auf die Registerkarte Konfiguration und dann auf Speicher.
  4. Klicken Sie mit der rechten Maustaste auf einen Datenspeicher und klicken Sie auf Durchsuchen.
  5. Erstellen Sie für diesen ESXi-Host ein Verzeichnis mit einem eindeutigen Namen.
    Beispiel:

    .locker-ESXHostname

  6. Schließen Sie den Datenspeicherbrowser.
  7. Klicken Sie auf Software und dann auf Erweiterte Einstellungen.
  8. Wählen Sie den Abschnitt ScratchKonfig aus.
  9. Ändern Sie die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation und geben Sie den vollständigen Pfad des Verzeichnisses an.

    Beispiel:

    /vmfs/volumes/DatastoreUUID/.locker-ESXHostname

    Hinweis: So ermitteln Sie die UUID des Datenspeichers:
    1. Navigieren Sie zu Konfiguration > Speicher.
    2. Wählen Sie den Datenspeicher aus.
    3. Zeigen Sie unter „Datenspeicherdetails“ den Speicherort an.

      Die Datenspeicher-UUID wird ähnlich der Folgenden angezeigt: /vmfs/volumes/51dda02d-fade5016-8a08-005056171889. Dabei ist 51dda02d-fade5016-8a08-005056171889 die UUID.

  10. Klicken Sie auf OK.
  11. Versetzen Sie den ESXi-Host in den Wartungsmodus und führen Sie einen Neustart durch, damit die Konfigurationsänderungen übernommen werden.


Konfigurieren einer dauerhaften Scratch-Partition über vCLI

So konfigurieren Sie dauerhaften Scratch-Speicherplatz für ESXi über vSphere Command-Line Interface:

Hinweis: Weitere Informationen zur Verwendung finden Sie in der vSphere Command-Line Interface Documentation.
  1. Öffnen Sie eine Eingabeaufforderung für den Speicherort, in dem vCLI installiert ist.
  2. Rufen Sie mit dem folgenden Befehl eine Liste der Datenspeicher ab, die über diesen ESXi-Host erreichbar sind:

    vifs.pl connectoptions --listds

    Beispiel:

    vifs.pl --server esx_hostname_or_IP --username root --listds

  3. Erstellen Sie mit dem folgenden Befehl ein Verzeichnis mit einem eindeutigen Namen für diesen ESXi-Host.

    vifs.pl connectoptions --mkdir "[DatastoreName] DirectoryName"

    Beispiel:

    vifs.pl --server esx_hostname_or_IP --username root --mkdir "[Datastore1] .locker-ESXHostname"

  4. Überprüfen Sie mit dem folgenden Befehl den aktuellen Wert der Konfigurationsoption ScratchConfig.ConfiguredScratchLocation:

    vicfg-advcfg.pl connectoptions -g ScratchConfig.ConfiguredScratchLocation

    Beispiel:

    vicfg-advcfg.pl --server esx_hostname_or_IP --username root -g ScratchConfig.ConfiguredScratchLocation
    Value of ScratchConfig.ConfiguredScratchLocation is /path/to/location


  5. Ändern Sie mit dem folgenden Befehl die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation und geben Sie den vollständigen Pfad des in Schritt 3 erstellten Verzeichnisses an:

    vicfg-advcfg.pl connectoptions -s /vmfs/volumes/DatastoreName/DirectoryName ScratchConfig.ConfiguredScratchLocation

    Beispiel:

    vicfg-advcfg.pl --server esx_hostname_or_IP --username root -s /vmfs/volumes/Datastore1/.locker-ESXHostname ScratchConfig.ConfiguredScratchLocation

  6. Versetzen Sie den ESXi-Host in den Wartungsmodus und führen Sie einen Neustart durch, damit die Konfigurationsänderungen übernommen werden.


Konfigurieren einer dauerhaften Scratch-Partition über PowerCLI 5.1 oder höher

So konfigurieren Sie den dauerhaften Scratch-Speicherplatz für ESXi mithilfe der vSphere PowerCLI-Schnittstelle:

Hinweise:
  • Bevor Sie fortfahren, vergewissern Sie sich, dass das Verzeichnis /tmp/scratch existiert. Falls nicht, erstellen Sie es mithilfe des Befehls mkdir /tmp/scratch.
  • Weitere Informationen zur Verwendung von vSphere PowerCLI finden Sie in der vSphere PowerCLI documentation.
  1. Öffnen Sie eine Eingabeaufforderung für einen Speicherort, in dem PowerCLI installiert ist.
  2. Stellen Sie mithilfe des folgenden Befehls eine Verbindung zum ESXi-Host her.

    connect-viserver esx_hostname_or_IP

  3. Rufen Sie mit dem folgenden Befehl eine Liste der Datenspeicher ab, die über diesen ESXi-Host erreichbar sind:

    Get-Datastore

  4. Mounten Sie mit dem folgenden Befehl einen Lese-/Schreibvorgang für einen Datenspeicher als PSDrive:

    New-PSDrive -Name "mounteddatastore" -Root \ -PSProvider VimDatastore -Datastore (Get-Datastore "DatastoreName")

  5. Greifen Sie mit dem folgenden Befehl auf das neue PSDrive zu:

    Set-Location mounteddatastore:\

  6. Erstellen Sie mit dem folgenden Befehl ein Verzeichnis mit einem eindeutigen Namen für diesen ESXi-Host.

    New-Item "DirectoryName" -ItemType directory

    Beispiel:

    New-Item ".locker-ESXHostname" -ItemType directory

  7. Überprüfen Sie mit dem folgenden Befehl den aktuellen Wert der Konfigurationsoption ScratchConfig.ConfiguredScratchLocation:

    Get-VMhost | Get-AdvancedSetting -Name "ScratchConfig.ConfiguredScratchLocation"

  8. Ändern Sie mit dem folgenden Befehl die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation und geben Sie den vollständigen Pfad des in Schritt 6 erstellten Verzeichnisses an:

    Get-VMhost | Get-AdvancedSetting -Name "ScratchConfig.ConfiguredScratchLocation" | Set-AdvancedSetting -Value "/vmfs/volumes/DatastoreName/DirectoryName"

    Beispiel:

    Get-VMhost | Get-AdvancedSetting -Name "ScratchConfig.ConfiguredScratchLocation" | Set-AdvancedSetting -Value "/vmfs/volumes/Datastore1/.locker-ESXHostname"

  9. Wenn Sie dazu aufgefordert werden, klicken Sie auf Ja, um die erweiterten Einstellungen zu ändern.
  10. Versetzen Sie den ESXi-Host in den Wartungsmodus und führen Sie einen Neustart durch, damit die Konfigurationsänderungen übernommen werden.


Konfigurieren einer dauerhaften Scratch-Partition mithilfe des Tech-Support-Modus

So konfigurieren Sie dauerhaften Scratch-Speicherplatz für ESXi mithilfe des Tech-Support-Modus für ESXi:

Hinweise:
  • Dieser Vorgang kann über die lokale Konsole oder über SSH durchgeführt werden.
  • Bei .filename handelt es sich um eine verborgene Datei. Verwenden Sie zum Anzeigen von verborgenen Dateien den Befehl ls -a.
  1. Öffnen Sie eine Konsole auf dem ESXi-Host. Weitere Informationen finden Sie unter Using Tech Support Mode in ESXi 4.1 and 5.0 (1017910).
  2. Rufen Sie mit dem folgenden Befehl eine Liste der Datenspeicher ab, die über diesen ESXi-Host erreichbar sind:

    ls /vmfs/volumes

  3. Erstellen Sie mit dem folgenden Befehl ein Verzeichnis mit einem eindeutigen Namen für diesen ESXi-Host.

    mkdir /vmfs/volumes/DatastoreName/DirectoryName

    Beispiel:

    mkdir /vmfs/volumes/Datastore1/.locker-ESXHostname

  4. Überprüfen Sie mit dem folgenden Befehl den aktuellen Wert der Konfigurationsoption ScratchConfig.ConfiguredScratchLocation:

    vim-cmd hostsvc/advopt/view ScratchConfig.ConfiguredScratchLocation

    Beispiel:

    (vim.option.OptionValue) [
    (vim.option.OptionValue) {
    dynamicType = unset,
    key = "ScratchConfig.ConfiguredScratchLocation",
    value = "/path/to/location",
    }
    }


  5. Ändern Sie mit dem folgenden Befehl die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation und geben Sie den vollständigen Pfad des in Schritt 3 erstellten Verzeichnisses an:

    vim-cmd hostsvc/advopt/update ScratchConfig.ConfiguredScratchLocation string /vmfs/volumes/DatastoreName/DirectoryName

    Beispiel:

    /bin/vim-cmd hostsvc/advopt/update ScratchConfig.ConfiguredScratchLocation string /vmfs/volumes/Datastore1/.locker-ESXHostname

  6. Versetzen Sie den ESXi-Host in den Wartungsmodus und führen Sie einen Neustart durch, damit die Konfigurationsänderungen übernommen werden.


Konfigurieren einer dauerhaften Scratch-Partition bei der skriptbasierten Installation über Kickstart-Skripts

Sie können dauerhaften Scratch-Speicherplatz für ESXi bei der Kickstart-Installation hinzufügen, indem Sie Ihren Kickstart-Skripts Befehle hinzufügen, mit denen das Verzeichnis erstellt und die Konfigurationsoption geändert wird. Weitere Informationen zu skriptbasierten ESXi-Bereitstellungen finden Sie im ESXi Installable and vCenter Server Setup Guide.

Hängen Sie die folgenden Befehle an Ihr benutzerdefiniertes Kickstart-Skript an:
# Generate a new scratch directory for this host on a Datastore
scratchdirectory=/vmfs/volumes/DatastoreName/.locker-$(hostname 2> /dev/null)-$(esxcfg-info -b 2> /dev/null)

# Create the scratch directory
mkdir -p $scratchdirectory

# Change the advanced configuration option
vim-cmd hostsvc/advopt/update ScratchConfig.ConfiguredScratchLocation string $scratchdirectory

Hinweis: Die konfigurierte Scratch-Partition wird beim Start des ESXi-Hosts aktiviert. Nach Ausführung der vorherigen Befehle ist ein Neustart erforderlich.

Konfigurieren einer dauerhaften Scratch-Partition über den vSphere Web Client für ESXi 5.1, 5.5 und 6.0

So konfigurieren Sie dauerhaften Scratch-Speicherplatz für ESXi über den vSphere Web Client:
  1. Melden Sie sich über den vSphere Web Client bei vCenter Server an.
  2. Klicken Sie auf Hosts und Cluster und wählen Sie dann den gewünschten Host aus.
  3. Klicken Sie auf die Registerkarte Verwalten und dann auf Einstellungen.
  4. Klicken Sie auf System und dann auf Erweiterte Systemeinstellungen.
  5. Suchen Sie nach ScratchConfig.ConfiguredScratchLocation.
  6. Klicken Sie auf Bearbeiten und fügen Sie im Scratch-Verzeichnis den Pfad hinzu.
  7. Starten Sie den Host neu, damit die Änderungen wirksam werden.


Additional Information

Informationen zu einem bekannten Problem, das beim Upgrade eines Cisco Nexus 1000V-Moduls auf einem Host mit NFS-gestütztem Scratch-Speicher auftritt, finden Sie unter Cannot upgrade Cisco Nexus 1000V module on ESXi host configured with NFS backed scratch (2004978).

Weitere Informationen zur Scratch-Partition finden Sie unter:

Wenn der Host länger als 24 Stunden ausgeführt wird, bleibt diese Einstellung möglicherweise nicht dauerhaft bestehen, nachdem die vorherigen Schritte durchgeführt wurden. Führen Sie in diesem Fall folgende Schritte durch:
  1. Versetzen Sie den Host in den Wartungsmodus und starten Sie ihn neu.
  2. Klicken Sie auf die Registerkarte Konfiguration.
  3. Klicken Sie auf Software.
  4. Klicken Sie auf Erweiterte Einstellungen.
  5. Wählen Sie den Abschnitt ScratchKonfig aus.
  6. Ändern Sie die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation und legen Sie sie auf den vollständigen Pfad des Verzeichnisses fest.

    Beispiel:

    /vmfs/volumes/DatastoreName/.locker-ESXHostname

  7. Klicken Sie auf OK.
  8. Schließen Sie dieses Fenster.
  9. Klicken Sie auf Erweiterte Einstellungen, um das Fenster erneut zu öffnen.
  10. Wählen Sie den Abschnitt ScratchKonfig aus.
  11. Überprüfen Sie, ob das Feld ScratchConfig.ConfiguredScratchLocation die in Schritt 6 konfigurierte Scratch-Option enthält. Wenn dies der Fall ist, starten Sie den Host neu.

    Auf dem Host wird jetzt die konfigurierte Scratch-Partition verwendet.

Weitere Informationen dazu, wie ermittelt wird, ob es sich um ein Festplattengerät handelt, finden Sie unter Identifying disks when working with VMware ESX (1014953). Überprüfen Sie das Flag Is Local in der Ausgabe des Befehls esxcfg-scsidevs -l:
  • Wenn „Lokal“ auf „True“ festgelegt ist, kann nicht von mehreren ESXi-Hosts auf das Speichergerät zugegriffen werden.
  • Wenn „Lokal“ auf „False“ festgelegt ist, handelt es sich bei dem Speichergerät um ein Remotegerät, auf das potenziell von mehreren ESXi-Hosts aus zugegriffen werden kann. Remotegeräte werden von ESXi nicht automatisch für Scratch-Speicher verwendet.

ESXi wählt beim Start eine der folgenden Scratch-Partitionen in der nachstehenden Reihenfolge ihrer Priorität aus:
  1. Der in der Konfigurationsdatei /etc/vmware/locker.conf konfigurierte Speicherort, festgelegt durch die Konfigurationsoption ScratchConfig.ConfiguredScratchLocation (siehe Informationen in diesem Artikel).
  2. Ein Fat16-Dateisystem mit mindestens 4 GB auf dem lokalen Startgerät.
  3. Ein Fat16-Dateisystem mit mindestens 4 GB auf einem lokalen Gerät.
  4. Ein VMFS-Datenspeicher auf einem lokalen Gerät in einem .locker/-Verzeichnis.
  5. Eine RAM-Disk im Verzeichnis /tmp/scratch/.
Dies sind zwei Beispiele, in denen Scratch-Speicherplatz möglicherweise nicht automatisch für dauerhaften Speicher definiert wird. In jedem dieser Fälle wird die temporäre Scratch-Partition auf einer RAM-Disk konfiguriert:
  • ESXi bereitgestellt auf einem Flash- oder SD-Gerät, einschließlich USB-Stick. Scratch-Partitionen werden nicht auf Flash- oder SD-Speichergeräten erstellt, auch wenn die Verbindung bei der Installation hergestellt wurde. Der Grund hierfür sind potenziell eingeschränkte verfügbare Lese-/Schreibzyklen.
  • ESXi bereitgestellt in einer Konfiguration vom Typ „Über SAN starten“ oder auf einem SAS-Gerät. Eine Konfiguration vom Typ „Über SAN starten“ oder eine SAS-LUN wird als remote betrachtet und kann potenziell auf mehreren ESXi-Hosts verwendet werden. Remotegeräte werden nicht für Scratch verwendet, um Kollisionen zwischen mehreren ESXi-Hosts zu vermeiden.

Informationen zum Konfigurieren von Syslog für ESXi 5.x finden Sie unter Configuring syslog on ESXi 5.x (2003322).Creating a persistent scratch location for ESXi 4.x/5.x/6.x