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