VMFS-Datastore aus ESXi bzw. vSphere entfernen


    Tags: , ,

    Datastore im vSphere Web Client entfernenMöchte man in vSphere nicht mehr benötigte VMFS-Datastores un­mounten oder ganz ent­fernen, dann handelt es sich dabei normalerweise um einen unkom­plizierten Vor­gang. Manchmal sperrt sich ein Datastore aber trotz­dem gegen das Unmounten, auch wenn alle nötigen Voraus­setzungen gegeben sind.

    Ein häufiger Anlass für das Entfernen eines Datastores besteht darin, dass man die Backend-seitigen LUNs hinter einem Datastore reorganisieren oder entfernen möchte, was mit dem Löschen des Datastores einhergeht.

    Voraussetzungen für das Unmouten eines Datastores

    Vor dem Entfernen von LUNs in vSphere-Umgebungen müssen unbedingt folgende Bedingung geprüft werden. Der Datastore darf

    • keine VMs oder Templates enthalten,
    • nicht mehr Mitglied eines Datastore-Clusters sein
    • nicht von Storage DRS verwaltet werden,
    • nicht Datastore für Heartbeats von HA verwendet werden
    • Storage I/O Control muss für diese Datastore deaktiviert sein.

    Trotzdem ist es manchmal nicht möglich, einen VMFS-Datastore erfolgreich zu löschen. Man bekommt dann eine Fehlermeldung der Art

    The resource 'Datastore Name: datastore7-SAS-hv3-A VMFS uuid: 585a846d-3c03ab29-cb32-002564bb1d55' is in use. Cannot remove volume 'Datastore Name: datastore7-SAS-hv3-A VMFS uuid: 585a846d-3c03ab29-cb32-002564bb1d55' because "file system is busy". Correct the problem and retry the operation.

    Coredump entfernen

    Eine Ursache für dieses Verhalten kann darin liegen, dass der Datastore als Diagnostic Coredump Partition konfiguriert ist. Hierbei handelt es sich um ein mit ESXi 5.5 eingeführtes Feature, das dazu dient, Coredumps anstatt auf einer Scratch-Partition in einer Datei auf einem Datastore zu speichern. In manchen Fällen wird eine solche Datei automatisch erzeugt, was verhindert, dass sich der Datastore entfernen lässt.

    Ob solche Dump-Files existieren, findet man auf der Kommando­zeile recht schnell durch Eingabe von

    esxcli system coredump file list

    heraus. In der Ausgabe erkennt man die UUID des ESXi-Hosts, der die Datei gesperrt hat. Der hintere Teil der UUID ist die MAC-Adresse von vmnic0, was eine eindeutige Identifikation des Hosts zulässt.

    Anzeigen und Löschen von Coredump-Files mit Hilfe von esxcli

    Eine Coredump-File kann "konfiguriert" und/oder "aktiv" sein. Ist es konfiguriert aber nicht aktiv, lässt es sich ohne Angabe des Filenamen mit der force-Option entfernen. Ist es aktiv, muss es mit set erst deaktiviert werden. Ist es weder konfiguriert noch aktiv, also ein Überbleibsel einer früheren Verwendung auf dieser LUN, muss der Filename beim entfernen mit remove explizit angebenen werden.

    Zum Löschen der coredump-Datei verbindet man sich per SSH mit diesem Host und gibt im Fall einer nicht aktiven Coredump-Datei folgenden Befehl ein:

    esxcli system coredump file remove -force

    Scratch-Partition

    Es kann aber auch durchaus sein, dass der betreffende VMFS-Datastore von einem oder mehreren ESXi-Hosts als Scratch-File-Location verwendet wird. Dies ist insbesondere dann wahrscheinlich, wenn der ESXi-Server über keine lokale Festplatte verfügt. In diesem Fall startet der Server den Hypervisor von einem USB-Stick oder aus dem Netzwerk (PXE/Auto Deploy, Boot-from-SAN).

    Zu erkennen ist die Nutzung als Scratch-Location einerseits dadurch, dass im Datastore-Browser das Verzeichnis mit dem Namen .locker existiert und zum anderen, dass der erweiterte Parameter

    ScratchConfig.ConfiguredScratchLocation

    auf dieses Verzeichnis zeigt. Diesen findet man im Web-Client in den erwei­terten Einstellungen für den Host, wenn man nach diesem Schlüssel sucht.

    Hier lässt sich der gewünschte Pfad auch gleich ändern, sofern man vorher das Verzeichnis .locker auf der Kommandozeile, im Datastore-Browser oder mit Hilfe eines SCP/SFTP-Clients auf einem anderen Datastore angelegt hat.

    Ändern der Scratch-Partition im vSphere Web Client

    Man kann Scratch-Speicherplatz für den ESXi-Host aber nicht nur manuell, sondern auch per vCLI, PowerCLI oder im Verlauf einer skriptbasierten Installation konfigurieren. Unabhängig von der gewählten Methode schreibt ESXi die Konfiguration zur Verwendung beim nächsten Startvorgang in die Konfigurationsdatei /etc/vmware/locker.conf.

    Die konfigurierte Scratch-Partition muss auf ein Verzeichnis in einem Dateisystem verweisen, das für den ESXi-Host zugänglich ist, beispielsweise ein Fat16- oder VMFS-Volume. Der Speicherort kann auf einer freigegebenen Festplatte oder einer Remote-Festplatte liegen. Nicht unterstützt wird die Konfiguration einer Scratch-Partition auf einem vSAN-Datenspeicher.

    Wichtig ist dabei, dass man kein Scratch-Verzeichnis für mehrere ESXi-Hosts gleichzeitig freigibt, d. h. jeder ESXi-Host muss seinen eigener Ordner (zum Beispiel .locker-esx1, .locker-esx2, usw.) bekommen, wenn man etwa einen SAN-basierten VMFS-Datastore als Scratch-Partition verwendet. Damit die Änderungen wirksam werden, ist ein Neustart des ESXi-Hosts erforderlich.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling

    Thomas Drilling arbeitet ist seit fast 30 Jahren selb­ständig in der IT-Welt sowohl als Consultant, als auch als Redakteur, Buchautor und Journalist für viele ehe­malige und aktuelle IT-Magazine sowie Blogs.

    Aktuell bestätigt sich Thomas schwerpunktmäßig als IT-Trainer für Cloud-Computing in den Bereichen Microsoft Azure, Amazon Web Services und VMware.

    Thomas ist zertifizierter Microsoft-Trainer für nahe das gesamte Portfolio an Microsoft Azure Trainings. Thomas ist außerdem zerti­fi­zierter Microsoft Azure Solutions Architect Expert sowie VMware Certified Professional und wurde von VMware in den Jahren 2016 bis 2022 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas führt aktuell jeden Monat zwei selbstkonziperte 4-tägigen Grund­lagenkurse in Cloud Computing mit Azure durch, die sich inhaltlich bewusst von den Microsft-Kursen abheben und vorzuweise als Bootcamp in eine besonderen Lokation stattfinden. Optional kann aber aber auch remote via Microsoft Teams teilgenommen werden.

    Das aktuelle Trainingsprogramm findet sich unter Azure-Trainings. Weitere Infor­mationen und Anmel­dung über sein Azure-Blog.

    Verwandte Beiträge

    Weitere Links