亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

數(shù)據(jù)存儲(chǔ)方法及存儲(chǔ)裝置制造方法

文檔序號(hào):6523658閱讀:134來源:國知局
數(shù)據(jù)存儲(chǔ)方法及存儲(chǔ)裝置制造方法
【專利摘要】本發(fā)明適用數(shù)據(jù)存儲(chǔ)【技術(shù)領(lǐng)域】,提供了一種RAID數(shù)據(jù)存儲(chǔ)方法及裝置,所述方法用于將數(shù)據(jù)存儲(chǔ)于獨(dú)立磁盤冗余陣列RAID中,所述RAID由分布于不同磁盤中的磁盤塊構(gòu)成,包括:接收應(yīng)用服務(wù)器發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)和數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù);在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù);將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。使用本發(fā)明,可提高通過虛擬化RAID存儲(chǔ)數(shù)據(jù)的可靠性。
【專利說明】數(shù)據(jù)存儲(chǔ)方法及存儲(chǔ)裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于存儲(chǔ)領(lǐng)域,尤其涉及一種RAID數(shù)據(jù)存儲(chǔ)方法及存儲(chǔ)裝置。
【背景技術(shù)】
[0002]獨(dú)立冗余磁盤陣列(RedundantArray of Independent Disk, RAID)是存儲(chǔ)領(lǐng)域最為常用的提高系統(tǒng)可靠性的方法。通過同時(shí)使用多塊磁盤,并按照一定的算法規(guī)則,虛擬化成一塊單獨(dú)的大容量高可靠性磁盤進(jìn)行使用。當(dāng)具有冗余級(jí)別的RAID組中的其中一個(gè)發(fā)生成員盤損壞時(shí),可以利用其他成員盤的數(shù)據(jù)以及冗余數(shù)據(jù)進(jìn)行數(shù)據(jù)的修復(fù),從而實(shí)現(xiàn)RAID組可靠性高于單個(gè)磁盤的目的。
[0003]但是由于傳統(tǒng)的RAID必須使用一整塊磁盤,故存在構(gòu)成速度慢,空間使用不靈活的問題。而虛擬化RAID不再使用完整的磁盤作為RAID的成員盤,而將磁盤劃分成多個(gè)磁盤塊,使用這些磁盤塊創(chuàng)建RAID。這種虛擬化RAID的組織方式使RAID的組成更靈活,磁盤使用方式更靈活,構(gòu)成單個(gè)RAID的所需的存儲(chǔ)空間更低等優(yōu)勢(shì)。
[0004]通常對(duì)于一些重要數(shù)據(jù),為了提高數(shù)據(jù)的可靠性,存儲(chǔ)系統(tǒng)會(huì)在多個(gè)RAID上同時(shí)保存多份相同數(shù)據(jù)。以兩份數(shù)據(jù)存放在兩個(gè)RAID5 (每個(gè)RAID包括3個(gè)成員盤)上為例,由于每個(gè)RAID存在校驗(yàn)數(shù)據(jù)及冗余數(shù)據(jù),若一個(gè)RAID中的其中一個(gè)成員盤損壞之后,可以通過該RAID中的另外兩個(gè)盤中的校驗(yàn)及冗余數(shù)據(jù)進(jìn)行恢復(fù),故傳統(tǒng)的兩個(gè)RAID可以保證其中任意三個(gè)成員盤損壞之后,存儲(chǔ)在兩個(gè)RAID中的數(shù)據(jù)都可以被恢復(fù),而不會(huì)丟失的,如圖1所示,若RAID I中壞了兩個(gè)磁盤10,RAID II壞了一個(gè)磁盤20,則壞了一個(gè)磁盤的RAID II的數(shù)據(jù)可以通過該RAID II中的另外兩個(gè)磁盤20恢復(fù),如此可根據(jù)所恢復(fù)的RAIDII中的數(shù)據(jù)恢復(fù)RAID I中的數(shù)據(jù)。
[0005]如圖2所示,在現(xiàn)有的虛擬化RAID中,虛擬化RAID由分布于不同磁盤30中的磁盤塊301構(gòu)成,而不再是由獨(dú)立磁盤30構(gòu)成。這種虛擬化的方法使得不同的RAID的磁盤塊301可能同時(shí)位于同一磁盤30之上。因此,當(dāng)將兩份數(shù)據(jù)存儲(chǔ)至兩個(gè)RAID時(shí),不能保證兩個(gè)RAID的磁盤塊301不會(huì)選到同一塊磁盤30上,從而降低了可靠性。例如,如圖2所示,在六個(gè)盤中,包括兩個(gè)RAID,即由標(biāo)識(shí)為RO的磁盤塊組成的RAID以及由標(biāo)識(shí)為Rl的磁盤塊構(gòu)成的RAID,該兩個(gè)RAID有兩個(gè)磁盤塊301在同一磁盤30中(如圖2中的虛線部分所示),如此當(dāng)這兩個(gè)磁盤30都?jí)牧酥?,這兩個(gè)RAID中存儲(chǔ)的數(shù)據(jù)都無法恢復(fù),降低了存儲(chǔ)可靠性。

