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