VMware Consolidated Backup ESXi 虛擬主機 VCB 虛擬化 備份

輕鬆線上備份運作中的VM虛擬主機

2013-02-19
vcbMounter和vcbRestore指令只內建於ESX虛擬化平台,隨著ESX虛擬化平台退場,想要在新的ESXi虛擬化平台內線上備份運作中的虛擬主機,勢必要另尋他法——利用VMware vExpert專家William Lam所撰寫的自動化備份腳本。
快照機制啟用時,會參考原本的虛擬硬碟檔案-flat.vmdk內容,接著建立出與原來虛擬硬碟檔案差異內容的.vmdk和-delta.vmdk檔案。

此機制所產生的虛擬硬碟檔案稱為子磁碟(Child Disks),但若再次執行快照時原本的子磁碟,將會變成另一個子磁碟的參考父磁碟(Parent Disks)。

此外還會建立.vmsd檔案,此檔案內容為記錄VM虛擬主機的快照資訊和主要來源資訊,也就是記錄了每個子磁碟以及快照與快照之間的關聯性。

最後則是.vmsn檔案,這個檔案內容為這些快照檔案內所包含的虛擬記憶體狀態時間,實際情況就如圖4所示。


▲圖4 虛擬主機快照機制運作流程圖。圖片來源:VMware KB1015180—VMware KB Understanding virtual machine snapshots in VMware ESXi and ESX

自動化備份腳本(ghettoVCB.sh)

ghettoVCB.sh線上備份自動化執行腳本,可以運作於ESX(i)3.5/4.x/5.x版本的虛擬化平台上,此備份腳本若運作於ESX虛擬化平台,將是透過Service Console(COS)運作,如果是運作於ESXi虛擬化平台,則透過Tech Support Mode(Busybox Console)來執行備份機制。

ghettoVCB.sh備份腳本並不像早期傳統VMware VCB備份機制是採用VCB Proxy的方式,當備份腳本開始運作時,會先針對VM虛擬主機進行快照的動作保持其虛擬主機狀態,但是此快照檔案在備份作業執行完成之後便會自動刪除。

此備份腳本支援將備份後的檔案儲存至Local Storage、SAN(iSCSI/FC)、NFS、RDM等儲存設備上,並且它的備份流程並不是採用互動式(也就是不需要於備份過程中輸入密碼或手動指定備份裝置等等),因此可以結合系統排程的方式自動化地執行備份作業,並且允許配合備份清單的方式(寫入要備份的VM虛擬主機名稱),以便僅僅備份運作於虛擬化平台上某些重要VM虛擬主機即可,而不必全部備份。同時,也可以為每台VM虛擬主機制定不同的備份策略,例如不同的虛擬主機備份至不同的儲存設備及資料夾內。

以下為ghettoVCB.sh自動化備份腳本的功能特色:

  • 支援線上備份VM虛擬主機(Online Backup)。
  • 支援具有多個VMDK虛擬硬碟檔的VM虛擬主機。
  • 只會備份有效VMDK虛擬硬碟檔的VM虛擬主機。
  • 對於備份關機或開機中無回應的虛擬主機可以選擇放棄嘗試備份時間(Timeout)。
  • 允許備份腳本執行於虛擬主機備份名單中(但並不建議,因為它不是一個好的作法)。
  • 每次只會備份一台VM虛擬主機,並且當前一台VM虛擬主機備份作業完成並且刪除快照檔案後,才會開始進行下一台VM虛擬主機的備份作業。
  • 執行備份作業時對虛擬主機所建立的快照不會備份保留(避免占用不必要的備份空間)。
  • 可指定要保留虛擬主機的備份數量,例如設定保留三次備份,則產生第四份的備份檔案時,會刪除第一次的備份檔案。
  • 虛擬主機備份檔案預設採用Lazy Zeroed Thick硬碟格式,可另外選擇使用2GB SPARSE、Thin、Eager Zeroed Thick等硬碟格式。
    ·支援IDE/SCSI格式的虛擬硬碟。
    ·支援自動掛載及自動卸載NFS儲存設備機制(備份執行前自動掛載,備份完成後自動卸載)。
    ·支援備份後的VMDK檔案儲存在多個儲存資源DataStore內。
    ·支援針對不同的VM虛擬主機採用不同備份策略。
    ·可以指定(Include List)或排除(Exclusion List)特定的VM虛擬主機進行備份作業。
    ·支援將備份過程輸出到日誌檔之中(預設存放於「/tmp」路徑下)。
    ·對於VM虛擬主機關機(Shutdown)/?快照可以調整放棄嘗試時間(Timeout)。
    ·可以設定VM虛擬主機快照記憶體大小預設值。
    ·支援模擬運行(Dry Run)模式以模擬實際備份時所遭遇的情況,例如虛擬主機已經建立快照、VMDK為Independent磁碟以及其他影響備份的原因。
    ·支援除錯(Debug)模式,以便得到更多關於儲存環境及備份過程中相關資訊來協助找到問題。
    ·支援將VM虛擬主機備份至RDM儲存裝置。
    ·支援採用通用設定檔(ghettoVCB.conf)或者自行指定設定檔。
    ·支援一次備份所有在ESX(i)虛擬化平台上運作的VM虛擬主機(僅限單台Host)。
    ·具備鎖定機制,以確保ESX(i)平台上同一時間只會運作一個備份腳本(避免互相干擾)。
    ·備份腳本會記錄執行時的PID(Process ID)。
此備份腳本的撰寫者William Lam仍然持續改善及增加相關功能,若對於此備份腳本有任何問題或建議可以到VMware社群(http://communities.vmware.com/groups/ghettovcb)進行討論,目前此備份腳本實驗中的新功能如下所述:
  • 支援備份檔案壓縮:針對ESXi 3.x平台上超過4GB,以及ESXi 4.x平台上超過8GB的虛擬主機備份進行壓縮,使用時不要將未壓縮以及壓縮的虛擬主機混合在一起進行備份,並且應該確保備份目錄內不包含任何舊版的備份,因為此項功能還在開發實驗階段,在某些狀況下還原時會有問題,因此若啟用此功能記得測試能否順利還原。
  • 支援E-mail備份日誌:支援當備份作業完成後,透過E-mail郵件伺服器發送備份過程日誌檔(Log)至指定的管理者信箱內,必須是ESX(i)4.1平台版本(含)之後才支援此功能,並因採用的寄送郵件工具是nc(netcat),因此可能無法相容所有的郵件伺服器。
  • 支援Rsync同步機制:支援備份作業完成後採用Rsync同步機制,將備份檔案同步至遠方儲存設備內以達到異地備援的目的。
  • 2GB SPARSE硬碟格式:如果虛擬化平台版本是ESXi 5.1,由於效能上的考量,因此預設已經不支援2gbsparse硬碟格式,必須要先從手動載入multiextent module才可以,否則會出現「The system cannot find the file specified」錯誤訊息。
下載自動化備份腳本

在此實作中,直接將線上運作的VM虛擬主機,透過備份腳本直接備份至ESXi虛擬化平台的Local Storage(LocalHDD)中的BackupVMs資料夾。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!