本申請(qǐng)涉及云計(jì)算技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)復(fù)制的方法、裝置和虛擬化系統(tǒng)。
背景技術(shù):
在云計(jì)算場(chǎng)景下,隨著虛擬機(jī)技術(shù)的出現(xiàn),云服務(wù)獲得大規(guī)模應(yīng)用。大量的客戶將基礎(chǔ)設(shè)施不斷地搬遷至云端。云服務(wù)提供商為了滿足客戶對(duì)于云服務(wù)日益增長(zhǎng)的需求,在服務(wù)器資源池中不斷增加新服務(wù)器以支撐云服務(wù)的正常運(yùn)行,設(shè)置在服務(wù)器上的虛擬機(jī)提供云服務(wù)。
現(xiàn)有技術(shù)提供了使用鏡像創(chuàng)建虛擬機(jī)的方法,系統(tǒng)管理員根據(jù)業(yè)務(wù)要求在控制臺(tái)上下發(fā)鏡像創(chuàng)建虛擬機(jī)的請(qǐng)求,設(shè)定源鏡像、目的數(shù)據(jù)存儲(chǔ)以及虛擬機(jī)的相關(guān)配置(中央處理器cpu、內(nèi)存、網(wǎng)絡(luò)以及磁盤等資源配置),虛擬資源管理器(virtualresourcemanager,vrm)獲取到鏡像創(chuàng)建虛擬機(jī)的請(qǐng)求后,通過(guò)資源調(diào)度策略(cpu負(fù)載、內(nèi)存使用率、網(wǎng)絡(luò)帶寬以及存儲(chǔ)輸入輸出io時(shí)延等)選擇出一個(gè)主機(jī)來(lái)執(zhí)行拷貝操作。計(jì)算代理節(jié)點(diǎn)連接源存儲(chǔ),讀取源存儲(chǔ)中鏡像的數(shù)據(jù),將數(shù)據(jù)寫到目的數(shù)據(jù)存儲(chǔ)上。但是,鏡像數(shù)據(jù)復(fù)制受限于主機(jī)的性能,導(dǎo)致拷貝速度慢。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)公開了一種數(shù)據(jù)復(fù)制的方法、裝置和虛擬化系統(tǒng),在使用鏡像創(chuàng)建虛擬機(jī)時(shí),可以提高鏡像數(shù)據(jù)的拷貝速度。
第一方面,本發(fā)明實(shí)施例公開了一種虛擬化系統(tǒng),所述虛擬化系統(tǒng)包括虛擬資源管理器以及至少兩個(gè)主機(jī),
所述虛擬資源管理器,用于接收用戶設(shè)備的鏡像導(dǎo)出請(qǐng)求,所述鏡像導(dǎo)出請(qǐng)求攜帶虛擬機(jī)的標(biāo)識(shí);
所述虛擬資源管理器,還用于根據(jù)所述虛擬機(jī)的標(biāo)識(shí)確定所述虛擬機(jī)的源卷以及所述虛擬機(jī)的鏡像文件的目的存儲(chǔ)地址;
所述虛擬資源管理器,還用于確定執(zhí)行數(shù)據(jù)復(fù)制操作的至少兩個(gè)主機(jī),向所述至少兩個(gè)主機(jī)分別發(fā)送復(fù)制請(qǐng)求,所述復(fù)制請(qǐng)求攜帶所述虛擬機(jī)的源卷的起始位置、偏移量、鏡像子文件標(biāo)識(shí)以及所述目的存儲(chǔ)地址,其中,發(fā)送給不同主機(jī)的復(fù)制請(qǐng)求攜帶的偏移量不同,所述偏移量用于指示主機(jī)讀取的源卷中的數(shù)據(jù)段的起始位置;
所述至少兩個(gè)主機(jī)中的每個(gè)主機(jī),用于接收所述復(fù)制請(qǐng)求,根據(jù)所述復(fù)制請(qǐng)求中攜帶的所述虛擬機(jī)的源卷的起始位置以及偏移量分別讀取所述源卷中的基準(zhǔn)大小的數(shù)據(jù)段,以生成鏡像子文件,將所述復(fù)制請(qǐng)求攜帶的鏡像子文件標(biāo)識(shí)設(shè)置到生成的所述鏡像子文件,將鏡像子文件存儲(chǔ)到所述目的存儲(chǔ)地址。
通過(guò)上述方式,使得在鏡像導(dǎo)出流程中,虛擬資源管理器可以指定多個(gè)主機(jī)并行完成數(shù)據(jù)復(fù)制操作,提高了鏡像文件的復(fù)制效率,避免了由單個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制所帶來(lái)的性能瓶頸。
在一種可能的實(shí)施方式中,所述至少兩個(gè)主機(jī)中的每個(gè)主機(jī),還用于向所述虛擬資源管理器上報(bào)復(fù)制結(jié)果;
所述虛擬資源管理器,還用于根據(jù)所述至少兩個(gè)主機(jī)上報(bào)的所述復(fù)制結(jié)果,確定所述虛擬機(jī)的源卷是否復(fù)制完,如果否,則從所述至少兩個(gè)主機(jī)中選擇主機(jī)繼續(xù)執(zhí)行數(shù)據(jù)復(fù)制操作,從而將所述虛擬機(jī)的源卷導(dǎo)出為一系列的鏡像子文件,存儲(chǔ)在所述目的存儲(chǔ)地址。
所述目的存儲(chǔ)地址為統(tǒng)一資源定位符url地址,用于表示鏡像文件的存儲(chǔ)目錄的地址。
在一種可能的實(shí)施方式中,所述資源管理器確定所述虛擬機(jī)的源卷的大小,根據(jù)所述虛擬機(jī)的源卷的大小確定執(zhí)行數(shù)據(jù)復(fù)制操作的主機(jī)的數(shù)量。
所述虛擬資源管理器還可以咨詢鏡像導(dǎo)入流程,具體的,
所述虛擬資源管理器,還用于接收用戶設(shè)備的鏡像導(dǎo)入請(qǐng)求,所述鏡像導(dǎo)入請(qǐng)求中攜帶鏡像文件的源存儲(chǔ)地址以及目的存儲(chǔ)地址,所述鏡像文件的源存儲(chǔ)地址地址表示鏡像文件存儲(chǔ)的目錄,上述目錄中存儲(chǔ)有鏡像文件包括的所有子文件;
所述虛擬資源管理器,還用于確定執(zhí)行數(shù)據(jù)復(fù)制操作的至少兩個(gè)主機(jī),向所述至少兩個(gè)主機(jī)中的每個(gè)主機(jī)發(fā)送復(fù)制請(qǐng)求,所述復(fù)制請(qǐng)求包括所述鏡像文件的源存儲(chǔ)地址、分配給該主機(jī)的鏡像子文件的名稱以及所述目的存儲(chǔ)地址,所述鏡像子文件的名稱包含鏡像標(biāo)識(shí)和所述鏡像子文件標(biāo)識(shí);
所述至少兩個(gè)主機(jī)中的每個(gè)主機(jī),還用于接收所述復(fù)制請(qǐng)求,根據(jù)所述鏡像文件的源存儲(chǔ)地址以及分配給該主機(jī)的鏡像子文件的名稱,從鏡像文件所在的目錄讀取待復(fù)制的鏡像子文件,將讀取的鏡像子文件復(fù)制到目的存儲(chǔ)地址。
所述至少兩個(gè)主機(jī)中的每個(gè)主機(jī),還用于向所述虛擬資源管理器上報(bào)復(fù)制結(jié)果;
所述虛擬資源管理器,還用于根據(jù)所述至少兩個(gè)主機(jī)上報(bào)的所述復(fù)制結(jié)果,確定所述鏡像文件包含的鏡像子文件是否復(fù)制完,如果否,則從所述至少兩個(gè)主機(jī)中選擇主機(jī)繼續(xù)執(zhí)行數(shù)據(jù)復(fù)制操作,從而將所述鏡像文件包含的鏡像子文件全部復(fù)制到所述目的存儲(chǔ)地址。
第二方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)復(fù)制的方法,所述虛擬資源管理器以及所述主機(jī)執(zhí)行上述系統(tǒng)中的功能。
第三方面,本申請(qǐng)?zhí)峁┮环N具備硬件結(jié)構(gòu)的虛擬資源管理器的,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有程序指令,所述處理器執(zhí)行所述程序指令以執(zhí)行第二方面中所述虛擬資源管理器執(zhí)行的步驟。
第四方面,本申請(qǐng)?zhí)峁┝艘环N計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述虛擬資源管理器的所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面各種實(shí)施方式所設(shè)計(jì)的程序。
附圖說(shuō)明
圖1是本發(fā)明實(shí)施例提供的一種虛擬化系統(tǒng)的結(jié)構(gòu)示意圖;
圖2是本發(fā)明實(shí)施例提供的計(jì)算機(jī)設(shè)備示意圖;
圖3是本發(fā)明實(shí)施例提供的一種鏡像導(dǎo)出的流程示意圖;
圖4是本發(fā)明實(shí)施例提供的一種鏡像導(dǎo)入的流程示意圖。
具體實(shí)施方式
參見圖1,為本發(fā)明實(shí)施例提供的一種虛擬化系統(tǒng)的結(jié)構(gòu)示意圖,虛擬化系統(tǒng)包括虛擬資源管理器11、多個(gè)主機(jī)12以及存儲(chǔ)系統(tǒng)13。用戶設(shè)備14通過(guò)網(wǎng)絡(luò)訪問(wèn)虛擬資源管理器,通過(guò)虛擬資源管理器11在主機(jī)12上創(chuàng)建虛擬機(jī),具體的,用戶設(shè)備14可以通過(guò)直接或間接的方式訪問(wèn)虛擬資源管理器11,上述間接的方式可以為用戶設(shè)備14登錄虛擬化系統(tǒng)管理服務(wù)器,通過(guò)虛擬化系統(tǒng)管理服務(wù)器向虛擬資源管理器發(fā)送操作命令。
虛擬資源管理器11,用于向主機(jī)12發(fā)送虛擬機(jī)操作命令,包括創(chuàng)建虛擬機(jī)、啟動(dòng)虛擬機(jī)以及刪除虛擬機(jī)等命令,虛擬資源管理器11可以采用獨(dú)立的物理服務(wù)器或者物理服務(wù)器集群來(lái)實(shí)現(xiàn)。
主機(jī)12上運(yùn)行虛擬機(jī),為用戶提供計(jì)算能力。主機(jī)12通過(guò)網(wǎng)絡(luò)訪問(wèn)存儲(chǔ)系統(tǒng)13。
存儲(chǔ)系統(tǒng)13為主機(jī)12提供存儲(chǔ)能力,存儲(chǔ)系統(tǒng)13由多個(gè)存儲(chǔ)服務(wù)器或存儲(chǔ)陣列等存儲(chǔ)設(shè)備構(gòu)成,存儲(chǔ)服務(wù)器或存儲(chǔ)陣列作為鏡像服務(wù)器為用戶提供鏡像存儲(chǔ)服務(wù)。在一種可能的實(shí)施方式中,存儲(chǔ)系統(tǒng)13可以為網(wǎng)絡(luò)附屬存儲(chǔ)(networkattachedstorage,網(wǎng)絡(luò)附屬存儲(chǔ))系統(tǒng),任意一個(gè)主機(jī)12均可以通過(guò)網(wǎng)絡(luò)訪問(wèn)存儲(chǔ)系統(tǒng)13中的數(shù)據(jù)。
鏡像服務(wù)器用于存儲(chǔ)虛擬機(jī)鏡像文件,本發(fā)明實(shí)施例中,在鏡像服務(wù)器上存放的鏡像文件由多個(gè)鏡像子文件構(gòu)成。鏡像子文件的名稱包括鏡像標(biāo)識(shí)以及子文件標(biāo)識(shí),其中,鏡像標(biāo)識(shí)用于識(shí)別鏡像,鏡像子文件標(biāo)識(shí)用于標(biāo)識(shí)鏡像子文件在鏡像文件中的順序,例如,鏡像文件為8gb,鏡像服務(wù)器采用1gb為基本單位對(duì)鏡像進(jìn)行拆分,得到8個(gè)鏡像子文件,8個(gè)鏡像子文件的標(biāo)識(shí)可以分別為0-7,用于標(biāo)識(shí)鏡像子文件在鏡像文件中的順序。進(jìn)一步的,在鏡像的配置文件中可以記錄鏡像文件的大小。
在本發(fā)明實(shí)施例中,虛擬資源管理器11獲取處理策略,根據(jù)處理策略確定可用主機(jī)以及需要復(fù)制的鏡像的子文件。在一種可能的實(shí)施方式中,處理策略包括資源可用情況,資源管理服務(wù)器11根據(jù)各個(gè)主機(jī)12的資源可用情況選擇可用的主機(jī),確定執(zhí)行數(shù)據(jù)復(fù)制的主機(jī)列表;進(jìn)一步的,處理策略還包括子文件分配策略,虛擬資源管理器11為主機(jī)列表中的每個(gè)主機(jī)分配需要執(zhí)行數(shù)據(jù)復(fù)制的子文件。上述資源可用情況包括但不限于cpu資源、內(nèi)存資源、網(wǎng)絡(luò)資源以及存儲(chǔ)資源的可用情況。示例性的,鏡像文件的規(guī)格設(shè)置為100gb,待復(fù)制的鏡像文件的實(shí)際大小為8g,虛擬資源管理器11根據(jù)資源可用情況確定執(zhí)行數(shù)據(jù)復(fù)制的5個(gè)主機(jī),那么第一個(gè)主機(jī)復(fù)制part0子文件、第二個(gè)主機(jī)復(fù)制part1子文件……第5個(gè)主機(jī)拷復(fù)制part4子文件,當(dāng)某個(gè)主機(jī)復(fù)制結(jié)束后,虛擬資源管理器11繼續(xù)將剩余的待復(fù)制子文件分配給該主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作,直至所有的子文件都復(fù)制完成。
本發(fā)明實(shí)施例提供的數(shù)據(jù)復(fù)制的實(shí)施方式中,將虛擬機(jī)鏡像進(jìn)行分片存儲(chǔ),各個(gè)鏡像子文件同時(shí)由選定的多個(gè)主機(jī)并發(fā)讀取,提高數(shù)據(jù)復(fù)制的速度。進(jìn)一步的,當(dāng)某個(gè)子文件讀取失敗時(shí),虛擬資源管理器11可以把讀取失敗的子文件重新分配給其他主機(jī),由其他主機(jī)重新執(zhí)行數(shù)據(jù)復(fù)制操作,提升容錯(cuò)能力。鏡像的目的存儲(chǔ)位置共享給選定的多個(gè)主機(jī),每個(gè)主機(jī)把自身負(fù)責(zé)復(fù)制的鏡像子文件寫入到目的存儲(chǔ)位置即可,數(shù)據(jù)寫入的理論性能是單個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作的n倍(n為選定的執(zhí)行數(shù)據(jù)復(fù)制操作的主機(jī)數(shù)量)。
在具體的實(shí)施方式中,虛擬資源管理器11、主機(jī)12以及鏡像服務(wù)器可以為圖2所示的硬件結(jié)構(gòu)。
示例性的,如圖2所示,為本發(fā)明實(shí)施例提供的計(jì)算機(jī)設(shè)備示意圖。計(jì)算機(jī)設(shè)備200包括至少一個(gè)處理器201,通信總線202,存儲(chǔ)器203以及至少一個(gè)通信接口204。
處理器201可以是一個(gè)通用中央處理器(cpu),微處理器,特定應(yīng)用集成電路(application-specificintegratedcircuit,asic),或一個(gè)或多個(gè)用于控制本發(fā)明方案程序執(zhí)行的集成電路。
通信總線202可包括一通路,在上述組件之間傳送信息。所述通信接口304,使用任何收發(fā)器一類的裝置,用于與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無(wú)線接入網(wǎng)(ran),無(wú)線局域網(wǎng)(wirelesslocalareanetworks,wlan)等。
存儲(chǔ)器203可以是只讀存儲(chǔ)器(read-onlymemory,rom)或可存儲(chǔ)靜態(tài)信息和指令的其他類型的靜態(tài)存儲(chǔ)設(shè)備,隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram)或者可存儲(chǔ)信息和指令的其他類型的動(dòng)態(tài)存儲(chǔ)設(shè)備,也可以是電可擦可編程只讀存儲(chǔ)器(electricallyerasableprogrammableread-onlymemory,eeprom)、只讀光盤(compactdiscread-onlymemory,cd-rom)或其他光盤存儲(chǔ)、光碟存儲(chǔ)(包括壓縮光碟、激光碟、光碟、數(shù)字通用光碟、藍(lán)光光碟等)、磁盤存儲(chǔ)介質(zhì)或者其他磁存儲(chǔ)設(shè)備、或者能夠用于攜帶或存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計(jì)算機(jī)存取的任何其他介質(zhì),但不限于此。存儲(chǔ)器可以是獨(dú)立存在,通過(guò)總線與處理器相連接。存儲(chǔ)器也可以和處理器集成在一起。
其中,所述存儲(chǔ)器203用于存儲(chǔ)執(zhí)行本發(fā)明方案的應(yīng)用程序代碼,并由處理器201來(lái)控制執(zhí)行。所述處理器201用于執(zhí)行所述存儲(chǔ)器203中存儲(chǔ)的應(yīng)用程序代碼。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,處理器201可以包括一個(gè)或多個(gè)cpu,例如圖2中的cpu0和cpu1。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,計(jì)算機(jī)設(shè)備200可以包括多個(gè)處理器,例如圖2中的處理器201和處理器208。這些處理器中的每一個(gè)可以是一個(gè)單核(single-cpu)處理器,也可以是一個(gè)多核(multi-cpu)處理器。這里的處理器可以指一個(gè)或多個(gè)設(shè)備、電路、和/或用于處理數(shù)據(jù)(例如計(jì)算機(jī)程序指令)的處理核。
在具體實(shí)現(xiàn)中,作為一種實(shí)施例,計(jì)算機(jī)設(shè)備200還可以包括輸出設(shè)備205和輸入設(shè)備206。輸出設(shè)備205和處理器201通信,可以以多種方式來(lái)顯示信息。例如,輸出設(shè)備205可以是液晶顯示器(liquidcrystaldisplay,lcd),發(fā)光二級(jí)管(lightemittingdiode,led)顯示設(shè)備,陰極射線管(cathoderaytube,crt)顯示設(shè)備,或投影儀(projector)等。輸入設(shè)備206和處理器201通信,可以以多種方式接受用戶的輸入。例如,輸入設(shè)備206可以是鼠標(biāo)、鍵盤、觸摸屏設(shè)備或傳感設(shè)備等。
上述的計(jì)算機(jī)設(shè)備200可以是一個(gè)通用計(jì)算機(jī)設(shè)備或者是一個(gè)專用計(jì)算機(jī)設(shè)備。在具體實(shí)現(xiàn)中,計(jì)算機(jī)設(shè)備200可以是臺(tái)式機(jī)、便攜式電腦、網(wǎng)絡(luò)服務(wù)器、掌上電腦(personaldigitalassistant,pda)、移動(dòng)手機(jī)、平板電腦、無(wú)線終端設(shè)備、通信設(shè)備、嵌入式設(shè)備或有圖2中類似結(jié)構(gòu)的設(shè)備。本發(fā)明實(shí)施例不限定計(jì)算機(jī)設(shè)備200的類型。
圖1的虛擬資源管理器11、主機(jī)12和鏡像服務(wù)器可以采用圖2所示的計(jì)算機(jī)設(shè)備,存儲(chǔ)器中存儲(chǔ)了一個(gè)或多個(gè)軟件模塊,用于實(shí)現(xiàn)虛擬資源管理器11、主機(jī)12和鏡像服務(wù)器的功能。虛擬資源管理器11、主機(jī)12和鏡像服務(wù)器可以通過(guò)處理器以及存儲(chǔ)器中的程序代碼來(lái)實(shí)現(xiàn)本發(fā)明實(shí)施例的數(shù)據(jù)復(fù)制的方法。
需要說(shuō)明的是,圖2所示的計(jì)算機(jī)設(shè)備僅僅是給出了虛擬化系統(tǒng)中各部分的可能的硬件實(shí)現(xiàn)方式,根據(jù)系統(tǒng)各部分功能的不同或者變化,可以對(duì)計(jì)算機(jī)設(shè)備的硬件組件進(jìn)行增刪,以使得與系統(tǒng)各部分的功能進(jìn)行匹配。
結(jié)合圖1所示的虛擬化系統(tǒng)結(jié)構(gòu)示意圖,如圖3所示,為本發(fā)明實(shí)施例提供的一種鏡像導(dǎo)出的流程示意圖,該數(shù)據(jù)復(fù)制流程包括下述步驟:
步驟301:用戶設(shè)備向虛擬資源管理器發(fā)送鏡像導(dǎo)出請(qǐng)求,鏡像導(dǎo)出請(qǐng)求中攜帶虛擬機(jī)標(biāo)識(shí)。
在一種可能的實(shí)施方式中,用戶使用用戶設(shè)備登錄用戶管理界面,在用戶管理界面查看虛擬機(jī)清單,選擇需要導(dǎo)出的虛擬機(jī),執(zhí)行導(dǎo)出操作。
步驟302:虛擬資源管理器接收鏡像導(dǎo)出請(qǐng)求,根據(jù)虛擬機(jī)標(biāo)識(shí)確定待導(dǎo)出的虛擬機(jī)的源卷以及鏡像文件的目的存儲(chǔ)地址,所述鏡像文件的目的存儲(chǔ)地址用于表示存儲(chǔ)鏡像文件的目錄,虛擬資源管理器發(fā)起鏡像導(dǎo)出任務(wù)并向用戶設(shè)備返回任務(wù)標(biāo)識(shí)。
具體的,所述鏡像文件的目的存儲(chǔ)地址可以采用url(uniformresourelocator,統(tǒng)一資源定位符)地址。
在一種可能的實(shí)施方式中,虛擬資源管理器上配置有各虛擬機(jī)對(duì)應(yīng)的鏡像文件的存儲(chǔ)地址,具有相同屬性的虛擬機(jī)可以存儲(chǔ)在相同的目錄下,所述屬性可以為用戶標(biāo)識(shí)或集群標(biāo)識(shí)。虛擬資源管理器上也可以配置有分配規(guī)則,用于為虛擬機(jī)分配對(duì)應(yīng)的鏡像文件的存儲(chǔ)地址。
步驟303:虛擬資源管理器根據(jù)處理策略選擇執(zhí)行數(shù)據(jù)復(fù)制的多個(gè)主機(jī),具體的,虛擬資源管理器根據(jù)主機(jī)的可用資源情況優(yōu)先選擇可用資源較多的主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作,選擇的主機(jī)的數(shù)量可以根據(jù)虛擬機(jī)源卷的卷文件的大小來(lái)確定。
需要說(shuō)明的是,每個(gè)主機(jī)執(zhí)行一次數(shù)據(jù)復(fù)制可以從所述虛擬機(jī)源卷中復(fù)制基準(zhǔn)大小的數(shù)據(jù),復(fù)制出的上述基準(zhǔn)大小的數(shù)據(jù)作為一個(gè)鏡像子文件。
在一種可能的實(shí)施方式中,鏡像子文件的基準(zhǔn)大小可以設(shè)置為1g,每個(gè)選定的主機(jī)每次復(fù)制1g大小的數(shù)據(jù)作為一個(gè)鏡像子文件,優(yōu)選的,并發(fā)執(zhí)行數(shù)據(jù)復(fù)制操作的主機(jī)的數(shù)量大于小于20個(gè),當(dāng)卷文件大于20g時(shí),選擇20個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作,當(dāng)卷文件小于20g時(shí),使用卷文件大小對(duì)鏡像子文件的大小進(jìn)行取整,取整得到的數(shù)值作為選擇的主機(jī)的數(shù)量,例如,卷文件大小為8g時(shí),選擇8個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作。
步驟304:虛擬資源管理器向選擇的每個(gè)主機(jī)發(fā)送復(fù)制請(qǐng)求,所述復(fù)制請(qǐng)求包含虛擬機(jī)的源卷文件的起始位置、偏移量、鏡像子文件標(biāo)識(shí)以及所述鏡像文件的目的存儲(chǔ)地址。
虛擬資源管理器將每個(gè)主機(jī)要復(fù)制的虛擬機(jī)源卷的數(shù)據(jù)起始位置通知給各主機(jī),各主機(jī)從源卷的起始位置復(fù)制基準(zhǔn)大小的數(shù)據(jù)到目的存儲(chǔ)地址。各個(gè)主機(jī)分別負(fù)責(zé)復(fù)制虛擬機(jī)源卷的部分?jǐn)?shù)據(jù)段,從而提高了數(shù)據(jù)復(fù)制的效率。
步驟305:每個(gè)主機(jī)收到復(fù)制請(qǐng)求后,根據(jù)所述虛擬機(jī)的源卷文件的起始位置和偏移量,讀取源卷中基準(zhǔn)大小的數(shù)據(jù)作為鏡像子文件,將所述鏡像子文件寫入到目的存儲(chǔ)地址對(duì)應(yīng)的目錄中,鏡像子文件的名稱包含鏡像標(biāo)識(shí)以及鏡像子文件標(biāo)識(shí)。
在一種可能的實(shí)施方式中,子文件標(biāo)識(shí)可以為序列,表示子文件在鏡像文件中的順序,通過(guò)子文件標(biāo)識(shí)即可確定子文件在整個(gè)鏡像文件中的位置。
主機(jī)可以周期性的上報(bào)數(shù)據(jù)復(fù)制的進(jìn)度。當(dāng)虛擬資源管理器在設(shè)置的時(shí)長(zhǎng)(例如5分鐘或者150個(gè)上報(bào)周期)內(nèi)沒(méi)有收到某個(gè)主機(jī)上報(bào)數(shù)據(jù)復(fù)制的進(jìn)度時(shí),則確定該主機(jī)執(zhí)行的數(shù)據(jù)復(fù)制操作失敗,將分配給該主機(jī)的鏡像子文件分配給其他主機(jī)進(jìn)行數(shù)據(jù)復(fù)制。在網(wǎng)絡(luò)不穩(wěn)定的場(chǎng)景,也可以實(shí)現(xiàn)鏡像的正常復(fù)制,降低了失敗的概率。
步驟306:虛擬資源管理器接收各個(gè)主機(jī)返回的復(fù)制結(jié)果,確定是否還有沒(méi)有復(fù)制的鏡像子文件,如果有,則把沒(méi)有復(fù)制的鏡像子文件分配給前述選擇的主機(jī),繼續(xù)執(zhí)行數(shù)據(jù)復(fù)制操作。
步驟307:當(dāng)所有鏡像子文件都成功寫入到目的數(shù)據(jù)存儲(chǔ)后,虛擬資源管理器向用戶設(shè)備返回導(dǎo)出響應(yīng)。
步驟301-步驟307為鏡像導(dǎo)出流程,將虛擬機(jī)鏡像分割為多個(gè)鏡像子文件,通過(guò)選擇多個(gè)主機(jī)同時(shí)執(zhí)行數(shù)據(jù)復(fù)制操作,將鏡像的多個(gè)鏡像子文件導(dǎo)出到目的數(shù)據(jù)存儲(chǔ),提高了鏡像導(dǎo)出的效率。
進(jìn)一步的,如圖4所示,本發(fā)明實(shí)施例還提供了一種鏡像導(dǎo)入的流程示意圖,包括:
步驟401:用戶設(shè)備向虛擬資源管理器發(fā)送鏡像導(dǎo)入請(qǐng)求,所述鏡像導(dǎo)入請(qǐng)求中攜帶鏡像文件的源存儲(chǔ)地址以及目的存儲(chǔ)地址,所述鏡像文件的源存儲(chǔ)地址地址表示鏡像文件存儲(chǔ)的目錄,上述目錄中存儲(chǔ)有鏡像文件包括的所有子文件。
步驟402:虛擬資源管理器根據(jù)所述鏡像文件的源存儲(chǔ)地址發(fā)起鏡像導(dǎo)入任務(wù)并向用戶設(shè)備返回任務(wù)標(biāo)識(shí)。
步驟403:虛擬資源管理器根據(jù)處理策略選擇執(zhí)行數(shù)據(jù)復(fù)制操作的多個(gè)主機(jī),將鏡像文件存儲(chǔ)的目錄中的鏡像子文件分配給選擇的各個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作。主機(jī)的選擇方式與步驟303類似,虛擬資源管理器根據(jù)鏡像子文件的數(shù)量確定選擇的主機(jī)的數(shù)量。
步驟404:虛擬資源管理器向選擇的每個(gè)主機(jī)發(fā)送復(fù)制請(qǐng)求,所述復(fù)制請(qǐng)求包括所述鏡像文件的源存儲(chǔ)地址、分配給該主機(jī)的鏡像子文件的名稱以及所述目的存儲(chǔ)地址。
步驟405:各個(gè)主機(jī)接收所述復(fù)制請(qǐng)求,根據(jù)所述鏡像文件的源存儲(chǔ)地址以及分配給該主機(jī)的鏡像子文件的名稱,從鏡像文件所在的目錄讀取待復(fù)制的鏡像子文件,將讀取的鏡像子文件復(fù)制到目的存儲(chǔ)地址。
具體的,各個(gè)主機(jī)通過(guò)與存儲(chǔ)系統(tǒng)之間的連接,訪問(wèn)所述鏡像文件的存儲(chǔ)地址所在的鏡像服務(wù)器,讀取鏡像子文件。
步驟406:虛擬資源管理器接收各個(gè)主機(jī)返回的復(fù)制結(jié)果,確定是否還有沒(méi)有復(fù)制的鏡像子文件,如果有,則把沒(méi)有復(fù)制的鏡像子文件分配給前述選擇的主機(jī),繼續(xù)執(zhí)行數(shù)據(jù)復(fù)制操作。
步驟407:當(dāng)鏡像的所有子文件都復(fù)制完成后后,虛擬資源管理器向用戶設(shè)備返回導(dǎo)入響應(yīng)。
步驟308-314為鏡像導(dǎo)入流程,與前述鏡像導(dǎo)出流程類似的是,鏡像導(dǎo)入流程中,各主機(jī)可以采用相同的上報(bào)方式向虛擬資源管理器上報(bào)數(shù)據(jù)復(fù)制的進(jìn)度;資源服務(wù)器采用相同的方式確定子文件復(fù)制是否失敗,如果失敗,則重新選擇其他主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作。
在上述鏡像導(dǎo)出和鏡像導(dǎo)入流程中,虛擬資源管理器為虛擬機(jī)選擇多個(gè)主機(jī),由多個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制操作,通過(guò)在復(fù)制請(qǐng)求中指定各虛擬機(jī)復(fù)制的鏡像子文件,使得各個(gè)主機(jī)并行復(fù)制鏡像文件包括的鏡像子文件,提高了鏡像文件的復(fù)制效率,避免了由單個(gè)主機(jī)執(zhí)行數(shù)據(jù)復(fù)制所帶來(lái)的性能瓶頸。
虛擬資源管理器可以采用如圖2所示的計(jì)算機(jī)設(shè)備來(lái)實(shí)現(xiàn),或者由軟件模塊實(shí)現(xiàn)。
在上述實(shí)施例中,可以全部或部分地通過(guò)軟件、硬件、固件或其他任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以全部或部分地以計(jì)算機(jī)程序產(chǎn)品的形式實(shí)現(xiàn)。所述計(jì)算機(jī)程序產(chǎn)品包括一個(gè)或多個(gè)計(jì)算機(jī)指令。在計(jì)算機(jī)上加載或執(zhí)行所述計(jì)算機(jī)程序指令時(shí),全部或部分地產(chǎn)生按照本發(fā)明實(shí)施例所述的流程或功能。所述計(jì)算機(jī)可以通用計(jì)算機(jī)、專用計(jì)算機(jī)、計(jì)算機(jī)網(wǎng)絡(luò)、或者其他可編程裝置。所述計(jì)算機(jī)指令可以存在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,或者從一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)向另一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)傳輸,例如,所述計(jì)算機(jī)指令可以從一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或數(shù)據(jù)中心通過(guò)有線(例如紅外、無(wú)線、微波等)方式向另一個(gè)網(wǎng)站站點(diǎn)、計(jì)算機(jī)、服務(wù)器或數(shù)據(jù)中心進(jìn)行傳輸。所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是計(jì)算機(jī)能夠存取的任何可用介質(zhì)或者是包含一個(gè)或多個(gè)可用介質(zhì)集合的服務(wù)器、數(shù)據(jù)中心等數(shù)據(jù)存儲(chǔ)設(shè)備。所述可用介質(zhì)可以是磁性介質(zhì)(例如,軟盤、硬盤、磁帶)、光介質(zhì)(例如,dvd)、或者半導(dǎo)體介質(zhì)。半導(dǎo)體介質(zhì)可以是固態(tài)硬盤(solidstatedisk,ssd)。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員根據(jù)本發(fā)明申請(qǐng)?zhí)峁┑木哂袑?shí)施例方式,可想到變化或替換。