專利名稱:一種數(shù)據(jù)遷移的方法、裝置和系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及存儲技術領域,特別涉及一種數(shù)據(jù)遷移的方法、裝置和系統(tǒng)。
背景技術:
通過網(wǎng)絡提供服務已經(jīng)成為了流行的商業(yè)模式,在服務的提供過程中,保證服務 的連續(xù)性至關重要。為了保證服務的連續(xù)性,可以通過應用層的雙機熱備來避免提供服 務的設備出現(xiàn)故障導致的服務中斷。但雙機熱備面臨很多問題,例如熱備機與生產(chǎn)機 (生產(chǎn)機指提供服務的主機,熱備機是生產(chǎn)機的備份主機)之間的互聯(lián)網(wǎng)協(xié)議anternet Protocol, IP)地址無法保持一致。而虛擬化技術為解決這一問題提供了新的思路。虛擬化技術在一臺物理主機中模擬出多個虛擬主機(一般稱為虛擬機),每個虛 擬機運行自己的操作系統(tǒng)和應用程序。多個虛擬機共享物理主機的資源,物理主機的資源 包括處理器、內(nèi)存、網(wǎng)絡等;虛擬機之間互相隔離,各自運行程序。基于虛擬化技術的服務器 能夠大大提高物理資源的使用效率,改善服務的運行和維護?;谔摂M化技術的封裝性,虛擬機的實時遷移需要在不中斷虛擬機運行的情況 下,將一臺物理主機上的虛擬機遷移到另一臺物理主機。在虛擬機實時遷移前后,虛擬機內(nèi) 運行的各項程序和網(wǎng)絡連接都保持連續(xù)不中斷。虛擬機的實時遷移具有調(diào)節(jié)物理主機負載 平衡,提高資源使用效率,減少能源消耗等優(yōu)點,是系統(tǒng)虛擬化中最重要的技術之一。由于虛擬機在實時遷移過程中不停止運行,因此,將虛擬機的狀態(tài)從一臺物理主 機復制到另一臺物理主機最大的困難在于如何復制不斷變化的虛擬機內(nèi)存。在虛擬機實時 遷移中,主要有三個問題需要解決(1)減小被遷移虛擬機內(nèi)所有程序的宕機時間,即虛擬 機未被調(diào)度,停止工作的時間;( 減小總遷移時間,即從開始遷移到被遷移虛擬機在目的 物理主機上開始正常工作的時間;(3)減小遷移對網(wǎng)絡的傳輸開銷,即遷移傳輸數(shù)據(jù)總量。目前,虛擬機實時遷移的主要方法有前復制(Pre-copy)和后復制(Post-copy)。 其中前復制在遷移進程開始后,周期性的將虛擬機內(nèi)存復制到目的物理主機。具體實現(xiàn)為 首先復制虛擬機全部內(nèi)存;繼而在之后的每個周期中,復制前一個周期內(nèi)變化了的內(nèi)存; 在進行了若干復制周期后,將虛擬機在遷移源端掛起;最后復制剩余的內(nèi)存和其他虛擬機 狀態(tài);在虛擬機的所有狀態(tài)(內(nèi)存、處理器等)被復制到目的端后,虛擬機重新啟動。由于每個復制周期都將前一周期產(chǎn)生的臟內(nèi)存頁復制到目的端,數(shù)據(jù)傳輸量大; 對于內(nèi)存寫較多的應用來說,數(shù)據(jù)傳輸量大的問題尤為嚴重。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)遷移的方法、裝置和系統(tǒng),利用空間局部性原理和時 間局部性原理,減少臟數(shù)據(jù)的傳輸,從而減少數(shù)據(jù)傳輸量。本發(fā)明實施例提供一種數(shù)據(jù)遷移的方法,包括計算各存儲條帶的重寫率,所述存儲條帶由需要進行數(shù)據(jù)遷移的存儲空間分段得 到;
向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù);在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。本發(fā)明實施例還提供了 一種數(shù)據(jù)遷移的裝置,包括重寫率計算單元,用于計算各存儲條帶的重寫率,所述存儲條帶由需要進行數(shù)據(jù) 遷移的存儲空間分段得到;發(fā)送單元,用于向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù);遷移控制單元,用于在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。本發(fā)明實施例還提供了一種數(shù)據(jù)遷移的系統(tǒng),包括源主機、目標主機,其中,所述 源主機為本發(fā)明實施例提供的任意一種數(shù)據(jù)遷移的裝置。本發(fā)明實施例提供的技術方案,通過采用將需要進行數(shù)據(jù)遷移的存儲空間分段得 到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空 間局部性原理和時間局部性原理,即在應用的執(zhí)行過程中對存儲空間的使用存在區(qū)域集中 的特性,并且重寫率較高的存儲空間有很大概率即將再次被修改,將重寫率較高的存儲空 間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少 了數(shù)據(jù)傳輸量。
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用 的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本 領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。圖1為本發(fā)明實施例方法流程示意圖;圖2為本發(fā)明實施例方法流程示意圖;圖3為本發(fā)明實施例方法流程示意圖;圖4為本發(fā)明實施例方法流程示意圖;圖5為本發(fā)明實施例方法流程示意圖;圖6為本發(fā)明實施例裝置結構示意圖;圖7為本發(fā)明實施例裝置結構示意圖;圖8為本發(fā)明實施例裝置結構示意圖;圖9為本發(fā)明實施例系統(tǒng)結構示意圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。一種數(shù)據(jù)遷移的方法,如圖1所示,在源主機與目標主機運行過程中,如果需要進 行數(shù)據(jù)遷移,則源主機可以執(zhí)行如下步驟101 計算各存儲條帶的重寫率,上述存儲條帶由需要進行數(shù)據(jù)遷移的存儲空間分段得到;上述存儲條帶可以存儲在內(nèi)存,也可以存儲在如硬盤等其它的存儲介質(zhì),對于具 體的存儲介質(zhì)本發(fā)明實施例不予限定。如果存儲條帶為內(nèi)存條帶,則內(nèi)存條帶由需要進行 數(shù)據(jù)遷移的內(nèi)存分段得到。在后續(xù)實施例中均以內(nèi)存條帶為例進行說明。102 向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù);如果存儲條帶為內(nèi)存條帶;則上述102為向目的主機優(yōu)先發(fā)送重寫率低的內(nèi)存條帶中的臟數(shù)據(jù);以下給出102的一個具體實現(xiàn)例根據(jù)內(nèi)存條帶的重寫率,對內(nèi)存條帶按重寫率 高低順序排序;按上述排序的結果,從最低重寫率的內(nèi)存條帶開始依次向目的主機發(fā)送內(nèi) 存條帶中的臟數(shù)據(jù)。當然,采用其他方式實現(xiàn)102也是可以的,對此本發(fā)明實施例不予限定。另外,上述內(nèi)存條帶中的臟數(shù)據(jù)可以以內(nèi)存條帶中的臟內(nèi)存頁形式表示,并且在 后續(xù)實施例中將均以此為例進行說明,當然采用其他方式表示不影響本發(fā)明實施例的實 現(xiàn),對此本發(fā)明實施例不予限定。103 在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。如果存儲條帶為內(nèi)存條帶;則103為在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù) 據(jù)遷移。上述103中,臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求包括臟數(shù)據(jù)發(fā)送的周期次數(shù)達到第 一設定值且現(xiàn)有臟數(shù)據(jù)少于第二設定值或者全部內(nèi)存條中的臟數(shù)據(jù)遷移完畢中。當然如果 設置其他的預設要求也不影響本發(fā)明實施例的實現(xiàn),對此本發(fā)明實施例不予限定。進一步地,如果采用網(wǎng)絡傳輸臟數(shù)據(jù),傳輸臟數(shù)據(jù)可能會受到帶寬限制,另外也為 了提高網(wǎng)絡帶寬的利用率,上述方法102和103可以為循環(huán)執(zhí)行獲取當前時間周期內(nèi)源主機到目的主機的可用帶寬;向目的主機優(yōu)先 發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù),并計算在上述時間周期內(nèi)向目的主機已發(fā)送的臟數(shù) 據(jù)量;若已經(jīng)發(fā)送臟數(shù)據(jù)量達到或超過可用帶寬,則在本時間周期停止向目的主機發(fā)送臟 數(shù)據(jù);在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后停止上述循環(huán)執(zhí)行的流程,結束數(shù)據(jù)遷移。上述方法的執(zhí)行主體為數(shù)據(jù)遷移源的主機,本發(fā)明實施例提供的技術方案,通過 采用將需要進行數(shù)據(jù)遷移的存儲空間分段得到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低 的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空間局部性原理和時間局部性原理,即在應用 的執(zhí)行過程中對存儲空間的使用存在區(qū)域集中的特性,并且重寫率較高的存儲空間有很大 概率即將再次被修改,將重寫率較高的存儲空間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多 的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少了數(shù)據(jù)傳輸量,同時也減少了網(wǎng)絡帶寬的開 銷。以下本發(fā)明實施例還給出了一個更具體的實現(xiàn)方式,本實施例實現(xiàn)虛擬機內(nèi)存實 時遷移,如圖2所示,包括201 將源虛擬機內(nèi)存分為若干等長度的內(nèi)存條帶。更具體地,可以將被遷移虛擬機(即源虛擬機)的偽物理內(nèi)存(I^seudo-physical Memory)分成若干連續(xù)且大小相等的內(nèi)存條帶(Memor於tripe)。如圖3所示,左邊內(nèi)存示意為未分前的內(nèi)存,方框表示內(nèi)存頁,其中黑色方框表示臟內(nèi)存頁;中間內(nèi)存示意為被分后 的內(nèi)存條帶可以編號為1 5。更具體地,可以定義如下的數(shù)據(jù)結構,作為內(nèi)存條帶信息的存儲單元struct stripe{unsigned long start—page ;unsigned long page_num ;int num ;unsigned long dirty_page_num ;double rate_mbyte ;};內(nèi)存條帶的內(nèi)存頁的多少可以根據(jù)虛擬機分配內(nèi)存的大小以來確定,另外內(nèi)存頁 可以盡量設置為8的倍數(shù)個,這樣可以讓每個內(nèi)存條帶的子內(nèi)存位圖表為整數(shù)個字節(jié),便 于計算和管理。例如對分配了 256MB內(nèi)存容量的虛擬機,內(nèi)存條帶可以設置為64個內(nèi)存 頁面。202 計算所有內(nèi)存條帶的重寫率。計算內(nèi)存條帶的重寫率的方法可以是計算內(nèi)存條帶當前的臟內(nèi)存頁數(shù)與發(fā)送臟 內(nèi)存頁的周期時間的商;重寫率體現(xiàn)的是虛擬機寫內(nèi)存條帶中內(nèi)存頁的即時比率(即單 位時間內(nèi),內(nèi)存條帶中產(chǎn)生的臟內(nèi)存頁的數(shù)量),如果各內(nèi)存條帶空間相同,直接計算臟內(nèi) 存頁數(shù)作為重寫率也是可以的對此本發(fā)明實施例不予限定。203 根據(jù)202中計算的內(nèi)存條帶的重寫率,對內(nèi)存條帶按升序排序;如圖3中右 部內(nèi)存示意,為排序后的結果。當然本步驟也可以是按降序排序,對此本發(fā)明實施例不予限定。204 預估源端的物理主機到目的端物理主機的可用網(wǎng)絡帶寬,即當前從源端物理 主機發(fā)送網(wǎng)絡數(shù)據(jù)包到目的端物理主機的可用網(wǎng)絡帶寬大小。在內(nèi)存實時遷移的周期開始 后即可立即執(zhí)行本步驟,即本步驟可以在內(nèi)存實時遷移的周期開始時至206之前任意時 刻執(zhí)行,不影響本發(fā)明實施例的實現(xiàn)。本實施例中源端的物理主機向目的端的物理主機發(fā)送臟數(shù)據(jù),采用周期性發(fā)送的 方式進行;在每一個周期的時間內(nèi)都會有一個可以確定的可用網(wǎng)絡帶寬。205 按203中的排序結果,依次發(fā)送內(nèi)存條帶中的臟內(nèi)存頁給目的端的物理主機 (圖3中按照5、2、1、3、4的順序發(fā)送),并計算已經(jīng)傳輸?shù)呐K內(nèi)存頁的數(shù)據(jù)量。具體可以 將已傳輸內(nèi)存條帶的臟數(shù)據(jù)頁數(shù)累計相加。206 將204中預估的可用帶寬與已傳輸?shù)呐K內(nèi)存頁的數(shù)據(jù)量相比較,如果已傳輸 的數(shù)據(jù)量沒有超過預估可用帶寬,則繼續(xù)復制傳輸后續(xù)內(nèi)存條帶中的臟內(nèi)存頁,否則停止 本周期的臟內(nèi)存頁的傳輸,在下一個周期重新執(zhí)行步驟204到206,直到臟內(nèi)存頁傳輸完畢 進入207 ;可以理解的是在206中,進入207的條件還可以是其它的條件,例如臟數(shù)據(jù)發(fā)送 的周期次數(shù)達到第一設定值且現(xiàn)有臟數(shù)據(jù)少于第二設定值,這個進入207的條件可以根據(jù) 遷移臟數(shù)據(jù)的需要設定,對此本發(fā)明實施例不予限定。207 結束內(nèi)存實時遷移。
本發(fā)明實施例提供的技術方案,通過采用將需要進行數(shù)據(jù)遷移的存儲空間分段得 到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空 間局部性原理和時間局部性原理,即在應用的執(zhí)行過程中對存儲空間的使用存在區(qū)域集中 的特性,并且重寫率較高的存儲空間有很大概率即將再次被修改,將重寫率較高的存儲空 間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少 了數(shù)據(jù)傳輸量,同時也減少了網(wǎng)絡帶寬的開銷。以下將給出與圖2對應實施例中,僅進行有序傳播虛擬機內(nèi)存臟頁,不進行帶寬 控制的方法流程,如圖4所示,包括401 啟動向目標虛擬機進行內(nèi)存實時遷移流程;402 啟動虛擬機影子頁表登錄臟內(nèi)存頁(Log_Dirty)的模式,啟動Log_Dirty模 式可以獲取到臟內(nèi)存頁位圖或者系統(tǒng)位圖表;臟內(nèi)存頁位圖或者系統(tǒng)位圖表包含各內(nèi)存 條帶中的臟內(nèi)存頁數(shù)以及具體哪些內(nèi)存頁是臟內(nèi)存頁的信息;403 判斷是否為最后一輪,具體可以是判斷指示器是否為1,這個指示器可以是 預設的一個值用于控制發(fā)送內(nèi)存的輪次;如果是,則進入404,否則進入405 ;404 結束內(nèi)存實時遷移;405 判斷是否滿足最后一輪條件;該條件為結束虛擬機實時遷移的條件,如超 過20輪內(nèi)存復制且傳輸臟頁面少于100個頁面等,可以根據(jù)需要設置。具體設置本發(fā)明實 施例不予限定。若是,進入406,否則進入407;406 設置指示器為1 ;407 復制得到下次傳輸周期中的臟內(nèi)存頁位圖表并清空系統(tǒng)位圖表;然后進入 403。上述圖4流程可以通過如下程序指令硬件完成MEMORY PROPAGATION ALGORITHMLAST_ITER — 0START MEMORY PROPAGATIONSTARTVM SHADOW MEMORY LOG DIRTY MODEDOBEGINORDERED MEMORY STRIPE PROPAGATIONIF LAST_ITER = 1STOP MEMORY PROPAGATIONBREAKELSE IFIF SATISFY LAST ITERATIONLAST_ITER = 1END IFSCAN DIRTY MEMORY AND CLEAN MEMORY BITMAPEND IFEND WHILE(I)
以下將給出與圖2對應實施例中,僅進行帶寬控制,不進行有序傳播虛擬機內(nèi)存 臟頁的方法流程,如圖5所示,包括501 計算內(nèi)存條帶的重寫率;502 利用快排算法對內(nèi)存條帶排序;503 判斷臟內(nèi)存頁是否已經(jīng)發(fā)送完畢,如果是,則進入504,否則進入505 ;或 者,判斷累計發(fā)送的臟內(nèi)存頁是否超過了網(wǎng)絡帶寬;若是,則等待下一個發(fā)送臟內(nèi)頁的周 期,然后進入505,否則直接進入505 ;可用網(wǎng)絡帶寬預估可采用自評估法或者載入路徑 (Pathload)方法來預估。504 結束內(nèi)存實時遷移;505 按照排序結果依次從重寫率低的內(nèi)存條帶開始,向目的主機發(fā)送臟內(nèi)存頁; 然后進入503。上述圖5流程可以通過如下程序指令硬件完成ORDERED PROPAGATION ALGORITHMANB — AVAILABLE NETWORK BANDWIDTHACC_RR —0CALCULATE MEMORY STRIPE REWRITE RATESQUICK SORT MEMORY STRIPEWHILE(MEMORY STRIPE NOT COMPLETE OR ACC_RR < ANB)BEGINCOPY AND TRANSFER DIRTY PAGE IN MEMORY STRIPEACC_RR = ACC_RR+MEM0RY STRIPE REWRITING RATEENDSAVE DIRTY MEMORY PAGE BITMAPBEGIN NEXT MEMORY PROPAGATION ITERATION本發(fā)明實施例提供的技術方案,通過采用將需要進行數(shù)據(jù)遷移的存儲空間分段得 到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空 間局部性原理和時間局部性原理,即在應用的執(zhí)行過程中對存儲空間的使用存在區(qū)域集中 的特性,并且重寫率較高的存儲空間有很大概率即將再次被修改,將重寫率較高的存儲空 間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少 了數(shù)據(jù)傳輸量,同時也減少了網(wǎng)絡帶寬的開銷。本發(fā)明實施例還提供了一種數(shù)據(jù)遷移的裝置,如圖6所示,包括重寫率計算單元601,用于計算各存儲條帶的重寫率,上述存儲條帶由需要進行數(shù) 據(jù)遷移的存儲空間分段得到;將存儲空間分段得到存儲條帶的具體實現(xiàn)方式可以參考,方法實施例中圖2的 201部分的說明。發(fā)送單元602,用于向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù);遷移控制單元603,用于在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。具體地,上述重寫率計算單元601,用于計算各內(nèi)存條帶的重寫率,上述內(nèi)存條帶 由需要進行數(shù)據(jù)遷移的內(nèi)存分段得到;
上述發(fā)送單元602,用于向目的主機優(yōu)先發(fā)送重寫率低的內(nèi)存條帶中的臟數(shù)據(jù)。進一步地,如圖7所示,上述裝置還包括帶寬獲取單元701,用于獲取當前時間周期內(nèi)源主機到目的主機的可用帶寬;本 實施例中源端的物理主機向目的端的物理主機發(fā)送臟數(shù)據(jù),采用周期性發(fā)送的方式進行; 在每一個周期的時間內(nèi)都會有一個可以確定的可用網(wǎng)絡帶寬。數(shù)據(jù)量計算單元702,用于計算在上述時間周期內(nèi)向目的主機已發(fā)送的臟數(shù)據(jù) 量;數(shù)據(jù)發(fā)送控制單元703,用于若已發(fā)送臟數(shù)據(jù)量達到或超過可用帶寬,則在本周期 停止向目的主機發(fā)送臟數(shù)據(jù);上述遷移控制單元603,用于在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后停止上述循環(huán)執(zhí) 行的流程,結束數(shù)據(jù)遷移??蛇x地,如圖8所示,發(fā)送單元602包括排序子單元6021,用于根據(jù)內(nèi)存條帶的重寫率,對內(nèi)存條帶按重寫率高低順序排 序;此處排序可以是對按升序排序,也可以是按降序排序,對此本發(fā)明實施例不予限定。發(fā)送子單元6022,用于按上述排序的結果,從最低重寫率的內(nèi)存條帶開始依次向 目的主機發(fā)送內(nèi)存條帶中的臟數(shù)據(jù)。具體地,上述遷移控制單元603,用于若臟數(shù)據(jù)發(fā)送的周期次數(shù)達到第一設定值且 現(xiàn)有臟數(shù)據(jù)少于第二設定值,或者臟數(shù)據(jù)全部遷移完畢,則結束數(shù)據(jù)遷移。此處結束數(shù)據(jù)遷 移的條件可以根據(jù)遷移臟數(shù)據(jù)的需要設定,對此本發(fā)明實施例不予限定。本發(fā)明實施例還提供了一種數(shù)據(jù)遷移的系統(tǒng),如圖9所示,包括源主機901、目標 主機902,上述源主機901為本發(fā)明實施例提供的任意一種數(shù)據(jù)遷移的裝置。本發(fā)明實施例提供的技術方案,通過采用將需要進行數(shù)據(jù)遷移的存儲空間分段得 到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空 間局部性原理和時間局部性原理,即在應用的執(zhí)行過程中對存儲空間的使用存在區(qū)域集中 的特性,并且重寫率較高的存儲空間有很大概率即將再次被修改,將重寫率較高的存儲空 間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少 了數(shù)據(jù)傳輸量,同時也減少了網(wǎng)絡帶寬的開銷。本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分步驟是可以 通過程序來指令相關的硬件完成,程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到 的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上對本發(fā)明實施例所提供的一種數(shù)據(jù)遷移的方法、裝置和系統(tǒng)進行了詳細介 紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只 是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā) 明的思想,在具體實施方式
及應用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應理解為 對本發(fā)明的限制。
權利要求
1.一種數(shù)據(jù)遷移的方法,其特征在于,包括計算各存儲條帶的重寫率,所述存儲條帶由需要進行數(shù)據(jù)遷移的存儲空間分段得到; 向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù); 在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。
2.根據(jù)權利要求1所述方法,其特征在于,所述存儲條帶為內(nèi)存條帶,內(nèi)存條帶由需要 進行數(shù)據(jù)遷移的內(nèi)存分段得到;向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)包括向目的主機優(yōu)先發(fā)送重寫 率低的內(nèi)存條帶中的臟數(shù)據(jù)。
3.根據(jù)權利要求2所述方法,其特征在于,所述向目的主機優(yōu)先發(fā)送重寫率低的存儲 條帶中的臟數(shù)據(jù),在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移包括循環(huán)執(zhí)行獲取當前時間周期內(nèi)源主機到目的主機的可用帶寬;向目的主機優(yōu)先發(fā) 送重寫率低的存儲條帶中的臟數(shù)據(jù),并計算在所述時間周期內(nèi)已向目的主機發(fā)送的臟數(shù) 據(jù)量;若已發(fā)送臟數(shù)據(jù)量達到或超過可用帶寬,則在本時間周期停止向目的主機發(fā)送臟數(shù) 據(jù);在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后停止所述循環(huán)執(zhí)行的流程,結束數(shù)據(jù)遷移。
4.根據(jù)權利要求2所述方法,其特征在于,向目的主機優(yōu)先發(fā)送重寫率低的內(nèi)存條帶 中的臟數(shù)據(jù),包括根據(jù)內(nèi)存條帶的重寫率,對內(nèi)存條帶按重寫率高低順序排序; 按所述排序的結果,從最低重寫率的內(nèi)存條帶開始依次向目的主機發(fā)送內(nèi)存條帶中的 臟數(shù)據(jù)。
5.根據(jù)權利要求2至4任意一項所述方法,其特征在于,所述內(nèi)存條帶中的臟數(shù)據(jù)包 括內(nèi)存條帶中的臟內(nèi)存頁。
6.根據(jù)權利要求2至4任意一項所述方法,其特征在于,所述內(nèi)存條帶的臟數(shù)據(jù)發(fā)送狀 態(tài)達到預設要求包括臟數(shù)據(jù)發(fā)送的周期次數(shù)達到第一設定值且現(xiàn)有臟數(shù)據(jù)少于第二設定值,或者全部內(nèi)存 條帶中的臟數(shù)據(jù)遷移完畢。
7.一種數(shù)據(jù)遷移的裝置,其特征在于,包括重寫率計算單元,用于計算各存儲條帶的重寫率,所述存儲條帶由需要進行數(shù)據(jù)遷移 的存儲空間分段得到;發(fā)送單元,用于向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù); 遷移控制單元,用于在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。
8.根據(jù)權利要求7所述裝置,其特征在于,所述存儲條帶為內(nèi)存條帶,內(nèi)存條帶由需要 進行數(shù)據(jù)遷移的內(nèi)存分段得到,所述重寫率計算單元,用于計算各內(nèi)存條帶的重寫率; 所述發(fā)送單元,用于向目的主機優(yōu)先發(fā)送重寫率低的內(nèi)存條帶中的臟數(shù)據(jù)。
9.根據(jù)權利要求7所述裝置,其特征在于,還包括帶寬獲取單元,用于獲取當前時間周期內(nèi)源主機到目的主機的可用帶寬; 數(shù)據(jù)量計算單元,用于計算在所述時間周期內(nèi)向目的主機已發(fā)送的臟數(shù)據(jù)量; 數(shù)據(jù)發(fā)送控制單元,用于若已發(fā)送臟數(shù)據(jù)量達到或超過可用帶寬,則在本時間周期停止向目的主機發(fā)送臟數(shù)據(jù);所述遷移控制單元,用于在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后停止所述循環(huán)執(zhí)行的流 程,結束數(shù)據(jù)遷移。
10.根據(jù)權利要求8所述裝置,其特征在于,發(fā)送單元包括排序子單元,用于根據(jù)內(nèi)存條帶的重寫率,對內(nèi)存條帶按重寫率高低順序排序; 發(fā)送子單元,用于按所述排序的結果,從最低重寫率的內(nèi)存條帶開始依次向目的主機 發(fā)送內(nèi)存條帶中的臟數(shù)據(jù)。
11.根據(jù)權利要求8至10任意一項所述裝置,其特征在于,所述遷移控制單元,用于若臟數(shù)據(jù)發(fā)送的周期次數(shù)達到第一設定值且現(xiàn)有臟數(shù)據(jù)少于 第二設定值,或者全部內(nèi)存條帶中的臟數(shù)據(jù)遷移完畢,則結束數(shù)據(jù)遷移。
12.—種數(shù)據(jù)遷移的系統(tǒng),包括源主機、目標主機,其特征在于,所述源主機為權利要 求7至11任意一項所述的裝置。
全文摘要
本發(fā)明實施例公開了一種數(shù)據(jù)遷移的方法、裝置和系統(tǒng),其中方法的實現(xiàn)包括計算各存儲條帶的重寫率,所述存儲條帶由需要進行數(shù)據(jù)遷移的存儲空間分段得到;向目的主機優(yōu)先發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù);在臟數(shù)據(jù)發(fā)送狀態(tài)達到預設要求后結束數(shù)據(jù)遷移。通過采用將需要進行數(shù)據(jù)遷移的存儲空間分段得到存儲條帶;優(yōu)先向目的主機發(fā)送重寫率低的存儲條帶中的臟數(shù)據(jù)技術手段,從而利用空間局部性原理和時間局部性原理,將重寫率較高的存儲空間的臟數(shù)據(jù)延遲發(fā)送,利用寫合并吸收更多的內(nèi)存寫操作,減少了臟數(shù)據(jù)的傳輸,從而減少了數(shù)據(jù)傳輸量。
文檔編號H04L12/56GK102136993SQ20101024365
公開日2011年7月27日 申請日期2010年7月29日 優(yōu)先權日2010年7月29日
發(fā)明者余宏亮, 杜雨陽, 龔皓 申請人:華為技術有限公司, 清華大學