Problem
Einige virtuelle Maschinen lassen sich nicht via Storage Motion oder Storage vMotion auf einen neuen VVOL-Datastore verschieben. Mit andere klappt das fehlerfrei, auch zwischen klassischen Datastores gibt es kein Problem.
Ist die VM eingeschaltet gibt es im Aktivitätsprotokoll die Fehlermeldung
Fehlgeschlagen beim Warten auf Daten. Fehler 195887107. Not found.
Oder auf English:
A fatal internal error occurred. See the virtual machine’s log for more details.
Ist die VM ausgeschaltet sieht das so aus:
Ein allgemeiner Systemfehler ist aufgetreten: Launch failure
Im /var/log/vmkernel.log stehtm ebenso wenig hilfreich:
OSFS_Lookup:2579: Lookup error: file = rfc4122.b4401030-3010-43a9-8d68-5a76251e5e62, status = Failure
Mirror: scsi0:1: SVMotionLocalDiskCreate: Failed to create destination disk
Spannender ist da schon die Fehlersuche im Protokoll der Maschine, in /vmfs/volumes/<DATASTORE>/<VMNAME>/vmware.log
OBJLIB-VVOLOBJ : VVolObjCheckSize: Requested size (######) is not an MB multiple.
VVolObjDetermineSizeInMB: Requested size (#####) is not a MB multiple.
Mirror: scsi0:1: SVMotionLocalDiskCreate: Failed to create destination disk: The requested size is not a multiple of 1MB.
Lösung
Das Log hat recht: aus irgendeinem Grund hat die virtuelle Maschine eine Festplatte, deren Größe kein ganzzahliges vielfaches von einem Mebibyte ist (1MB).
- Bearbeiten der virtuellen Maschine
- Vergrößern der Festplatte auf ein ganzzahliges vielfaches
- Übernehmen
Fertig, die Maschine kann nun verschoben werden. Man kann der vollständigkeit halber natürlich auch noch das Dateisystem innerhalb der VM vergrößern, aber für den Storage(v)Motion-vorgang ist das nicht notwendig.
Man kann mit PowerCLI auch auf die schnelle herausfinden, welche Maschinen alle betroffen sind:
PC C:\> Get-Datastore | Get-HardDisk | Select Parent, Filename, @{N="Remainder";E={$_.CapacityKB % 1024}} | Where {$_.Remainder -ne 0}
Vielen Dank an den Benutzer in der ehemaligen Nimble-Community, der das herausfand und dokumentierte. Bevor HPE das ganze Forum löschte *seufz*