本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)遷移方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)的普及,將電子數(shù)據(jù)以及計算機系統(tǒng)的應(yīng)用程序加以儲存與備份的需求也隨之增加,尤其是對于具有重大價值的研發(fā)及商品數(shù)據(jù),或是個人數(shù)據(jù)等機密文件,更有將其備份的需求。在現(xiàn)有技術(shù)中,采用在線p2v(onlinephysicaltovirtualmigration,在線從物理機到虛擬機的數(shù)據(jù)遷移),將物理主機上的數(shù)據(jù)遷移到虛擬化平臺,可以減少用戶業(yè)務(wù)中斷時間,在采用在線p2v遷移方式時,主要是利用了windows的卷影復(fù)制服務(wù)(volumnshadowcopyservice,vss,卷影復(fù)制服務(wù))來進行,通過卷影復(fù)制服務(wù),可以在指定時間點給當(dāng)前的物理主機做一個磁盤卷影快照,然后對卷影進行數(shù)據(jù)的復(fù)制,再傳輸?shù)教摂M化后臺。但是,該在線p2v遷移方式具有如下缺陷:由于卷影復(fù)制服務(wù)是基于卷影時間點的快照,因此在該時間點之后的增量數(shù)據(jù)并沒有被同步的遷移到虛擬化平臺,即該虛擬化平臺的虛擬機會丟失卷影時間點之后的增量數(shù)據(jù)。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實現(xiàn)要素:
本發(fā)明的主要目的在于提供一種數(shù)據(jù)遷移方法及裝置,旨在解決現(xiàn)有技術(shù)中采用在線p2v遷移方式時,導(dǎo)致數(shù)據(jù)丟失的技術(shù)問題。
為實現(xiàn)上述目的,本發(fā)明提供一種數(shù)據(jù)遷移方法,該方法包括:
創(chuàng)建卷影時間點,在所述卷影時間點為磁盤創(chuàng)建卷影;并按照所述卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺;
從所述卷影時間點開始記錄磁盤增量數(shù)據(jù);
在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化 平臺;
在將所述磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)所述按照卷影復(fù)制的磁盤數(shù)據(jù)和所述磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機。
優(yōu)選地,所述從所述卷影時間點開始記錄磁盤增量數(shù)據(jù)的步驟包括:
從所述卷影時間點開始通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,并根據(jù)攔截的寫請求更新臟數(shù)據(jù)位圖,所述臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤。
優(yōu)選地,在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的步驟包括:
在完成對所述磁盤的卷影復(fù)制后,查找所述臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位;
將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
優(yōu)選地,在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的步驟還包括:
在將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率,及獲取當(dāng)前網(wǎng)絡(luò)傳輸速率和虛擬化平臺的存儲速率;
根據(jù)所述磁盤增量數(shù)據(jù)的變化率、當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率,確定是否停止向磁盤寫入數(shù)據(jù);
在確定停止向磁盤寫入數(shù)據(jù)時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
優(yōu)選地,在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的步驟還包括:
在將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率;
判斷磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,得到判斷結(jié)果;
若所述判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率,則提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù) 位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
此外,為實現(xiàn)上述目的,本發(fā)明還提供一種數(shù)據(jù)遷移裝置,該裝置包括:
時間點創(chuàng)建模塊,用于創(chuàng)建卷影時間點;
第一復(fù)制模塊,用于在所述卷影時間點為磁盤創(chuàng)建卷影,并按照所述卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺;
記錄模塊,用于從創(chuàng)建卷影時間點開始記錄磁盤增量數(shù)據(jù);
第二復(fù)制模塊,用于在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺;
虛擬機創(chuàng)建模塊,用于在將所述磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)所述按照卷影復(fù)制的磁盤數(shù)據(jù)和所述磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機。
優(yōu)選地,所述記錄模塊,還用于從所述卷影時間點開始通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,并根據(jù)攔截的寫請求更新臟數(shù)據(jù)位圖,所述臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤。
優(yōu)選地,所述第二復(fù)制模塊包括:
查找單元,用于在完成對所述磁盤的卷影復(fù)制后,查找所述臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位;
復(fù)制單元,用于將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
優(yōu)選地,所述第二復(fù)制模塊還包括第一獲取單元和確定單元;
所述第一獲取單元,用于在將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率,及獲取當(dāng)前網(wǎng)絡(luò)傳輸速率和虛擬化平臺的存儲速率;
所述確定單元,用于根據(jù)所述磁盤增量數(shù)據(jù)的變化率、當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率,確定是否停止向磁盤寫入數(shù)據(jù);
所述復(fù)制單元,還用于在確定停止向磁盤寫入數(shù)據(jù)時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
優(yōu)選地,所述第二復(fù)制模塊還包括第二獲取單元和判斷單元,
所述第二獲取單元,用于在將所述查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁 盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率;
所述判斷單元,用于判斷磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,得到判斷結(jié)果;
所述復(fù)制單元,還用于在所述判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
本發(fā)明的數(shù)據(jù)遷移方法及裝置,該方法包括:創(chuàng)建卷影時間點,在所述卷影時間點為磁盤創(chuàng)建卷影;并按照所述卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺;從所述卷影時間點開始記錄磁盤增量數(shù)據(jù);在完成對所述磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺;在將所述磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)所述按照卷影復(fù)制的磁盤數(shù)據(jù)和所述磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機;即從卷影時間點開始就記錄磁盤增量數(shù)據(jù);則在卷影時間點之后,還可以繼續(xù)記錄磁盤增量數(shù)據(jù),如在卷影時間點之后,用戶對磁盤進行了寫操作,則將該寫操作對應(yīng)的數(shù)據(jù)記錄到磁盤增量數(shù)據(jù)中;按照卷影對磁盤復(fù)制及將磁盤的增量數(shù)據(jù)復(fù)制到虛擬化平臺,在虛擬化平臺創(chuàng)建虛擬機;在將物理主機的磁盤的數(shù)據(jù)遷移到虛擬機時,實現(xiàn)了無數(shù)據(jù)丟失。
附圖說明
圖1為本發(fā)明數(shù)據(jù)遷移方法第一實施例的流程示意圖;
圖2為本發(fā)明數(shù)據(jù)遷移方法第二實施例的流程示意圖;
圖3為本發(fā)明數(shù)據(jù)遷移方法第三實施例的流程示意圖;
圖4為本發(fā)明數(shù)據(jù)遷移方法第四實施例的流程示意圖;
圖5為本發(fā)明數(shù)據(jù)遷移方法第五實施例的流程示意圖;
圖6為本發(fā)明數(shù)據(jù)遷移裝置一實施例的結(jié)構(gòu)示意圖;
圖7為本發(fā)明數(shù)據(jù)遷移裝置中第二復(fù)制模塊的第一實施例的結(jié)構(gòu)示意圖;
圖8為本發(fā)明數(shù)據(jù)遷移裝置中第二復(fù)制模塊的第二實施例的結(jié)構(gòu)示意圖;
圖9為本發(fā)明數(shù)據(jù)遷移裝置中第二復(fù)制模塊的第三實施例的結(jié)構(gòu)示意圖。
本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進一步說明。
具體實施方式
應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
參照圖1,圖1為本發(fā)明數(shù)據(jù)遷移方法第一實施例的流程示意圖,該方法包括:
s10、創(chuàng)建卷影時間點,在該卷影時間點為磁盤創(chuàng)建卷影;并按照該卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺。
可利用虛擬機映象生成遷移工具,創(chuàng)建卷影時間點,在該卷影時間點為磁盤創(chuàng)建卷影;再按照該卷影對磁盤進行復(fù)制,將復(fù)制的磁盤數(shù)據(jù)傳輸?shù)教摂M化平臺。在該步驟中,實現(xiàn)對磁盤的初步遷移。
s20、從該卷影時間點開始記錄磁盤增量數(shù)據(jù)。
在該步驟中,從卷影時間點開始記錄磁盤增量數(shù)據(jù),該磁盤是指位于物理主機上的磁盤。通常的,對磁盤的操作請求包括讀請求、寫請求、刪除請求等。在該步驟中,可通過攔截對磁盤的操作請求中的寫請求,以獲得新寫入到磁盤中的數(shù)據(jù),即可得到磁盤增量數(shù)據(jù)。
在該步驟中,可將磁盤增量數(shù)據(jù)標(biāo)志為臟數(shù)據(jù)更新到臟數(shù)據(jù)位圖中,通過該臟數(shù)據(jù)位圖記錄磁盤增量數(shù)據(jù),同時,還可將磁盤增量數(shù)據(jù)保存到一特定存儲位置,用戶預(yù)先設(shè)置一個特定存儲位置,該特定存儲位置具有一定的存儲空間,以足夠保存磁盤增量數(shù)據(jù)。該臟數(shù)據(jù)位圖存儲于內(nèi)存中,對應(yīng)于物理主機的所有磁盤。
s30、在完成對該磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在步驟中,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,即將磁盤增量數(shù)據(jù)傳輸?shù)教摂M化平臺,實現(xiàn)對磁盤增量數(shù)據(jù)的遷移。
在一實施例中,若該磁盤增量數(shù)據(jù)保存在特定存儲位置,則可直接從該特定存儲位置讀取出磁盤增量數(shù)據(jù),并將該讀取出的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,即將該磁盤增量數(shù)據(jù)傳輸?shù)教摂M化平臺。
在另一實施例中,若該磁盤增量數(shù)據(jù)通過臟數(shù)據(jù)位圖記錄,則讀取該臟數(shù)據(jù)位圖中為臟位的數(shù)據(jù)位,將為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,該磁盤增量數(shù)據(jù)在不斷更新,如當(dāng)用戶對磁盤進行寫操作時,則將該寫操作對應(yīng)的數(shù)據(jù)記錄到磁盤增量數(shù)據(jù)中。
s40、在將該磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)該按照卷影復(fù)制的磁盤數(shù)據(jù)和該磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機。
在該步驟中,即當(dāng)按照卷影對磁盤復(fù)制完成及將磁盤的增量數(shù)據(jù)復(fù)制完成后,在虛擬化平臺創(chuàng)建虛擬機,該虛擬機以該按照卷影復(fù)制的磁盤數(shù)據(jù)和該磁盤增量數(shù)據(jù)作為虛擬磁盤的數(shù)據(jù)運行;在創(chuàng)建虛擬機的同時,還可提示用戶關(guān)閉物理主機。
采用上述實施例,通過創(chuàng)建卷影時間點,在該卷影時間點為磁盤創(chuàng)建卷影;并按照該卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺;從該卷影時間點開始記錄磁盤增量數(shù)據(jù);在完成對該磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺;在將該磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)該按照卷影復(fù)制的磁盤數(shù)據(jù)和該磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機;即從卷影時間點開始就記錄磁盤增量數(shù)據(jù);則在卷影時間點之后,還可以繼續(xù)記錄磁盤增量數(shù)據(jù),如在卷影時間點之后,用戶對磁盤進行了寫操作,則將該寫操作對應(yīng)的數(shù)據(jù)記錄到磁盤增量數(shù)據(jù)中;按照卷影對磁盤復(fù)制及將磁盤的增量數(shù)據(jù)復(fù)制到虛擬化平臺,在虛擬化平臺創(chuàng)建虛擬機;在將物理主機的磁盤的數(shù)據(jù)遷移到虛擬機時,實現(xiàn)了無數(shù)據(jù)丟失。
參照圖2,圖2為本發(fā)明數(shù)據(jù)遷移方法的第二實施例的流程示意圖。
基于上述數(shù)據(jù)遷移方法的第一實施例,該步驟s20包括:
s21、從該卷影時間點開始通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,并根據(jù)攔截的寫請求更新臟數(shù)據(jù)位圖,該臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤。
該磁盤/磁盤卷過濾驅(qū)動可在卷影時間點創(chuàng)建前加載,該磁盤/磁盤卷過濾驅(qū)動對磁盤進行攔截過濾,具體的,該磁盤/磁盤卷過濾驅(qū)動可攔截所有發(fā)向磁盤的操作請求,如攔截發(fā)向磁盤的讀請求、寫請求、刪除請求等。在該步驟中,只需將發(fā)向磁盤的寫請求攔截,根據(jù)該寫請求得到磁盤增量數(shù)據(jù)。
臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤,該臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位 對應(yīng)一定容量的扇區(qū);當(dāng)該臟數(shù)據(jù)位圖中的某一個數(shù)據(jù)位對應(yīng)的扇區(qū)有寫請求時,將該某一個數(shù)據(jù)位設(shè)置為臟位,通常的,即將該某一個數(shù)據(jù)位設(shè)置為1,表示臟位。該臟數(shù)據(jù)位圖需要一定的存儲空間,可根據(jù)需要為臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)一定容量的扇區(qū),如在一實施例中,該臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)4kb的扇區(qū)(即對應(yīng)8個扇區(qū),每個扇區(qū)的大小為512字節(jié)),當(dāng)該臟數(shù)據(jù)位圖的存儲空間為32mb時,該臟數(shù)據(jù)位圖可記錄1tb的扇區(qū),即記錄1tb的磁盤空間。
在該步驟中,通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,該寫請求包括待寫入的內(nèi)容和待寫入的扇區(qū),根據(jù)該攔截的寫請求更新臟數(shù)據(jù)位圖,具體的,根據(jù)該攔截的寫請求中的待寫入的扇區(qū),將該待寫入的扇區(qū)在該臟數(shù)據(jù)位圖中對應(yīng)的數(shù)據(jù)位設(shè)置為臟位,即在該臟數(shù)據(jù)位圖中記錄該待寫入的扇區(qū)有數(shù)據(jù)寫入。在一實施例中,該攔截的寫請求中的待寫入的扇區(qū)為扇區(qū)10,在臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位對應(yīng)的扇區(qū)是扇區(qū)9至扇區(qū)16,則將該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位設(shè)置為臟位;同理,該攔截的寫請求中的待寫入的扇區(qū)為扇區(qū)11,則將該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位設(shè)置為臟位;即當(dāng)該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位為臟位時,可能是對扇區(qū)9至扇區(qū)16中的任意一個扇區(qū)或多個扇區(qū)進行了寫操作。因此,為了在臟數(shù)據(jù)位圖中精確記錄磁盤扇區(qū),則可將臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)的扇區(qū)個數(shù)少一些,但是需要為臟數(shù)據(jù)位圖設(shè)定大一點的存儲空間,如為了記錄1tb的磁盤空間,如果臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)4kb的扇區(qū),則該臟數(shù)據(jù)位圖的存儲空間需要32mb,如果臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)1kb的扇區(qū),則該臟數(shù)據(jù)位圖的存儲空間需要128mb。
參照圖3,圖3為本發(fā)明數(shù)據(jù)遷移方法的第三實施例的流程示意圖。
基于上述數(shù)據(jù)遷移方法的第二實施例,該步驟s30包括:
s31、在完成對該磁盤的卷影復(fù)制后,查找該臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位。
在該臟數(shù)據(jù)位圖中記錄了磁盤中扇區(qū)的數(shù)據(jù)變化,在該步驟中,遍歷該臟數(shù)據(jù)位圖中的各個數(shù)據(jù)位,查找到該臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位,通常的,查找到該臟數(shù)據(jù)位圖中被置為1的數(shù)據(jù)位。在該臟數(shù)據(jù)位圖中,各 個數(shù)據(jù)位的值為1或0,當(dāng)數(shù)據(jù)位的值為1,則表示該數(shù)據(jù)位為臟位,當(dāng)數(shù)據(jù)位的值為0,則表示該數(shù)據(jù)位為非臟位。
s32、將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在該步驟中,將查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺后,將該數(shù)據(jù)位進行重置,置為非臟位,如將該數(shù)據(jù)位的值從1變成0。
該臟數(shù)據(jù)位圖中的各個數(shù)據(jù)位的值在不斷更新中,當(dāng)對該臟數(shù)據(jù)位圖中的數(shù)據(jù)位對應(yīng)的扇區(qū)攔截到寫請求時,將該臟數(shù)據(jù)位圖中的數(shù)據(jù)位設(shè)置為臟位(即對該數(shù)據(jù)位賦值1),當(dāng)已將該被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,將該數(shù)據(jù)位置為非臟位。
進一步的,如圖4所示,該步驟s30還包括:
s33、在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率,及獲取當(dāng)前網(wǎng)絡(luò)傳輸速率和虛擬化平臺的存儲速率。
在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,即在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,獲取磁盤增量數(shù)據(jù)的變化率v1,具體的,獲取臟數(shù)據(jù)位圖中當(dāng)前每秒鐘被置為臟位的數(shù)據(jù)位的個數(shù),為第一個數(shù)n1,根據(jù)該第一個數(shù)得到磁盤增量數(shù)據(jù)的變化率v1,v1=n1*m,其中m表示每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小,如在一實施例中,每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小為4kb。
在該步驟中,獲取當(dāng)前網(wǎng)絡(luò)傳輸速率,即獲取物理主機與虛擬化平臺之間的傳輸速率。
在該步驟中,獲取虛擬化平臺的存儲速率,該虛擬化平臺的存儲速率即為該虛擬化平臺的寫入速率。
s34、根據(jù)該磁盤增量數(shù)據(jù)的變化率、當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率,確定是否停止向磁盤寫入數(shù)據(jù)。
在該步驟中,將該磁盤增量數(shù)據(jù)的變化率與當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率進行比較,若該磁盤增量數(shù)據(jù)的變化率小于當(dāng)前網(wǎng)絡(luò)傳輸速率,且該磁盤 增量數(shù)據(jù)的變化率小于存儲速率,則確定停止向磁盤寫入數(shù)據(jù);否則確定可繼續(xù)向磁盤寫入數(shù)據(jù)。
s35、在確定停止向磁盤寫入數(shù)據(jù)時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在該步驟中,提醒用戶停止向磁盤寫入數(shù)據(jù),即停止向磁盤更新業(yè)務(wù)數(shù)據(jù),則臟數(shù)據(jù)位圖中的被置為臟位的數(shù)據(jù)位不會增加;并將該當(dāng)前臟數(shù)據(jù)位圖中的所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤數(shù)據(jù)復(fù)制到虛擬化平臺。
進一步的,如圖5所示,該步驟s30還包括:
s36、在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率。
在該步驟中,在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,即在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,獲取磁盤增量數(shù)據(jù)的變化率v1,具體的,獲取臟數(shù)據(jù)位圖中當(dāng)前每秒鐘被置為臟位的數(shù)據(jù)位的個數(shù),為第一個數(shù)n1,根據(jù)該第一個數(shù)得到磁盤增量數(shù)據(jù)的變化率v1,v1=n1*m,其中m表示每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小,如在一實施例中,每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小為4kb。
s37、判斷磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,得到判斷結(jié)果。
該預(yù)設(shè)變化率可根據(jù)需要設(shè)置,在該步驟中,判斷該磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,在該磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,可認為磁盤中業(yè)務(wù)數(shù)據(jù)不在增加。
s38、若該判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率,則提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在該步驟中,提醒用戶停止向磁盤寫入數(shù)據(jù),即停止向磁盤更新業(yè)務(wù)數(shù)據(jù),用戶根據(jù)提醒停止或暫停業(yè)務(wù),不再向磁盤寫入業(yè)務(wù)數(shù)據(jù)。
在該步驟中,將該當(dāng)前臟數(shù)據(jù)位圖中的所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤數(shù)據(jù)復(fù)制到虛擬化平臺,實現(xiàn)將物理主機上的磁盤增量數(shù)據(jù)全部遷移到 虛擬化平臺。
參照圖6,圖6為本發(fā)明數(shù)據(jù)遷移裝置的一實施例的結(jié)構(gòu)示意圖,該裝置包括:
時間點創(chuàng)建模塊10,用于創(chuàng)建卷影時間點;
第一復(fù)制模塊20,用于在該卷影時間點為磁盤創(chuàng)建卷影;并按照該卷影對磁盤進行復(fù)制,以復(fù)制到虛擬化平臺;
記錄模塊30,用于從創(chuàng)建卷影時間點開始記錄磁盤增量數(shù)據(jù);
第二復(fù)制模塊40,用于在完成對該磁盤的卷影復(fù)制后,將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺;
虛擬機創(chuàng)建模塊50,用于在將該磁盤的增量數(shù)據(jù)復(fù)制完成后,根據(jù)該按照卷影復(fù)制的磁盤數(shù)據(jù)和該磁盤增量數(shù)據(jù)在虛擬化平臺創(chuàng)建虛擬機。
時間點創(chuàng)建模塊10可利用虛擬機映象生成遷移工具,創(chuàng)建卷影時間點。
該第一復(fù)制模塊20可利用虛擬機映象生成遷移工具,在該卷影時間點為磁盤創(chuàng)建卷影;再按照該卷影對磁盤進行復(fù)制,將復(fù)制的磁盤數(shù)據(jù)傳輸?shù)教摂M化平臺。該第一復(fù)制模塊20實現(xiàn)對磁盤的初步遷移。
該記錄模塊30從卷影時間點開始記錄磁盤增量數(shù)據(jù),該磁盤是指位于物理主機上的磁盤。通常的,對磁盤的操作請求包括讀請求、寫請求、刪除請求等。在該步驟中,可通過攔截對磁盤的操作請求中的寫請求,以獲得新寫入到磁盤中的數(shù)據(jù),即可得到磁盤增量數(shù)據(jù)。
該記錄模塊30可將磁盤增量數(shù)據(jù)標(biāo)志為臟數(shù)據(jù)更新到臟數(shù)據(jù)位圖中,通過該臟數(shù)據(jù)位圖記錄磁盤增量數(shù)據(jù),同時,還可將磁盤增量數(shù)據(jù)保存到一特定存儲位置,用戶預(yù)先設(shè)置一個特定存儲位置,該特定存儲位置具有一定的存儲空間,以足夠保存磁盤增量數(shù)據(jù)。該臟數(shù)據(jù)位圖存儲于內(nèi)存中,對應(yīng)物理主機的所有磁盤。
該第二復(fù)制模塊40將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,即將磁盤增量數(shù)據(jù)傳輸?shù)教摂M化平臺,實現(xiàn)對磁盤增量數(shù)據(jù)的遷移。
在一實施例中,若該磁盤增量數(shù)據(jù)保存在特定存儲位置,則該第二復(fù)制模塊40可直接從該特定存儲位置讀取出磁盤增量數(shù)據(jù),并將該讀取出的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,即將該磁盤增量數(shù)據(jù)傳輸?shù)教摂M化平臺。
在另一實施例中,若該磁盤增量數(shù)據(jù)通過臟數(shù)據(jù)位圖記錄,則該第二復(fù)制模塊40讀取該臟數(shù)據(jù)位圖中為臟位的數(shù)據(jù)位,將為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在將記錄的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,該磁盤增量數(shù)據(jù)在不斷更新,如當(dāng)用戶對磁盤進行寫操作時,則將該寫操作對應(yīng)的數(shù)據(jù)記錄到磁盤增量數(shù)據(jù)中。
當(dāng)按照卷影對磁盤復(fù)制完成及將磁盤的增量數(shù)據(jù)復(fù)制完成后,該虛擬機創(chuàng)建模塊50在虛擬化平臺創(chuàng)建虛擬機,該虛擬機以該按照卷影復(fù)制的磁盤數(shù)據(jù)和該磁盤增量數(shù)據(jù)作為虛擬磁盤的數(shù)據(jù)運行;在創(chuàng)建虛擬機的同時,還可提示用戶關(guān)閉物理主機。
進一步的,該記錄模塊30,還用于從該卷影時間點開始通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,并根據(jù)攔截的寫請求更新臟數(shù)據(jù)位圖,該臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤。
該磁盤/磁盤卷過濾驅(qū)動可在卷影時間點創(chuàng)建前加載,該磁盤/磁盤卷過濾驅(qū)動對磁盤進行攔截過濾,具體的,該磁盤/磁盤卷過濾驅(qū)動可攔截所有發(fā)向磁盤的操作請求,如攔截發(fā)向磁盤的讀請求、寫請求、刪除請求等。在該步驟中,只需將發(fā)向磁盤的寫請求攔截,根據(jù)該寫請求得到磁盤增量數(shù)據(jù)。
臟數(shù)據(jù)位圖對應(yīng)物理主機的所有磁盤,該臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位對應(yīng)一定容量的扇區(qū);當(dāng)該臟數(shù)據(jù)位圖中的某一個數(shù)據(jù)位對應(yīng)的扇區(qū)有寫請求時,將該某一個數(shù)據(jù)位設(shè)置為臟位,通常的,即將該某一個數(shù)據(jù)位設(shè)置為1,表示臟位。該臟數(shù)據(jù)位圖需要一定的存儲空間,可根據(jù)需要為臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)一定容量的扇區(qū),如在一實施例中,該臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)4kb的扇區(qū)(即對應(yīng)8個扇區(qū),每個扇區(qū)的大小為512字節(jié)),當(dāng)該臟數(shù)據(jù)位圖的存儲空間為32mb時,該臟數(shù)據(jù)位圖可記錄1tb的扇區(qū),即記錄1tb的磁盤空間。
該記錄模塊30通過磁盤/磁盤卷過濾驅(qū)動將發(fā)向磁盤的寫請求攔截,該寫請求包括待寫入的內(nèi)容和待寫入的扇區(qū),根據(jù)該攔截的寫請求更新臟數(shù)據(jù)位圖,具體的,根據(jù)該攔截的寫請求中的待寫入的扇區(qū),將該待寫入的扇區(qū)在該臟數(shù)據(jù)位圖中對應(yīng)的數(shù)據(jù)位設(shè)置為臟位,即在該臟數(shù)據(jù)位圖中記錄該待寫 入的扇區(qū)有數(shù)據(jù)寫入。在一實施例中,該攔截的寫請求中的待寫入的扇區(qū)為扇區(qū)10,在臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位對應(yīng)的扇區(qū)是扇區(qū)9至扇區(qū)16,則將該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位設(shè)置為臟位;同理,該攔截的寫請求中的待寫入的扇區(qū)為扇區(qū)11,則將該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位設(shè)置為臟位;即當(dāng)該臟數(shù)據(jù)位圖中的第二個數(shù)據(jù)位為臟位時,可能是對扇區(qū)9至扇區(qū)16中的任意一個扇區(qū)或多個扇區(qū)進行了寫操作。因此,為了在臟數(shù)據(jù)位圖中精確記錄磁盤扇區(qū),則可將臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)的扇區(qū)個數(shù)少一些,但是需要為臟數(shù)據(jù)位圖設(shè)定大一點的存儲空間,如為了記錄1tb的磁盤空間,如果臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)4kb的扇區(qū),則該臟數(shù)據(jù)位圖的存儲空間需要32mb,如果臟數(shù)據(jù)位圖中的每一個數(shù)據(jù)位設(shè)置對應(yīng)1kb的扇區(qū),則該臟數(shù)據(jù)位圖的存儲空間需要128mb。
進一步的,如圖7所示,該該第二復(fù)制模塊40包括:
查找單元41,用于在完成對該磁盤的卷影復(fù)制后,查找該臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位;
復(fù)制單元42,用于將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在該臟數(shù)據(jù)位圖中記錄了磁盤中扇區(qū)的數(shù)據(jù)變化,該查找單元41遍歷該臟數(shù)據(jù)位圖中的各個數(shù)據(jù)位,查找到該臟數(shù)據(jù)位圖中被置為臟位的數(shù)據(jù)位,通常的,查找到該臟數(shù)據(jù)位圖中被置為1的數(shù)據(jù)位。在該臟數(shù)據(jù)位圖中,各個數(shù)據(jù)位的值為1或0,當(dāng)數(shù)據(jù)位的值為1,則表示該數(shù)據(jù)位為臟位,當(dāng)數(shù)據(jù)位的值為0,則表示該數(shù)據(jù)位為非臟位。
該復(fù)制單元42將查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺,在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺后,將該數(shù)據(jù)位進行重置,置為非臟位,如將該數(shù)據(jù)位的值從1變成0。
該臟數(shù)據(jù)位圖中的各個數(shù)據(jù)位的值在不斷更新中,當(dāng)對該臟數(shù)據(jù)位圖中的數(shù)據(jù)位對應(yīng)的扇區(qū)攔截到寫請求時,將該臟數(shù)據(jù)位圖中的數(shù)據(jù)位設(shè)置為臟位(即對該數(shù)據(jù)位賦值1),當(dāng)已將該被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,該復(fù)制單元42將該數(shù)據(jù)位置為非臟位。
進一步的,如圖8所示,該第二復(fù)制模塊40還包括第一獲取單元43和確定單元44;
該第一獲取單元43,用于在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率,及獲取當(dāng)前網(wǎng)絡(luò)傳輸速率和虛擬化平臺的存儲速率;
該確定單元44,用于根據(jù)該磁盤增量數(shù)據(jù)的變化率、當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率,確定是否停止向磁盤寫入數(shù)據(jù);
該復(fù)制單元42,還用于在確定停止向磁盤寫入數(shù)據(jù)時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,即在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,該第一獲取單元43獲取磁盤增量數(shù)據(jù)的變化率v1,具體的,獲取臟數(shù)據(jù)位圖中當(dāng)前每秒鐘被置為臟位的數(shù)據(jù)位的個數(shù),為第一個數(shù)n1,根據(jù)該第一個數(shù)得到磁盤增量數(shù)據(jù)的變化率v1,v1=n1*m,其中m表示每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小,如在一實施例中,每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小為4kb。
該第一獲取單元43獲取當(dāng)前網(wǎng)絡(luò)傳輸速率,即獲取物理主機與虛擬化平臺之間的傳輸速率。
該第一獲取單元43獲取虛擬化平臺的存儲速率,該虛擬化平臺的存儲速率即為該虛擬化平臺的寫入速率。
該確定單元44將該磁盤增量數(shù)據(jù)的變化率與當(dāng)前網(wǎng)絡(luò)傳輸速率和存儲速率進行比較,若該磁盤增量數(shù)據(jù)的變化率小于當(dāng)前網(wǎng)絡(luò)傳輸速率,且該磁盤增量數(shù)據(jù)的變化率小于存儲速率,則確定停止向磁盤寫入數(shù)據(jù);否則確定可繼續(xù)向磁盤寫入數(shù)據(jù)。
該復(fù)制單元42在確定停止向磁盤寫入數(shù)據(jù)時,提醒用戶停止向磁盤寫入數(shù)據(jù),即停止向磁盤更新業(yè)務(wù)數(shù)據(jù),則臟數(shù)據(jù)位圖中的被置為臟位的數(shù)據(jù)位不會增加;并將該當(dāng)前臟數(shù)據(jù)位圖中的所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤數(shù)據(jù)復(fù)制到虛擬化平臺。
進一步的,如圖9所示,該第二復(fù)制模塊40還包括第二獲取單元45和判斷單元46,
該第一獲取單元43,用于在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,獲取磁盤增量數(shù)據(jù)的變化率;
該判斷單元46,用于判斷磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,得到判斷結(jié)果;
該復(fù)制單元42,用于在該判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,提醒用戶停止向磁盤寫入數(shù)據(jù),并將當(dāng)前臟數(shù)據(jù)位圖中所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺。
在將該查找的被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺時,即在將被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤增量數(shù)據(jù)復(fù)制到虛擬化平臺的過程中,該第二獲取單元45獲取磁盤增量數(shù)據(jù)的變化率v1,具體的,獲取臟數(shù)據(jù)位圖中當(dāng)前每秒鐘被置為臟位的數(shù)據(jù)位的個數(shù),為第一個數(shù)n1,根據(jù)該第一個數(shù)得到磁盤增量數(shù)據(jù)的變化率v1,v1=n1*m,其中m表示每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小,如在一實施例中,每個數(shù)據(jù)位對應(yīng)的扇區(qū)的大小為4kb。
該預(yù)設(shè)變化率可根據(jù)需要設(shè)置,該判斷單元46判斷該磁盤增量數(shù)據(jù)的變化率是否小于或等于預(yù)設(shè)變化率,在該磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,可認為磁盤中業(yè)務(wù)數(shù)據(jù)不在增加。
該復(fù)制單元42在該判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,提醒用戶停止向磁盤寫入數(shù)據(jù),即停止向磁盤更新業(yè)務(wù)數(shù)據(jù),用戶根據(jù)提醒停止或暫停業(yè)務(wù),不再向磁盤寫入業(yè)務(wù)數(shù)據(jù)。
該復(fù)制單元42在該判斷結(jié)果為磁盤增量數(shù)據(jù)的變化率小于或等于預(yù)設(shè)變化率時,將該當(dāng)前臟數(shù)據(jù)位圖中的所有被置為臟位的數(shù)據(jù)位對應(yīng)的磁盤數(shù)據(jù)復(fù)制到虛擬化平臺,實現(xiàn)將物理主機上的磁盤增量數(shù)據(jù)全部遷移到虛擬化平臺。
以上僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是 利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。