本發(fā)明涉及計(jì)算機(jī)系統(tǒng)及存儲(chǔ)技術(shù)領(lǐng)域,特別是涉及一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法及系統(tǒng)。
背景技術(shù):
隨著信息科技的發(fā)展以及互聯(lián)網(wǎng)的普及,在各類應(yīng)用中計(jì)算機(jī)系統(tǒng)處理的數(shù)據(jù)量不斷增加,系統(tǒng)中會(huì)時(shí)刻進(jìn)行著數(shù)據(jù)遷移。
目前,計(jì)算機(jī)系統(tǒng)中進(jìn)行數(shù)據(jù)遷移的方法主要有:由主機(jī)操作系統(tǒng)命令進(jìn)行遷移和由備份軟件進(jìn)行遷移。采用主機(jī)操作系統(tǒng)命令遷移的方法,進(jìn)行遷移時(shí)需要中斷前端業(yè)務(wù),如果不中斷前端的業(yè)務(wù)很容易造成數(shù)據(jù)的不一致;采用備份軟件進(jìn)行遷移,同樣需要中斷前端業(yè)務(wù)才能進(jìn)行。因此對(duì)于現(xiàn)有的上述各數(shù)據(jù)遷移方法,在數(shù)據(jù)量比較大的情況下,數(shù)據(jù)遷移會(huì)耗費(fèi)比較多的時(shí)間,而此過(guò)程中要中斷前端業(yè)務(wù),若用戶對(duì)數(shù)據(jù)實(shí)時(shí)性要求很高,這無(wú)疑會(huì)帶來(lái)巨大不便甚至巨大損失。
技術(shù)實(shí)現(xiàn)要素:
鑒于此,本發(fā)明提供一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法及系統(tǒng),克服了現(xiàn)有方法在進(jìn)行數(shù)據(jù)遷移時(shí)需要中斷前端業(yè)務(wù)才可進(jìn)行的問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法,包括:
在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),所述虛擬磁盤(pán)以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù);
建立位圖,所述位圖中的每一元素映射所述源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射所述目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;
根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元,將所述源卷中的數(shù)據(jù)復(fù)制到所述目標(biāo)卷中。
可選地,所述目標(biāo)卷包含的數(shù)據(jù)區(qū)塊的數(shù)量大于等于所述源卷包含的數(shù)據(jù)區(qū)塊的數(shù)量。
可選地,還包括:
當(dāng)所述源卷中的數(shù)據(jù)沒(méi)有成功復(fù)制到所述目標(biāo)卷中時(shí),根據(jù)所述位圖中的標(biāo)記,將所述源卷中沒(méi)有成功復(fù)制的數(shù)據(jù)區(qū)塊的數(shù)據(jù)重新復(fù)制到所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊。
可選地,還包括:
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)讀操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)寫(xiě)操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
可選地,還包括:當(dāng)業(yè)務(wù)寫(xiě)操作在所述源卷中數(shù)據(jù)區(qū)塊進(jìn)行的過(guò)程中,通過(guò)讀寫(xiě)鎖控制該數(shù)據(jù)區(qū)塊的數(shù)據(jù)不進(jìn)行遷移。
一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng),包括:
創(chuàng)建模塊,用于在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),所述虛擬磁盤(pán)以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù);
位圖模塊,包括位圖,所述位圖中的每一元素映射所述源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射所述目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;
數(shù)據(jù)遷移模塊,用于根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元,將所述源卷中的數(shù)據(jù)復(fù)制到所述目標(biāo)卷中。
可選地,所述目標(biāo)卷包含的數(shù)據(jù)區(qū)塊的數(shù)量大于等于所述源卷包含的數(shù)據(jù)區(qū)塊的數(shù)量。
可選地,所述數(shù)據(jù)遷移模塊還用于:
當(dāng)所述源卷中的數(shù)據(jù)沒(méi)有成功復(fù)制到所述目標(biāo)卷中時(shí),根據(jù)所述位圖中的標(biāo)記,將所述源卷中沒(méi)有成功復(fù)制的數(shù)據(jù)區(qū)塊的數(shù)據(jù)重新復(fù)制到所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊。
可選地,還包括業(yè)務(wù)讀/寫(xiě)操作控制模塊,用于:
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)讀操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)寫(xiě)操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
可選地,所述業(yè)務(wù)讀/寫(xiě)操作控制模塊還用于:
當(dāng)業(yè)務(wù)寫(xiě)操作在所述源卷中數(shù)據(jù)區(qū)塊進(jìn)行的過(guò)程中,通過(guò)讀寫(xiě)鎖控制該數(shù)據(jù)區(qū)塊的數(shù)據(jù)不進(jìn)行遷移。
由上述技術(shù)方案可知,本發(fā)明所提供的存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法及系統(tǒng),在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建虛擬磁盤(pán),其中包括作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),在虛擬磁盤(pán)中以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù),并建立位圖,位圖中的每一元素映射源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元將源卷中的數(shù)據(jù)復(fù)制到目標(biāo)卷中。
本發(fā)明存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法及系統(tǒng),通過(guò)創(chuàng)建虛擬磁盤(pán),在將源卷虛擬磁盤(pán)的數(shù)據(jù)復(fù)制到目標(biāo)卷虛擬磁盤(pán)過(guò)程中,是以數(shù)據(jù)區(qū)塊為基本單元進(jìn)行,而正在遷移的數(shù)據(jù)區(qū)塊不一定正被業(yè)務(wù)調(diào)用,此時(shí)不需要中斷業(yè)務(wù),因此通過(guò)該方法進(jìn)行數(shù)據(jù)遷移時(shí)不需要中斷前端業(yè)務(wù)才可進(jìn)行,從而克服了現(xiàn)有方法的問(wèn)題。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法的流程圖;
圖2為本發(fā)明實(shí)施例提供的一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng)的示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明中的技術(shù)方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法,請(qǐng)參考圖1,所述方法包括步驟:
S10:在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),所述虛擬磁盤(pán)以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù);
S11:建立位圖,所述位圖中的每一元素映射所述源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射所述目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;
S12:根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元,將所述源卷中的數(shù)據(jù)復(fù)制到所述目標(biāo)卷中。
可以看出,本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法,在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建虛擬磁盤(pán),其中包括作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),在虛擬磁盤(pán)中以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù),并建立位圖,位圖中的每一元素映射源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元將源卷中的數(shù)據(jù)復(fù)制到目標(biāo)卷中。
本發(fā)明存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法,通過(guò)創(chuàng)建虛擬磁盤(pán),在將源卷虛擬磁盤(pán)的數(shù)據(jù)復(fù)制到目標(biāo)卷虛擬磁盤(pán)過(guò)程中,是以數(shù)據(jù)區(qū)塊為基本單元進(jìn)行,而正在遷移的數(shù)據(jù)區(qū)塊不一定正被業(yè)務(wù)調(diào)用,此時(shí)不需要中斷業(yè)務(wù),因此通過(guò)該方法進(jìn)行數(shù)據(jù)遷移時(shí)不需要中斷前端業(yè)務(wù)才可進(jìn)行,從而克服了現(xiàn)有方法在進(jìn)行數(shù)據(jù)遷移時(shí)需要中斷前端業(yè)務(wù)才可進(jìn)行的問(wèn)題。
下面對(duì)本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法進(jìn)行詳細(xì)說(shuō)明。本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法包括步驟:
S10:在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),所述虛擬磁盤(pán)以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù):。
通過(guò)虛擬化技術(shù),在存儲(chǔ)系統(tǒng)的物理磁盤(pán)上創(chuàng)建虛擬磁盤(pán),對(duì)于創(chuàng)建的多個(gè)虛擬磁盤(pán),分別標(biāo)記為源卷和目標(biāo)卷。
在虛擬磁盤(pán)中,以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù),即在虛擬磁盤(pán)中數(shù)據(jù)以數(shù)據(jù)區(qū)塊為基本單元存儲(chǔ)。
其中,作為目標(biāo)卷的虛擬磁盤(pán)包含的數(shù)據(jù)區(qū)塊的數(shù)量,要大于等于作為源卷的虛擬磁盤(pán)包含的數(shù)據(jù)區(qū)塊的數(shù)量,這樣保證在數(shù)據(jù)遷移過(guò)程中能夠?qū)⒃淳碇械臄?shù)據(jù)完整復(fù)制到目標(biāo)卷磁盤(pán)中。
源卷中的數(shù)據(jù)區(qū)塊的容量大小與目標(biāo)卷中的數(shù)據(jù)區(qū)塊的容量大小要一致,這樣方便在數(shù)據(jù)復(fù)制遷移過(guò)程中數(shù)據(jù)區(qū)塊的管理。
另外,數(shù)據(jù)區(qū)塊的容量大小可以根據(jù)具體數(shù)據(jù)業(yè)務(wù)類型進(jìn)行設(shè)置。針對(duì)不同業(yè)務(wù)類型的遷移過(guò)程,可設(shè)置不同的容量大小,以滿足不同業(yè)務(wù)場(chǎng)景的要求。
S11:建立位圖,所述位圖中的每一元素映射所述源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射所述目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊。
本方法中數(shù)據(jù)遷移過(guò)程中采用位圖管理模式,通過(guò)建立位圖,建立源卷中數(shù)據(jù)區(qū)塊和目標(biāo)卷中數(shù)據(jù)區(qū)塊的映射關(guān)系。
位圖是一個(gè)二維的映射表,也可以理解為連續(xù)的一維數(shù)組,位圖中的每一元素映射源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊,從而建立源卷中數(shù)據(jù)區(qū)塊和目標(biāo)卷中數(shù)據(jù)區(qū)塊的映射關(guān)系。
在位圖中,是以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù),位圖的大小由數(shù)據(jù)區(qū)塊的大小和源卷的大小共同決定,
本實(shí)施例中,根據(jù)不同的業(yè)務(wù)類型可相應(yīng)設(shè)計(jì)數(shù)據(jù)區(qū)塊的大小,數(shù)據(jù)區(qū)塊容量太小會(huì)使遷移線程不停地進(jìn)行切換,降低CPU的性能;而數(shù)據(jù)區(qū)塊太大,會(huì)降低IO數(shù)據(jù)遷移的原子性,而給數(shù)據(jù)不一致性帶來(lái)風(fēng)險(xiǎn)。因此要根據(jù)業(yè)務(wù)類型相應(yīng)設(shè)置數(shù)據(jù)區(qū)塊的大小,要保證數(shù)據(jù)的一致性,還要保證系統(tǒng)的運(yùn)行效率。
S12:根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元,將所述源卷中的數(shù)據(jù)復(fù)制到所述目標(biāo)卷中。
根據(jù)位圖中記錄的源卷與目標(biāo)卷中各數(shù)據(jù)區(qū)塊的映射關(guān)系,將源卷中數(shù)據(jù)區(qū)塊的數(shù)據(jù)復(fù)制到目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊中,進(jìn)行數(shù)據(jù)遷移。
優(yōu)選的,本方法中,當(dāng)源卷中的數(shù)據(jù)沒(méi)有成功復(fù)制到目標(biāo)卷中時(shí),即源卷中各數(shù)據(jù)區(qū)塊的數(shù)據(jù)并沒(méi)有全部成功復(fù)制到目標(biāo)卷中,在所述位圖中會(huì)標(biāo)記出各數(shù)據(jù)區(qū)塊是否成功復(fù)制,根據(jù)位圖中的標(biāo)記,將源卷中沒(méi)有成功復(fù)制的數(shù)據(jù)區(qū)塊的數(shù)據(jù)重新復(fù)制到目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊。
當(dāng)源卷中的數(shù)據(jù)成功復(fù)制到目標(biāo)卷中時(shí),即源卷中各數(shù)據(jù)區(qū)塊的數(shù)據(jù)都已成功復(fù)制到目標(biāo)卷中時(shí),則將所述源卷中的數(shù)據(jù)刪除,數(shù)據(jù)遷移過(guò)程完成。
進(jìn)一步的,本方法中在進(jìn)行數(shù)據(jù)遷移過(guò)程中,系統(tǒng)前端業(yè)務(wù)IO數(shù)據(jù)進(jìn)行讀操作及寫(xiě)操作的方式如下:
關(guān)于業(yè)務(wù)IO數(shù)據(jù)進(jìn)行讀操作的控制方式:
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)讀操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
若在所述源卷和所述目標(biāo)卷中均有讀操作,則業(yè)務(wù)IO數(shù)據(jù)讀操作是上述兩種操作的組合實(shí)現(xiàn)。
關(guān)于業(yè)務(wù)IO數(shù)據(jù)進(jìn)行寫(xiě)操作的控制方式如下:
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)寫(xiě)操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。另外,當(dāng)業(yè)務(wù)寫(xiě)操作在所述源卷中數(shù)據(jù)區(qū)塊進(jìn)行的過(guò)程中,通過(guò)讀寫(xiě)鎖控制該數(shù)據(jù)區(qū)塊的數(shù)據(jù)不進(jìn)行遷移。
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
若在所述源卷和所述目標(biāo)卷中均有寫(xiě)操作,則業(yè)務(wù)IO數(shù)據(jù)寫(xiě)操作是上述兩種操作的組合實(shí)現(xiàn)。
因此,本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法,通過(guò)創(chuàng)建虛擬磁盤(pán),在將源卷虛擬磁盤(pán)的數(shù)據(jù)復(fù)制到目標(biāo)卷虛擬磁盤(pán)過(guò)程中,是以數(shù)據(jù)區(qū)塊為基本單元進(jìn)行,而正在遷移的數(shù)據(jù)區(qū)塊不一定正被業(yè)務(wù)調(diào)用,此時(shí)不需要中斷業(yè)務(wù),因此通過(guò)該方法達(dá)到數(shù)據(jù)遷移過(guò)程中前端業(yè)務(wù)不中斷的目的。數(shù)據(jù)遷移過(guò)程不會(huì)影響關(guān)鍵數(shù)據(jù)業(yè)務(wù),保持前端業(yè)務(wù)的連續(xù)性,可滿足用戶對(duì)數(shù)據(jù)實(shí)時(shí)性的要求。
相應(yīng)的,本發(fā)明實(shí)施例還提供一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng),請(qǐng)參考圖2,所述系統(tǒng)包括:
創(chuàng)建模塊20,用于在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),所述虛擬磁盤(pán)以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù);
位圖模塊21,包括位圖,所述位圖中的每一元素映射所述源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射所述目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;
數(shù)據(jù)遷移模塊22,用于根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元,將所述源卷中的數(shù)據(jù)復(fù)制到所述目標(biāo)卷中。
可以看出,本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng),在存儲(chǔ)系統(tǒng)的磁盤(pán)中創(chuàng)建虛擬磁盤(pán),其中包括作為源卷的虛擬磁盤(pán)和作為目標(biāo)卷的虛擬磁盤(pán),在虛擬磁盤(pán)中以數(shù)據(jù)區(qū)塊為基本單元管理數(shù)據(jù),并建立位圖,位圖中的每一元素映射源卷中的一個(gè)數(shù)據(jù)區(qū)塊,并映射目標(biāo)卷中的一個(gè)數(shù)據(jù)區(qū)塊;根據(jù)所述位圖記錄的映射關(guān)系,以數(shù)據(jù)區(qū)塊為基本單元將源卷中的數(shù)據(jù)復(fù)制到目標(biāo)卷中。
本發(fā)明存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng),通過(guò)創(chuàng)建虛擬磁盤(pán),在將源卷虛擬磁盤(pán)的數(shù)據(jù)復(fù)制到目標(biāo)卷虛擬磁盤(pán)過(guò)程中,是以數(shù)據(jù)區(qū)塊為基本單元進(jìn)行,而正在遷移的數(shù)據(jù)區(qū)塊不一定正被業(yè)務(wù)調(diào)用,此時(shí)不需要中斷業(yè)務(wù),因此通過(guò)該方法進(jìn)行數(shù)據(jù)遷移時(shí)不需要中斷前端業(yè)務(wù)才可進(jìn)行,從而克服了現(xiàn)有方法的問(wèn)題。
本實(shí)施例中,創(chuàng)建的目標(biāo)卷包含的數(shù)據(jù)區(qū)塊的數(shù)量大于等于所述源卷包含的數(shù)據(jù)區(qū)塊的數(shù)量。這樣保證在數(shù)據(jù)遷移過(guò)程中能夠?qū)⒃淳碇械臄?shù)據(jù)完整復(fù)制到目標(biāo)卷磁盤(pán)中。
本實(shí)施例中,所述數(shù)據(jù)遷移模塊22還用于:
當(dāng)所述源卷中的數(shù)據(jù)沒(méi)有成功復(fù)制到所述目標(biāo)卷中時(shí),根據(jù)所述位圖中的標(biāo)記,將所述源卷中沒(méi)有成功復(fù)制的數(shù)據(jù)區(qū)塊的數(shù)據(jù)重新復(fù)制到所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊。
當(dāng)源卷中的數(shù)據(jù)成功復(fù)制到目標(biāo)卷中時(shí),即源卷中各數(shù)據(jù)區(qū)塊的數(shù)據(jù)都已成功復(fù)制到目標(biāo)卷中時(shí),則數(shù)據(jù)遷移模塊將所述源卷中的數(shù)據(jù)刪除,數(shù)據(jù)遷移過(guò)程完成。
另外,本實(shí)施例存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移系統(tǒng)還包括業(yè)務(wù)讀/寫(xiě)操作控制模塊,用于:
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)讀操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行讀操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)讀操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為已完成遷移,則控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為未遷移,則控制業(yè)務(wù)寫(xiě)操作在所述源卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行;
若在所述位圖中,業(yè)務(wù)要進(jìn)行寫(xiě)操作的數(shù)據(jù)區(qū)塊對(duì)應(yīng)標(biāo)記為正在遷移,則等待完成遷移后,控制業(yè)務(wù)寫(xiě)操作在所述目標(biāo)卷中對(duì)應(yīng)的數(shù)據(jù)區(qū)塊進(jìn)行。
所述業(yè)務(wù)讀/寫(xiě)操作控制模塊還用于:
當(dāng)業(yè)務(wù)寫(xiě)操作在所述源卷中數(shù)據(jù)區(qū)塊進(jìn)行的過(guò)程中,通過(guò)讀寫(xiě)鎖控制該數(shù)據(jù)區(qū)塊的數(shù)據(jù)不進(jìn)行遷移。
以上對(duì)本發(fā)明所提供的一種存儲(chǔ)系統(tǒng)數(shù)據(jù)遷移方法及系統(tǒng)進(jìn)行了詳細(xì)介紹。本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以對(duì)本發(fā)明進(jìn)行若干改進(jìn)和修飾,這些改進(jìn)和修飾也落入本發(fā)明權(quán)利要求的保護(hù)范圍內(nèi)。