數(shù)據(jù)遷移的方法、控制器和數(shù)據(jù)遷移裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)技術(shù),尤其涉及一種數(shù)據(jù)迀移的方法、控制器和數(shù)據(jù)迀移裝置。
【背景技術(shù)】
[0002]存儲(chǔ)設(shè)備在存儲(chǔ)數(shù)據(jù)時(shí),對(duì)于重要性較高的數(shù)據(jù),通常通過(guò)同時(shí)存儲(chǔ)多份數(shù)據(jù)副本的方式來(lái)保證數(shù)據(jù)的可靠性。舉例來(lái)說(shuō),可以將多份數(shù)據(jù)副本分別存儲(chǔ)在不同的故障域中,當(dāng)一份數(shù)據(jù)副本的所在的存儲(chǔ)空間損壞時(shí),其他數(shù)據(jù)副本仍然可用。故障域是指某一設(shè)定范圍的存儲(chǔ)區(qū)域,該區(qū)域的數(shù)據(jù)損壞不會(huì)影響到其他區(qū)域的數(shù)據(jù)。
[0003]同時(shí),分層存儲(chǔ)技術(shù)已廣泛應(yīng)用于存儲(chǔ)設(shè)備中。分層存儲(chǔ)技術(shù)是指,在存儲(chǔ)設(shè)備中的存儲(chǔ)介質(zhì)存在著較大的速度和價(jià)格差異時(shí),將當(dāng)前訪(fǎng)問(wèn)頻繁的數(shù)據(jù)(又稱(chēng)熱數(shù)據(jù))存儲(chǔ)在高速高價(jià)格的存儲(chǔ)介質(zhì)上,將當(dāng)前訪(fǎng)問(wèn)不夠頻繁的數(shù)據(jù)(又稱(chēng)冷數(shù)據(jù))存儲(chǔ)在低速低價(jià)格的存儲(chǔ)介質(zhì)上。
[0004]當(dāng)以上兩種技術(shù)應(yīng)用于同一個(gè)存儲(chǔ)設(shè)備時(shí),可能會(huì)出現(xiàn)這種情況,例如:存儲(chǔ)設(shè)備中保存了兩份數(shù)據(jù)副本,其中,一份數(shù)據(jù)副本保存在至低速低價(jià)格的存儲(chǔ)介質(zhì)的一個(gè)故障域中,另一份數(shù)據(jù)副本保存在至低速低價(jià)格的存儲(chǔ)介質(zhì)的一個(gè)故障域中,當(dāng)其中一份數(shù)據(jù)副本所在的數(shù)據(jù)塊變成熱數(shù)據(jù)塊時(shí),為了提高其訪(fǎng)問(wèn)效率需要將該數(shù)據(jù)塊迀移至高速高價(jià)格的存儲(chǔ)介質(zhì)上,就有可能將該數(shù)據(jù)副本和另一份數(shù)據(jù)副本存儲(chǔ)在同一個(gè)故障域中,那么當(dāng)該故障域的存儲(chǔ)空間發(fā)生損壞時(shí),數(shù)據(jù)將發(fā)生丟失,可靠性不能得到保障。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移的方法、控制器和數(shù)據(jù)迀移裝置。避免了在執(zhí)行分級(jí)存儲(chǔ)操作時(shí)將多份目標(biāo)數(shù)據(jù)迀移至同一個(gè)故障域中,保證了數(shù)據(jù)的可靠性。
[0006]第一方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移的方法,所述方法由存儲(chǔ)設(shè)備執(zhí)行,所述存儲(chǔ)設(shè)備至少包括控制器、第一層級(jí)磁盤(pán)集合和第二層級(jí)磁盤(pán)集合,所述第一層級(jí)磁盤(pán)集合包括第一層級(jí)故障域,所述第二層級(jí)磁盤(pán)集合包括至少兩個(gè)第二層級(jí)故障域;所述存儲(chǔ)設(shè)備中保存有N份目標(biāo)數(shù)據(jù),N為大于I的正整數(shù),所述N小于第一層級(jí)故障域的個(gè)數(shù),并且所述N小于第二層級(jí)故障域的個(gè)數(shù);所述方法包括:
[0007]所述控制器統(tǒng)計(jì)所述第一層級(jí)故障域中的數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率,所述數(shù)據(jù)塊包括第i份目標(biāo)數(shù)據(jù),其中i為大于或等于零的整數(shù),并且,i〈N;
[0008]當(dāng)所述數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率達(dá)到預(yù)設(shè)閾值時(shí),所述控制器在所述第二層級(jí)磁盤(pán)集合中確定待存儲(chǔ)所述數(shù)據(jù)塊的第二層級(jí)故障域,所述確定出的第二層級(jí)故障域沒(méi)有保存所述目標(biāo)數(shù)據(jù);
[0009]所述控制器將所述數(shù)據(jù)塊迀移到所述確定出的第二層級(jí)故障域中。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述控制器在所述第二層級(jí)磁盤(pán)集合中確定待存儲(chǔ)所述數(shù)據(jù)塊的第二層級(jí)故障域包括:
[0011]所述控制器根據(jù)所述i和N,以及預(yù)先設(shè)定的關(guān)聯(lián)關(guān)系,確定所述第二層級(jí)故障域的編號(hào),所述關(guān)聯(lián)關(guān)系是指所述第二層級(jí)故障域的編號(hào)等于所述N與隨機(jī)數(shù)的乘積再加上所述i,從而獲得的和,其中,所述隨機(jī)數(shù)是大于或等于I的正整數(shù),并且所述隨機(jī)數(shù)不超過(guò)所述存儲(chǔ)設(shè)備所包含的第二層級(jí)故障域的個(gè)數(shù)除以所述N從而獲得的商。
[0012]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0013]所述控制器保存所述第一層級(jí)故障域和所述確定出的第二層級(jí)故障域之間的對(duì)應(yīng)關(guān)系;
[0014]當(dāng)所述數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率低于所述預(yù)設(shè)閾值時(shí),所述控制器根據(jù)所述對(duì)應(yīng)關(guān)系將所述數(shù)據(jù)塊從所述確定出的第二層級(jí)故障域迀移到所述第一層級(jí)故障域中。
[0015]結(jié)合第一方面或者第一方面的第一種至第二種任意一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0016]所述控制器接收所述目標(biāo)數(shù)據(jù),根據(jù)預(yù)設(shè)的規(guī)則確定所述目標(biāo)數(shù)據(jù)在所述存儲(chǔ)設(shè)備中保存的份數(shù)為N;
[0017]所述控制器對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行復(fù)制,生成N份所述目標(biāo)數(shù)據(jù)。
[0018]第二方面,本發(fā)明實(shí)施例提供了一種控制器,所述控制器包括處理器和通信接P ;
[0019]所述通信接口,用于與磁盤(pán)陣列進(jìn)行通信,所述磁盤(pán)陣列包括第一層級(jí)磁盤(pán)集合和第二層級(jí)磁盤(pán)集合,所述第一層級(jí)磁盤(pán)集合包括第一層級(jí)故障域,所述第二層級(jí)磁盤(pán)集合包括至少兩個(gè)第二層級(jí)故障域;所述磁盤(pán)陣列中保存有N份目標(biāo)數(shù)據(jù),N為大于I的正整數(shù),所述N小于第一層級(jí)故障域的個(gè)數(shù),并且所述N小于第二層級(jí)故障域的個(gè)數(shù);
[0020]所述處理器,用于統(tǒng)計(jì)所述第一層級(jí)故障域中的數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率,所述數(shù)據(jù)塊包括第i份目標(biāo)數(shù)據(jù),其中i為大于或等于零的整數(shù),并且,i〈N ;
[0021]當(dāng)所述數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率達(dá)到預(yù)設(shè)閾值時(shí),所述處理器在所述第二層級(jí)磁盤(pán)集合中確定待存儲(chǔ)所述數(shù)據(jù)塊的第二層級(jí)故障域,所述確定出的第二層級(jí)故障域沒(méi)有保存所述目標(biāo)數(shù)據(jù);
[0022]所述處理器將所述數(shù)據(jù)塊迀移到所述確定出的第二層級(jí)故障域中。
[0023]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述處理器具體用于根據(jù)所述i和N,以及預(yù)先設(shè)定的關(guān)聯(lián)關(guān)系,確定所述第二層級(jí)故障域的編號(hào),所述關(guān)聯(lián)關(guān)系是指所述第二層級(jí)故障域的編號(hào)等于所述N與隨機(jī)數(shù)的乘積再加上所述i,從而獲得的和,其中,所述隨機(jī)數(shù)是大于或等于I的正整數(shù),并且所述隨機(jī)數(shù)不超過(guò)所述存儲(chǔ)設(shè)備所包含的第二層級(jí)故障域的個(gè)數(shù)除以所述N從而獲得的商。
[0024]結(jié)合第二方面或者第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述處理器還用于保存所述第一層級(jí)故障域和所述確定出的第二層級(jí)故障域之間的對(duì)應(yīng)關(guān)系;
[0025]當(dāng)所述數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率低于所述預(yù)設(shè)閾值時(shí),所述處理器還用于根據(jù)所述對(duì)應(yīng)關(guān)系將所述數(shù)據(jù)塊從所述確定出的第二層級(jí)故障域迀移到所述第一層級(jí)故障域中。
[0026]結(jié)合第二方面或者第二方面的第一種至第二種任意一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述處理器還用于接收所述目標(biāo)數(shù)據(jù),根據(jù)預(yù)設(shè)的規(guī)則確定所述目標(biāo)數(shù)據(jù)在所述存儲(chǔ)設(shè)備中保存的份數(shù)為N ;所述控制器對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行復(fù)制,生成N份所述目標(biāo)數(shù)據(jù)。
[0027]第三方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移裝置,所述數(shù)據(jù)迀移裝置位于存儲(chǔ)設(shè)備的控制器中,所述存儲(chǔ)設(shè)備至少包括所述控制器、第一層級(jí)磁盤(pán)集合和第二層級(jí)磁盤(pán)集合,所述第一層級(jí)磁盤(pán)集合包括第一層級(jí)故障域,所述第二層級(jí)磁盤(pán)集合包括至少兩個(gè)第二層級(jí)故障域;所述存儲(chǔ)設(shè)備中保存有N份目標(biāo)數(shù)據(jù),N為大于I的正整數(shù),所述N小于第一層級(jí)故障域的個(gè)數(shù),并且所述N小于第二層級(jí)故障域的個(gè)數(shù);所述數(shù)據(jù)迀移裝置包括:
[0028]統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)所述第一層級(jí)故障域中的數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率,所述數(shù)據(jù)塊包括第i份目標(biāo)數(shù)據(jù),其中i為大于或等于零的整數(shù),并且,i〈N ;
[0029]確定模塊,用于當(dāng)所述數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率達(dá)到預(yù)設(shè)閾值時(shí),在所述第二層級(jí)磁盤(pán)集合中確定待存儲(chǔ)所述數(shù)據(jù)塊的第二層級(jí)故障域,所述確定出的第二層級(jí)故障域沒(méi)有保存所述目標(biāo)數(shù)據(jù);
[0030]迀移模塊,用于將所述數(shù)據(jù)塊迀移到所述確定出的第二層級(jí)故障域中。
[0031]結(jié)合第三方面,在第一種可能的實(shí)現(xiàn)方式中,所述確定模塊具體用于根據(jù)所述i和N,以及預(yù)先設(shè)定的關(guān)聯(lián)關(guān)系,確定所述第二層級(jí)故障域的編號(hào),所述關(guān)聯(lián)關(guān)系是指所述第二層級(jí)故障域的編號(hào)等于所述N與隨機(jī)數(shù)的乘積再加上所述i,從而獲得的和,其中,所述隨機(jī)數(shù)是大于或等于I的正整數(shù),并且所述隨機(jī)數(shù)不超過(guò)所述存儲(chǔ)設(shè)備所包含的第二層級(jí)故障域的個(gè)數(shù)除以所述N從而獲得的商。
[0032]結(jié)合第三方面或者第三方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,還包括:
[0033]保存模塊,用于保存所述第一層級(jí)故障域和所述確定出的第二層級(jí)故障域之間的對(duì)應(yīng)關(guān)系;
[0034]所述迀移模塊,還用于根據(jù)所述對(duì)應(yīng)關(guān)系將所述數(shù)據(jù)塊從所述確定出的第二層級(jí)故障域迀移到所述第一層級(jí)故障域中。
[0035]結(jié)合第三方面或者第三方面的第一種至第二種任意一種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,還包括:接收模塊,用于接收所述目標(biāo)數(shù)據(jù),根據(jù)預(yù)設(shè)的規(guī)則確定所述目標(biāo)數(shù)據(jù)在所述存儲(chǔ)設(shè)備中保存的份數(shù)為N ;
[0036]復(fù)制模塊,用于對(duì)所述目標(biāo)數(shù)據(jù)進(jìn)行復(fù)制,生成N份所述目標(biāo)數(shù)據(jù)。
[0037]本發(fā)明實(shí)施例提供了一種數(shù)據(jù)迀移的方法、控制器和數(shù)據(jù)迀移裝置,統(tǒng)計(jì)所述第一層級(jí)故障域中的數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率,所述數(shù)據(jù)塊包括多份目標(biāo)數(shù)據(jù)中的其中一份,當(dāng)?shù)谝粚蛹?jí)故障域中的數(shù)據(jù)塊的訪(fǎng)問(wèn)頻率達(dá)到預(yù)設(shè)閾值時(shí),將所述數(shù)據(jù)塊迀移至第二層級(jí)故障域,并且所述第二層級(jí)故障域沒(méi)有保存所述目標(biāo)數(shù)據(jù),這就避免了在執(zhí)行分級(jí)存儲(chǔ)操作時(shí)將多份目標(biāo)數(shù)據(jù)迀移至同一個(gè)故障域中,保證了數(shù)據(jù)的可靠性。
【附圖說(shuō)明】
[0038]為了更清楚地說(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ù)這些附圖獲得其他的附圖。
[0039]圖1是根據(jù)本發(fā)明實(shí)施例提供的應(yīng)用場(chǎng)景圖;
[0040]圖2是根據(jù)本發(fā)明實(shí)施例提供的存儲(chǔ)設(shè)備的結(jié)構(gòu)示意圖;
[0041]圖3是根據(jù)本發(fā)明實(shí)施例提供的磁盤(pán)陣列的示例圖;
[0042]圖4是根據(jù)本發(fā)明實(shí)施例提供的磁盤(pán)陣列中的故障域分布示意圖;
[0043]圖5是根據(jù)本發(fā)明實(shí)施例提供的數(shù)據(jù)迀移的方法的流程示意圖;
[0044]圖6是根據(jù)本發(fā)明實(shí)施例提供的數(shù)據(jù)迀移裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0045]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)