Ghetto VCB Backup - Backup von VM's auf ESX Ebene
1.) SSH auf dem ESX aktivieren
Dies kann man ganz einfach in dem VCenter des ESX machen
2.) Ghetto VCB auf ESX kopieren/installieren
mkdir /ghettovcb
Files per SCP hin kopieren Die Files bekommt man hier: https://github.com/lamw/ghettoVCB/tarball/master
3.) Editieren der Config
Die Config ist selbsterklärend
Zwei Tips:
- Compression bring nichts
- Für den Mail-Versand muss man die Firewall noch bearbeiten
4.) Firewall Regel auf dem ESX anlegen für den Mail-Versand
Das Firewall-Files MUSS kopiert werden um es zu editieren
cd /etc/vmware/firewall cp service.xml service.xml_rw chmod u+w service.xml_rw vi service.xml_rw
Ganz unten in der Config dies einfügen. Es ist auch recht Selbsterklärend Wichtig ist nur das die “service id” nicht schon vorhanden ist.
<service id="0033">
<id>Mail</id>
<rule id='0000'>
<direction>outbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>25</port>
</rule>
<enabled>true</enabled>
<required>false</required>
</service>
cp service.xml_rw service.xml
chmod a-w service.xml
rm -f service.xml_rw
esxcli network firewall refresh
esxcli network firewall ruleset list
Danach kann man die Regel auch im VCenter sehen nach einem Refresh der Liste im VCenter.
5.) Das Backup selbst
Man kann alle VM's auf dem ESX-Host Backupen oder man nimmt nur spezielle VM's ins Backup auf.
Backup von allen VM's
/ghettovcb/ghettoVCB.sh -g /ghettovcb/ghettoVCB.conf -a
Backup von speziellen VM's
vi /ghettovcb/backup_vm_list.conf
Die VM's die man ins Backup aufnehmen möchte mit dem genauen Namen im VCenter untereinander in das File schreiben und speichern.
/ghettovcb/ghettoVCB.sh -g /ghettovcb/ghettoVCB.conf -f backup_vm_list.conf
6.) Cron-Job einrichten - nicht persistent
Man muss aufpassen ob die Zeit am ESX richtig gesetzt ist. Am bessten man kontrolliert dies mit “date”
cd /var/spool/cron/crontabs cp root root_rw chmod u+w root_rw vi root_rw
Editieren wie eine normaler Crontab
cp root_rw root chmod u-w root rm -f root_rw
Crontab neu starten
< ESXi 3.5u3
kill $(ps | grep crond | cut -f 1 -d ' ')
= ESXi 3.5u3
kill $(pidof crond) crond
ESXi 4.x und 5.x
kill $(cat /var/run/crond.pid) /usr/lib/vmware/busybox/bin/busybox crond
7. Cronjob persistent machen
vi /etc/rc.local.d/local.sh # Write Cron after reboot /bin/echo "0 2 * * * /vmfs/volumes/datastore1/BACKUP/scripts/ghettoVCB.sh -g /vmfs/volumes/datastore1/BACKUP/scripts/ghettoVCB.conf -f /vmfs/volumes/datastore1/BACKUP/scripts/backup_vm_list.conf" >> /var/spool/cron/crontabs/root # Restart Cron after new Cronjob /usr/lib/vmware/busybox/bin/busybox crond
