體驗Hyper-V 2.0中的CSV功能
這幾年虛擬化的熱度已經(jīng)毋庸多言,微軟作為計算機軟件業(yè)中世界***的大公司,自然不甘落后。因此在WindowsServer2008開始,微軟推出了Hyper-V,作為企業(yè)級虛擬化技術(shù)的***個產(chǎn)品。Windows2008中的Hyper-V還是1.0版本,很多方面的功能尚有不足之處,最為明顯的一個就是共享磁盤資源的分配和使用。下面我們詳細來看看。
筆者在一個項目中幫客戶把生產(chǎn)環(huán)境的物理服務(wù)器向Hyper-V環(huán)境遷移,客戶的Hyper-V環(huán)境使用的是HP的刀片服務(wù)器,兩臺服務(wù)器組成一個群集,安裝WindowsServer2008x64withHyper-V中文企業(yè)版,共享存儲是HP的SAN。
當時用的Hyper-V還是1.0版本,因此我需要為每個虛擬機在SAN上劃分一個LUN出來,以后也是如此,每要增加一個群集上的虛擬機都需要劃分一個新的LUN,否則這臺虛擬機就不能放在群集的共享存儲了??蛻羝鸪跻w移的物理服務(wù)器是5臺,因此請HP的技術(shù)人員劃分了6個LUN(有一個用來做仲裁盤),在使用SCVMM2008的P2V遷移了5臺服務(wù)器后,客戶覺得還應(yīng)該增加一臺虛擬機做監(jiān)控服務(wù)器,這樣就不得不再次麻煩HP的技術(shù)人員了。等HP的工程師來了后,告訴我們要劃分新的LUN需要干掉原有的LUN重新劃分(之前已經(jīng)使用了所有空間),數(shù)據(jù)自然就都沒了。這樣看起來要增減群集上的虛擬機會受到很大的物理條件制約,造成了很大的不便。這也是我體會到的1.0版本的***不足之處。
另外就是在空間規(guī)劃上,比如為存檔服務(wù)器建立個60G大小的LUN,估計存檔服務(wù)器的虛擬機用這么大就夠了,可是隨著系統(tǒng)運行時間推移,存檔服務(wù)器需要更大的空間,雖然Hyper-V的磁盤編輯工具可以擴展磁盤,但60G大小的LUN是個物理限制,必須先擴大LUN才行,而我們都知道存儲的空間改變是有不小風(fēng)險的。
除此之外的另一個問題就是虛擬機常常需要資源調(diào)整等原因需要在物理機間轉(zhuǎn)換,而一個虛擬機從一個節(jié)點到另一個節(jié)點會有幾秒到幾分鐘的斷線時間(具體時間根據(jù)運行的服務(wù)而不同),這在像數(shù)據(jù)庫這樣的重要應(yīng)用和OCS2007R2前端服務(wù)器這樣的連接敏感的應(yīng)用中都是不允許的。
而幸運的是微軟早已認識到這些不足,并且很快解決了它,這就是我們現(xiàn)在要說的Hyper-V2.0了。
CSV(ClusterSharedVolume),即群集共享卷,是Windows2008R2新增功能,可以說是專為Hyper-V2.0而設(shè)計的。要使用CSV功能,必須先用Windows2008R2建立一個群集,然后在群集上配置群集共享卷。在R2中群集上的磁盤圖標也不同了,如下圖所示,M:和Q:是共享磁盤,圖標和本地磁盤有明顯區(qū)別。
在群集管理器中可以看到一個啟用群集共享卷的菜單,啟用時說明此功能只為Hyper-V設(shè)計,不支持其他應(yīng)用。啟用后在目錄樹中出現(xiàn)群集共享卷,右鍵選擇添加存儲,此時會列出可用存儲,需要注意的是只有可用存儲被列出,也就是不能被其他服務(wù)占用的存儲。在添加了存儲后,大家會看到被添加到共享卷的存儲在兩個節(jié)點上都不在作為磁盤顯示出來了。也就是說兩個節(jié)點都看不到這個磁盤了,那么它去哪里了呢?
大家在群集共享卷項下會看到一個路徑,默認位置是系統(tǒng)盤的ClusterStorage\Volume1目錄,這個其實就是共享磁盤了。以后我們建立的虛擬機都會放在這個路徑下,它看起來是在C:盤的,實則是群集的共享盤。如下圖:
我們建議大家使用SCVMM2008R2來管理Hyper-V群集,很多功能是這個管理軟件才提供的,比如P2V的功能。在SCVMM2008R2中添加了群集主機后,在群集屬性的存儲標簽會看到這個群集共享卷。如下圖:
在建立虛擬機的時候會選擇放置路徑,路徑框中默認位置是C:\ClusterStorage\Volume1。創(chuàng)建出來的虛擬機由于放置在群集上而擁有了容錯能力,其中一個群集節(jié)點出了故障的時候虛擬機會自動轉(zhuǎn)移到另外一個節(jié)點繼續(xù)運行。
虛擬機創(chuàng)建出來后,會在兩個節(jié)點的C:\ClusterStorage\Volume1目錄都看到這個虛擬機,并且在群集管理器中也會看到它。并且當創(chuàng)建更多虛擬機的時候也可以放在這個目錄,只是會以虛擬機的名字新建文件夾而已。如下圖,我建立三個虛擬機,分別以O(shè)CSFE1,OCSFE2和SQL2005來命名。這樣我們就再也不必因為新建虛擬機而重新劃分LUN了,現(xiàn)在只要空間允許,隨便你增減虛擬機。
下面我們再來看看WindowsServer2008R2中的新增能力:LiveMigration。中文譯作實時遷移或活動遷移,系統(tǒng)中為實時遷移,我們以系統(tǒng)為準。在群集管理器中的服務(wù)和應(yīng)用程序下點擊某臺虛擬機,我們會看到將虛擬機實時遷移到另一節(jié)點和將虛擬機快速遷移到另一節(jié)點的選項,從效果上來講,兩者是有區(qū)別的。實時遷移過程中虛擬機對外提供的服務(wù)不會中斷(有Timeout延遲),而快速遷移則不行,會有中斷時間。
在實時遷移過程中我們用另外一臺機器持續(xù)ping這臺虛擬機,會看到timeout時間有所延遲,遷移完成后又恢復(fù)正常延遲。在遷移過程中虛擬機的狀態(tài)一直是正在運行的狀態(tài),只是遷移中網(wǎng)絡(luò)延遲較大。
而快速遷移則會出現(xiàn)一段時間內(nèi)的服務(wù)中斷,虛擬機的狀態(tài)也會在正在運行->正在保存->已保存->正在啟動->正在運行這幾個狀態(tài)間切換。根據(jù)應(yīng)用不同,這幾個狀態(tài)需要花費的時間會有很大不同,比如一臺純凈的虛擬機可能有15秒就可以完成,而一臺運行了數(shù)據(jù)庫的虛擬機可能要幾分鐘才能完成。這對于重要的企業(yè)應(yīng)用來講是很難接受的。
需要提醒大家的是這個功能不是為了群集節(jié)點故障時進行資源轉(zhuǎn)移設(shè)計的,也就是說一個節(jié)點故障,所有群集資源自動轉(zhuǎn)移到其他節(jié)點的時候并不會用到實時遷移。畢竟一個節(jié)點出故障,另外一個節(jié)點檢測到故障并且搶占資源都是需要一些時間的。實時遷移是為了正常情況下我們在多個物理節(jié)點間切換虛擬機而設(shè)計的。
大家看到這個功能不錯,可能會擔(dān)心要求也會很高。其實不然,只要群集的節(jié)點是WindowsServer2008R2,有共用存儲就可以使用這個功能。有了群集共享卷,我們劃分存儲的時候只需要把仲裁資源外的所有空間劃分成一個LUN,然后加入到群集共享卷中,在空間允許的情況下我們可以隨意增加虛擬機,而不必在擔(dān)心虛擬機空間占用高后重新規(guī)劃LUN的問題。在進行物理服務(wù)器維護的時候我們也可以使用實時遷移的功能,把虛擬機遷移到一個節(jié)點上,對另一個節(jié)點進行維護、系統(tǒng)重啟,甚至是重裝系統(tǒng)等操作,而不必擔(dān)心虛擬機切換會造成服務(wù)中斷,而接到無數(shù)的投訴電話了??傊@個功能是Hyper-V2.0中一個很大的亮點,有條件的話我們把它用起來吧。
【編輯推薦】