Quellen / Projektseite
Projektseite: http://communities.vmware.com/groups/ghettovcb
GitHub: https://github.com/lamw/ghettoVCB
Installation / Konfiguration
Ich kopiere die notwendigen Dateien mittels dem vSphere Client auf einen Datastore.
Das hat den Vorteil, daß ich die „Sicherungs-Job-Dateien“ mittels dem vShere Client runter-/raufladen kann, und somit ssh wieder deaktivieren kann.
Bei mir sieht der Inhalt dann so aus:
Anpassen der ghettoVCB.conf (hier Beispielhaft meine Konfiguration)
VM_BACKUP_VOLUME=/vmfs/volumes/nas01esx
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=3
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=3
POWER_DOWN_TIMEOUT=5
ENABLE_COMPRESSION=0
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
ALLOW_VMS_WITH_SNAPSHOTS_TO_BE_BACKEDUP=0
ENABLE_NON_PERSISTENT_NFS=1
UNMOUNT_NFS=1
NFS_SERVER=10.31.1.111
NFS_VERSION=nfs
NFS_MOUNT=/lv1/esx
NFS_LOCAL_NAME=nas01esx
NFS_VM_BACKUP_DIR=esx01
SNAPSHOT_TIMEOUT=15
EMAIL_LOG=1
EMAIL_SERVER=smtp.mhdom.eval
EMAIL_SERVER_PORT=25
EMAIL_DELAY_INTERVAL=1
EMAIL_TO=mh@mhdom.eval
EMAIL_FROM=esx01@mhdom.eval
WORKDIR_DEBUG=0
VM_SHUTDOWN_ORDER=
VM_STARTUP_ORDER=
backup.sh
Die Datei backup.sh ist die Startdatei für die Backups. Dieses Script ermittelt den aktuellen Wochentag und verwendet diesen als Job-Datei für gettoVCB.
Zudem wird in diesem Script geprüft, ob in der Firewall bereits eine Ausnahme für ausgehende Emails vorhanden ist.
Falls nicht, wird dies der Firewall hinzugefügt.
mail.xml
Konfigurationsdatei für die Firewall
monday,tuesday,wednesday,…
Eine Textdatei, in der die zu sichernden Virtuellen Maschinen eingetragen werden.
vm01-windows7
vm02-windows8
Einrichten des cron-jobs
Einträge in /var/spool/cron/crontabs/root sind nach jedem Neustart des ESX-Servers wieder weg.
Aus diesem Grund nutze ich die /etc/rc.local.d/local.sh um die Einträge nach jedem Neustart hinzuzufügen.
Vielleicht nicht gerade der schönste Weg, aber es funktioniert.
vi /etc/rc.local.d/local.sh
#!/bin/sh
# local configuration options
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
/bin/kill $(cat /var/run/crond.pid)
/bin/echo "45 23 * * * /vmfs/volumes/ESX01-OS/ghettoVCB/backup.sh > /dev/null" >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond
exit 0
Restore
Die Wiederherstellung ist genauso wichtig wie das eigentliche Backup. Daher empfehle ich jedem, das auf seinem System auch mal zu testen.
Eine Wiederherstellung mittels dem VMware Converter Standalone ist nicht möglich. Es muss zwingend das enthaltene Script ghettoVCB-restore.sh verwendet werden.
Hier die Schritte für eine erfolgreiche Wiederherstellung
1.) Sicherungslaufwerk verbinden
Im Gegensatz zum Backup muss das Laufwerk hier manuell verbunden werden. Am einfachsten geht das über den vSphere Client
Anmerkung: Nach erfolgreichem Wiederherstellen nicht vergessen, daß Sicherungslaufwerk auch wieder zu entfernen
2.) Script ‚restore-example‘ anpassen / umbenennen
#";;;"
# DISK_FORMATS
# 1 = zeroedthick
# 2 = 2gbsparse
# 3 = thin
# 4 = eagerzeroedthick
# e.g.
"/vmfs/volumes/nas01/esx01/win7test1/win7test1-2015-12-04_12-32-49;/vmfs/volumes/ESX01-DATA;1;win7test1"
3.) Wiederherstellung starten und warten
[root@esx01:/vmfs/volumes/565eebd5-f8ab1bfd-2a12-001e674f4c4a/ghettoVCB] ./ghettoVCB-restore.sh -c restore
################## Restoring VM: win7test1 #####################
Start time: Fri Dec 4 16:12:15 UTC 2015
Restoring VM from: "/vmfs/volumes/nas01/esx01/win7test1/win7test1-2015-12-04_12-32-49"
Restoring VM to Datastore: "/vmfs/volumes/ESX01-DATA" using Disk Format: "zeroedthick"
Creating VM directory: "/vmfs/volumes/ESX01-DATA/win7test1" ...
Copying "win7test1.vmx" file ...
Restoring VM's VMDK(s) ...
Updating VMDK entry in "win7test1.vmx" file ...
Option --adaptertype is deprecated and hence will be ignored
Destination disk format: VMFS zeroedthick
Cloning disk '/vmfs/volumes/nas01/esx01/win7test1/win7test1-2015-12-04_12-32-49/win7test1.vmdk'...
Clone: 100% done.
Registering win7test1 ...
2
End time: Fri Dec 4 16:38:49 UTC 2015
################## Completed restore for win7test1! #####################
Start time: Fri Dec 4 16:12:14 UTC 2015
End time: Fri Dec 4 16:38:49 UTC 2015
Duration : 26.58 Minutes
---------------------------------------------------------------------------------------------------------------