如何用腳本程序備份VMware ESX服務(wù)器數(shù)據(jù)?
如果運行VMware ESX服務(wù)器的物理服務(wù)器出現(xiàn)故障的話,將會有什么樣的后果?如果沒有及時的故障備份選擇,會是非常麻煩的事情。不過已經(jīng)有辦法來應(yīng)對這個糟糕的問題,并且還不需要購買任何硬件,僅僅需要一個冗余備份虛擬機文件服務(wù)器。
在本系列文章的***部分,虛擬化專家Harley Stagner曾經(jīng)介紹了使用客體虛擬機內(nèi)iSCSI掛載存儲設(shè)備設(shè)置一臺文件服務(wù)器虛擬機。目前通用的方法是如果服務(wù)器出現(xiàn)故障,就把iSCSI存儲設(shè)備掛載在另外一臺物理服務(wù)器上,但這樣做需要驅(qū)動的重新匹配,并且給用戶帶來更多的宕機時間。然而由于文件服務(wù)器是一臺虛擬機,這將能夠在很短的宕機時間之后啟動另外一臺ESX服務(wù)器。由于在兩臺ESX服務(wù)器之間沒有共享存儲,維持可用性唯一行得通的方法就是在兩臺ESX服務(wù)器都有文件服務(wù)器客體虛擬機的拷貝。這兩臺服務(wù)器需要在虛擬機有任何改變都能夠及時保持同步。因為只有虛擬機驅(qū)動是系統(tǒng)卷,所以大概在打包之后需要做出一點更改。
用戶在打包之后大概需要每個月手動備份一次虛擬機文件。實踐證明***在文件備份之前關(guān)閉虛擬機,對用戶來講這就是宕機時間,對管理員來講應(yīng)該只是某個凌晨早起起床的事情。本文中用到的解決方案是在目標虛擬機持續(xù)運行的情況下,使用VMware Converter 3.0.1企業(yè)版負責(zé)調(diào)度從目標虛擬機到另外一臺ESX服務(wù)器新位置的轉(zhuǎn)換過程,所以該解決方案受到宕機時間約束。
在VMware Converter 3.0.1企業(yè)版中,用戶可以使用p2vtool.exe工具,該工具是VMware Converter 3.0.1的命令行接口,但需要提醒的是該工具只有實驗性的支持。然而我曾多次測試本文所提供的腳本程序,并沒有發(fā)現(xiàn)問題。為了使用p2vtool.exe轉(zhuǎn)換當前的測試虛擬機,需要做一些預(yù)先準備工作:
必須擁有一個源虛擬機上有管理員特權(quán)的賬號;
如果希望在轉(zhuǎn)換完成之后收到一份電子郵件提醒,就必須使用腳本語言,如Powershell或者VBscript;
在Windows系統(tǒng)(要求版本是Windows XP SP2)下安裝VMware Converter 3.0.1(需要有企業(yè)版許可證);
創(chuàng)建一個xml文件,其中包含p2vtool.exe運行所需要的參數(shù);
VMware Converter 3.0.1在Windows XP負責(zé)管理任務(wù)的計算機上安裝完成之后,就可以開始運行腳本程序。***步是創(chuàng)建p2vtool.exe處理轉(zhuǎn)換請求所需要的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文件中參數(shù)的詳細解釋,在附錄幫助文檔接近***部分列出了p2vtool.exe的使用指南。之所以把源虛擬機當做物理機對待是為了允許虛擬機在轉(zhuǎn)換過程中持續(xù)運行。如果在轉(zhuǎn)換過程中源虛擬機關(guān)機的話,只能完成從一臺虛擬機到另外一臺虛擬機的轉(zhuǎn)換。為演示方便,所有腳本文件在xml文件都保存在C:\p2v。
可能很多管理員已經(jīng)發(fā)現(xiàn)本文中給出了Powershell和VBscript兩種腳本程序。其中Powershell腳本需要兩個文件,如下所示:
p2v.ps1 Powershell腳本文件;
常規(guī)的p2v.cmd文件,該文件用來調(diào)用p2v.ps1以完成合適調(diào)度;
需要使用p2v.cmd的原因是因為在Windows的默認配置中ps1(Powershell腳本程序)文件沒有文件關(guān)聯(lián)。然而使用常規(guī)的“cmd”命令行可以激活“ps1”文件的執(zhí)行,需要在注冊表中手動添加文件關(guān)聯(lián)。為簡化處理,可以使用“p2v.cmd”代替,使用該文件的具體命令如下:
--Begin Code--
powershell -command "& 'c:\p2v\p2v.ps1' "
--End Code--
點擊該鏈接可以下載到可用的p2v.ps1文件。
運行p2v.ps1文件之前還有另外一個前提要求。Powershell默認設(shè)置是只解釋輸入到Powershell命令提示符的命令,這就意味著Powershell并不能夠執(zhí)行腳本程序??梢酝ㄟ^在Powershell命令提示符后敲入命令“Get-ExecutionPolicy”確認一下,策略的默認設(shè)置是“受限”,即只能解釋輸入的命令。因此為了運行p2v.ps1文件,必須把執(zhí)行策略至少設(shè)置為“遠程簽名”,意思是可以運行本地創(chuàng)建的Powershell腳本程序,不能夠運行下載的腳本程序。設(shè)置Powershell的執(zhí)行策略需要先輸入“Set-ExecutionPolicy”,然后再輸入“Set-ExecutionPolicy RemoteSigned”。這樣設(shè)置之后就可以正常運行Powershell腳本了。在Powershell命令提示符后輸入“help about_signing”可以獲得腳本簽名的更多信息。如果需要以調(diào)度好的任務(wù)方式運行該腳本程序,只需要以正常需求調(diào)度p2v.cmd任務(wù)運行即可。
如果傾向于使用VBscript,我也創(chuàng)建了轉(zhuǎn)換流程的p2v.vbs版本,點擊該鏈接可以下載到可用的p2v.vbs文件。
可以把p2v.vbs安排在需要的時間段來運行。需要注意的是p2v.vbs腳本程序在運行的時候會占用較多的處理器資源,這是因為p2v.vbs要監(jiān)控“p2vtool.exe”的處理過程以便計算轉(zhuǎn)換流程的完成時間。
在該流程完成之后,p2v.ps1和p2v.vbs腳本程序都會給腳本中列出的管理員發(fā)電子郵件,提供更多信息。這一點是非常必要的,因為在轉(zhuǎn)換流程完成之后需要一些手動的清理工作。首先,在第二個計劃任務(wù)完成之后,將會有兩臺虛擬機有相同的名字,需要刪除其中一臺虛擬機。其次,由于源虛擬機以物理機的方式進行轉(zhuǎn)換,就需要從虛擬機設(shè)置上去掉一些額外的設(shè)備,并且需要增加合適的vSwitch。下面列出的是VI客戶端鏡像和清理新轉(zhuǎn)換虛擬機的必要步驟:
注意下圖中列出的額外硬件:
移除必要的額外附件,增加連接在合適vSwitch上的新網(wǎng)絡(luò)適配器設(shè)備。首先,選擇“以太網(wǎng)適配器設(shè)備”,點擊“下一步”:
接下來,給網(wǎng)絡(luò)以合適的名稱,并且確保選擇了“開機時建立連接”,點擊“下一步”:
在最終的界面重新檢查設(shè)置,確保所有的設(shè)置正確。點擊“完成”:
此刻就已經(jīng)成功地設(shè)置了一個冗余備份的虛擬機文件服務(wù)器。如果主ESX服務(wù)器文件出現(xiàn)故障,就可以在另外一臺ESX服務(wù)器上啟動備份的文件服務(wù)器虛擬機。如果需要的話,該恢復(fù)流程可以手動完成。然而并不需要額外開銷來配置一個有VMotion能力的基礎(chǔ)架構(gòu)。如果用戶或者客戶SLA可以接受手動故障恢復(fù)流程的話,這就是不需要任何額外花費就可以完成宕機恢復(fù)的一個方法。
【編輯推薦】