一種虛擬化應(yīng)用中快速初始化磁盤的方法
【專利摘要】本發(fā)明提供一種虛擬化應(yīng)用中快速初始化磁盤的方法,其具體實(shí)施過(guò)程為:存儲(chǔ)陣列硬件收到來(lái)自虛擬主機(jī)的初始化請(qǐng)求,并分配所需的資源,檢查其合法性,其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請(qǐng)求,并返回特定的感知數(shù)據(jù);進(jìn)行虛擬磁盤初始化操作;進(jìn)行物理磁盤初始化操作;將虛擬主機(jī)初始化磁盤的請(qǐng)求轉(zhuǎn)化為寫入磁盤數(shù)據(jù)的操作。該一種虛擬化應(yīng)用中快速初始化磁盤的方法和現(xiàn)有技術(shù)相比,可在虛擬化應(yīng)用中快速初始化磁盤數(shù)據(jù),解決現(xiàn)有此類操作給服務(wù)器主機(jī)帶來(lái)資源消耗過(guò)大的問題,實(shí)現(xiàn)將負(fù)載轉(zhuǎn)移到存儲(chǔ)硬件,提升系統(tǒng)整體性能;實(shí)用性強(qiáng),易于推廣。
【專利說(shuō)明】一種虛擬化應(yīng)用中快速初始化磁盤的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,具體的說(shuō)是一種虛擬化應(yīng)用中快速初始化磁盤的方法。
【背景技術(shù)】
[0002]VMware虛擬化平臺(tái)基于可投入業(yè)務(wù)使用的體系結(jié)構(gòu)構(gòu)建。使用VMware vSphere等軟件可轉(zhuǎn)變或“虛擬化”基于x86的計(jì)算機(jī)的硬件資源(包括CPU、RAM、硬盤和網(wǎng)絡(luò)控制器),以創(chuàng)建功能齊全、可像“真實(shí)”計(jì)算機(jī)一樣運(yùn)行其自身操作系統(tǒng)和應(yīng)用程序的虛擬機(jī)。每個(gè)虛擬機(jī)都包含一套完整的系統(tǒng),因而不會(huì)有潛在沖突。VMware虛擬化的工作原理是,直接在計(jì)算機(jī)硬件或主機(jī)操作系統(tǒng)上面插入一個(gè)精簡(jiǎn)的軟件層。該軟件層包含一個(gè)以動(dòng)態(tài)和透明方式分配硬件資源的虛擬機(jī)監(jiān)視器(即“虛擬化管理程序”)。多個(gè)操作系統(tǒng)可以同時(shí)運(yùn)行在單臺(tái)物理機(jī)上,彼此之間共享硬件資源。由于是將整臺(tái)計(jì)算機(jī)(包括CPU、內(nèi)存、操作系統(tǒng)和網(wǎng)絡(luò)設(shè)備)封裝起來(lái),因此虛擬機(jī)可與所有標(biāo)準(zhǔn)的x86操作系統(tǒng)、應(yīng)用程序和設(shè)備驅(qū)動(dòng)程序完全兼容??梢酝瑫r(shí)在單臺(tái)計(jì)算機(jī)上安全運(yùn)行多個(gè)操作系統(tǒng)和應(yīng)用程序,每個(gè)操作系統(tǒng)和應(yīng)用程序都可以在需要時(shí)訪問其所需的資源。
[0003]ESX是VMware的企業(yè)級(jí)虛擬化產(chǎn)品,是vmware虛擬化的平臺(tái)基礎(chǔ),部署于服務(wù)器上。它是具有高級(jí)資源管理功能高效,靈活的虛擬主機(jī)平臺(tái),完美匹配企業(yè)數(shù)據(jù)中心,通過(guò)提高資源使用率,擴(kuò)展計(jì)算機(jī)性能和優(yōu)化服務(wù)器,VMware ESX服務(wù)器幫助企業(yè)降低計(jì)算機(jī)基礎(chǔ)構(gòu)架的成本。
[0004]從廣義的角度講,vStorage API是一種能讓虛擬基礎(chǔ)套件和存儲(chǔ)硬件更加緊密結(jié)合的機(jī)制:為虛擬套件提供解決方案的存儲(chǔ)硬件。VMware或者第三方管理軟件。為運(yùn)行在虛擬機(jī)中的應(yīng)用程序提供更好的存儲(chǔ)服務(wù)質(zhì)量。
[0005]VAAI (vStorage API for Array Integration)是更大的 vStorage API 規(guī)范的一個(gè)子集,主要是利用硬件卸載特性提升性能。
[0006]虛擬磁盤一個(gè)非常常見的操作是初始化大容量磁盤數(shù)據(jù)為零以保持虛擬機(jī)之間相互隔離。在目前的條件下這種初始化會(huì)占用主機(jī)資源包括CPU周期,DMA存儲(chǔ)池和HBA里的SCSI命令隊(duì)列。特別是在高負(fù)載10情況下這種占用主機(jī)資源的操作將大大降低系統(tǒng)的性能,成為業(yè)務(wù)瓶頸。因此有必要利用一種新的機(jī)制來(lái)改善這種狀況,以提升系統(tǒng)的性能。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的技術(shù)任務(wù)是解決現(xiàn)有技術(shù)的不足,提供一種虛擬化應(yīng)用中快速初始化磁盤的方法。
[0008]本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,該一種虛擬化應(yīng)用中快速初始化磁盤的方法,其具體實(shí)施過(guò)程為:
一、存儲(chǔ)陣列硬件收到來(lái)自虛擬主機(jī)的初始化請(qǐng)求,并分配所需的資源,檢查其合法性,其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請(qǐng)求,并返回特定的感知數(shù)據(jù);
二、進(jìn)行虛擬磁盤初始化操作;
三、進(jìn)行物理磁盤初始化操作;
四、將虛擬主機(jī)初始化磁盤的請(qǐng)求轉(zhuǎn)化為寫入磁盤數(shù)據(jù)的操作。
[0009]所述步驟二的詳細(xì)過(guò)程為:存儲(chǔ)陣列中的磁盤通過(guò)VM虛擬層映射到服務(wù)器主機(jī)中的虛擬主機(jī),此時(shí)磁盤經(jīng)過(guò)虛擬層VMFS文件系統(tǒng)被映射為文件,虛擬主機(jī)發(fā)出初始化磁盤的命令,進(jìn)行VMFS文件系統(tǒng)中的文件操作,然后由VMFS文件系統(tǒng)將請(qǐng)求通過(guò)FC或者ISCSI協(xié)議傳輸?shù)酱鎯?chǔ)系統(tǒng)中,存儲(chǔ)系統(tǒng)再做出相應(yīng)的處理,檢查是否需要執(zhí)行自精簡(jiǎn)操作,如果是將執(zhí)行自精簡(jiǎn)操作以初始化磁盤,而不寫入數(shù)據(jù),否則執(zhí)行寫入磁盤的操作。
[0010]所述步驟三的操作過(guò)程為:服務(wù)器主機(jī)端向存儲(chǔ)硬件端發(fā)出命令以初始化磁盤數(shù)據(jù),存儲(chǔ)硬盤端在接收到該命令后會(huì)根據(jù)數(shù)據(jù)IO的大小進(jìn)行動(dòng)態(tài)處理:在數(shù)據(jù)量很大的情況下,將次命令請(qǐng)求拆分為多次IO請(qǐng)求,系統(tǒng)將做并行處理;在數(shù)據(jù)量較小的情況下,將直接IO操作。
[0011 ] 所述步驟三的詳細(xì)操作過(guò)程為:物理磁盤被裸映射到服務(wù)器中的VM虛擬主機(jī),當(dāng)虛擬主機(jī)向磁盤發(fā)送初始化的命令以初始化磁盤的某一部分時(shí),存儲(chǔ)硬件系統(tǒng)在接收到該命令后將執(zhí)行初始化磁盤的寫操作:如果需要初始化的IO數(shù)據(jù)量比較大,那么將此操作拆分成多個(gè)本地SCSI命令寫操作完成,如果需要初始化的IO數(shù)據(jù)量較小,那么存儲(chǔ)硬件系統(tǒng)將直接進(jìn)行寫操作,對(duì)小數(shù)據(jù)量來(lái)說(shuō)這是高效的。
[0012]本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
本發(fā)明的一種虛擬化應(yīng)用中快速初始化磁盤的方法可在虛擬化應(yīng)用中快速初始化磁盤數(shù)據(jù),解決現(xiàn)有此類操作給服務(wù)器主機(jī)帶來(lái)資源消耗過(guò)大的問題,實(shí)現(xiàn)將負(fù)載轉(zhuǎn)移到存儲(chǔ)硬件,提升系統(tǒng)整體性能;實(shí)用性強(qiáng),易于推廣。
【專利附圖】
【附圖說(shuō)明】
[0013]附圖1為物理磁盤初始化示意圖。
[0014]附圖2為虛擬磁盤初始化示意圖。
[0015]附圖3是本發(fā)明磁盤初始化處理流程圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖對(duì)本發(fā)明的一種虛擬化應(yīng)用中快速初始化磁盤的方法作以下詳細(xì)說(shuō)明。
[0017]為了很好的提升系統(tǒng)性能,本發(fā)明通過(guò)在虛擬化的VAAI特性中的快速初始化磁盤操作,減輕服務(wù)器主機(jī)端的負(fù)載,而存儲(chǔ)陣列硬件在實(shí)現(xiàn)這種卸載的過(guò)程中,能根據(jù)主機(jī)端的要求動(dòng)態(tài)處理;如果服務(wù)器主機(jī)是基于虛擬機(jī)向存儲(chǔ)陣列硬件發(fā)送的初始化操作請(qǐng)求,則陣列可能并不會(huì)實(shí)際執(zhí)行初始化操作,而是執(zhí)行自精簡(jiǎn)操作或者后臺(tái)運(yùn)行其他操作;而如果服務(wù)器是基于直接物理映射的磁盤向存儲(chǔ)陣列發(fā)起初始化操作請(qǐng)求,即不經(jīng)過(guò)虛擬磁盤這一層,那么存儲(chǔ)陣列則要實(shí)際執(zhí)行初始化磁盤的操作,在這一過(guò)程中,系統(tǒng)根據(jù)IO數(shù)據(jù)請(qǐng)求的大小來(lái)決定是轉(zhuǎn)化為多個(gè)本地SCSI命令的IO操作,還是直接處理的方式。
[0018]基于此,現(xiàn)提供一種虛擬化應(yīng)用中快速初始化磁盤的方法。其具體操作過(guò)程如下:
在附圖1中描述了存儲(chǔ)陣列中的磁盤直接映射給服務(wù)器中的虛擬主機(jī)時(shí)初始化磁盤的操作。服務(wù)器主機(jī)端將向存儲(chǔ)硬件端發(fā)出命令以初始化磁盤數(shù)據(jù),存儲(chǔ)端在接收到該命令后會(huì)根據(jù)數(shù)據(jù)IO的大小進(jìn)行動(dòng)態(tài)處理。在數(shù)據(jù)量很大的情況下,將次命令請(qǐng)求拆分為多次IO請(qǐng)求,系統(tǒng)將做并行處理;在數(shù)據(jù)量較小的情況下,將直接IO操作。
[0019]此時(shí)物理磁盤被裸映射到服務(wù)器中的VM虛擬主機(jī),而沒有經(jīng)過(guò)VM虛擬層,其中圖中的extentl,…,extent N表示磁盤中的存儲(chǔ)內(nèi)容和空間(下同)。當(dāng)虛擬主機(jī)向磁盤發(fā)送初始化的命令以初始化磁盤的某一部分(例如extent3)時(shí),存儲(chǔ)硬件系統(tǒng)在接收到該命令后將執(zhí)行初始化磁盤的寫操作。如果需要初始化的IO數(shù)據(jù)量比較大,那么將此操作拆分成多個(gè)本地SCSI命令寫操作完成,這樣可以保證在較短的時(shí)間內(nèi)返回到虛擬主機(jī)端。如果需要初始化的IO數(shù)據(jù)量較小,那么存儲(chǔ)硬件系統(tǒng)將直接進(jìn)行寫操作,對(duì)小數(shù)據(jù)量來(lái)說(shuō)這是高效的。
[0020]附圖2描述了存儲(chǔ)陣列中的磁盤通過(guò)VM虛擬層映射到服務(wù)器主機(jī)中的虛擬主機(jī)時(shí)初始化磁盤的操作。磁盤陣列可以選擇在自精簡(jiǎn)的LUN上不真正執(zhí)行初始化操作,因?yàn)橛锌赡艽藭r(shí)磁盤空間還沒有被分配,磁盤陣列可以執(zhí)行自精簡(jiǎn)操作達(dá)到此目的。另外,磁盤陣列也可以執(zhí)行專有機(jī)制后臺(tái)運(yùn)行初始化磁盤的操作,或者只是將需要初始化的磁盤進(jìn)行標(biāo)記,而不是真正執(zhí)行初始化操作。
[0021 ] 此時(shí)磁盤經(jīng) 過(guò)虛擬層VMFS文件系統(tǒng)被映射為文件,而圖1中磁盤在虛擬主機(jī)中為塊設(shè)備。所以虛擬主機(jī)發(fā)出初始化磁盤的命令也就是進(jìn)行VMFS文件系統(tǒng)中的文件操作,然后由VMFS文件系統(tǒng)將請(qǐng)求通過(guò)FC或者ISCSI協(xié)議傳輸?shù)酱鎯?chǔ)系統(tǒng)中,存儲(chǔ)系統(tǒng)再做出相應(yīng)的處理。由于是文件操作,而這個(gè)初始化操作中的磁盤也許還沒被分配給該虛擬主機(jī),所以此時(shí)是不能像圖一那樣執(zhí)行直接的寫操作的,而只能執(zhí)行自精簡(jiǎn)或者其他后臺(tái)運(yùn)行的操作。需要強(qiáng)調(diào)的是,圖2中的存儲(chǔ)硬件也會(huì)如圖1 一樣處理,只不過(guò)多了一種選擇而已,其具體過(guò)程不再詳述。
[0022]附圖3描述了初始化具體處理流程,主要有以下流程實(shí)現(xiàn):
流程100:存儲(chǔ)陣列硬件收到來(lái)自虛擬主機(jī)的初始化請(qǐng)求,并分配所需的資源,檢查其合法性。其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請(qǐng)求,并返回特定的感知數(shù)據(jù)。
[0023]流程200:如圖2所述,檢查是否需要執(zhí)行自精簡(jiǎn)操作,如果是將執(zhí)行自精簡(jiǎn)操作以初始化磁盤,而不是真正寫入數(shù)據(jù),否則執(zhí)行寫入磁盤的操作。
[0024]流程300:如圖1所述,檢查是否組要拆分成多本地寫操作命令請(qǐng)求,如果是則轉(zhuǎn)化為多本地寫操作SCSI命令及可,否則轉(zhuǎn)入正常的寫操作流程。
[0025]流程400:將虛擬主機(jī)初始化磁盤的請(qǐng)求轉(zhuǎn)化為寫入磁盤數(shù)據(jù)的操作。
[0026]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過(guò)程序來(lái)指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來(lái)實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0027]以上所述僅為本發(fā)明的實(shí)施例而已,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種虛擬化應(yīng)用中快速初始化磁盤的方法,其特征在于其具體實(shí)施過(guò)程為: 一、存儲(chǔ)陣列硬件收到來(lái)自虛擬主機(jī)的初始化請(qǐng)求,并分配所需的資源,檢查其合法性,其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請(qǐng)求,并返回特定的感知數(shù)據(jù); 二、進(jìn)行虛擬磁盤初始化操作; 三、進(jìn)行物理磁盤初始化操作; 四、將虛擬主機(jī)初始化磁盤的請(qǐng)求轉(zhuǎn)化為寫入磁盤數(shù)據(jù)的操作。
2.根據(jù)權(quán)利要求1所述的一種虛擬化應(yīng)用中快速初始化磁盤的方法,其特征在于:所述步驟二的詳細(xì)過(guò)程為:存儲(chǔ)陣列中的磁盤通過(guò)VM虛擬層映射到服務(wù)器主機(jī)中的虛擬主機(jī),此時(shí)磁盤經(jīng)過(guò)虛擬層VMFS文件系統(tǒng)被映射為文件,虛擬主機(jī)發(fā)出初始化磁盤的命令,進(jìn)行VMFS文件系統(tǒng)中的文件操作,然后由VMFS文件系統(tǒng)將請(qǐng)求通過(guò)FC或者ISCSI協(xié)議傳輸?shù)酱鎯?chǔ)系統(tǒng)中,存儲(chǔ)系統(tǒng)再做出相應(yīng)的處理,檢查是否需要執(zhí)行自精簡(jiǎn)操作,如果是將執(zhí)行自精簡(jiǎn)操作以初始化磁盤,而不寫入數(shù)據(jù),否則執(zhí)行寫入磁盤的操作。
3.根據(jù)權(quán)利要求2所述的一種虛擬化應(yīng)用中快速初始化磁盤的方法,其特征在于:所述步驟三的操作過(guò)程為:服務(wù)器主機(jī)端向存儲(chǔ)硬件端發(fā)出命令以初始化磁盤數(shù)據(jù),存儲(chǔ)硬盤端在接收到該命令后會(huì)根據(jù)數(shù)據(jù)IO的大小進(jìn)行動(dòng)態(tài)處理:在數(shù)據(jù)量很大的情況下,將次命令請(qǐng)求拆分為多次IO請(qǐng)求,系統(tǒng)將做并行處理;在數(shù)據(jù)量較小的情況下,將直接IO操作。
4.根據(jù)權(quán)利要求1所述的一種虛擬化應(yīng)用中快速初始化磁盤的方法,其特征在于:所述步驟三的詳細(xì)操作過(guò)程為:物理磁盤被裸映射到服務(wù)器中的VM虛擬主機(jī),當(dāng)虛擬主機(jī)向磁盤發(fā)送初始化的命令以初始化磁盤的某一部分時(shí),存儲(chǔ)硬件系統(tǒng)在接收到該命令后將執(zhí)行初始化磁盤的寫操作:如果需要初始化的IO數(shù)據(jù)量比較大,那么將此操作拆分成多個(gè)本地SCSI命令寫操作完成,如果需要初始化的IO數(shù)據(jù)量較小,那么存儲(chǔ)硬件系統(tǒng)將直接進(jìn)行寫操作,對(duì)小數(shù)據(jù)量來(lái)說(shuō)這是高效的。
【文檔編號(hào)】G06F9/455GK103902354SQ201410144078
【公開日】2014年7月2日 申請(qǐng)日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】程維軒 申請(qǐng)人:浪潮電子信息產(chǎn)業(yè)股份有限公司