CAcert Zertifizierungsstelle

CAcert.org ist eine von einer Gemeinschaft betriebene Zertifizierungsstelle, die kostenfreie Zertifikate für jedermann ausstellt.cacert

Ziel von CAcert ist es, das Bewusstsein und die Unterrichtung über Computersicherheit durch die Benutzung von Verschlüsselung zu fördern, insbesondere durch die Herausgabe von Zertifikaten zur Verschlüsselung. Diese Zertifikate können benutzt werden, um E-Mails digital zu unterschreiben und zu verschlüsseln, einen Anwender beim Zugang zu Webseiten zu beglaubigen und zu berechtigen und eine gesicherte Datenübertragung über das Internet zu ermöglichen. Jede Anwendung, die das gesicherte Übertragungsprotokoll mit SSL oder TLS unterstützt, kann von Zertifikaten Gebrauch machen, die von CAcert signiert wurden, ebenso jede Anwendung, die X.509-Zertifikate benutzt, z.B. für Verschlüsselung oder Signierung von Code oder Dokumenten.

Kostenfreie Zertifikate ausstellen cacert.org

Backup virtueller Maschinen mit ghettoVCB auf vSphere

Backup virtueller Maschinen mit ghettoVCB auf VMware vSphere ESXi

Backup virtueller Maschinen mit ghettoVCB auf vSphere

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.

Installation

Download ghettoVCB

Die ESXi-Shell und TSM-SSH muss aktiviert werden, dies geschieht über die ESXi direkt Console oder aus dem vSphere Client.

Die ESXi-Shell und TSM-SSH muss aktiviert werden
mit WinSCPzu vSphere verbinden

ghettoVCB Bereitstellung

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/

ghettoVCB-ESXi-WinSCP

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.

NFS Berechtigungen
DSM NFS Berechtigungen

Der NFS Export des NAS wird aus dem vSphere oder vCenter gemountet, hierzu geht man auf: Konfiguration – Speicher – Speicher hinzufügen.

Backup virtueller Maschinen mit ghettoVCB auf vSphere

Der NFS Speicher des NAS wird eingebunden.

Backup virtueller Maschinen mit ghettoVCB auf vSphere, 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.

Backup virtueller Maschinen mit ghettoVCB auf vSphere
vSphere NFS Datenspeicher

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.

Backup virtueller Maschinen mit ghettoVCB auf vSphere, datastore

Der Datenspeicher Assistent wird geöffnet.

Backup virtueller Maschinen mit ghettoVCB auf vSphere

NFS-Datenspeicher mounten wählen.

vsphere NFS mount

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.

vi /vmfs/volumes/datastore1/ghettoVCB/DEBIAN

VM_BACKUP_VOLUME=/vmfs/volumes/NAS
DISK_BACKUP_FORMAT=thin
VM_BACKUP_ROTATION_COUNT=5
POWER_VM_DOWN_BEFORE_BACKUP=0
ENABLE_HARD_POWER_OFF=0
ITER_TO_WAIT_SHUTDOWN=4
POWER_DOWN_TIMEOUT=5
SNAPSHOT_TIMEOUT=15
ENABLE_COMPRESSION=0
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
VMDK_FILES_TO_BACKUP="all"

crontab beschreibbar machen und Backup um 22:01 Täglich ausführen.

chmod +w /var/spool/cron/crontabs/root

vi /var/spool/cron/crontabs/root

/bin/echo "01   22   *   *   *   /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/datastore1/ghettoVCB/vms.cfg > /vmfs/volumes/datastore1/ghettoVCB/ghettoVCB-backup-$(date +\%s).log" >> /var/spool/cron/crontabs/root

crontab wieder starten

crond

bei ESXi5.0

/bin/busybox crond

Testen ob das Script tut was es soll.

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.

vSphere Snapshot Konsolidieren
Snapshot Konsolidieren

TIP!

7zip

Zur Wiederherstellung von Dateien oder Verzeichnisse aus virtuellen Festplatten, aus VMDK Snapshots, kann 7-Zip nützlich sein, das vorgehen wird hier beschrieben.