【發(fā)明內(nèi)容】

[0006]本發(fā)明實(shí)施例的目的在于提供一種存儲(chǔ)方法及存儲(chǔ)裝置,能夠在將數(shù)據(jù)存儲(chǔ)于虛擬化的RAID中時(shí),提高數(shù)據(jù)存儲(chǔ)的可靠性。
[0007]第一方面,本發(fā)明提供了一種數(shù)據(jù)存儲(chǔ)方法,所述方法用于將數(shù)據(jù)存儲(chǔ)于獨(dú)立磁盤冗余陣列RAID中,所述RAID由分布于不同磁盤中的磁盤塊構(gòu)成,包括:
[0008]接收應(yīng)用服務(wù)器發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)和數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù);
[0009]在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù);
[0010]將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。
[0011]在本發(fā)明的第一方面的第一種實(shí)現(xiàn)方式中,所述在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID包括:
[0012]在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID ;
[0013]根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N-1個(gè)第二 RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
[0014]在本發(fā)明的第一方面的第一種實(shí)現(xiàn)方式所提供的數(shù)據(jù)存儲(chǔ)方法中,優(yōu)選地,還包括:
[0015]將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中;
[0016]建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
[0017]優(yōu)選地,所述存儲(chǔ)請(qǐng)求中還包含數(shù)據(jù)的大小,所述在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID包括:
[0018]根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID。
[0019]優(yōu)選地,所述根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID包括:
[0020]根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。
[0021]第二方面,本發(fā)明提供了一種存儲(chǔ)裝置,所述裝置用于將數(shù)據(jù)存儲(chǔ)于獨(dú)立磁盤冗余陣列RAID中,所述RAID由分布于不同磁盤中的磁盤塊構(gòu)成,所述裝置包括:
[0022]接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)和數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù);
[0023]確定模塊,用于在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù);
[0024]存儲(chǔ)模塊,用于將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。
[0025]在第二方面的第一種實(shí)現(xiàn)方式中,所述確定模塊具體用于:
[0026]在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID ;
[0027]并根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N_1個(gè)第二 RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
[0028]優(yōu)選地,所述的存儲(chǔ)裝置還包括:
[0029]配置模塊,用于將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中;
[0030]建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
[0031]優(yōu)選地,所述存儲(chǔ)請(qǐng)求中還包含包數(shù)據(jù)的大小,所述確定模塊具體用于:根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID。[0032]優(yōu)選地,所述確定模塊具體用于:
[0033]根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。
[0034]本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,存儲(chǔ)數(shù)據(jù)的RAID由磁盤上的磁盤塊構(gòu)成,在接收到存儲(chǔ)N份數(shù)據(jù)拷貝的存儲(chǔ)請(qǐng)求時(shí),可以通過預(yù)先創(chuàng)建的M個(gè)RAID中選擇存儲(chǔ)數(shù)據(jù)的N個(gè)RAID,其中,選擇的N個(gè)RAID的磁盤塊均分布于不同的磁盤中,并將所述N份數(shù)據(jù)分別存儲(chǔ)在選擇的所述N個(gè)RAID中。在本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,由于選擇的N個(gè)RAID由分布于不同磁盤的磁盤塊構(gòu)成,因此,與現(xiàn)有技術(shù)中在虛擬化RAID中存儲(chǔ)多份數(shù)據(jù)的方法相比,本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法能夠提高在虛擬化RAID中存儲(chǔ)的數(shù)據(jù)的可靠性。
【專利附圖】

