網管人雜誌
本文刊載於 網管人雜誌第 76 期 - 2012 年 5 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它或透過下列圖示連結至博客來網路書店訂閱它。文章目錄
1、前言2、實作環境
3、線上 及 離線備份
4、Thick 及 Thin 硬碟格式
5、離線備份虛擬主機(Export OVF Template)
6、還原虛擬主機(Deploy OVF Template)
7、結語
1、前言
目前最新發行的 VMware vSphere 5.0 虛擬化平台版本中,等同於正式宣告將具有 COS (Service Console) 的 ESX 虛擬化平台推向歷史 (以後僅剩 ESXi 虛擬化平台),新版的 ESXi 虛擬化架構平台中移除掉舊有的 ESX 平台中的 COS (也就是 Linux 作業系統),並且所有的 VMware Agent 直接改為運作在 VMkernel 之上 (而非舊版 ESX 運作於 COS 之上),所以新版的 ESXi 虛擬化平台的整體架構空間大小,從舊有 ESX 平台約 2 GB 空間大小大幅縮減至 150 MB 左右。
圖1、VMware vSphere ESXi 虛擬化平台架構示意圖
同時也因為將 COS (Linux 作業系統) 移除掉,除了為 ESXi 虛擬化平台主機的硬體資源帶來更高的利用率之外,更因為不需要幫 COS 及相關套件進行安全性更新,因此連帶使得 ESXi 虛擬化平台架構的主機安全性提升許多 (主機整體被攻擊面減少!!),並且只有通過 VMware 官方驗證的第三方軟體套件模組 (3rd Party Modules),才可以安裝至 ESXi Host 之上,更加使得 ESXi Host 穩定性提升不少 (而非 ESX 平台上可強行安裝未經認證的軟體套件!!),如圖 2 中所示可以看到將 ESX 與 ESXi 平台二相比較之下,新版 ESXi 平台需要進行安全性更新的數量大幅減少。
圖2、VMware vSphere ESX/ESXi 安全性更新數量比較表
但是前期已經導入虛擬化技術平台的企業,相信仍有許多 ESX 4.x 的虛擬化平台在營運環境線上運作使用中,因為具備 COS 的 ESX 虛擬化平台它是基於 RedHat 企業版 RHEL (Kernel 2.6.x / RHEL 5.2) 所開發改寫而成,所以許多在 Linux 作業系統中可以執行的指令,在 ESX 平台中也可以執行,另外許多VMware Agent 也以直接安裝於 COS 之中,因此對於 Linux 主機管理稍有概念的管理者,在使用經驗上也會覺得 ESX 虛擬化平台較為順手,因此若是對於追求系統穩定性而不是追求新技術平台的管理者來說,相信在短時間之內也不會將虛擬化平台轉移至新一代的 ESXi 平台上。
圖3、VMware vSphere ESX 虛擬化平台架構示意圖
2、實作環境
- 虛擬化技術平台: VMware vSphere ESX 4.1.0 (Build Number 260247)
- 虛擬主機作業系統 (Guest OS): CentOS 6.2 (32bit)
- 連線管理軟體: vSphere Client 4.1.0 (Build Number 258902)
3、線上 及 離線備份
「備份」是一件非常重要的事情,但是很多管理人員可能公務繁忙或因為分身乏術而輕忽它,常常等到災難發生時才了解到備份的重要性,而且備份策略並不是有或者是隨隨便便進行備份求心安即可,例如 雖然有排程備份資料至磁帶,但是卻從來沒有演練過災難復原程序,因此當災難真的發生的時候,除了手忙腳亂不知所措以外,也很有可能因為沒有驗證過備份至磁帶的資料,而導致無法還原的慘劇。
其中備份方式又可以區分為「線上備份(Online Backup)」及「離線備份(Offline Backup)」, 一般來說線上備份指的是主機或者服務在運作狀態中進行備份,而離線備份則通常是主機已經關機,或者服務在未執行的狀態下進行備份,至於二種備份方式都有適合應用的情境,例如 企業營運環境中因為會有服務不中斷的壓力,因此便會採用線上備份方式來進行備份作業,不過線上備份方式雖然方便,但是備份方式及機制則較為複雜,舉例來說 在 Windows 作業系統上備份 MSSQL 資料庫時,通常必須搭配 「磁區陰影複製服務 VSS(Volume Shadow copy Services)」 技術配合備份作業,否則當執行還原資料庫時便很可能會發生問題。
而離線備份機制,通常在作業系統關機或者服務停止運作的情況下進行,所以備份機制較為簡單且備份時間通常較短,以運作於 ESX 虛擬化平台上的 VM 虛擬主機來說,當虛擬主機啟動時至少會帶起 .vswp (Virtual Machine SWAP File) 檔案,此檔案為 VMkernel 的 SWAP 用途,通常會等同於該虛擬主機所設定的 Memory 空間大小,所以若虛擬主機為關機狀態的話此一檔案會自動消失,單單就這方面來看備份時間當然會相對縮短許多,所以離線備份機制適合使用於備份企業營運中任務較不重要或測試用的伺服器,簡單說就是可以允許短暫停機時間的服務主機就很適合使用。下列表格為將 線上 及 離線 備份二種機制分別進行簡單的比較:
本文接下來將會針對 ESX 虛擬化平台上的虛擬主機,進行 線上 及 離線 備份二種機制進行實作,其中採用「Export OVF Template」方式將虛擬主機匯出達成備份的目的,不過此方式僅能針對「關機(Power Off)」狀態的虛擬主機進行,也就是離線備份方式。
而線上備份方式則會透過 ESX 虛擬化平台中,內建的「vcbMounter 及 vcbRestore」指令,針對「運作中(Power On)」的虛擬主機,以 VCB(VMware Consolidated Backup)及配合快照(Snapshot)的機制,為運作中的虛擬主機進行線上備份。
4、Thick 及 Thin 硬碟格式
在進行虛擬主機備份以前,我們先了解一下虛擬主機的虛擬硬碟格式 Thick 及 Thin 二者之間的差別,因為這二種虛擬硬碟格式會牽扯到後續「備份檔案大小」,如圖 4 所示中可以看到該台 ESX 主機儲存資源為 100 GB 大小,並且上面運作了三台 VM 虛擬主機,其中分別配置了 20 GB、40 GB、80 GB 硬碟空間,但是三台 VM 虛擬主機所配置的虛擬硬碟大小總合為 140 GB,已經明顯超過 ESX 儲存資源 100 GB 了,為何還可以順利運作? 這就是因為採用了 Thick 及 Thin 硬碟格式所帶來的效益!!
在圖 4 中可以看到,第一台 VM 設定虛擬硬碟大小為 20 GB 並且採用 Thick 虛擬硬碟格式,而第二、三台 VM 所設定的虛擬硬碟大小為 40 GB、80 GB 並且採用 Thin 虛擬硬碟格式,二種虛擬硬碟格式最大的差別在於,採用 Thick 格式時不管設定多大的硬碟空間,將會「一次佔滿所有儲存空間」即使只用到部份空間而以,舉例來說第一台 VM 設定了 20 GB 硬碟,但是事實上該台 VM 虛擬主機中的作業系統可能僅僅使用到 5 GB 的磁碟空間而以,但是該虛擬主機仍然會佔用 20 GB 的ESX 主機儲存資源。而採用 Thin 硬碟格式則是「僅僅佔用部份使用空間」,例如第三台 VM 虛擬主機配置了 80 GB 硬碟空間,但是事實上該台 VM 虛擬主機中的作業系統僅僅使用到 40 GB 的空間而以,所以該台 VM 虛擬主機僅僅會佔用 40 GB的ESX 主機儲存資源。
圖4、Thick 及 Thin虛擬主機硬碟格式示意圖
或許有人會說 Thin 硬碟格式節省了ESX 主機儲存空間,但是卻失去了 Disk I/O 效能,其實這種說法並不準確,在如圖 5 所示 Disk 效能測試圖表中我們可以看到,Thick 與 Thin 二種硬碟格式在 I/O-Intensive 測試數據效能表現中可以看到二者是相差無幾的!!
圖5、I/O-Intensive 測試中Thick 與 Thin硬碟格式的測試數據
若是認為僅僅在單台 ESX/ESXi Host 上所得到的測試數據並不準確的話,如圖 6 所示效能測試數據為針對 Thick 與 Thin 虛擬硬碟格式,運作於 1 ~ 16 台 ESX/ESXi Host 上的平均值效能數值中,仍然可以看到二者的效能表示同樣也相去不遠。
圖6、1 ~ 16 台 Hosts 測試 Thick 與 Thin硬碟格式的平均測試數據
5、離線備份虛擬主機 (Export OVF Template)
首先我們將會透過把虛擬主機關機,接著進行匯出的方式也就是採用「Export OVF Template」,來達成備份虛擬主機的目的,不過請記得此備份方式的前提就是必須先將虛擬主機進行「關機(Power Off)」的動作才行,接下來我們將實作如何把虛擬主機關機後匯出備份(Export OVF Template),以及當虛擬主機發生災難後如何將匯出的備份檔案,再度匯入 ESX 虛擬化平台中(Deploy OVF Template)使虛擬主機能在短時間之內重新上線運作。請先將欲匯出備份的虛擬主機(此次實作名稱為 CentOS62),依照一般程序進行關機(Shutdown)的動作,當確認虛擬主機關機完成後使用 vSphere Client 連線至 ESX 虛擬化平台上,接著點選該虛擬主機後點選工作列上的「File」項目,於彈出視窗中選擇「Export」項目後再選擇「Export OVF Template」 (如圖 7 所示),請注意!! 如果您並未將虛擬主機進行關機或者未點選到虛擬主機時,則 Export OVF Template 項目將為「灰色」無法選擇,此狀況表示該功能無法使用 (如圖 8 所示)。
圖7、虛擬主機關機後便可順利使用匯出備份功能
圖8、虛擬主機未進行關機或者未點選到虛擬主機時,匯出備份功能無法使用
當順利進入 Export OVF Template 匯出備份程序後,請於彈出視窗中填寫相關資訊下列為各欄位的意義解說:
- Name: 虛擬主機匯出名稱,此名稱將會成為匯出後的檔案名稱,此實作中所輸入的名稱為「CentOS62」,因此稍後匯出備份的檔案名稱將自動命名為 CentOS62.ova。
- Directory: 虛擬主機備份檔案匯出儲存資料夾,請選擇此虛擬主機匯出相關檔案的儲存目的地,此次備份實作為存放至「C:\ESX_Backup」資料夾內,請注意!! 此儲存資料夾為使用 vSphere Client 連線主機的本機資料夾。
- Format: 虛擬主機匯出格式,匯出虛擬主機檔案時支援二種匯出格式,分別是多個檔案的 OVF 格式,也就是將虛擬主機的設定檔案 .vmx 及虛擬硬碟 .vmdk 分開存放,另外一種匯出格式則是單一檔案的 OVA 格式,它是將虛擬主機所有相關檔案打包成為單一檔案,此次備份實作為選擇筆者個人所習慣的「Single file(OVA)」格式。
- Description: 虛擬主機備份匯出說明,請輸入對於此台匯出備份的虛擬主機進行相關描述說明,以供日後若要進行虛擬主機還原時能夠增加其可讀性,此次備份實作描述說明為「My CentOS 6.2 Backup!!」。
圖9、填寫匯出備份虛擬主機的相關欄位資訊
當確定填寫以及所選擇的資訊無誤後請按下「OK」鍵,此時 ESX 虛擬化平台將會開始把剛才所選擇的 CentOS62 虛擬主機,所有跟運作相關的檔案進行打包(OVA)的動作,接著匯出到 vSphere Client 連線主機中。此離線備份方式僅會將虛擬主機「實際使用」的空間進行匯出,以此次匯出備份的 CentOS62 虛擬主機來說,此台虛擬主機其硬碟空間當初配置為 「50 GB」 大小,並且採用 Thin 虛擬硬碟格式,當虛擬主機開機運作時查看於 ESX Host 儲存空間的使用空間狀態約為 「6.2 GB」左右,但是當匯出備份作業完畢後我們實際查看虛擬主機匯出檔案 CentOS62.ova 資訊,您可以發現到 OVA 檔案大小,其實是 CentOS62 虛擬主機所實際使用的空間大小大約 「4.78 GB」 左右。
- VM Thick Format Size: 50 GB
- VM Thin Format Size: 6.2 GB
- Export OVF Template Size: 4.78 GB
圖10、虛擬主機匯出備份完成後 OVA 檔案資訊
6、還原虛擬主機 (Deploy OVF Template)
當 CentOS62 虛擬主機發生災難無法提供服務時 (例如 發生 Kernel Panic),我們便可以運用剛才所匯出備份的虛擬主機 OVA 檔案,來進行虛擬主機還原的動作,此外若是原本虛擬主機所運作的 ESX 虛擬化平台也發生災難無法運作時 (例如 伺服器主機板損壞),我們也可以將匯出備份的 OVA 檔案,還原至其它台 ESX 虛擬化平台上,其中值得注意的地方是 ESX 虛擬化平台的網路設定,若虛擬交換器 (Virtual Switch) 的名稱不同,則進行還原虛擬主機之後可能會導致虛擬主機網路不通的問題。
要執行虛擬主機的還原作業其實很簡單,請使用 vSphere Client 連線至 ESX 虛擬化平台後,點選上方工作列「File」項目,接著選擇「Deploy OVF Template」項目,此時將會出現佈署 OVF 範本的對話視窗,匯入 (還原) 虛擬主機的步驟如下:
- Deploy from a file or URL: 選擇 OVF / OVA 備份檔案,請按下 Browse 鍵後選擇剛才匯出存放的 CentOS62.ova 檔案位置,此次還原實作為選擇「C:\ESX_Backup\CentOS62.ova」,確定後按下「Next」進入下一個還原程序 (如圖 11 所示)。
- OVF Template Details: OVF / OVA 備份檔案資訊,此時視窗將會顯示此匯出備份檔案的內容例如 虛擬主機名稱、檔案大小、檔案格式(thin/thick)、描述說明…等資訊,確定資訊無誤後按下「Next」進入下一個還原程序。
- Name: 虛擬主機名稱,將此備份檔案匯入還原後屆時此台虛擬主機,會在 ESX 虛擬化平台上所顯示的名稱,請注意!! 若此虛擬主機名稱與先前備份時「不同」,則屆時虛擬主機網路卡的 「MAC Address」 將會改變,若名稱維持相同則 MAC Address 維持不變,通常為了讓虛擬主機還原後能快速上線服務,避免等待實體網路交換器更新 MAC Address Table 資訊 (ARP 協定運作流程),因此保持原來的虛擬主機名稱「CentOS62」,確定後按下「Next」進入下一個還原程序。
- Disk Format: 虛擬主機硬碟格式,您可以在還原虛擬主機時順便改變虛擬硬碟格式,例如您可以選擇轉換為一次佔用磁碟空間的 Thick 硬碟格式 (50 GB),或者繼續採用節省空間的 Thin 硬碟格式 (3.2 GB),此次還原實作中採用預設值「Thin provisioned format 」項目即可,確定後按下「Next」進入下一個還原程序 (如圖 12 所示)。
- Ready to Complete: 準備還原虛擬主機,確定還原虛擬主機的相關資訊設定無誤後,請按下「Finish」鍵便會立即開始進行虛擬主機匯入還原作業 (如圖 13 所示)。
圖11、選擇剛才匯出備份的 CentOS62.ova 檔案
圖12、選擇虛擬主機硬碟格式 (Thick <-> Thin)
圖13、還原虛擬主機備份檔 CentOS62.ova
還原虛擬主機 CentOS62 完畢並且順利開機完成後,我們可以馬上確定看看虛擬主機是否運作正常,通常還原虛擬主機後只要注意二個重點即可,首先為注意匯入還原後在 ESX 平台中虛擬交換器的對應關系,第二個重點則是若執行匯入還原虛擬主機過程中,將虛擬主機的名稱改變時則 MAC Address 將會改變,通常只要注意這二個重點則還原後的虛擬主機在網路功能上便可運作無誤。
圖14、還原後虛擬主機運作正常
7、結語
在本篇中了解到 線上 及 離線 備份方式的不同之處以及適用時機,還有 Thick 及 Thin 虛擬硬碟格式,對於離線備份後檔案大小的變化,並且實作如何針對 ESX 虛擬化平台上運作的 VM 虛擬主機,進行離線備份作業以及當虛擬主機崩潰時,該如何透過先前的離線備份進行還原作業。
不過離線備份僅能針對關機狀態的虛擬主機進行備份,這對於企業實際營運環境必須保持服務不中斷的理念相違背,因此在下一篇文章中將會實作採用 ESX 虛擬化平台中,內建的vcbMounter 及 vcbRestore指令,針對持續提供服務 (開機中) 的 VM 虛擬主機,以 VCB 及Snapshot機制為運作中的虛擬主機進行線上備份以及災難復原作業,達成不需要購買昂貴的第三方軟體便可以輕鬆備份線上虛擬主機的目的。