VMware Cloning mit vmkfstools

  VMware

Virtuelle Maschinen benötigen Wartung und Updates, oft auch müssen sie früher oder später migriert werden. Das klonen eignet sich dort wo produktive Maschinen ein möglichst reibungslosen Betrieb gewährleisten sollen, und um bei Änderungen keine Risiken eingehen zu müssen. Besteht die Gefahr das bei der Konfiguration oder bei einem Upgrade eines neuen Datenbankmodels etwas schief laufen könnte, oder möchte man einfach eine Kopie des aktuellen Produktivsystem erstellen, dann ist Cloning ein probates Mittel.

Dieser Post beschriebt das Cloning einer VM auf einem VMware ESXi-Host, sowie das übertragen des Klones auf einen zweiten ESXi-Host um diesen dort einzubinden.

1. Als erstes wird die VM heruntergefahren.
2. Den Snapshot Konsolidieren.

 

3. Einschalten des SSH Dienst auf ESXi-Host.
4. Login auf Hosts als root mit PuTTY.
5. Neues Verzeichnis für den Klone anlegen.

mkdir /vmfs/volumes/datastore1/ADCU12

6. VM klonen mit thin provisioning.

vmkfstools -i "/vmfs/volumes/datastore1/CUSDOM12/CUSDOM12.vmdk" -d thin "/vmfs/volumes/datastore1/ADCU12/ADCU12.vmdk"

7. Verzeichnis auf zweitem ESXi-Host anlegen.

mkdir /vmfs/volumes/datastore2/ADCU12

8. vSphere Firewall unter Konfiguration, Sicherheitsprofil, Firewall Eigenschaften, SSH-Client aktivieren.

9. Kopieren der Dateien des Klones auf den remote ESXi-Host.

find "/vmfs/volumes/datastore1/CUSDOM12" -maxdepth 1 -type f -print | grep -v ".vmdk" | while read file; do scp "$file" "root@10.127.0.103:/vmfs/volumes/datastore2/ADCU12"; done

10. Kopieren der geklonten  .vmdk-Dateien auf den remote ESXi-Host.

scp /vmfs/volumes/datastore1/ADCU12/*.vmdk root@10.127.0.103:/vmfs/volumes/datastore2/ADCU12

 

11. Klone in Bestandsliste aufnehmen mit durchsuchen des Datastore zur .vmx Datei.

 

12. Einstellungen der Klone VM bearbeiten, Festplatte entfernen, und vorhandene Festplatte hinzufügen.

 

Die geklonte Virtuelle Maschine kann nun auf dem zweiten ESXi-Host gebootet werden.

Weitere Script Beispiele:

# transfer mit mount NFS
src="/vmfs/volumes/datastore1/virtual_machine" ; dst="/vmfs/volumes/synology/virtual_machine" ; find $src -maxdepth 1 -type f -print | grep -v ".vmdk" | while read file; do cp "$file" "$dst$file"; done


# transfer mit scp
src="/vmfs/volumes/datastore1/virtual_machine" ; dst="/vmfs/volumes/synology/virtual_machine" ; find $src -maxdepth 1 -type f -print | grep -v ".vmdk" | while read f; do scp "$f" 
"root@10.127.0.103:$dst"; done