如何用腳本程序備份VMware ESX服務器數據?
如果運行VMware ESX服務器的物理服務器出現故障的話,將會有什么樣的后果?如果沒有及時的故障備份選擇,會是非常麻煩的事情。不過已經有辦法來應對這個糟糕的問題,并且還不需要購買任何硬件,僅僅需要一個冗余備份虛擬機文件服務器。
在本系列文章的***部分,虛擬化專家Harley Stagner曾經介紹了使用客體虛擬機內iSCSI掛載存儲設備設置一臺文件服務器虛擬機。目前通用的方法是如果服務器出現故障,就把iSCSI存儲設備掛載在另外一臺物理服務器上,但這樣做需要驅動的重新匹配,并且給用戶帶來更多的宕機時間。然而由于文件服務器是一臺虛擬機,這將能夠在很短的宕機時間之后啟動另外一臺ESX服務器。由于在兩臺ESX服務器之間沒有共享存儲,維持可用性唯一行得通的方法就是在兩臺ESX服務器都有文件服務器客體虛擬機的拷貝。這兩臺服務器需要在虛擬機有任何改變都能夠及時保持同步。因為只有虛擬機驅動是系統卷,所以大概在打包之后需要做出一點更改。
用戶在打包之后大概需要每個月手動備份一次虛擬機文件。實踐證明***在文件備份之前關閉虛擬機,對用戶來講這就是宕機時間,對管理員來講應該只是某個凌晨早起起床的事情。本文中用到的解決方案是在目標虛擬機持續運行的情況下,使用VMware Converter 3.0.1企業版負責調度從目標虛擬機到另外一臺ESX服務器新位置的轉換過程,所以該解決方案受到宕機時間約束。
在VMware Converter 3.0.1企業版中,用戶可以使用p2vtool.exe工具,該工具是VMware Converter 3.0.1的命令行接口,但需要提醒的是該工具只有實驗性的支持。然而我曾多次測試本文所提供的腳本程序,并沒有發現問題。為了使用p2vtool.exe轉換當前的測試虛擬機,需要做一些預先準備工作:
必須擁有一個源虛擬機上有管理員特權的賬號;
如果希望在轉換完成之后收到一份電子郵件提醒,就必須使用腳本語言,如Powershell或者VBscript;
在Windows系統(要求版本是Windows XP SP2)下安裝VMware Converter 3.0.1(需要有企業版許可證);
創建一個xml文件,其中包含p2vtool.exe運行所需要的參數;
VMware Converter 3.0.1在Windows XP負責管理任務的計算機上安裝完成之后,就可以開始運行腳本程序。***步是創建p2vtool.exe處理轉換請求所需要的xml文件,用在這個場景中的該簡單文件如下所示:
--Begin Code--
<?xml version="1.0" encoding="UTF-8" ?>
<p2v version="2.1"
xmlns="http://www.vmware.com/v2/sysimage/p2v"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.vmware.com/v2/sysimage/p2v p2v.xsd"
uninstallAgentOnSuccess="0">
<source>
<liveSpec>
<creds host="source_vm"
username="Administrator" password="youradminpassword" />
</liveSpec>
</source>
<dest>
<managedSpec vmName="Test-Migrate">
<!-- username and password may be omitted,
in which case you will be interactively prompted for credentials -->
<creds host="target_esx_server"
username="root" password="yourrootpassword" />
</managedSpec>
</dest>
<importParams targetProductVersion="PRODUCT_MANAGED" />
<postProcessingParams>
<reconfigParams />
</postProcessingParams>
</p2v>
--End Code--
VMware Converter 3.0.1幫助文檔的p2vtool.exe使用部分給出了對該xml文件中參數的詳細解釋,在附錄幫助文檔接近***部分列出了p2vtool.exe的使用指南。之所以把源虛擬機當做物理機對待是為了允許虛擬機在轉換過程中持續運行。如果在轉換過程中源虛擬機關機的話,只能完成從一臺虛擬機到另外一臺虛擬機的轉換。為演示方便,所有腳本文件在xml文件都保存在C:\p2v。
可能很多管理員已經發現本文中給出了Powershell和VBscript兩種腳本程序。其中Powershell腳本需要兩個文件,如下所示:
p2v.ps1 Powershell腳本文件;
常規的p2v.cmd文件,該文件用來調用p2v.ps1以完成合適調度;
需要使用p2v.cmd的原因是因為在Windows的默認配置中ps1(Powershell腳本程序)文件沒有文件關聯。然而使用常規的“cmd”命令行可以激活“ps1”文件的執行,需要在注冊表中手動添加文件關聯。為簡化處理,可以使用“p2v.cmd”代替,使用該文件的具體命令如下:
--Begin Code--
powershell -command "& 'c:\p2v\p2v.ps1' "
--End Code--
點擊該鏈接可以下載到可用的p2v.ps1文件。
運行p2v.ps1文件之前還有另外一個前提要求。Powershell默認設置是只解釋輸入到Powershell命令提示符的命令,這就意味著Powershell并不能夠執行腳本程序。可以通過在Powershell命令提示符后敲入命令“Get-ExecutionPolicy”確認一下,策略的默認設置是“受限”,即只能解釋輸入的命令。因此為了運行p2v.ps1文件,必須把執行策略至少設置為“遠程簽名”,意思是可以運行本地創建的Powershell腳本程序,不能夠運行下載的腳本程序。設置Powershell的執行策略需要先輸入“Set-ExecutionPolicy”,然后再輸入“Set-ExecutionPolicy RemoteSigned”。這樣設置之后就可以正常運行Powershell腳本了。在Powershell命令提示符后輸入“help about_signing”可以獲得腳本簽名的更多信息。如果需要以調度好的任務方式運行該腳本程序,只需要以正常需求調度p2v.cmd任務運行即可。
如果傾向于使用VBscript,我也創建了轉換流程的p2v.vbs版本,點擊該鏈接可以下載到可用的p2v.vbs文件。
可以把p2v.vbs安排在需要的時間段來運行。需要注意的是p2v.vbs腳本程序在運行的時候會占用較多的處理器資源,這是因為p2v.vbs要監控“p2vtool.exe”的處理過程以便計算轉換流程的完成時間。
在該流程完成之后,p2v.ps1和p2v.vbs腳本程序都會給腳本中列出的管理員發電子郵件,提供更多信息。這一點是非常必要的,因為在轉換流程完成之后需要一些手動的清理工作。首先,在第二個計劃任務完成之后,將會有兩臺虛擬機有相同的名字,需要刪除其中一臺虛擬機。其次,由于源虛擬機以物理機的方式進行轉換,就需要從虛擬機設置上去掉一些額外的設備,并且需要增加合適的vSwitch。下面列出的是VI客戶端鏡像和清理新轉換虛擬機的必要步驟:
注意下圖中列出的額外硬件:
移除必要的額外附件,增加連接在合適vSwitch上的新網絡適配器設備。首先,選擇“以太網適配器設備”,點擊“下一步”:
接下來,給網絡以合適的名稱,并且確保選擇了“開機時建立連接”,點擊“下一步”:
在最終的界面重新檢查設置,確保所有的設置正確。點擊“完成”:
此刻就已經成功地設置了一個冗余備份的虛擬機文件服務器。如果主ESX服務器文件出現故障,就可以在另外一臺ESX服務器上啟動備份的文件服務器虛擬機。如果需要的話,該恢復流程可以手動完成。然而并不需要額外開銷來配置一個有VMotion能力的基礎架構。如果用戶或者客戶SLA可以接受手動故障恢復流程的話,這就是不需要任何額外花費就可以完成宕機恢復的一個方法。
【編輯推薦】