現在位置: 首頁 > VMware > 正文

ESXi 5.1 / 5.5 定期排程備份線上VM;NFS、sendmail-ghettoVCB

好的,本篇的實作花了小弟一些時間去執行,因為多數的網路文章都不正確或是少東少西的,讓小弟真的很頭疼。

 

ghettoVCB 是由一位 William 所寫的 script,在他的站台有許多 VMware 的 script 應用,非常厲害

 

 

在一開始先說明一下本篇使用 ghettoVCB 的應用功能

 

1. 定期排程備份指定的虛擬機

2. 必須要可以 mount NFS (Host 本身硬碟不夠用的時候 NFS 非常好用,又可以解決 I/O 效能)

3. 執行完成必須通知系統管理員

 

 

 

setp.1 下載 ghettoVCB zip 檔案,版本已支援最新 ESXi 5.5

2014-08-27_232432

 

 

 

※以下請使用 SSH 遠端登入操作。請參考 開啟 SSH service

 

 

setp.2 把 ghettoVCB.zip 丟到 ESXi Host 解壓縮到以下路徑

※僅有在 datastore1 下的資料在重開 ESXi 後不會被清除資料。

 

 

 

setp.3 調整 ghettoVCB.sh,此步驟為自行斟酌,因小弟的習慣所以有修正 script。

 

更改 log 路徑

搜尋 LOG_OUT 找到以下

2014-08-28_002941

並修改成

 

 

拿掉 NFS_VM_BACKUP_DIR 設定

因不希望掛載 NFS 後又多一層目錄,所以拿掉所有 NFS_VM_BACKUP_DIR 變數

 

 

setp.4 設定 ghettoVCB.conf 檔,僅需將要設定的部分拉出來即可,其他在 ghettoVCB.sh 內已有預設值。

其餘設定大多用不到,若有需要了解可參考 ghettoVCB Documentation

 

 

 

setp.5 建立要備份的 VM 清單 (如果要全備份可以用 ghettoVCB.sh -a 參數略過此步驟)

 

※在此步驟後已可以測試是否可以正常備份 vm

 

 

setp.6 此步驟以下開始要建立排程 / 開機 script ,因為 ESXi 再重新啟動後會清除多數的設定檔,包括 root(crontab)、rc.local、service …

 

設定排程 以及 建立 crondtab.sh

讓 ESXi 按照排程時間執行備份,在 ESXi 執行 crond 的是 /var/spool/cron/crontabs/root 這隻檔案

 

 

 

設定防火牆開放 25 port outbound 以及 建立 firewall.sh

 

 

將 crondtab.sh 和 firewall.sh 加入開機設定檔 /etc/rc.local.d/local.sh

 

 

最後重開機後確認 crondtab.sh / firewall.sh 是否有正確執行,排程備份也如期執行。

 

 

 

 

※請注意是local.sh 而不是 rc.local,rc.local 在重開機之後依然會清除。

※ root、local.sh 若是直接編輯他都會沒有權限,即使你是 root,必須將檔案 cp 出來再改權限為 755 後再覆蓋回原設定檔。

 

 

 

 

 

 

 

 

 

 

 

ghettoVCB.sh

Usage: ./ghettoVCB.sh -f [VM_BACKUP_UP_LIST] -c [VM_CONFIG_DIR] -l [LOG_FILE] -d [DEBUG_LEVEL] -g [GLOBAL_CONF] -e [VM_EXCLUSION_LIST]

OPTIONS:
-a    Backup all VMs on host (備份主機上所有的虛擬機)

-f    List of VMs to backup  (針對List名單內的虛擬機備份)

-c    VM configuration directory for VM backups  (VM 配置目錄for VM備份)

-g    Path to global ghettoVCB configuration file (引用 conf 設定檔)

-l    File to output logging (將LOG記錄寫到指定檔案內)

-d    Debug level [info|debug|dryrun] (default: info) (Debug測試,不會產生備份)

 

 

 

 

ghettoVCB 執行 debug:

Q1: Snapshot found for 「host」, backup will not take place

Ans: 最常發生在頻繁測試備份的過程中發生,若是執行到一半中斷了 snapshot 就會 lock 無法刪除,下次要進行備份時就會出現此錯誤,請手動刪除 snapshot。

 

Q2: 執行 ghettoVCB 在 mount NFS 時出現錯誤

Ans:

狀況1, NFS 已經 mount,unmount 後再執行就可以。

狀況2, 沒有 mount NFS 也出現此錯誤,此為頻繁 mount / unmount 系統錯亂,執行 vSphere client > configuration > storage > Refresh。

 

 

 

參考資料:

William blog

ghettoVCB Documentation

文章連結: https://shazi.info/esxi-5-1-5-5-%e5%ae%9a%e6%9c%9f%e6%8e%92%e7%a8%8b%e5%82%99%e4%bb%bd%e7%b7%9a%e4%b8%8avm%ef%bc%9bnfs%e3%80%81sendmail%ef%bc%8dghettovcb/ | Mr. 沙先生

該文章由 shazi7804 於2014年08月28日發表在 VMware 分類下, 你可以發表回文,並在保留原文地址及作者的情况下引用到你的網站或部落格。
原文轉載請註明: ESXi 5.1 / 5.5 定期排程備份線上VM;NFS、sendmail-ghettoVCB | Mr. 沙先生
標籤: , , , ,

ESXi 5.1 / 5.5 定期排程備份線上VM;NFS、sendmail-ghettoVCB:目前有2 條留言

  1. 沙發
    hansen:

    你好,
    這篇文章讓我學習了很多,感謝你分享!
    但有點疑問的是文章最後:
    將 crondtab.sh 和 firewall.sh 加入開機設定檔 /etc/rc.local.d/local.sh
    #backup crond
    cp /vmfs/volumes/datastore1/BackupScript/crond/root /var/spool/cron/crontabs/

    #firewall SMTP
    cp /vmfs/volumes/datastore1/BackupScript/crond/smtp.xml /etc/vmware/firewall/

    我只看到將兩個 root、smtp.xml 複製到目的資料夾,沒看到將兩支 crondtab.sh,firewall.sh shell 寫入 /etc/rc.local.d/local.sh
    想請問兩支 shell 要寫在哪???
    或是要寫成:
    #backup crond
    /vmfs/volumes/datastore1/crondtab.sh
    #Open firewall SMTP
    /vmfs/volumes/datastore1/firewall.sh

    因為我的 ESXI 是上線服務了無法隨便重啟,只能先向您請教了。
    感謝您!!!

    2016-12-16 10:52:51 [回文]
    • shazi7804:

      hi hansen

      小經驗分享,很高興能幫助到你。

      2016-12-16 11:04:49 [回文]

發表回文