This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| backup_vmware [2015/05/05 16:58] – herwarth | backup_vmware [2015/05/05 17:44] (current) – herwarth | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Download latest files from github: | Download latest files from github: | ||
| [[https:// | [[https:// | ||
| - | Put the files on a datastore. I use datastore backup (/ | + | Put the files on a datastore. I use datastore backup (/ |
| - | =====Configure ghettoVCB===== | + | |
| I have put the original scripts in / | I have put the original scripts in / | ||
| + | |||
| + | From download machine: | ||
| + | scp ghettoVCB-master.zip root@supermicro1.mngt.bh.helux.nl:/ | ||
| + | From hypervisor: | ||
| + | cd / | ||
| + | unzip ghettoVCB-master.zip | ||
| + | mv ghettoVCB-master bin | ||
| + | mkdir log | ||
| + | mkdir data | ||
| + | mkdir conf | ||
| <code - / | <code - / | ||
| Line 26: | Line 35: | ||
| exit 0 | exit 0 | ||
| + | </ | ||
| + | |||
| + | =====Configure ghettoVCB===== | ||
| + | I use different configs for each datacenter. I have hypervisors in 3 datacenters. | ||
| + | |||
| + | <code - / | ||
| + | VM_BACKUP_VOLUME=/ | ||
| + | DISK_BACKUP_FORMAT=thin | ||
| + | VM_BACKUP_ROTATION_COUNT=1 | ||
| + | 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=1 | ||
| + | ENABLE_NON_PERSISTENT_NFS=0 | ||
| + | UNMOUNT_NFS=0 | ||
| + | NFS_SERVER=172.30.0.195 | ||
| + | NFS_VERSION=nfs | ||
| + | NFS_MOUNT=/ | ||
| + | NFS_LOCAL_NAME=nfs_storage_backup | ||
| + | NFS_VM_BACKUP_DIR=mybackups | ||
| + | SNAPSHOT_TIMEOUT=15 | ||
| + | EMAIL_LOG=0 | ||
| + | EMAIL_SERVER=auroa.primp-industries.com | ||
| + | EMAIL_SERVER_PORT=25 | ||
| + | EMAIL_DELAY_INTERVAL=1 | ||
| + | EMAIL_TO=auroa@primp-industries.com | ||
| + | EMAIL_FROM=root@ghettoVCB | ||
| + | WORKDIR_DEBUG=0 | ||
| + | VM_SHUTDOWN_ORDER= | ||
| + | VM_STARTUP_ORDER= | ||
| + | </ | ||
| + | <code - / | ||
| + | VM_BACKUP_VOLUME=/ | ||
| + | DISK_BACKUP_FORMAT=thin | ||
| + | VM_BACKUP_ROTATION_COUNT=1 | ||
| + | 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=1 | ||
| + | ENABLE_NON_PERSISTENT_NFS=0 | ||
| + | UNMOUNT_NFS=0 | ||
| + | NFS_SERVER=172.30.0.195 | ||
| + | NFS_VERSION=nfs | ||
| + | NFS_MOUNT=/ | ||
| + | NFS_LOCAL_NAME=nfs_storage_backup | ||
| + | NFS_VM_BACKUP_DIR=mybackups | ||
| + | SNAPSHOT_TIMEOUT=15 | ||
| + | EMAIL_LOG=0 | ||
| + | EMAIL_SERVER=auroa.primp-industries.com | ||
| + | EMAIL_SERVER_PORT=25 | ||
| + | EMAIL_DELAY_INTERVAL=1 | ||
| + | EMAIL_TO=auroa@primp-industries.com | ||
| + | EMAIL_FROM=root@ghettoVCB | ||
| + | WORKDIR_DEBUG=0 | ||
| + | VM_SHUTDOWN_ORDER= | ||
| + | VM_STARTUP_ORDER= | ||
| + | </ | ||
| + | <code - / | ||
| + | VM_BACKUP_VOLUME=/ | ||
| + | DISK_BACKUP_FORMAT=thin | ||
| + | VM_BACKUP_ROTATION_COUNT=1 | ||
| + | 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=1 | ||
| + | ENABLE_NON_PERSISTENT_NFS=0 | ||
| + | UNMOUNT_NFS=0 | ||
| + | NFS_SERVER=172.30.0.195 | ||
| + | NFS_VERSION=nfs | ||
| + | NFS_MOUNT=/ | ||
| + | NFS_LOCAL_NAME=nfs_storage_backup | ||
| + | NFS_VM_BACKUP_DIR=mybackups | ||
| + | SNAPSHOT_TIMEOUT=15 | ||
| + | EMAIL_LOG=0 | ||
| + | EMAIL_SERVER=auroa.primp-industries.com | ||
| + | EMAIL_SERVER_PORT=25 | ||
| + | EMAIL_DELAY_INTERVAL=1 | ||
| + | EMAIL_TO=auroa@primp-industries.com | ||
| + | EMAIL_FROM=root@ghettoVCB | ||
| + | WORKDIR_DEBUG=0 | ||
| + | VM_SHUTDOWN_ORDER= | ||
| + | VM_STARTUP_ORDER= | ||
| </ | </ | ||
| Line 41: | Line 144: | ||
| crond | crond | ||
| exit 0 | exit 0 | ||
| + | </ | ||
| + | |||
| + | after that run it for 1 time only! | ||
| + | |||
| + | / | ||
| + | |||
| + | make it persistent | ||
| + | |||
| + | / | ||
| + | |||
| + | =====Use Bacula to backup the NFS share===== | ||
| + | We only backup vms backupped with status OK. So I use a script before I run the Bacula job. | ||
| + | This script is the same NFS share on Linux as a datastore on the hypervisor. In this situation the NFS share is mounted on / | ||
| + | |||
| + | <code - run-before-bacula.sh> | ||
| + | #!/bin/bash | ||
| + | BACKUPDIR=/ | ||
| + | STATUSOK=STATUS.ok | ||
| + | STATUSWARN=STATUS.warn | ||
| + | TEMPDIR=$BACKUPDIR/ | ||
| + | |||
| + | case $1 in | ||
| + | bh) DATADIR=$BACKUPDIR/ | ||
| + | rtd) DATADIR=$BACKUPDIR/ | ||
| + | ams) DATADIR=$BACKUPDIR/ | ||
| + | *) echo "usage $0 < | ||
| + | exit 1 ;; | ||
| + | esac | ||
| + | |||
| + | rm -rf $TEMPDIR/* | ||
| + | |||
| + | for fulldir in $(find $DATADIR -name $STATUSOK -exec dirname {} \; -o -name $STATUSWARN -exec dirname {} \; ); do | ||
| + | DIR=$(basename $fulldir) | ||
| + | VMNAME=$(echo $fulldir | sed " | ||
| + | if [ ! -d $TEMPDIR/ | ||
| + | mkdir $TEMPDIR/ | ||
| + | fi | ||
| + | mv $fulldir $TEMPDIR/ | ||
| + | done | ||
| + | |||
| + | rm -rf $DATADIR/* | ||
| + | mv $TEMPDIR/* $DATADIR | ||
| </ | </ | ||