(Automatisiertes) Backup von ESX(i)-Gast-Maschinen
Voraussetzungen:

SSH-Zugriff auf entsprechenden ESX(i)-Host (zuvor über GUI oder per Konfig in /etc/inetd.conf einschalten:  (hier über Konsolenzugriff)
Auf ESX(i) Konsole ALT+F1 betätigen
blind“ das Wort: unsupported eingeben ENTER
root Zugriff auf der Konsole (#)sollte sichtbar sein
Befehl zum Editieren der Konf-Datei: vi /etc/inetd.conf
Eintrag „#“ #ssh …. aus der Zeile entfernen (Tastatur: x: löschen)
ESC-Taste Abspeichern mit „:wq!“
Reboot durchführen oder per ps | grep inetd die ProzessID herausfinden und entsprechend mit:
kill –HUP [PozessID] den Prozess beenden.
ghettoVCB-Script herunterladen
(Download)

Installation:
Nach dem Download des Scripts  muss die Datei mittels WinSCP oder ähnlichen Tools auf den ESX(i)-Host kopiert werden
per SSH auf ESX(i) verbinden (z.B.
PuTTY)

tar entpacken:
tar –zxvf lamw-ghettoVCB-da419ae.tar.gz

Template-Datei, Config datei oder/und direkt das script (.sh)

ghettoVCB-vm_backup_configuration_template  konfigurieren

ghettoVCB-vm_backup_configuration_template:

M_BACKUP_VOLUME=/vmfs/volumes/LUN1/BACKUP
DISK_BACKUP_FORMAT=zeroedthick
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
ADAPTER_FORMAT=buslogig
VM_SNAPSHOT_MEMORY=0
VM_SNAPSHOT_QUIESCE=0
VMDK_FILES_TO_BACKUP=“all“
ENABLE_NON_PERSISTENT_NFS=0
UNMOUNT_NFS=0
NFS_SERVER=10.11.12.13
NFS_MOUNT=/nfsshare
NFS_LOCAL_NAME=nfs_storage_backup
NFS_VM_BACKUP_DIR=mybackups
SNAPSHOT_TIMEOUT=15
EMAIL_LOG=1
EMAIL_DEBUG=0
EMAIL_SERVER=10.11.12.13
EMAIL_SERVER_PORT=25
EMAIL_TO=Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein.
EMAIL_FROM=root@ghettoVCB

E-Mail-Übermittlung funktioniert erst ab Version ESX(i) 4.0 ! (ESXi 3.5 nicht unterstützt)

Datei mit Liste der entsprechenden zu sichernden VM’s erstellen (vcbbackuplist)

Beispielhafter Inhalt der Liste:

 

VMSERVER01
VMSERVER02

 

Eine Liste der laufenden VM’s mit zugehörigen VM Id’s kann man mit folgendem Kommando auf der Konsole abrufen:

vim-cmd smsvc/getallvms

Nutzung des Scripts (BACKUP):

 

./ghettoVCB.sh -f vcbbackuplist -g /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.conf 

 

Script sollte loslaufen und ein Snapshot sollte nun erstellt werden (VSphere Client à Statusfenster); Log-Datei wird mit Datumsstempel im gleichen Ordner erstellt.

Gepl. Task / cronjob erstellen:

Datei /var/spool/cron/crontabs/root öffnen

und folgendes hinzufügen: (für Backup: 1-5 Montag –Freitag / um 23.00 Uhr) 

0 23 * * 1-5 /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/LUN1/scripts/ghettoVCB/vcbbackuplist > /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB-backup-$(date +\%s).log

(alles eine Zeile im Script !!!)

Crond muss nach den Änderungen neu gestartet werden: 

ESXi 3.5u3+: kill $(pidof crond) crond 
ESXi 4.0+:  kill $(cat /var/run/crond.pid) busybox crond 

Diese Einträge sind nach einem Reboot des Servers nicht mehr vorhanden, d.h. man muss diese statisch  ins System integrieren.

dazu die Datei /etc/rc.local  (wird bei jedem Bootvorgang abgearbeitet) editieren:
/bin/kill $(pidof crond) /bin/echo "0 0 * * 1-5 /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.sh -f /vmfs/volume/LUN1/scripts/ghettoVCB/vcbbackuplist > /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.log" >> /var/spool/cron/crontabs/root /bin/busybox crond

Einträge ans Ende der Datei anfügen (ESXI 4.x):
/bin/kill $(cat /var/run/crond.pid) /bin/echo "0 0 * * 1-5 /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/LUN1/scripts/ghettoVCB/vcbbackuplist > /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.log" >> /var/spool/cron/crontabs/root /bin/busybox crond

 rc.local:
#! /bin/ash
export PATH=/sbin:/bin
log() {
   echo "$1"
   logger init "$1"
}
#execute all service registered in /etc/rc.local.d
if [ -d /etc/rc.local.d ]; then
   for filename in `find /etc/rc.local.d/ | sort`
      do
        if [ -f $filename ] && [ -x $filename ]; then
           log "running $filename"
           $filename
        fi
      done
fi

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 0 * * 1-5 /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/LUN1/scripts/ghettoVCB/vcbbackuplist > /vmfs/volumes/LUN1/scripts/ghettoVCB/ghettoVCB.log" >> /var/spool/cron/crontabs/root



/bin/busybox crond

 

auto-backup.sh starten

Zum Testen der Konfiguration und des Scriptes bietet sich ein „Testlauf“ (Testrun ohne Backup-Ausführung) an: Parameter –d dryrun (alle Parameter werden abgearbeitet)

./vcbghetto.sh –f vcbbackuplist –d dryrun

ESX(i) sollte einmal durchgestartet werden.

Recovery:

Entsprechende .vmdk-Datei mit der .vmx-Datei in Datastore zurück kopieren und per Rechtsklick im vSphere-Client (Speicherbrowser) auf die VMX-Datei „Zur Bestandsliste hinzufügen“ wieder ins Inventory des ESX(i) bzw. des vCenter-Servers hinzufügen.


Bestehende Prozesse abfragen und beenden:

nach vorhandenem Prozess suchen:

ps -c | grep ghettoVCB | grep -v grep
185545352 185545352 sh                   /bin/sh -c /vmfs/volumes/datastore1/scripts/ghettoVCB/ghettoVCB.sh -f /vmfs/volumes/datastore1/scripts/ghettoVCB/vcbbackuplist > /vmfs/volumes/datastore1/scripts/ghettoVCB/ghettoVCB.log

Prozess beenden über ID:
kill -9 185545352

Event. Copy-Prozesse anzeigen und gegebenenfalls beenden:
ps -c | grep vmkfstools | grep -v grep
185588539 185588539 vmkfstools           /sbin/vmkfstools -i /vmfs/volumes/<volume_name>/<vm_name>/<vm_name.vmdk> -a lsilogic -d thin /vmfs/volumes/nfsbackup/<vm_name>/<vm_date>/<vm_name>.vmdk

 

© 2024 ziggymania.de Designed S.Wommer
Wir benutzen Cookies

Wir nutzen Cookies auf unserer Website. Einige von ihnen sind essenziell für den Betrieb der Seite, während andere uns helfen, diese Website und die Nutzererfahrung zu verbessern (Tracking Cookies). Sie können selbst entscheiden, ob Sie die Cookies zulassen möchten. Bitte beachten Sie, dass bei einer Ablehnung womöglich nicht mehr alle Funktionalitäten der Seite zur Verfügung stehen.