Windows Server Event 58 von partmgr (Die Signatur des Datenträgers …)

Problem

Dateisystems-Snapshots eines Windows-Gastsystems welche VSS nutzen (sollen) funktionieren nicht korrekt. Die jeweiligen VSS-Trigger geben eine wirre Fehlermeldung aus (vCenter Quiescence error/KVM Ruhelage fehler/Hyper-V Snapshot Abbruch). Das Gast-Windows zeigt im Ereignisprotokoll einen „Event 58“ von der Quelle „partmgr“. Der Inhalt lautet

Die Datenträgersignatur von Datenträger <foo> ist mit der Datenträgersignatur von Datenträger <bar> identisch.

Der Fehler im (zum Beispiel) vmware-Gastprotokoll lautet:

Beim Stilllegen der virtuellen Maschine ist ein Fehler aufgetreten.
Weitere Informationen finden Sie im Ereignisprotokoll der virtuellen Maschine.

Under den Details ergänzt sich dies noch um folgendes:

Das Gastbetriebssystem hat während der Stilllegung einen Fehler gemeldet.
Der Fehlercode lautet: 3 Die Fehlermeldung lautet: Error when notifying the sync provider.

Lösung(en)

Es gibt mehrere möglich Ursachen. Eine Lösung dieser Liste hat bei unseren Fehlern bisher immer geholfen, wenn das bei dir nicht helfen sollte, schreibe einen Kommentar. Wir sind neugierig was noch so gibt.

1. Doppelte SCSI-ID (vmware)

Eine Pfad-ID (nicht Disk-ID!) für ein virtuelles Laufwerk kann unter bestimmten, aber ziemlich wirschen, Bedingungen auch mehrfach vergeben werden. Zum Beispiel wenn eine Disk auf der ESX-Shell kopiert (Bit-Copy) oder via abgestürztem Transport-Proxy in Veeam gesichert werden sollte.

Lösung: Eine neue Pfad-ID erzeugen, indem das Laufwerk von der VM getrennt wird (nicht löschen!), das Fenster geschlossen und dann das Laufwerk mit einer neuen SCSI-ID wieder angehöngt wird. Dann gibt es es einen komplett neuen Pfad und Windows findet die Platte beim nächsten Reboot zuverlässig am „neuen“ Strang. Fehler behoben.

2. Doppelte Disk-ID

Es ist technisch möglich, das eine Disk-ID zweimal vergeben wird. Das passiert schon mal unbeabsichtigt bei P2V/V2V oder P2P vorgängen, oder wenn man den Haken bei „Volumenidentifizierung beibehalten“ setzt. In seltenen Fällen auch mal dazwischen, wenn dd im Spiel ist. Achtung: Unter Hyper-V und vmware betrifft das auch die Disk-ID von Remote-Laufwerken (SAN/NAS via FC und iSCSI, vor allem RAW) – also alles was der jeweilige Host „sehen“ kann.

Lösung: Eine neue Disk-ID vergeben. An einem Administrator-Prompt die passende Disk auswählen und mit uniqueid behandeln:

C:\>DISKPART
DISKPART> list disk
  Datenträger ###  Status         Größe    Frei     Dyn  GPT
  ---------------  -------------  -------  -------  ---  ---
  Datenträger 0    Online          949 GB  1024 KB
  Datenträger 1    Online         1965 GB  1024 KB
DISKPART> select disk 0
Datenträger 0 ist jetzt der gewählte Datenträger.
DISKPART> uniqueid disk
Datenträger-ID: 5044D2AF
DISKPART>

Um dise ID zu ändern:

UNIQUEID DISK ID=DEADBEEF

Möglicherweise bootet Windows danach nicht mehr freiwillig. Einfach von einem passenden Installationsdatenträger booten, die Kommandozeile öffnen und den BCD wieder auf die korrekte (neue) ID einschiessen lassen:

X:\SOURCES> bootrec /fixboot
X:\SOURCES> bootrec /scanos
X:\SOURCES> bootrec /rebuildbcd

Dann klappts auch wieder mit dem Windows.

3. Der Geist eines toten Volumens

Eventuell hängen im Gerätemanager („ausgebelndete Geräte anzeigen“) ja auch noch ein paar tote Volumen herum, die sich aber auch äußerst hartnäckig dem entfernen wiedersetzen. Diesen rückt man besten mit Microsoft DevNodeClean zuleibe. Seltsame Devices entfernen (lassen), Reboot und alles ist wieder gut.

  1. DevNodeClean bei Microsoft herunterladen
  2. An einer Administrativen Shell mit
    DevNodeClean /N

    die Devices auflisten (wenn nichts angezeigt wird, gibt es keine verwaisten Eintröge)

  3. Wenn notwendig, direkt an der Shell mit
    DevNodeClean

    die Devices entfernen. Der Erfolg lässt sich mit /N kontrollieren.

  4. Reboot, fertig 🙂

 

Eine bestehende Thin Provisioned Virtual Disk (VMDK) verkleinern

