vSphere VMware ESXi 虛擬主機 ESX 虛擬化 VM 備份

設定排程自動備份 無痛快速還原VM虛擬主機

2013-03-29
接續上一期的文章,本文將說明如何設定ESXi虛擬化平台的排程功能,在指定的離峰時間內自動執行ghettoVCB.sh備份腳本,以達成全自動化的VM虛擬主機備份作業。
請修改還原腳本ghettoVCB-restore.sh中第87行處,加上ESXi 5.1版本的判斷機制「|| [[ "${ESX_VERSION}" == "5.1.0" ]]」內容,如圖9所示。


▲圖9 為自動化備份腳本ghettoVCB-restore.sh加上ESXi 5.1版本的判斷機制。

此外,由於最新版本的VMware vSphere ESXi 5.1虛擬化平台已經將內建指令「/bin/whoami」移除掉,但自動化還原腳本ghettoVCB-restore.sh內容中基於安全性考量內含判斷執行者身分的驗證機制,因此這個部分也要修改,才能夠順利地執行還原作業,否則會出現「ERROR: This script needs to be executed by "root"!」錯誤訊息。

請修改還原腳本ghettoVCB-restore.sh中第389行處,加上身分判斷機制,將原本的「'whoami'」置換成「'who | awk '{print $1}''」,如圖10所示。


▲圖10 為自動化備份腳本ghettoVCB-restore.sh加上身分判斷機制。

接著,便可以使用還原腳本執行檔「ghettoVCB-restore.sh」配合還原設定檔進行備份作業,下列為搭配還原腳本執行檔使用的參數說明:

  • -c:指定還原設定檔,還原設定檔中所有條列的VM虛擬主機。
  • -l :指定日誌檔,手動指定備份日誌檔建立路徑。
  • -d:除錯和模擬運行模式,可配合dryrun和debug兩個參數值來使用。
了解還原腳本執行檔搭配參數後,便可以執行還原作業。先切換至存放還原腳本執行檔及還原設定檔的路徑「/vmfs/volumes/LocalHDD/BackupVMs」,然後配合參數「-c」讀取自訂的備份設定檔「myrestore.conf」,如圖11所示為備份作業執行過程。


▲圖11 執行VM虛擬主機還原作業。

完成還原作業之後,還原腳本還會自動註冊該台VM虛擬主機(Register Virtual Machine)至ESXi虛擬化平台的Inventory當中。

當嘗試將該VM虛擬主機進行開機(Power On)時,會發現運作程序進度卡在「95%」不動,而開啟虛擬主機Console畫面時會看虛擬主機訊息視窗,要求選擇「Cancel」、「I moved it」、「I copied it」三個項目其中一個,才能繼續開機程序,如圖12所示。這三個項目之間到底有什麼差異呢?


▲圖12 嘗試Power On虛擬主機時進度卡在95%不動。

在談這個問題以前,必須先了解什麼是UUID(Universally Unique IDentifier),它是每台VM虛擬主機都會有的一個唯一128bit Integer,並且儲存在VM虛擬主機設定檔.vmx當中的uuid.bios及uuid.location欄位內。

如果選擇「I moved it」項目來啟動VM虛擬主機,其uuid.bios欄位內的UUID值不會改變,但是uuid.location欄位中的UUID值會改變。若是選擇「I copied it」項目來啟動VM虛擬主機,則uuid.bios與uuid.location欄位內的UUID值都會改變。

簡單來說,如果希望還原後的VM虛擬主機保持「原來的MAC Address」,請選擇「I moved it」項目來啟動VM虛擬主機。

若選擇「I copied it」項目,則還原後的VM虛擬主機的MAC Address將會改變,此舉可能會造成VM虛擬主機雖然成功啟動,但因為網路政策的關係而導致無法順利服務(詳細資訊可參考「http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1541」網頁的說明)。

決定好是否更改VM虛擬主機的UUID選項後,便可以順利啟動VM虛擬主機,並且繼續原本的線上服務,如圖13所示。


▲圖13 VM虛擬主機復原完成並且繼續原本的線上服務。

手動還原虛擬主機

如果因為必須修改還原腳本的ESXi版本判斷以及身分驗證等內容才得以運作,而覺得上述所說明的還原腳本執行檔ghettoVCB-restore.sh前置作業太過麻煩,其實可以自行手動加入的方式來執行還原作業(Add to Inventory)。

可以透過SSH遠端登入ESXi虛擬化平台執行檔案複製作業(圖14),或者使用vSphere Client所提供的Datastore Browser功能,將先前所備份的VM虛擬主機檔案複製到ESXi Datastore儲存資源內(圖15)。


▲圖14 SSH遠端登入ESXi虛擬化平台執行檔案複製作業。


▲圖15 使用vSphere Client所提供的Datastore Browser功能執行檔案複製作業。

當VM虛擬主機備份檔案複製作業完成後,開啟ESXi虛擬化平台上的Datastore Browser,切換到「CentOS63」資料夾內並點選虛擬主機設定檔案「CentOS63.vmx」。

接著,按一下滑鼠右鍵,選擇快速選單中的【Add to Inventory】,也就是以手動的方式將該VM虛擬主機增加至ESXi虛擬化平台管理介面內,如圖16所示,與此同時將出現新增虛擬主機精靈。


▲圖16 準備新增VM虛擬主機至ESXi虛擬化平台Inventory中。


追蹤我們Featrue us

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

我知道了!