Seite 1 von 1

VMWare 'thick' mit Snapshot konvertieren nach 'thin'. Wie?

Verfasst: 11.12.2009, 16:59
von aculo
Hallo zusammen,

ich habe einen ESXi Server von 3.5 auf 4.0 U1 upgegraded. Die VMware habe ich im vSphere Client mit 'Upgrade Virtual Hardware' auf die 4.0 Version upgegraded (+VMWareTools upgedated). Soweit so gut.

Jetzt mein Problem:
Die Harddisk der VMWare ist noch vom Typ 'thick' und ich möchte die nach 'thin' konvertieren (wg HD Platz sparen) . Wenn eine VMware KEINE Snapshots hat, geht das über die SSH Console auch soweit gut.

Code: Alles auswählen

vmkfstools -i thickdisk.vmdk -d thin thindisk.vmdk
Wie mache ich das aber, wenn die VMWare einen Snapshot hat?

Wenn man das Snapshot delta vmdk mit vmkfstools in thin umwandelt habe ich nachher kein delta file sondern eines was mit dem original Harddisk vmdk file gemergt ist. :(

OK, dachte ich mir, dann lass ich das Snapshot file im alten thick Format und starte meine VMware. Die VMWare startet auch mit dem neuen thin Harddisk file und man kann mit dieser (anscheint) normal arbeiten. Wenn ich jetzt aber versuche einen neuen Snapshot zu machen, dann bekomme ich im vSphere Client die Fehlermeldung 'Detect an invalid snapshot configuration'?!? Ich habe die vmdk, vmsd und vmx Datei(en) schon mit dem vi Editor untersucht, aber ich werde da irgendwie nicht schlau daraus was da nicht richtig ist.

Hat jemand eine Idee wie ich meine 'VMWare im thick Format mit Snapshot' nach 'thin mit Snapshot' wandle? Geht das überhaupt? Ich habe im Netz und hier im Forum nach gesucht, aber leider nichts dazu gefunden.

Gruß Aculo

Verfasst: 12.12.2009, 05:49
von continuum
lad dir mal mit winscp die beiden vmdks runter und poste sie

Verfasst: 14.12.2009, 12:18
von aculo
aha, wieder was dazu gelernt, mit WinSCP kann man Dateien vom ESXi runterladen :-)
So hier die vmdks. Die VMWare hat 1 Snapshot, es wurden aber für 'online Consolidate' anscheind noch ein weiterer Snapshot automatisch angelegt?!?

Die grundlegende virtuelle HD ('C3k Server (Bernd).vmdk'):

Code: Alles auswählen

# Disk DescriptorFile
version=1
CID=78066fd9
parentCID=ffffffff
createType="vmfs"

# Extent description
RW 33607980 VMFS "C3k Server (Bernd)-flat.vmdk"

# The Disk Data Base
#DDB

ddb.toolsVersion = "7302"
ddb.virtualHWVersion = "4"
ddb.uuid = "60 00 C2 98 f7 ee 0b d5-d9 fa bd 6f a0 57 bd b6"
ddb.geometry.cylinders = "2092"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.adapterType = "lsilogic"


Der Snapshot ('C3k Server (Bernd)-000003.vmdk'):

Code: Alles auswählen

# Disk DescriptorFile
version=1
CID=3d94cd16
parentCID=78066fd9
createType="vmfsSparse"
parentFileNameHint="C3k Server (Bernd).vmdk"
# Extent description
RW 33607980 VMFSSPARSE "C3k Server (Bernd)-000002-delta.vmdk"

# The Disk Data Base
#DDB

ddb.toolsVersion = "8194"
ddb.longContentID = "f043d6ee1164c2795992dae43d94cd16"
ddb.encoding = "UTF-8"


Und der 'Consolidate helper' snapshot' ('C3k Server (Bernd)-000002.vmdk':

Code: Alles auswählen

# Disk DescriptorFile
version=1
CID=2062acd0
parentCID=78066fd9
createType="vmfsSparse"
parentFileNameHint="C3k Server (Bernd).vmdk"
# Extent description
RW 33607980 VMFSSPARSE "C3k Server (Bernd)-000003-delta.vmdk"