VMware Thin Provisioned VMDKs sind ja mittlerweile weder ein Performanceproblem noch eine VCDX Design-Unschicklichkeit, sondern ganz im Gegenteil in vielen produktiven Systemen zu finden. Vor allem temporäre Datenbankexplosionen (Temp Bulk-Inserts oder Exports) lassen sich damit ausgezeichnet vor der teuren Belegung von Produktivstorage abfedern. TEMP-Volumes die zwar in der Regel klein, aber im Notfall dann größer sein müssen sind schon fast „Thin-Standard“.

Oft wird uns die Frage gestellt, wie man eine Thin-Disk, nachdem diese temporär mit Daten belegt worden ist, wieder kleiner bekommt. Die VMDK wächst ja bekanntlich mit, verkleinert sich aber selbstständig nicht. Wie verkleinert man VMDKs?

Lösung

Die entsprechende Partition muss für optimale Ergebnisse erst defragmentiert werden und der freie Speicher dann mit Nullen gefüllt sein. Diese werden von den VMKFSTOOLS dann als solche erkannt. Betriebssystme Nullen ihren Speicher aus performancegründen praktisch nie, daher muss das forciert werden. geht aber recht schnell.

    1. Windows: SDelete herunterladen und mit
      sdelete.exe -z <Laufwerk>

      den verbliebenen Restspeicher nullen.

    2. Linux: Den Platz nullen mit dd:
      dd bs=1M count=8192 if=/dev/zero of=zero
    3. VM ausschalten (oder VMDK disconnecten)
    4. Via SSH auf einen Host verbinden
    5. Disk verkleinern mit
      vmkfstools -K [/vmfs/volumes/lun178/mydisk.vmdk]

HP Custom vSphere ESXi Image 5.5 Upgrade Fehler

Problem

vsphere55-hp-iso-upgrade-errorSowohl ein Upgrade auf vSphere Version 5.5 mittel VUM (Update Manager) als auch das „harte“ booten des Hosts von einer Upgrade CD/ISO schlägt mit Warnungen fehl:

Compliance State: Incompatible

The upgrade contains the following set of conflicting VIB’s:
[Je nach Datum kann die Liste der VIBs variieren, aber es geht immer um Broadcom NIC Driver]

Lösung

Da scheint hp bei der Nummerierung der Versionen durcheinander gekommen zu sein. Einfach den aktuellen passenden Treiber VOR dem Update installieren, der ist korrekt benannt, fertig.

  1. Die „richtigen“ VMware-VIBs herunterladen Broadcom NetXtreme II Network/iSCSI/FCoE Driver Set
  2. .zip auspacken und das Offline Bundle (in einer weiteren .zip in der .uip) auf den betroffenen Host nach /tmp/ hochladen und installieren:
  3. esxcli software vib install -d –depot=/tmp/offline-bundle.zip -f
  4. Reboot, Rescan, läuft.

Trotzdem raten wir uggli-Admins zur customized HP-ISO. Die ganzen Sensoren in der HP-Hardware lassen sich dann vom Start weg nutzen und das ist der einzige [uns bekannte] Weg, alle Energiesparfeatures der DL und BL-Serie zu nutzen.

PSOD auf HP DL380G7 mit Smart-Array Volumen

Problem

vSphere 5.5 PSODEin HP ProLiant DL380G7 zeigt nach einem Update/Reboot unter vSphere 5.5 nur noch einen „PinkScreen of Death“. Ein normaler Betrieb ist nicht mehr möglich. Ein Defekt ist aber unwarscheinlich, da die Maschine schon länger im Einsatz ist. Auch eine Neuinstallation bringt keine besserung – vmware vSphere startet und stürzt sofort ab.

Lösung

Der vormals aktuelle SmartArray-Treiber unter vSphere 5.1 und 5.5 hat einen Bug, der im Zusammenhang mit lokalen Datastores den PSOD verursacht. Abhilft hafft die neue Version des Treibers 5.5.0.60-1 (oder höher) von HP. HP ProLiant Smart Array Controller Driver for VMware vSphere 5.5 (VIB file)

Kann bestehenden VMFS-datastore nicht zu ESXi host hinzufügen (nur formatieren, alles andere ist ausgegraut)

Problem

Nach einem Neustart eines Hosts oder (häufiger) eines SAN-Controllers oder Controllerverbundes lassen sich ein oder mehrere bestehende Datastores nicht mehr zur Datenspeicherliste einzener Hosts hinzufügen. Auf anderen Hosts ist das aber möglich; manchmal werden die bestehenden VMFS-Volumes sogar automatisch gefunden. Die Option „Bestehende VMFS Signatur übernehmen“ ist beim hinzufügen aber ausgegraut (deaktiviert), nur „Datenspeicher formatieren“ steht zur Verfügung.

An der Shell des Hosts zeigt ein „esxcfg-volume -l“ das betreffende Volumen zwar an, aber mit dem Status „busy“ oder „in use“.

Lösung

Manuelles mounten erzwingen, dabei die neue ID einfach übernehmen.

vmware-esxcfg -l

Gibt die ID des Datastores aus

vmware-esxcfg -M <id>

Mountet den datastore neu. Das bleibt dann auch permanent so.