技術(shù)透析:Hyper-V實時遷移指南
原創(chuàng)【51CTO精選譯文】實時遷移是微軟向Windows Server 2008 R2 Hyper-V添加的最重要的功能,通過實時遷移功能,在Hyper-V主機之間移動虛擬機(VM)就無需再停機了,正常維護Hyper-V主機時,可以將它托管的所有VM全部移走,等到維護結(jié)束后,又移回來,整個過程不會引起業(yè)務(wù)中斷。此外,利用實時遷移功能還可以更好地動態(tài)調(diào)整主機資源利用率,將繁忙的Hyper-V主機上的部分VM移動到相對空閑的Hyper-V主機上,這樣可以確保即便在業(yè)務(wù)高峰期也能給終端用戶提供很好的性能。
實時遷移可以手工啟動,也可以使用System Center Virtual Machine Manager(SCVMM)2008 R2或System Center Operations Manager 2007(SCOM 2007)實現(xiàn)自動化實時遷移,本文將介紹如何為兩個系統(tǒng)配置實時遷移的詳細(xì)過程,首先我會介紹一下實時遷移是如何工作的,然后會介紹實施實時遷移需要的硬件和軟件先決條件,最后介紹Hyper-V的重點和實施實時遷移必須要要的故障轉(zhuǎn)移集群配置。
實時遷移是如何工作的
實時遷移是發(fā)生在兩個Hyper-V主機之間的,本質(zhì)上就是在兩臺Hyper-V主機之間復(fù)制VM內(nèi)存,內(nèi)存復(fù)制完畢后,VM就可以在新的主機上訪問它的虛擬硬盤(VHD)文件繼續(xù)運行了,兩個Hyper-V主機都訪問的是共享存儲上的VM VHD文件,當(dāng)你啟動實時遷移時,如圖1所示,發(fā)生以下行為。
圖 1 初始化實時遷移
1、在目標(biāo)服務(wù)器上創(chuàng)建新的VM配置文件;
2、將源VM的初始內(nèi)存狀態(tài)拷貝到目標(biāo)主機;
3、將源VM上做上標(biāo)記的變動內(nèi)存頁拷貝到目標(biāo)主機上;
4、持續(xù)這個過程,直到變動的內(nèi)存頁數(shù)量越來越?。?/p>
5、暫停源節(jié)點上的VM;
6、將源VM的最終內(nèi)存狀態(tài)復(fù)制到目標(biāo)主機;
7、在目標(biāo)主機上恢復(fù)VM;
8、更新網(wǎng)絡(luò)路由表。
#p#
實時遷移的先決條件
在硬件方面,你需要兩個x64系統(tǒng),處理器要相互兼容,必須是同一家處理器廠商,且必須是同一處理器家族,雙方處理器相同是最好的,如果一臺Hyper-V主機是AMD處理器,另一臺是英特爾的處理器,在它們之間是不能執(zhí)行實時遷移的。
此外,每臺服務(wù)器至少需要三塊千兆網(wǎng)卡,一個用于連接外部網(wǎng)絡(luò),一個用于連接iSCSI存儲,最后一個用于節(jié)點管理,理想情況下最好有一塊專門用于實時遷移的網(wǎng)卡,但并非必須的,實時遷移通信也可以走外部網(wǎng)絡(luò)連接,只是速度會稍慢一點,值得注意的是,如果你也想整合服務(wù)器,最好添加一塊網(wǎng)卡用于VM網(wǎng)絡(luò)通信。
在軟件方面,所有參與實時遷移的節(jié)點必須安裝Windows Server 2008 R2 64位操作系統(tǒng),可以是標(biāo)準(zhǔn)版,企業(yè)版或數(shù)據(jù)中心版,Hyper-V Server 2008 R2也支持實時遷移,此外,在所有參與實時遷移的服務(wù)器上必須安裝Hyper-V角色和故障轉(zhuǎn)移集群功能。
另外還需要共享存儲,可以是iSCSI SAN或FC SAN,我這里以iSCSI SAN為例,注意iSCSI SAN必須支持iSCSI 3規(guī)范,因為實時遷移需要該規(guī)范定義的持久化預(yù)留存儲功能,有些開源iSCSI解決方案,如OpenFiler目前尚不支持這項功能,如果你只是想在本地測試一下實時遷移功能,可以選擇免費的StarWind服務(wù)器產(chǎn)品。
#p#
故障轉(zhuǎn)移集群網(wǎng)絡(luò)配置
實時遷移必須使用故障轉(zhuǎn)移集群,也只能在故障轉(zhuǎn)移集群內(nèi)節(jié)點之間實時遷移VM,創(chuàng)建故障轉(zhuǎn)移集群的第一步是配置網(wǎng)絡(luò)和存儲,圖2顯示了本例使用的故障轉(zhuǎn)移集群網(wǎng)絡(luò)配置。
圖 2 故障轉(zhuǎn)移集群網(wǎng)絡(luò)配置
圖2中使用192.168.100.xxx的子網(wǎng)是客戶端連接,iSCSI SAN運行在獨立的物理網(wǎng)絡(luò)上,使用的是192.168.0.xxx子網(wǎng),理想情況下還應(yīng)該為管理和實時遷移配備獨立的網(wǎng)卡和對應(yīng)的IP地址,但并非必須,實時遷移對每一方網(wǎng)卡的最低要求是兩塊。
#p#
存儲配置
我使用的是LeftHand的iSCSI SAN,我在上面安裝了一個SQL Server,在iSCSI SAN上,我創(chuàng)建了4個LUN,其中一個500MB大小,用于集群仲裁,另一個大小為1024GB,托管10個VM,其它兩個分別用于SQL Server(500GB)和分布式事務(wù)協(xié)調(diào)(DTC,200MB)。
創(chuàng)建好LUN后,我在雙方Windows節(jié)點上配置了iSCSI Initiator,接著選擇“管理工具”*“iSCSI Initiator選項”,在“發(fā)現(xiàn)”標(biāo)簽上,我選擇“搜索門戶”選項,彈出搜索門戶對話框,在這里輸入IP地址和SAN的iSCSI端口,我分別輸入了192.168.0.1和3260。
接下來,在“連接到目標(biāo)”對話框中,我指定了目標(biāo)iSCSI SAN的名字,通過SAN屬性可以查看其名字,根據(jù)廠商、域名和LUN名字的不同,SAN的名字也不同,我選中了“將本連接添加到常用目標(biāo)列表”復(fù)選框。完成iSCSI配置后,iSCSI Initiator目標(biāo)標(biāo)簽就使用LUN填充好了。
最后,使用磁盤管理器給LUN分配驅(qū)動器號,我給仲裁LUN分配Q,DTC分配R,SQL Server分配S,VM分配V,你需要先在一個節(jié)點上分配,將驅(qū)動器脫機,然后在另一個節(jié)點上做同樣的分配,圖3顯示了在一個節(jié)點上看到的驅(qū)動器號分配情況。
圖 3 在一個節(jié)點上看到的驅(qū)動器
#p#
添加Hyper-V角色和故障轉(zhuǎn)移功能
選擇“管理工具”*“服務(wù)器管理器”,點擊“添加角色”鏈接,在選擇服務(wù)器角色對話框中,選擇“Hyper-V”,然后點擊“下一步”,將會顯示創(chuàng)建虛擬網(wǎng)絡(luò)提示,其本質(zhì)是在Hyper-V VM和外部網(wǎng)絡(luò)之間建立一個橋。
選擇你想用于VM通信的網(wǎng)卡,注意不要選中用于iSCSI SAN連接的網(wǎng)卡,點擊“下一步”結(jié)束添加角色向?qū)?,重啟系統(tǒng),需要在集群的所有節(jié)點上執(zhí)行這些操作。
接下來在服務(wù)器管理器中,點擊“添加功能”選項,啟動添加功能向?qū)?,選擇“故障轉(zhuǎn)移集群”功能,點擊“下一步”結(jié)束向?qū)?,這個過程也必須在所有節(jié)點上執(zhí)行。
#p#
配置故障轉(zhuǎn)移集群
接下來就該創(chuàng)建故障轉(zhuǎn)移集群了,可以在任一集群節(jié)點上做這件事,選擇“管理工具”*“故障轉(zhuǎn)移集群管理器”,在打開的故障轉(zhuǎn)移集群控制臺窗口中,選擇“驗證配置”鏈接啟動驗證向?qū)?,顯示“選擇服務(wù)器或集群”對話框。
輸入要加入集群的所有節(jié)點的完全限定名稱,然后一路點擊“下一步”,完成集群驗證測試,包括檢查操作系統(tǒng),網(wǎng)絡(luò)配置和所有節(jié)點的存儲配置,最后一頁會顯示測試結(jié)果摘要信息,如果驗證成功,就可以開始創(chuàng)建集群了,如果遇到錯誤,必須先糾正后才能繼續(xù)。
在故障轉(zhuǎn)移集群控制臺窗口中點擊“創(chuàng)建集群”鏈接,和驗證過程差不多,首先需要輸入所有節(jié)點的名字,點擊“下一步”,顯示“集群管理接入點”對話框,如圖4所示。
圖 4 集群管理接入點
在這里輸入集群的名字和IP地址,名字和IP地址必須是網(wǎng)絡(luò)中唯一的,在圖4中,你可以看到我給集群取的名字是WS08R2-CL01,給集群分配的IP地址是192.168.100.200,如果你使用的是Windows Server 2008 R2,可以指定通過DHCP分配IP地址,但推薦使用靜態(tài)IP地址,這樣便于出現(xiàn)問題時進(jìn)行故障診斷和排除。
點擊“下一步”,顯示確認(rèn)界面,如果確定沒有需要修改的配置信息就點擊“下一步”創(chuàng)建集群,接著顯示一個集群配置摘要信息界面,這就是配置集群的全部過程。
創(chuàng)建集群向?qū)詣訛橹俨眠x擇存儲,但不是總能選中你創(chuàng)建的仲裁驅(qū)動器,你可以在故障轉(zhuǎn)移集群控制臺窗口的集群名字上點擊右鍵,選擇“更多操作”*“配置集群仲裁設(shè)置”,檢查和修改仲裁驅(qū)動器,在彈出的對話框中,向?qū)詣舆x擇最佳的仲裁類型,主要取決于集群中節(jié)點的數(shù)量,在雙節(jié)點集群中,它選擇了“節(jié)點和磁盤優(yōu)先”仲裁類型。
接下來顯示配置存儲對話框,我將默認(rèn)值修改為我想要的Q,點擊“下一步”保存集群仲裁配置。
#p#
啟用集群共享卷
集群配置的下一步是啟用集群共享卷,集群共享卷允許多個集群節(jié)點同時訪問相同存儲位置,但默認(rèn)沒有啟用,在故障轉(zhuǎn)移集群控制臺的集群名稱上點擊右鍵,然后選擇“啟用集群共享卷”,顯示集群共享卷摘要信息對話框,初始是空白的。
在行為面板中選擇“添加存儲”選項,在彈出的對話框中,選擇存儲的位置,我選擇了V驅(qū)動器,實際上它是LeftHand SAN上的一個LUN,點擊“確定”啟用集群共享卷,完成后將會在所有集群節(jié)點上創(chuàng)建一個掛載點,默認(rèn)這個掛載點被標(biāo)記為C:\ClusterStorage\Volume1。
#p#
在集群共享卷上創(chuàng)建VM
可以使用Hyper-V Manager或System Center Virtual Machine Manager創(chuàng)建Hyper-V VM,在Hyper-V Manager中,點擊管理工具,然后選擇“新建VM”選項,顯示如圖5所示的新建虛擬機向?qū)υ捒颉?br />
圖 5 新建虛擬機向?qū)?/p>
我這里將虛擬機名字命名為vWS08-SQL01,VM存放位置選擇了C:\ClusterStorage\Volume1,VM配置文件也創(chuàng)建在共享存儲上。
點擊“下一步”給VM分配內(nèi)存,再點擊“下一步”給VM選擇網(wǎng)絡(luò)連接,雖然給VM配置專用網(wǎng)絡(luò)不是必須的,但如果你選擇了外部網(wǎng)絡(luò)連接,一定要確保所有Hyper-V節(jié)點上外部網(wǎng)絡(luò)連接的名字要相同,我這里就選擇使用外部網(wǎng)絡(luò)連接。
點擊“下一步”顯示連接虛擬磁盤對話框,最初這里顯示Hyper-V管理器默認(rèn)指定的名字和位置,我將VHD文件的名字改為vWS08-SQL01.vhd,將位置改為C:\ClusterStorage\Volume1,點擊“下一步”指定客戶機操作系統(tǒng)安裝選項,所有客戶機操作系統(tǒng),包括Linux在內(nèi)都可以使用實時遷移功能,剩下的步驟就和創(chuàng)建普通VM的步驟差不多了。
結(jié)束創(chuàng)建虛擬機向?qū)Ш?,VM將會創(chuàng)建在集群共享卷上,下一步是啟動VM安裝客戶機操作系統(tǒng)和需要的應(yīng)用程序。
#p#
啟用VM實時遷移功能
打開故障轉(zhuǎn)移集群控制臺,導(dǎo)航到服務(wù)和應(yīng)用程序節(jié)點,點擊右鍵,選擇“配置服務(wù)或應(yīng)用程序”啟動高可用向?qū)?,在選擇服務(wù)或應(yīng)用程序?qū)υ捒蛑校瑥姆?wù)列表中選擇虛擬機,然后點擊“下一步”,顯示選擇虛擬機對話框,選擇你想啟用實時遷移的VM,我選擇前面的vWS08-SQL01 VM,如果沒有執(zhí)行這一步VM是不能運行的。
在VM名字前選中復(fù)選框,一路點擊“下一步”結(jié)束向?qū)?,最后會顯示一個確認(rèn)對話框和一個摘要信息對話框,如果你看到有“成功”的標(biāo)志,就表明VM啟用實時遷移成功。
#p#
遷移!
至此,可以使用故障轉(zhuǎn)移集群管理器啟動一個實時遷移了,展開服務(wù)和應(yīng)用程序節(jié)點,然后選擇它下面的VM節(jié)點,這時會顯示一個摘要面板,顯示VM的狀態(tài),如圖6所示。
圖 6 VM摘要信息面板
在圖6中,你可以看到VM vWS08-SQL01正在運行中,目前屬于WS08R2-S1節(jié)點,要啟動實時遷移,轉(zhuǎn)到行為面板,點擊“實時遷移虛擬機”選項,飛出一個菜單提示你指定目標(biāo)節(jié)點,我這里選擇“1-實時遷移到節(jié)點WS08R2-S2”,點擊這個選項啟動實時遷移,摘要信息窗口中的狀態(tài)改為正在運行實時遷移。
實時遷移需要的時間取決于VM的大小和活動,以及兩節(jié)點之間網(wǎng)絡(luò)速度和網(wǎng)絡(luò)流量,在我的測試網(wǎng)絡(luò)中通常只需要10秒,最多只要1分鐘,實時遷移完成后,摘要信息面板又重新顯示VM的當(dāng)前所有者,正常情況下就是目標(biāo)節(jié)點的名字。
#p#
虛擬化樂土
實時遷移解決了計劃內(nèi)停機時間,它奠定了動態(tài)數(shù)據(jù)中心的基礎(chǔ),雖然實時遷移的步驟不少,如果你仔細(xì)瀏覽就會發(fā)現(xiàn)其實就幾個關(guān)鍵點,相信你有了Hyper-V實時遷移的幫助,一定會在虛擬化道路上快樂地前行!
【51CTO.com譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處?!?/p>
原文:Hyper-V Live Migration: A Step-by-Step Guide 作者:Michael Otey
【編輯推薦】