ESXi 定時備份到 網路上的 NFS , 例如 NAS http://echochio.pixnet.net/blog/post/45219867
先打開 ESXI 伺服器的 SSH Service
ESXi 6.X 要修改 可安裝 非原廠許可的 vib 檔
先 ssh 進去修改
esxcli software acceptance set --level=CommunitySupported
下載 ghettoVCB 套件
https://github.com/lamw/ghettoVCB/raw/master/vghetto-ghettoVCB.vib
上傳到 datastore ...如 /vmfs/volumes/datastore1
ssh 進去 ESXi 安裝 vghetto-ghettoVCB.vib
esxcli software vib install -v /vmfs/volumes/datastore1/vghetto-ghettoVCB.vib -f
裝完後到 /opt/ghettovcb/bin/ 下會有兩個檔案:
ghettoVCB-restore.sh
ghettoVCB.sh
新增一個 ghettoVCB.conf 放到 datastore 如 /vmfs/volumes/NFS/backup
ghettoVCB.conf 說明如下 :
VM_BACKUP_VOLUME=/vmfs/volumes/NFS/backup #備份到本機的另一個儲存區 DISK_BACKUP_FORMAT=thin #建議保留預設值,採用精簡佈建 VM_BACKUP_ROTATION_COUNT=2 #保留幾份 Guest OS 備份檔案 ENABLE_COMPRESSION=0 #備份時是否要壓縮 1啟動 , 0關閉 ENABLE_NON_PERSISTENT_NFS=0 #是否啟用自動掛載及卸載NFS儲存設備機制 UNMOUNT_NFS=0 #執行完就缷載NFS 資料夾 1啟動 , 0關閉 NFS_SERVER=192.168.0.X #儲存設備 IP NFS_MOUNT=/volumes1/NFS #儲存設備(NAS) 分享的資料夾 NFS_VERSION=nfs4 #NFS版本,nfs / nfs4 NFS_LOCAL_NAME=NFS #掛載到 /vmfs/volumes/ 下的名稱 NFS_VM_BACKUP_DIR=bckup #esxi guest os 備份檔放到 backup 裡 SNAPSHOT_TIMEOUT=15 EMAIL_LOG=1 #是否開啟 E-Mail 寄送 LOG。 1啟動 , 0關閉,如要寄送LOG必須再設定打開 SMTP 25PORT 及 FIREWALL EMAIL_SERVER=msr.hinet.net EMAIL_SERVER_PORT=25 EMAIL_DELAY_INTERVAL=1 #是否延遲寄信 EMAIL_TO=example@gmail.com EMAIL_ERRORS_TO=example@gmail.com EMAIL_FROM=esxi@gmail.com
如果我的 ESXi 上的名為 web_12 的 guest 要備份
/opt/ghettovcb/bin/ghettoVCB.sh -g /vmfs/volumes/NFS/backup/ghettoVCB.conf -m web_12
如寫成列表檔
#cat /vmfs/volumes/NFS/backup/vmlist mail_proxy web_12
設定 firewall.sh 讓 smtp 可以寄信
# cat /vmfs/volumes/NFS/backup/firewall.sh cp /vmfs/volumes/NFS/backup/smtp.xml /etc/vmware/firewall/ esxcli network firewall refresh
其中 smtp.xml 內容 : (id 要看 /etc/vmware/firewall/service.xml ...不能重複 我設200 不太會重複)
<ConfigRoot> <service id='0200'> <id>SMTP client</id> <rule id='0000'> <direction>outbound</direction> <protocol>tcp</protocol> <porttype>dst</porttype> <port>25</port> </rule> <enabled>true</enabled> <required>true</required> </service> </ConfigRoot>
執行 /vmfs/volumes/NFS/backup/firewall.sh 後
利用 vSphere Client 確認 SMTP 25 Port 是否已開放:
設定 /vmfs/volumes/NFS/backup/crondtab.sh
之後執行讓排程正常運作
#!/bin/sh /bin/kill $(cat /var/run/crond.pid) echo "30 1 * * 2,4,6 /opt/ghettovcb/bin/ghettoVCB.sh -g /vmfs/volumes/NFS/backup/ghettoVCB.conf -f /vmfs/volumes/NFS/backup/vmlist -l /tmp/vmbackup_$\(date +%F_%H-%M).log > /dev/null" >> /var/spool/cron/crontabs/root /usr/lib/vmware/busybox/bin/busybox crond
執行 /vmfs/volumes/NFS/backup/crondtab.sh 後看 /var/spool/cron/crontabs/root 有沒有 排程
#min hour day mon dow command 1 1 * * * /sbin/tmpwatch.py 1 * * * * /sbin/auto-backup.sh 0 * * * * /usr/lib/vmware/vmksummary/log-heartbeat.py */5 * * * * /sbin/hostd-probe ++group=host/vim/vmvisor/hostd-probe */2 * * * * /usr/lib/vmware/vsan/bin/vsanObserver.sh 30 1 * * 2,4,6 /opt/ghettovcb/bin/ghettoVCB.sh -g /vmfs/volumes/NFS/backup/ghettoVCB.conf -f /vmfs/volumes/NFS/backup/vmlist -l /tmp/vmbackup_$(date +%F_%H-%M).log > /dev/null
將 crondtab.sh 與 firewall.sh 放入 /etc/rc.local.d/local.sh 讓 ESXi 啟動時執行
/vmfs/volumes/NFS/backup/crondtab.sh /vmfs/volumes/NFS/backup/firewall.sh
還原 http://echochio.pixnet.net/blog/post/45219975
留言列表