一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法
【專利摘要】本發(fā)明提供一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法,采用將服務(wù)器主機(jī)中的虛擬機(jī)請遠(yuǎn)程復(fù)制和克隆虛擬磁盤負(fù)載轉(zhuǎn)移到存儲硬件系統(tǒng)中,在此過程中存儲系統(tǒng)根據(jù)該請求的特征動態(tài)執(zhí)行IO操作,允許多遠(yuǎn)多目標(biāo)拷貝操作,大大提高系統(tǒng)性能。該一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法和現(xiàn)有技術(shù)相比,存儲虛擬化應(yīng)用中多源多目標(biāo)拷貝;防止因拷貝源操區(qū)域和目標(biāo)區(qū)域重疊而引起的拷貝混亂;對于只讀的文件,通過斷開拷貝目標(biāo)區(qū)域映射,達(dá)到拷貝的效果,提升存儲系統(tǒng)IO響應(yīng)速率,提高公司產(chǎn)品市場競爭力。
【專利說明】一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)虛擬化應(yīng)用【技術(shù)領(lǐng)域】,更具體地說是虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法。
【背景技術(shù)】
[0002]VMware虛擬化平臺基于可投入業(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ī)。每個虛擬機(jī)都包含一套完整的系統(tǒng),因而不會有潛在沖突。VMware虛擬化的工作原理是,直接在計(jì)算機(jī)硬件或主機(jī)操作系統(tǒng)上面插入一個精簡的軟件層。該軟件層包含一個以動態(tài)和透明方式分配硬件資源的虛擬機(jī)監(jiān)視器(即“虛擬化管理程序”)。多個操作系統(tǒng)可以同時運(yùn)行在單臺物理機(jī)上,彼此之間共享硬件資源。由于是將整臺計(jì)算機(jī)(包括CPU、內(nèi)存、操作系統(tǒng)和網(wǎng)絡(luò)設(shè)備)封裝起來,因此虛擬機(jī)可與所有標(biāo)準(zhǔn)的x86操作系統(tǒng)、應(yīng)用程序和設(shè)備驅(qū)動程序完全兼容??梢酝瑫r在單臺計(jì)算機(jī)上安全運(yùn)行多個操作系統(tǒng)和應(yīng)用程序,每個操作系統(tǒng)和應(yīng)用程序都可以在需要時訪問其所需的資源。
[0003]ESX是VMware的企業(yè)級虛擬化產(chǎn)品,是vmware虛擬化的平臺基礎(chǔ),部署于服務(wù)器上。它是具有高級資源管理功能高效,靈活的虛擬主機(jī)平臺,完美匹配企業(yè)數(shù)據(jù)中心,通過提高資源使用率,擴(kuò)展計(jì)算機(jī)性能和優(yōu)化服務(wù)器,VMware ESX服務(wù)器幫助企業(yè)降低計(jì)算機(jī)基礎(chǔ)構(gòu)架的成本。
[0004]從廣義的角度講,vStorage API是一種能讓虛擬基礎(chǔ)套件和存儲硬件更加緊密結(jié)合的機(jī)制:
為虛擬套件提供解決方案的存儲硬件。
[0005]VMware或者第三方管理軟件。
[0006]為運(yùn)行在虛擬機(jī)中的應(yīng)用程序提供更好的存儲服務(wù)質(zhì)量。
[0007]VAAI (vStorage API for Array Integration)是范圍更大的 vStorage API 規(guī)范的一個子集,主要是利用硬件卸載特性提升性能。
[0008]在虛擬化應(yīng)用中,當(dāng)系統(tǒng)執(zhí)行遠(yuǎn)程復(fù)制和克隆虛擬磁盤時,如果使用傳統(tǒng)的復(fù)制方法將非常耗時,效率低下。為了解決現(xiàn)有此類操作給服務(wù)器主機(jī)帶來資源消耗過大,時間過長的問題,實(shí)現(xiàn)將負(fù)載轉(zhuǎn)移到存儲硬件,提升系統(tǒng)整體性能,現(xiàn)提供一種在存儲虛擬化應(yīng)用中提高磁盤數(shù)據(jù)拷貝效率的叫做全復(fù)制的方法,該方法通過遠(yuǎn)程復(fù)制時發(fā)送全復(fù)制命令請求到存儲系統(tǒng),將大大提高拷貝效率,提升系統(tǒng)整體性能,減輕服務(wù)器負(fù)載。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的技術(shù)任務(wù)是解決現(xiàn)有技術(shù)的不足,提供一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法。
[0010]本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,該一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法,其具體實(shí)現(xiàn)過程為:
一、存儲陣列硬件收到來自虛擬主機(jī)的初始化請求,并分配所需的資源,檢查其合法性,其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請求,并返回特定的感知數(shù)據(jù);
二、執(zhí)行參數(shù)合法性檢測,如果是異步模式請求,需要檢測是否有相同的命令已經(jīng)正在處理;
三、向拷貝源和目標(biāo)LUN發(fā)送查詢命令,根據(jù)返回結(jié)果確定LUN是否可以正常訪問;
四、判斷拷貝源和目標(biāo)區(qū)域是否重疊;
五、執(zhí)行重疊區(qū)域的數(shù)據(jù)拷貝,并標(biāo)記;
六、順序執(zhí)行數(shù)據(jù)拷貝;
七、保留命令處理結(jié)果的狀態(tài)數(shù)據(jù)和命令自身的保留數(shù)據(jù);
八、向服務(wù)器返回處理結(jié)果;
九、根據(jù)定時器判斷保留數(shù)據(jù)時間是否到期,如果未到期,則繼續(xù)保留數(shù)據(jù),如果到期則結(jié)束整個過程。
[0011]本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
本發(fā)明的一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法采用將服務(wù)器主機(jī)中的虛擬機(jī)請遠(yuǎn)程復(fù)制和克隆虛擬磁盤負(fù)載轉(zhuǎn)移到存儲硬件系統(tǒng)中,在此過程中存儲系統(tǒng)根據(jù)該請求的特征動態(tài)執(zhí)行IO操作,允許多遠(yuǎn)多目標(biāo)拷貝操作,大大提高系統(tǒng)性能;存儲系統(tǒng)可以選擇在自精簡的LUN上執(zhí)行斷開拷貝目標(biāo)的短發(fā),用拷貝源代替拷貝目標(biāo),不真正磁盤拷貝操作,而是推遲到對該數(shù)據(jù)區(qū)域執(zhí)行寫操作時;能防止因拷貝源操區(qū)域和目標(biāo)區(qū)域重疊而引起的拷貝混亂;改善錯誤處理機(jī)制,保留請求執(zhí)行的結(jié)束狀態(tài)數(shù)據(jù)和保留數(shù)據(jù),允許用戶自行設(shè)置保留時間;解決現(xiàn)有此類操作給服務(wù)器主機(jī)帶來資源消耗過大,時間過長的問題,實(shí)現(xiàn)將負(fù)載轉(zhuǎn)移到存儲硬件,提升系統(tǒng)整體性能;實(shí)用性強(qiáng),易于推廣。
【專利附圖】
【附圖說明】
[0012]附圖1是本發(fā)明的虛擬化應(yīng)用中全復(fù)制過程虛擬磁盤上的靜態(tài)示圖。
[0013]附圖2是本發(fā)明的全復(fù)制數(shù)據(jù)拷貝處理流程圖。
【具體實(shí)施方式】
[0014]下面結(jié)合附圖對本發(fā)明的一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法作以下詳細(xì)說明。
[0015]本發(fā)明所涉及系統(tǒng)實(shí)現(xiàn)的核心思想是:虛擬化的VAAI特性中的全復(fù)制命令可以減輕服務(wù)器主機(jī)端的負(fù)載,而存儲陣列硬件在實(shí)現(xiàn)這種卸載的過程中,能根據(jù)主機(jī)端的要求動態(tài)處理,存儲可以不執(zhí)行實(shí)際的拷貝動作,而只是執(zhí)行一個重新映射的過程,會大大提高拷貝過程的速度;如果拷貝過程中的拷貝源數(shù)據(jù)區(qū)域和目標(biāo)數(shù)據(jù)區(qū)域有重疊,要先拷貝重疊的區(qū)域,然后再順序拷貝剩下的數(shù)據(jù)。這樣將會防止拷貝數(shù)據(jù)因?yàn)橹丿B而引起的混亂;存儲系統(tǒng)可以支持全復(fù)制的同步請求和異步請求兩種模式;由于全復(fù)制過程復(fù)雜,出現(xiàn)錯誤的幾率大,所以需要完善錯誤機(jī)制處理。全復(fù)制過程將保留命令執(zhí)行結(jié)束狀態(tài)數(shù)據(jù)和保留數(shù)據(jù),其保留時間長度由用戶來設(shè)定,這樣可以滿足需要。[0016]如附圖1、圖2所示,現(xiàn)提供一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法。圖1中提供了虛擬化應(yīng)用中全復(fù)制的靜態(tài)示圖,磁盤經(jīng)過虛擬層VMFS文件系統(tǒng)被映射為文件,和右邊的裸設(shè)備形成對比。VMFS文件系統(tǒng)中的存在于LUN A上的文件被克隆到LUN B上,結(jié)果源文件段〈Si,e2>和<s4, el>被克隆到目標(biāo)文件段<s4, e3>和<sl, eN>,而存儲系統(tǒng)可以不執(zhí)行真正的拷貝操作,而是僅僅是斷開目標(biāo)文件段<s4,e3>和〈Si,eN>,用源文件段<sl,e2>和<s4,el>代替,并將此文件標(biāo)記為只讀,當(dāng)需要對該文件執(zhí)行寫操作的時,再執(zhí)行拷貝工作。
[0017]附圖2描述了初始化具體處理流程,主要有以下流程實(shí)現(xiàn):
流程100:存儲陣列硬件收到來自虛擬主機(jī)的初始化請求,并分配所需的資源,檢查其合法性。其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請求,并返回特定的感知數(shù)據(jù)。
[0018]流程101:執(zhí)行參數(shù)合法性檢測,如果是異步模式請求,需要檢測是否有相同的命令已經(jīng)正在處理。
[0019]流程102:向拷貝源和目標(biāo)LUN發(fā)送INRUIRY查詢命令,根據(jù)返回結(jié)果確定LUN是否可以正常訪問。
[0020]流程103:判斷拷貝源和目標(biāo)區(qū)域是否重疊。
[0021]流程104:執(zhí)行重疊區(qū)域的數(shù)據(jù)拷貝,并標(biāo)記。
[0022]流程105:順序執(zhí)行數(shù)據(jù)拷貝。
[0023]流程106:保留命令處理結(jié)果的狀態(tài)數(shù)據(jù)和命令自身的保留數(shù)據(jù)。
[0024]流程107:向服務(wù)器返回處理結(jié)果。
[0025]流程108:根據(jù)定時器判斷保留數(shù)據(jù)時間是否到期。
[0026]流程109:繼續(xù)保留數(shù)據(jù)。
[0027]在本發(fā)明中,在執(zhí)行數(shù)據(jù)拷貝過程中,特別是有多個源和目標(biāo)的情況下,服務(wù)器不再需要多次向存儲系統(tǒng)發(fā)送拷貝數(shù)據(jù)的命令,而是僅僅發(fā)送一次命令給存儲系統(tǒng)。然后存儲系統(tǒng)異步處理該命令,處理結(jié)束或異常終止情況下向服務(wù)器返回處理結(jié)果,服務(wù)器根據(jù)該結(jié)果做出相應(yīng)的操作。該方法或極大減輕服務(wù)器的IO負(fù)載,優(yōu)化了系統(tǒng)。
[0028]在一些特殊情況下,在同一個LUN中執(zhí)行拷貝時,拷貝源和拷貝目的區(qū)域發(fā)生重疊。如果使用傳統(tǒng)的數(shù)據(jù)拷貝方法,拷貝數(shù)據(jù)可能因覆蓋而破壞源數(shù)據(jù),導(dǎo)致拷貝過程混舌L。在該方法中,會首先檢測出重疊的拷貝源數(shù)據(jù),然后首先將執(zhí)行該重疊區(qū)域的數(shù)據(jù)拷貝,然后進(jìn)行正常的拷貝操作。這樣就避免了因?yàn)榭截惢靵y的發(fā)生。
[0029]拷貝數(shù)據(jù)過程中發(fā)生的應(yīng)用環(huán)境很復(fù)雜,發(fā)生錯誤的類型也是比較多的,現(xiàn)有的拷貝方法錯誤處理不夠全面。當(dāng)執(zhí)行拷貝完成后,存儲系統(tǒng)需要為此次操作的結(jié)果和保留的數(shù)據(jù)保留一段時間,如果超過這段時間客戶端發(fā)送查詢這些數(shù)據(jù),則會提示錯誤。在此方法中將對客戶端返回更友好的提示數(shù)據(jù),并且允許客戶修改保留數(shù)據(jù)的時間。
[0030]本發(fā)明提供的方案,通過對IO請求及系統(tǒng)狀況進(jìn)行評估,能很好的提升系統(tǒng)性倉泛。
[0031]當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。[0032]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個或多個集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0033]以上所述僅為本發(fā)明的實(shí)施例而已,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種虛擬化應(yīng)用中拷貝磁盤數(shù)據(jù)的方法,其特征在于其具體實(shí)現(xiàn)過程為: 一、存儲陣列硬件收到來自虛擬主機(jī)的初始化請求,并分配所需的資源,檢查其合法性,其中合法性檢查包括任務(wù)狀態(tài)檢查和參數(shù)合法性檢查,如果非法將終止該請求,并返回特定的感知數(shù)據(jù); 二、執(zhí)行參數(shù)合法性檢測,如果是異步模式請求,需要檢測是否有相同的命令已經(jīng)正在處理; 三、向拷貝源和目標(biāo)LUN發(fā)送查詢命令,根據(jù)返回結(jié)果確定LUN是否可以正常訪問; 四、判斷拷貝源和目標(biāo)區(qū)域是否重疊; 五、執(zhí)行重疊區(qū)域的數(shù)據(jù)拷貝,并標(biāo)記; 六、順序執(zhí)行數(shù)據(jù)拷貝; 七、保留命令處理結(jié)果的狀態(tài)數(shù)據(jù)和命令自身的保留數(shù)據(jù); 八、向服務(wù)器返回處理結(jié)果; 九、根據(jù)定時器判斷保留數(shù)據(jù)時間是否到期,如果未到期,則繼續(xù)保留數(shù)據(jù),如果到期則結(jié)束整個過程。
【文檔編號】G06F3/06GK103744625SQ201410015533
【公開日】2014年4月23日 申請日期:2014年1月14日 優(yōu)先權(quán)日:2014年1月14日
【發(fā)明者】程維軒 申請人:浪潮電子信息產(chǎn)業(yè)股份有限公司