【附圖說明】
[0035]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例。
[0036]圖1為現(xiàn)有技術(shù)中的一種RAID的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖;
[0037]圖2為現(xiàn)有技術(shù)中的另外一種RAID的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖;
[0038]圖3為本發(fā)明實(shí)施例提供的一種應(yīng)用場(chǎng)景圖;
[0039]圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的流程圖;
[0040]圖5為本發(fā)明實(shí)施例提供的一種RAID結(jié)構(gòu)示意圖;
[0041]圖6為本發(fā)明實(shí)施例提供的又一種RAID結(jié)構(gòu)示意圖;
[0042]圖7為本發(fā)明實(shí)施例提供的一種存儲(chǔ)裝置的結(jié)構(gòu)示意圖。
[0043]具體實(shí)現(xiàn)方式
[0044]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例。
[0045]圖3為本發(fā)明實(shí)施例提供的一種應(yīng)用場(chǎng)景圖。如圖3所示,應(yīng)用服務(wù)器2與RAID系統(tǒng)I通過有線或者無線方式連接,RAID系統(tǒng)I用于存儲(chǔ)數(shù)據(jù),應(yīng)用服務(wù)器2可存儲(chǔ)數(shù)據(jù)至RAID系統(tǒng)I或者從RAID系統(tǒng)I中獲取數(shù)據(jù)。獨(dú)立冗余磁盤陣列(Redundant Array ofIndependent Disk, RAID)系統(tǒng)I由陣列控制器11和一組連接至陣列控制器11的磁盤12組成。RAID系統(tǒng)I中的數(shù)據(jù)即存儲(chǔ)于磁盤12中,陣列控制器11用于組織所連接的磁盤12,并將所連接的磁盤12劃分為多個(gè)磁盤塊,然后根據(jù)算法邏輯創(chuàng)建出由磁盤塊構(gòu)成的多個(gè)虛擬化的RAID。實(shí)際應(yīng)用中,在創(chuàng)建虛擬化的RAID時(shí),可以先根據(jù)需要?jiǎng)?chuàng)建的RAID的級(jí)別確定每個(gè)RAID的包括的磁盤塊的數(shù)目及建立虛擬RAID的磁盤,然后在所選的磁盤上選擇構(gòu)成每個(gè)RAID的磁盤塊。
[0046]需要說明的是,在本發(fā)明實(shí)施例中,如無特別說明,描述的RAID均是指虛擬化RAID,換一種表達(dá)方式,本發(fā)明實(shí)施例中的RAID均是指由磁盤塊構(gòu)建的RAID。
[0047]圖4為本發(fā)明實(shí)施例提供的一種數(shù)據(jù)存儲(chǔ)方法的流程圖。該方法可以應(yīng)用于圖3所示的應(yīng)用場(chǎng)景中。所述方法用于將數(shù)據(jù)存儲(chǔ)于所述RAID系統(tǒng)I中,該RAID系統(tǒng)I中包括多個(gè)RAID,每個(gè)RAID由分布于不同磁盤中的磁盤塊構(gòu)成。如圖4所示,所述方法包括:
[0048]步驟S40,接收應(yīng)用服務(wù)器2發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)、數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù)。其中,該存儲(chǔ)請(qǐng)求中除了攜帶數(shù)據(jù)及數(shù)據(jù)拷貝份數(shù)之外還可以包括其他信息,如數(shù)據(jù)的大小以及數(shù)據(jù)的源地址等,在此不做限定。
[0049]步驟S41,在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù)。
[0050]實(shí)際應(yīng)用中,可以先在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID,再根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N-1個(gè)第二 RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
[0051]例如,若構(gòu)建RAID R0,RAID Rl及RAID R2 (為了描述方便,下面分別用R0、R1和R2來表示)的磁盤塊均分布于不同的磁盤上,則可以預(yù)先在R0、Rl及R2之間建立對(duì)應(yīng)關(guān)系。在接收到數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),如果需要存儲(chǔ)三份數(shù)據(jù),若將RO確定為第一RAID,則根據(jù)上述預(yù)設(shè)的對(duì)應(yīng)關(guān)系,Rl及R2即被確定為第二 RAID,并將第一份數(shù)據(jù)存儲(chǔ)在RO中,第二份及第三份數(shù)據(jù)則分別存儲(chǔ)于與RO對(duì)應(yīng)的Rl及R2中。通過預(yù)先建立這樣的對(duì)應(yīng)關(guān)系,在存儲(chǔ)多份數(shù)據(jù)時(shí),只要確定存儲(chǔ)第一份數(shù)據(jù)的第一 RAID,即可根據(jù)預(yù)設(shè)的對(duì)應(yīng)關(guān)系找到存儲(chǔ)其他份數(shù)據(jù)的第二 RAID。
[0052]實(shí)際應(yīng)用中,在選擇存儲(chǔ)數(shù)據(jù)的第一 RAID時(shí),可以具體根據(jù)存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID。進(jìn)一步的,為了使各個(gè)RAID中存儲(chǔ)的數(shù)據(jù)實(shí)現(xiàn)負(fù)載均衡,在實(shí)際選擇第一 RAID的過程中,還可以根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。
[0053]預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系一般在執(zhí)行本實(shí)施方式的方法之前由所述陣列控制器11建立,例如可以在陣列控制器11建立虛擬RAID時(shí)建立,具體的建立方式為:將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中;建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
[0054]例如,可以從創(chuàng)建的M個(gè)RAID中找出三個(gè)磁盤塊均不在同一磁盤上RO、RU R2組成一個(gè)RAID組,并可將該組中各個(gè)RAID之間的對(duì)應(yīng)關(guān)系記錄為(R0、R1、R2)。實(shí)際應(yīng)用中,每組RAID中所包括的RAID的個(gè)數(shù)可以根據(jù)具體情況確定。但一般情況下,只有數(shù)據(jù)的存儲(chǔ)份數(shù)小于等于該組RAID中的RAID的個(gè)數(shù)時(shí),該組RAID才可以用來存儲(chǔ)該數(shù)據(jù)。將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組的方式可以為遍歷的方式。具體的,可以通過遍歷創(chuàng)建的RAID中的磁盤塊所分布的磁盤,將分布于不同磁盤的磁盤塊構(gòu)建的RAID劃分為一個(gè)RAID組。換一種表達(dá)方式,構(gòu)建一個(gè)RAID組中的所有RAID的磁盤塊均分布于不同的磁盤上。例如,可以首先確定一個(gè)RAID的磁盤塊所在的磁盤后,然后在M-1個(gè)RAID中逐個(gè)查找由與確定的RAID中的磁盤塊不屬于同一個(gè)磁盤的磁盤塊構(gòu)成的RAID,并將查找獲得的RAID與預(yù)先確定的RAID劃分為一個(gè)RAID組。例如,以一組RAID包括兩個(gè)RAID,每個(gè)RAID的級(jí)別為RAID5,且每個(gè)RAID涉及3個(gè)磁盤塊為例說明。如圖5所示,圖5為本發(fā)明實(shí)施例提供的一種RAID結(jié)構(gòu)示意圖。若RAID系統(tǒng)I包括6個(gè)磁盤Dl、D2、D3、D4、D5及D6,將要建立的一 RAID組中的其中一個(gè)RAID NO的三個(gè)磁盤塊所在的磁盤分別為Dl、D3、D5,則其他由除磁盤Dl、D3、D5之外的磁盤上的磁盤塊的RAID才能被選擇作為與NO對(duì)應(yīng)RAID,即由磁盤D2、D4及D6上的磁盤塊構(gòu)建的RAID才能被選擇作為與NO對(duì)應(yīng)的RAID。
[0055]實(shí)際應(yīng)用中,還可以在創(chuàng)建過程中,直接使創(chuàng)建的M個(gè)RAID的磁盤塊均分布于不同的磁盤上。具體的,在創(chuàng)建M個(gè)RAID時(shí),首先為需要建立的每個(gè)RAID分配識(shí)別碼,例如,若M=2,即需要?jiǎng)?chuàng)建兩個(gè)RAID,且這兩個(gè)RAID構(gòu)成一個(gè)RAID組,則可對(duì)該兩個(gè)RAID分配識(shí)別碼(R0,Rl ),再為每個(gè)RAID選擇磁盤塊。選擇時(shí),逐一為每個(gè)RAID選擇磁盤塊。在為其中一個(gè)RAID選擇磁盤塊時(shí),首先在其中一個(gè)磁盤中選擇一個(gè)磁盤塊,然后判斷所選擇的磁盤塊所在的磁盤上是否有標(biāo)記有本組其他RAID的識(shí)別碼的磁盤塊,若沒有本組其他RAID的識(shí)別碼,則選擇該磁盤塊,并將該磁盤塊標(biāo)記為該RAID的識(shí)別碼,若有本組其他RAID的識(shí)別碼,則在其他磁盤上選擇該RAID的磁盤塊。例如,如圖6所示,首先為識(shí)別碼為RO的RAID選擇磁盤塊,選擇時(shí),若RO為首先創(chuàng)建的RAID,因此,可以在圖6所示的磁盤中任意選擇磁盤塊創(chuàng)建所述R0。當(dāng)創(chuàng)建完RO后,在創(chuàng)建Rl時(shí),在選擇創(chuàng)建Rl的磁盤塊時(shí),需要先判斷該磁盤上是否有標(biāo)記有本組其他RAID的識(shí)別碼的磁盤塊,即是否標(biāo)記有RO的磁盤塊,若沒有,則將該磁盤塊標(biāo)記為R1,若有,則選擇其他磁盤。該RAID的其他兩個(gè)磁盤塊也可以用同樣的方法選出。在分別選擇了識(shí)別碼為RO和Rl的磁盤塊之后,可以分別在選擇的磁盤塊上創(chuàng)建RO和R1。通過這種方式,可以使該組RAID中的每個(gè)RAID的磁盤塊不在同一磁盤上。
[0056]步驟S42,將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。
[0057]本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,存儲(chǔ)數(shù)據(jù)的RAID由磁盤上的磁盤塊構(gòu)成,在接收到存儲(chǔ)N份數(shù)據(jù)拷貝的存儲(chǔ)請(qǐng)求時(shí),可以通過預(yù)先創(chuàng)建的M個(gè)RAID中選擇存儲(chǔ)數(shù)據(jù)的N個(gè)RAID,其中,選擇的N個(gè)RAID的磁盤塊均分布于不同的磁盤中,并將所述N份數(shù)據(jù)分別存儲(chǔ)在選擇的所述N個(gè)RAID中。在本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法中,由于選擇的N個(gè)RAID由分布于不同磁盤的磁盤塊構(gòu)成,因此,與現(xiàn)有技術(shù)中在虛擬化RAID中存儲(chǔ)多份數(shù)據(jù)的方法相比,本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)方法能夠提高數(shù)據(jù)存儲(chǔ)的可靠性。例如,如圖6所不,圖6為本發(fā)明實(shí)施例提供的又一種RAID結(jié)構(gòu)不意圖。圖6以包括在6個(gè)磁盤中建立的兩個(gè)RAID的RAID組為例,其中,每個(gè)RAID的級(jí)別為RAID5,且每個(gè)RAID涉及3個(gè)磁盤塊。該組RAID的對(duì)應(yīng)關(guān)系為(R0, Rl),,由于每組RAID的磁盤塊不在同一磁盤上,即具有RO和Rl標(biāo)記的磁盤塊不會(huì)出現(xiàn)在同一磁盤上。當(dāng)將數(shù)據(jù)分別存儲(chǔ)于RO和Rl中后,若其中的第2盤,第3盤,及地5盤損壞,即RO的一個(gè)磁盤塊以及Rl中兩個(gè)磁盤塊中的數(shù)據(jù)丟失,則RO中丟失的數(shù)據(jù)可以通過RO的另外兩個(gè)磁盤塊中的數(shù)據(jù)進(jìn)行恢復(fù),則Rl中兩個(gè)磁盤塊上丟失的數(shù)據(jù)也可以通過RO的數(shù)據(jù)進(jìn)行恢復(fù)。如此也可以達(dá)到任意三盤損壞時(shí),都可以進(jìn)行數(shù)據(jù)的恢復(fù)的效果,從而提高了在虛擬化RAID中存儲(chǔ)的數(shù)據(jù)的可靠性。
[0058]如圖7所示,為本發(fā)明實(shí)施例中提供的一種存儲(chǔ)裝置7的模塊圖。該裝置7用于將數(shù)據(jù)存儲(chǔ)于RAID系統(tǒng)I中,所述RAID系統(tǒng)I包括多個(gè)RAID,每個(gè)RAID由分布于不同磁盤中的磁盤塊構(gòu)成,該裝置包括接收模塊71、RAID確定模塊72、及數(shù)據(jù)存儲(chǔ)模塊73。
[0059]所述接收模塊71,用于接收應(yīng)用服務(wù)器2發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)、數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù)。其中,該存儲(chǔ)請(qǐng)求中除了數(shù)據(jù)及數(shù)據(jù)拷貝份數(shù)之外還可以包括:數(shù)據(jù)的大小、數(shù)據(jù)的源地址等。
[0060]所述確定模塊72,用于在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù);
[0061]所述存儲(chǔ)模塊73,用于可將所述數(shù)據(jù)分別存儲(chǔ)于確定模塊72選擇的所述N個(gè)RAID 中。
[0062]實(shí)際應(yīng)用中,確定模塊72具體用于在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID ;根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N-1個(gè)第二 RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
[0063]例如,若構(gòu)建RAID R0,RAID Rl及RAID R2 (為了描述方便,下面分別用R0、R1和R2來表示)的磁盤塊均分布于不同的磁盤上,則可以預(yù)先在RO、Rl及R2之間建立對(duì)應(yīng)關(guān)系。在接收模塊71接收到數(shù)據(jù)存儲(chǔ)請(qǐng)求時(shí),如果需要存儲(chǔ)三份數(shù)據(jù),若確定模塊72將RO確定為第一 RAID,則根據(jù)上述預(yù)設(shè)的對(duì)應(yīng)關(guān)系,Rl及R2即被確定為第二 RAID,并將第一份數(shù)據(jù)存儲(chǔ)在RO中,第二份及第三份數(shù)據(jù)則分別存儲(chǔ)于與RO對(duì)應(yīng)的Rl及R2中。通過預(yù)先建立這樣的對(duì)應(yīng)關(guān)系,在存儲(chǔ)多份數(shù)據(jù)時(shí),只要確定存儲(chǔ)第一份數(shù)據(jù)的第一 RAID,即可根據(jù)預(yù)設(shè)的對(duì)應(yīng)關(guān)系找到存儲(chǔ)其他份數(shù)據(jù)的第二 RAID。
[0064]實(shí)際應(yīng)用中,確定模塊72在選擇存儲(chǔ)數(shù)據(jù)的第一 RAID時(shí),可以具體根據(jù)存儲(chǔ)請(qǐng)求中攜帶的數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID。進(jìn)一步的,為了使各個(gè)RAID中存儲(chǔ)的數(shù)據(jù)實(shí)現(xiàn)負(fù)載均衡,確定模塊72在實(shí)際選擇第一 RAID的過程中,還可以根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。
[0065]在又一種情況下,本發(fā)明實(shí)施例提供的存儲(chǔ)裝置還可以包括:
[0066]配置模塊74,用于將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中,并建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
[0067]例如,可以從創(chuàng)建的M個(gè)RAID中找出三個(gè)磁盤塊均不在同一磁盤上RO、RU R2組成一個(gè)RAID組,并可將該組中各個(gè)RAID之間的對(duì)應(yīng)關(guān)系記錄為(R0、R1、R2)。實(shí)際應(yīng)用中,每組RAID中所包括的RAID的個(gè)數(shù)可以根據(jù)具體情況確定。但一般情況下,只有數(shù)據(jù)的存儲(chǔ)份數(shù)小于等于該組RAID中的RAID的個(gè)數(shù)時(shí),該組RAID才可以用來存儲(chǔ)該數(shù)據(jù)。
[0068]實(shí)際應(yīng)用中,配置模塊74將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組的方式可以為遍歷的方式。具體的,可以通過遍歷創(chuàng)建的RAID中的磁盤塊所分布的磁盤,將分布于不同磁盤的磁盤塊構(gòu)建的RAID劃分為一個(gè)RAID組。換一種表達(dá)方式,構(gòu)建一個(gè)RAID組中的所有RAID的磁盤塊均分布于不同的磁盤上。例如,可以首先確定一個(gè)RAID的磁盤塊所在的磁盤后,然后在M-1個(gè)RAID中逐個(gè)查找由與確定的RAID中的磁盤塊不屬于同一個(gè)磁盤的磁盤塊構(gòu)成的RAID,并將查找獲得的RAID與預(yù)先確定的RAID劃分為一個(gè)RAID組。
[0069]實(shí)際應(yīng)用中,配置模塊74還可以在創(chuàng)建過程中,使創(chuàng)建的M個(gè)RAID的磁盤塊均分布于不同的磁盤上。具體的,在創(chuàng)建M個(gè)RAID時(shí),首先為需要建立的每個(gè)RAID分配識(shí)別碼,例如,若M=2,即需要?jiǎng)?chuàng)建兩個(gè)RAID,且這兩個(gè)RAID構(gòu)成一個(gè)RAID組,則可對(duì)該兩個(gè)RAID分配識(shí)別碼(R0,R1),再為每個(gè)RAID選擇磁盤塊。選擇時(shí),逐一為每個(gè)RAID選擇磁盤塊。在為其中一個(gè)RAID選擇磁盤塊時(shí),首先在其中一個(gè)磁盤中選擇一個(gè)磁盤塊,然后判斷所選擇的磁盤塊所在的磁盤上是否有標(biāo)記有本組其他RAID的識(shí)別碼的磁盤塊,若沒有本組其他RAID的識(shí)別碼,則選擇該磁盤塊,并將該磁盤塊標(biāo)記為該RAID的識(shí)別碼,若有本組其他RAID的識(shí)別碼,則在其他磁盤上選擇該RAID的磁盤塊。例如,如圖6所示,首先為識(shí)別碼為RO的RAID選擇磁盤塊,選擇時(shí),若RO為首先創(chuàng)建的RAID,因此,可以在圖6所示的磁盤中任意選擇磁盤塊創(chuàng)建所述R0。當(dāng)創(chuàng)建完RO后,在創(chuàng)建Rl時(shí),在選擇創(chuàng)建Rl的磁盤塊時(shí),需要先判斷該磁盤上是否有標(biāo)記有本組其他RAID的識(shí)別碼的磁盤塊,即是否標(biāo)記有RO的磁盤塊,若沒有,則將該磁盤塊標(biāo)記為Rl,若有,則選擇其他磁盤。該RAID的其他兩個(gè)磁盤塊也可以用同樣的方法選出。在分別選擇了識(shí)別碼為RO和Rl的磁盤塊之后,可以分別在選擇的磁盤塊上創(chuàng)建RO和Rl。通過這種方式,可以使該組RAID中的每個(gè)RAID的磁盤塊不在同一磁盤上。
[0070]本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置,在接收模塊71接收到存儲(chǔ)N份數(shù)據(jù)拷貝的存儲(chǔ)請(qǐng)求時(shí),可以通過確定模塊72在預(yù)先創(chuàng)建的M個(gè)RAID中選擇存儲(chǔ)數(shù)據(jù)的N個(gè)RAID,其中,選擇的N個(gè)RAID的磁盤塊均分布于不同的磁盤中,并由存儲(chǔ)模塊73將所述N份數(shù)據(jù)分別存儲(chǔ)在選擇的所述N個(gè)RAID中。本發(fā)明實(shí)施例提供的數(shù)據(jù)存儲(chǔ)裝置,由于選擇的N個(gè)RAID由分布于不同磁盤的磁盤塊構(gòu)成,因此能夠提高數(shù)據(jù)存儲(chǔ)的可靠性,容災(zāi)能力更強(qiáng)。
[0071]本發(fā)明實(shí)施例所提供的數(shù)據(jù)存儲(chǔ)裝置可以執(zhí)行前述數(shù)據(jù)存儲(chǔ)方法,各個(gè)模塊功能的詳細(xì)描述可參見方法實(shí)施例中的描述,在此不再贅述。
[0072]可以理解的是,圖7所示的實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊或組件可以結(jié)合或者可以集成到另一個(gè)設(shè)備中,或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,模塊的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0073]作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部,模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0074]本發(fā)明實(shí)施例還提供一種數(shù)據(jù)處理的計(jì)算機(jī)程序產(chǎn)品,包括存儲(chǔ)了程序代碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述程序代碼包括的指令用于執(zhí)行前述任意一個(gè)方法實(shí)施例所述的方法流程。本領(lǐng)域普通技術(shù)人員可以理解,前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、磁碟、光盤、隨機(jī)存儲(chǔ)器(Random-Access Memory, RAM)、固態(tài)硬盤(Solid State Disk, SSD)或者非易失性存儲(chǔ)器(non-volatile memory)等各種可以存儲(chǔ)程序代碼的非短暫性的(non-transitory)機(jī)器可讀介質(zhì)。
[0075]需要說明的是,本申請(qǐng)所提供的實(shí)施例僅僅是示意性的。所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。在本發(fā)明實(shí)施例、權(quán)利要求以及附圖中揭示的特征可以獨(dú)立存在也可以組合存在。在本發(fā)明實(shí)施例中以硬件形式描述的特征可以通過軟件來執(zhí)行,反之亦然。在此不做限定。
【權(quán)利要求】
1.一種數(shù)據(jù)存儲(chǔ)方法,所述方法用于將數(shù)據(jù)存儲(chǔ)于獨(dú)立磁盤冗余陣列RAID中,所述RAID由分布于不同磁盤中的磁盤塊構(gòu)成,其特征在于,包括: 接收應(yīng)用服務(wù)器發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)和數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù); 在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù); 將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID包括: 在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID ; 根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N-1個(gè)第二RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,還包括: 將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中; 建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
4.如權(quán)利要求2或3所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述存儲(chǔ)請(qǐng)求中還包含數(shù)據(jù)的大小,所述在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID包括: 根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID。
5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)存儲(chǔ)方法,其特征在于,所述根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一 RAID包括: 根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。
6.一種存儲(chǔ)裝置,所述裝置用于將數(shù)據(jù)存儲(chǔ)于獨(dú)立磁盤冗余陣列RAID中,所述RAID由分布于不同磁盤中的磁盤塊構(gòu)成,其特征在于,包括: 接收模塊,用于接收應(yīng)用服務(wù)器發(fā)送的存儲(chǔ)請(qǐng)求,所述存儲(chǔ)請(qǐng)求中包含有數(shù)據(jù)和數(shù)據(jù)拷貝份數(shù),其中,所述數(shù)據(jù)拷貝份數(shù)為N,N為不小于2的自然數(shù); 確定模塊,用于在預(yù)先創(chuàng)建的M個(gè)RAID中選擇N個(gè)RAID,其中,所述N個(gè)RAID的磁盤塊均分布于不同的磁盤中,所述M為不小于N的自然數(shù); 存儲(chǔ)模塊,用于將所述數(shù)據(jù)分別存儲(chǔ)于所述N個(gè)RAID中。
7.如權(quán)利要6所述的存儲(chǔ)裝置,其特征在于,所述確定模塊具體用于: 在預(yù)先創(chuàng)建的M個(gè)RAID中確定存儲(chǔ)所述數(shù)據(jù)的第一 RAID ; 并根據(jù)預(yù)設(shè)的RAID對(duì)應(yīng)關(guān)系在創(chuàng)建的M個(gè)RAID中選擇除第一 RAID以外的N-1個(gè)第二 RAID,其中,構(gòu)建所述第一 RAID和構(gòu)建所述N-1個(gè)RAID的磁盤塊均分布于不同的磁盤中。
8.根據(jù)權(quán)利要求7所述的存儲(chǔ)裝置,其特征在于,還包括: 配置模塊,用于將創(chuàng)建的M個(gè)RAID劃分為至少一個(gè)RAID組,其中,所述RAID組中包括至少兩個(gè)RAID,構(gòu)成所述至少兩個(gè)RAID的磁盤塊分布于不同的磁盤中; 建立所述RAID組中至少兩個(gè)RAID之間的RAID對(duì)應(yīng)關(guān)系。
9.如權(quán)利要求7或8所述的存儲(chǔ)裝置,其特征在于,所述存儲(chǔ)請(qǐng)求中還包含包數(shù)據(jù)的大小,所述確定模塊具體用于:根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇第一RAID。
10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)存儲(chǔ)系統(tǒng),其特征在于,所述確定模塊具體用于: 根據(jù)所述數(shù)據(jù)的大小在預(yù)先創(chuàng)建的M個(gè)RAID中選擇空閑的存儲(chǔ)空間最大的RAID為所述第一 RAID。`
【文檔編號(hào)】G06F12/02GK103617010SQ201310684219
【公開日】2014年3月5日 申請(qǐng)日期:2013年12月13日 優(yōu)先權(quán)日:2013年12月13日
【發(fā)明者】蒲貴友, 李大權(quán) 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1