Mit ghettoVCB gesicherte Images von virtuellen Maschinen auf externe Datenträger am Synology NAS kopieren. Eine Methode zur automatisierten Ausführung wird hier in diesem Post beschrieben.
Externe USB Festplatten wie WD MyPassport oder Tandberg RDX QuikStore Laufwerke mit Wechselplatten, eignen sich um Kopien anzulegen und an weitere Standorte zu deponieren, dies anhand mehrer Wechselplatten die in einer Rotation laufend ausgetauscht werden.
Dazu wird auf dem VMware Hypervisor als erstes die ghettoVCB Konfiguration für die Konvention der Vergabe der Verzeichnis-namen angepasst, anstelle der Ziel Verzeichnisse mit Datumsangabe, wird nun eine laufende Nummerierung erzeugt, hierzu ändert man im Script ghettoVCB.sh etwa bei Zeile 167 den Wert mit „0“:
VM_BACKUP_DIR_NAMING_CONVENTION="0"
Auf dem Synology NAS wird nach Aktivierung des SSH-Terminal Zugang, der Script für das kopieren der Images erstellt. Es sollen alle vmdk und vmx Dateien der letzten Sicherung aller gespeicherten VMs auf das externe Laufwerk kopiert werden. Kopiert wird mit -0 in quellen Angabe, mit -1 würde die vorletzte Sicherung kopiert, siehe Verzeichnisstruktur am ende.
Bemerkung: das Verzeichnis bin wird unter volume1 angelegt, ansonsten der Script unter /usr/bin nach dem nächsten DSM Update nicht mehr vorhanden ist. In diesem Beispiel wird auf dem NAS das Volume wie üblich als volume1 verwendet, und data als Gemeinsamer Ordner, diese durch die tatsächlichen Namen ersetzen. Der Pfad zum externen Laufwerk /volumeUSB1/usbshare kann ebenfalls abweichen.
Der Script muss ausführbar gemacht werden:
chmod u+x /volume1/bin/copy2usb.sh
Nun in der Synology DSM Systemsteuerung zu Aufgabenplaner gehen.
Erstellen einer neuen Geplanten Aufgabe – Benutzerdefiniertes Skript wählen:
Die Aufgabe bearbeiten, bei Vorgang kann ein beliebig passender Name eingetragen werden:
Der gewünschte Zeitplan bearbeiten, es sollte ein Zeitpunkt gewählt werden, dieser nach beenden der ghettoVCB Sicherung gestartet wird:
Die Email zur Benachrichtigung und der Benutzerdefinierte Skript zur Ausführung eintragen:
Die Aufgabe ist nun mit den anderen Aufgaben eingetragen.
Die Verzeichnisstruktur auf dem NAS Speicher als Beispiel einer virtuellen Maschine (vmsrv) in einer Backup Rotation mit 3 Versionen (0-2).
Backup virtueller Maschinen mit ghettoVCB auf VMware vSphere ESXi
ghettoVCB von William Lam (@lamw) ist eine freie alternative zur Sicherung von virtuellen Maschinen. Das Skript „ghettoVCB“ erstellt Snapshots virtueller Maschinen als Backup auf vSphere ESX(i)3.5/4.x/5.x/6.x-Server mithilfe einer Methode ähnlich wie des VMware VCB-Tool.
Es werden Snapshots virtueller Maschinen im laufenden Betrieb gemacht und sichert diese danach auf einem NAS, nach Fertigstellung werden die Snapshots wieder gelöscht bis zur nächsten Sicherung. Der einzige unterschied zu VMware VCB ist, dass der Prozess auf dem ESXi-Host selbst ausgeführt wird, dabei nur wenige Ressourcen benötigt werden. Die Backups werden über die Service-Konsole (Busybox Console) des vSphere ESXi Hypervisor gefahren, im Gegensatz zu der traditionellen Methode, bei dieser für die Backups eine virtuelle Maschine als VCB-Proxy gnutzt wird.
Nach dem download und entpacken, die Dateien mit WinSCP oder aus dem vSphere Client auf den vSphere ESXi-Host in ein Verzeichnis hochladen, hier ist es der Pfad/vmfs/volumes/datastore1/ghettoVCB/
NFS Datenspeicher Freigabe
Als Backup Speicher wird eine Synology RackStation NAS genutzt, dabei könnte es auch eine DiskStation sein, es wird der NFS Datenspeicher gemountet dieser auf dem NAS als NFS Freigabe bereitgestellt wurde.
Der NFS Export des NAS wird aus dem vSphere oder vCenter gemountet, hierzu geht man auf: Konfiguration – Speicher – Speicher hinzufügen.
Der NFS Speicher des NAS wird eingebunden.
Im Feld Server wird die IP Adresse des NAS eingetragen, im Feld Ordner der absolute Pfad der NFS Freigabe, bei der Synology RackStation ist dies in der regel /volume1 gefolgt vom Name der Freigabe. Als Datenspeichername wird der Name des NAS eingetragen, dieser Name muss in der Konfigurationsdatei, ghettoVCB.conf bei VM_BACKUP_VOLUME identisch sein.
Der NFS Speicher wird gemountet.
vSphere Web Client NFS Datenspeicher Freigabe
Ab ESXi 6 wird der vSphere Web Client genutzt, im Navigator geht man zu Speicher und Neuer Datenspeicher.
Der Datenspeicher Assistent wird geöffnet.
NFS-Datenspeicher mounten wählen.
Auf weiter gehen und im letzten Fenster den Assistenten beenden.
Das NAS wird als NFS Datenspeicher gemountet und steht bereit.
Backup Cron Task erstellen
Nun den crontask anhalten mit
# /bin/kill $(cat /var/run/crond.pid)
Eine Datei anlegen mit den VMs die gesichert werden sollen. vi /vmfs/volumes/datastore1/ghettoVCB/vms.cfg
DEBIAN
UBUNTU
FPBX16
und die VM Konfiguration wo die Backup Rotation definiert wird, dies ermöglicht eine unterschiedliche Backup Rotation, wird keine Konfiguration angelegt, gelten die Werte in der ghettoVCB.conf.
cd /vmfs/volumes/datastore1/ghettoVCB/
./ghettoVCB.sh -f vms.cfg -d dryrun
Persistenter Cronjob
cronjob persistent machen, damit nach dem nächsten Reboot wieder alles läuft.
chmod +w /etc/rc.local.d/local.sh
Die Datei rc.local editieren, 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.
# Note: This script will not be run when UEFI secure boot is enabled.
/bin/kill $(cat /var/run/crond.pid)
chmod +w /var/spool/cron/crontabs/root
/bin/echo "01 22 * * * /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/datastore1/ghettoVCB/VM.txt > /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB-backup-vm.log" >> /var/spool/cron/crontabs/root
crond
exit 0
Die Sicherung der konfigurierten VMs wird nun zur definierten Zeit starten, dabei wird nicht die Zeit der Konsole berücksichtigt, sondern die die Zeit die im vSphere Client angezeigt wird.
VMware esxi 5.5 support for ghettovcb.sh Fixed the script by changing
case "${ESX_VERSION}" in
5.0.0|5.1.0) VER=5; break;;
4.0.0|4.1.0) VER=4; break;;
3.5.0|3i) VER=3; break;;
to
case "${ESX_VERSION}" in
5.0.0|5.1.0|5.5.0) VER=5; break;;
4.0.0|4.1.0) VER=4; break;;
3.5.0|3i) VER=3; break;;
in both the backup and restore scripts.
Troubleshooting
Wird ein ERROR protokolliert, liegt es oft daran das vor der ersten Snapshot Sicherung keine Konsolidierung gemacht wurde.
info: ERROR: error in backing up of "/vmfs/volumes/datastore1/guestvm/guestvm.vmdk"
info: ERROR: Unable to backup guestvm due to error in VMDK backup!
info: ###### Final status: ERROR: No VMs backed up! ######
Snapshot Konsolidieren aus dem vSphere oder vCenter, dies vor der ersten ghettoVCB Sicherung ausführen.
TIP!
Zur Wiederherstellung von Dateien oder Verzeichnisse aus virtuellen Festplatten, aus VMDK Snapshots, kann 7-Zip nützlich sein, das vorgehen wird hier beschrieben.
UNBLOG verwendet Cookies, um Dein Online-Erlebnis zu verbessern. Mit "ACCEPT" gibst Du Deine Zustimmung zur Nutzung dieser Website und unseren Datenschutzbestimmungen, oder wähle Cookie settings.
Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern, während Sie durch die Website navigieren. Von diesen werden die Cookies, die nach Bedarf kategorisiert werden, in Ihrem Browser gespeichert, da sie für das Funktionieren der grundlegenden Funktionen der Website wesentlich sind. Wir verwenden auch Cookies von Drittanbietern, mit denen wir analysieren und verstehen können, wie Sie diese Website nutzen. Diese Cookies werden nur mit Ihrer Zustimmung in Ihrem Browser gespeichert. Sie haben auch die Möglichkeit, diese Cookies zu deaktivieren. Das Deaktivieren einiger dieser Cookies kann sich jedoch auf Ihre Browser-Erfahrung auswirken.
Notwendige Cookies sind unbedingt erforderlich, damit die Website ordnungsgemäß funktioniert. Diese Kategorie enthält nur Cookies, die grundlegende Funktionen und Sicherheitsmerkmale der Website gewährleisten. Diese Cookies speichern keine persönlichen Informationen.
Alle Cookies, die für die Funktion der Website möglicherweise nicht besonders erforderlich sind und speziell zur Erfassung personenbezogener Daten des Benutzers über Analysen, Anzeigen und andere eingebettete Inhalte verwendet werden, werden als nicht erforderliche Cookies bezeichnet. Es ist obligatorisch, die Zustimmung des Benutzers einzuholen, bevor diese Cookies auf Ihrer Website ausgeführt werden.