# The Disk Data Base
#DDB

ddb.virtualHWVersion = "7"
ddb.toolsVersion = "8194"
ddb.encoding = "UTF-8"
ddb.longContentID = "77f9da4f3bc973d642534c972062acd0"


Viele Grüße
Aculo

Verfasst: 14.12.2009, 17:28
von continuum
Komisch - beide snapshots verweisen auf dieselbe basedisk.

Poste mal die vmx und die vmsd

Verfasst: 14.12.2009, 17:43
von aculo
OK,

hier die vmsd Datei:

Code: Alles auswählen

.encoding = "UTF-8"
snapshot.lastUID = "8"
snapshot.numSnapshots = "1"
snapshot.current = "0"
snapshot0.uid = "7"
snapshot0.filename = "C3k Server (Bernd)-Snapshot7.vmsn"
snapshot0.displayName = "before_umdb_test"
snapshot0.description = ""
snapshot0.type = "1"
snapshot0.createTimeHigh = "293491"
snapshot0.createTimeLow = "574800823"
snapshot0.numDisks = "1"
snapshot0.disk0.fileName = "C3k Server (Bernd)-000002.vmdk"
snapshot0.disk0.node = "scsi0:0"

snapshot1.uid = "8"
snapshot1.filename = "C3k Server (Bernd)-Snapshot8.vmsn"
snapshot1.parent = "0"
snapshot1.displayName = "Consolidate Helper- 0"
snapshot1.description = "Helper snapshot for online consolidate."
snapshot1.type = "0"
snapshot1.createTimeHigh = "293491"
snapshot1.createTimeLow = "1012610341"
snapshot1.numDisks = "1"
snapshot1.disk0.fileName = "C3k Server (Bernd)-000003.vmdk"
snapshot1.disk0.node = "scsi0:0"

snapshot2.uid = "7"
snapshot2.filename = "C3k Server (Bernd)-Snapshot7.vmsn"
snapshot2.parent = "3"
snapshot2.displayName = "before_umdb_test_actual"
snapshot2.description = ""
snapshot2.type = "1"
snapshot2.createTimeHigh = "293491"
snapshot2.createTimeLow = "574800823"
snapshot2.numDisks = "1"
snapshot2.disk0.fileName = "C3k Server (Bernd)-000002.vmdk"
snapshot2.disk0.node = "scsi0:0"

snapshot.needConsolidate = "FALSE"

Die Datei 'C3k Server (Bernd)-Snapshot8.vmsn' gibt es nicht?!? Die 'C3k Server (Bernd)-Snapshot7.vmsn' gibt es. Und den Snapshot den man im vSphere Client in der Snapshotverwaltung sieht ist 'before_umdb_test'. Den 'before_umdb_test_actual' habe ich vor einiger Zeit gelöscht.

Hier die VMX Datei:

Code: Alles auswählen

.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "7"
nvram = "Windows 2003 Baseimage.nvram"
deploymentPlatform = "windows"
virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "useGlobal"
powerType.powerOff = "soft"
powerType.powerOn = "default"
powerType.suspend = "hard"
powerType.reset = "soft"

displayName = "C3k Server (Bernd)"
extendedConfigFile = "C3k Server (Bernd).vmxf"

numvcpus = "2"
memsize = "1024"
ide0:0.present = "true"
ide0:0.clientDevice = "TRUE"
ide0:0.deviceType = "cdrom-raw"
ide0:0.startConnected = "FALSE"
ethernet0.present = "true"
ethernet0.wakeOnPcktRcv = "false"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "generated"
svga.vramSize = "16777216"
chipset.onlineStandby = "false"
tools.syncTime = "true"
guestOS = "winnetenterprise"
annotation = "VMWare Machine for Silktest 2008 R2"
uuid.location = "56 4d 30 87 2e 50 27 0c-37 04 3b 8d df ed ea 65"
uuid.bios = "56 4d 9f 8a 81 2c 76 72-95 e9 dc 24 39 4c 08 89"
sched.cpu.min = "1000"
sched.cpu.max = "15054"
sched.cpu.units = "mhz"
sched.cpu.shares = "high"
sched.mem.minsize = "512"
sched.mem.shares = "high"

priority.grabbed = "normal"
priority.ungrabbed = "normal"
autostart = "poweron"
autostop = "softpoweroff"
sched.swap.derivedName = "/vmfs/volumes/4b2126aa-5943be7e-4282-00199931d40c/C3k Server (Bernd)/C3k Server (Bernd)-e02d8619.vswp"
hostCPUID.0 = "0000000a756e65476c65746e49656e69"
guestCPUID.0 = "0000000a756e65476c65746e49656e69"
userCPUID.0 = "0000000a756e65476c65746e49656e69"
hostCPUID.1 = "0001067600040800000ce33dbfebfbff"
guestCPUID.1 = "0001067600010800800822010febbbff"
userCPUID.1 = "0001067600040800000822010febbbff"
hostCPUID.80000001 = "00000000000000000000000120100800"
guestCPUID.80000001 = "00000000000000000000000120100800"
userCPUID.80000001 = "00000000000000000000000120100800"
evcCompatibilityMode = "FALSE"

ethernet0.generatedAddress = "00:0c:29:4c:08:89"
ethernet0.generatedAddressOffset = "0"


cleanShutdown = "FALSE"
replay.supported = "FALSE"
vmotion.checkpointFBSize = "16777216"
ide0:0.fileName = "/usr/lib/vmware/isoimages/windows.iso"

mks.enable3d = "TRUE"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge5.present = "TRUE"
pciBridge6.present = "TRUE"
pciBridge7.present = "TRUE"
vmci0.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.pciSlotNumber = "21"
pciBridge4.functions = "8"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.pciSlotNumber = "22"
pciBridge5.functions = "8"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.pciSlotNumber = "23"
pciBridge6.functions = "8"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.pciSlotNumber = "24"
pciBridge7.functions = "8"

pciBridge0.pciSlotNumber = "17"
ethernet0.pciSlotNumber = "32"
vmci0.pciSlotNumber = "33"
vmci0.id = "961284233"

checkpoint.vmState.readOnly = "FALSE"
checkpoint.vmState = ""

scsi0.present = "TRUE"
scsi0:0.present = "TRUE"

scsi0.sharedBus = "none"
scsi0.virtualDev = "lsilogic"
scsi0:0.fileName = "C3k Server (Bernd)-000003.vmdk"
scsi0:0.deviceType = "scsi-hardDisk"

scsi0:0.redo = ""
scsi0.pciSlotNumber = "16"

floppy0.present = "FALSE"

Verfasst: 14.12.2009, 18:14
von continuum
kein Wunder das du diese Meldung bekommst 'Detect an invalid snapshot configuration'

benenn die vmsd -file um nach *.vmsd-org.
Dann probier mal erneut einen snapshot anzulegen

Verfasst: 15.12.2009, 15:04
von aculo
Das Löschen von der vmsd hat leider nichts gebracht. Aber ich bin doch zum Erfolg gekommen.

Zusammenfassung:
- Ich habe die VMware erst nochmal frisch aus dem Backup auf den ESXI 4.0 U1 kopiert.(Backup habe ich VOR dem Update von 3.5 -> 4.0 U1 gemacht)
- VMware Tools upgedated
- Im vSphere Client mit 'Upgrade Virtual Hardware' auf die 4.0 Version upgegraded
- danach habe ich einfach nochmal die grundlegende virtuelle HD nach thin konvertiert

Code: Alles auswählen

vmkfstools -i thickdisk.vmdk -d thin thindisk.vmdk

- In der'Snapshot-vmdk und in der vmsd habe ich dann die neue thin-vmdk eingetragen
Danach hat das mit dem Snapshot erstellen und Restore von einem Snapshot funktioniert. VMware ist also mit Snapshot und thin disk funktionstüchtig :-)

Komischerweie hatte er diesmal keinen Consolidate helper' snapshot angelegt...
Eigentlich habe ich vorher auch nichts Anderes gemacht, aber ich muß da irgendwo einen Fehler gemacht haben....


Dank Dir trotzdem :grin: