專利名稱:數(shù)據(jù)處理方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實施例涉及 存儲技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)處理方法、裝置及系統(tǒng)。
背景技術(shù):
獨立磁盤冗余陣列(RedundantArrays of Inexpensive Disks ;RAID),也可以稱為磁盤陣列(Disk Array),是利用數(shù)組方式來作磁盤組,配合數(shù)據(jù)分散排列的設(shè)計,提升數(shù)據(jù)的安全性。磁盤陣列將數(shù)據(jù)切割成許多區(qū)段,分別存放在各個硬盤上,而且還能利用同位檢查(Parity Check)的觀念,在數(shù)組中任一顆硬盤故障時,仍可讀出數(shù)據(jù),在數(shù)據(jù)重構(gòu)時, 將數(shù)據(jù)經(jīng)計算后重新置入新硬盤中。RAID技術(shù)主要包含RAID O RAID 7等數(shù)個規(guī)范,它們的側(cè)重點各不相同。其中RAID 5不單獨指定的奇偶盤,而是在所有磁盤上交叉地存取數(shù)據(jù)及奇偶校驗信息。在RAID 5上,讀/寫指針可同時對陣列設(shè)備進行操作,提供了更高的數(shù)據(jù)流量。RAID 6與RAID 5相比,RAID 6增加了第二個獨立的奇偶校驗信息塊。兩個獨立的奇偶系統(tǒng)使用不同的算法,數(shù)據(jù)的可靠性非常高,即使兩塊磁盤同時失效也不會影響數(shù)據(jù)的使用。在類似于RAID 5和RAID 6的RAID技術(shù)中,主機下發(fā)的寫請求命令中的邏輯塊地址(Logical Block Addressing ;LBA)與RAID中盤片的物理塊地址(Physical BlockAddressing ;PBA)之間的映射關(guān)系為固定的。例如在RAID5技術(shù)中,假如磁盤I用于存放主機的第一個寫請求命令中包含的數(shù)據(jù),磁盤2用于存放第二個寫請求命令中包含的數(shù)據(jù),磁盤3用于存放第三個寫請求命令中包含的數(shù)據(jù),磁盤4用于存放第四個寫請求命令中包含的IO 4的數(shù)據(jù)。磁盤5存放該條帶的RAID校驗數(shù)據(jù)A。當?shù)谝粋€寫請求命令對應(yīng)的數(shù)據(jù)需要改寫成新數(shù)據(jù)I’時,操作為將原有第一個寫請求命令寫入的數(shù)據(jù)讀出與新數(shù)據(jù) I’計算異或,再將磁盤5上寫入的校驗數(shù)據(jù)A讀出也與新數(shù)據(jù)I’計算異或得到新校驗A’; 然后再重新在磁盤I上寫入新數(shù)據(jù)I ’,在磁盤5上寫入新校驗A’。這樣,采用上述技術(shù)方案,當要改寫一個數(shù)據(jù)的時候,為了實現(xiàn)數(shù)據(jù)的冗余,同時需要改寫校驗數(shù)據(jù)。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下缺點在類似于 RAID 5和RAID 6的RAID中,如上述現(xiàn)有技術(shù)所述,一個改寫IO操作會變成了 2個寫操作與2個讀操作,假設(shè)讀寫IO開銷都相同,寫入一個IO就放大了 4倍,性能損失嚴重,處理效率較低。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種數(shù)據(jù)處理方法、裝置及系統(tǒng),用以解決在類似于RAID 5和 RAID 6的RAID中,一個改寫IO操作會變成了 2個寫操作與2個讀操作,假設(shè)讀寫IO開銷都相同,寫入一個IO就放大了 4倍,性能損失嚴重,處理效率較低,即寫懲罰較高的缺陷。彌補現(xiàn)有技術(shù)中未公開UL MIMO技術(shù)中的控制信息的傳輸方式的缺陷,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。一方面,本發(fā)明實施例提供一種數(shù)據(jù)處理方法,包括
將獨立磁盤冗余陣列劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲所述N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù);
接收主機發(fā)出的寫請求命令并存儲在緩存中,所述寫請求命令中攜帶待寫入的數(shù)據(jù);當接收的所述寫請求命令的數(shù)目達到N個時,為所述N個寫請求命令中包含的N 個待寫入的數(shù)據(jù)分配空閑的第一條帶;根據(jù)所述N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù); 將所述N個待寫入的數(shù)據(jù)和所述校驗數(shù)據(jù)寫入所述第一條帶中。另一方面,本發(fā)明實施例還提供一種數(shù)據(jù)處理裝置,包括劃分模塊,用于將獨立磁盤冗余陣列劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲所述N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù);接收模塊,用于接收主機發(fā)出的寫請求命令并存儲在緩存中,所述寫請求命令中攜帶待寫入的 數(shù)據(jù);分配模塊,用于當接收的所述寫請求命令的數(shù)目達到N個時,為所述N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的第一條帶;計算模塊,用于所述根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);存儲模塊,用于將所述N個待寫入的數(shù)據(jù)和所述校驗數(shù)據(jù)寫入在所述第一條帶中。再一方面,本發(fā)明實施例還提供一種數(shù)據(jù)處理系統(tǒng),包括緩存、如上所述的數(shù)據(jù)處理裝置和獨立磁盤冗余陣列。本發(fā)明實施例的數(shù)據(jù)處理方法、裝置及系統(tǒng),能夠?qū)⑦B續(xù)的N個寫請求命令中攜帶的待寫入的數(shù)據(jù)一起存儲在一個條帶中,這樣可以將N個寫請求轉(zhuǎn)換為一個寫請求來處理,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為本發(fā)明實施例提供的一數(shù)據(jù)處理方法的流程圖。圖2為本發(fā)明實施例提供的另一數(shù)據(jù)處理方法的流程圖。圖3為本發(fā)明一實施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。圖4為本發(fā)明另一實施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。圖5為本發(fā)明實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。圖I為本發(fā)明實施例提供的一數(shù)據(jù)處理方法的流程圖。如圖I所示,本實施例的數(shù)據(jù)處理方法的執(zhí)行主體為一數(shù)據(jù)處理裝置,例如該數(shù)據(jù)處理裝置可以為存儲系統(tǒng)中的一控制器。在本發(fā)明實施例中,RAID被劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù),N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū)分別分布在所述RAID的每個磁盤中,并且分布在每個磁盤上的存儲區(qū)的大小相同。具體的,本實施例的數(shù)據(jù)處理方法可以包括如下步驟100、數(shù)據(jù)處理裝置接收主機發(fā)出的寫請求命令并存儲在緩存中;本實施例的寫請求命令中攜帶待寫入的數(shù)據(jù);該待寫入的數(shù)據(jù)即為將要存入 RAID的數(shù)據(jù)。本實施例中一個寫請求命令中攜帶一個待寫入的數(shù)據(jù)。
101、當接收的寫請求命令的數(shù)目達到N個時,數(shù)據(jù)處理裝置為N個待寫入的數(shù)據(jù)分配空閑的第一條帶;在本發(fā)明實施例中,接收到的各寫請求命令中攜帶的待寫入數(shù)據(jù)大小相同,并且等于每個條帶分布在每個磁盤上的空間容量(即條帶深度);在其他實施例中,若寫請求命令中攜帶的待寫入數(shù)據(jù)較大,可通過拆分的方式將該寫請求命令拆成多個寫請求命令,使得其中攜帶的待寫入數(shù)據(jù)大小相同,并且等于每個條帶分布在每個磁盤上的空間容量;若寫請求命令中攜帶的待寫入數(shù)據(jù)較小,可通過合并的方式將多個寫請求命令合并成一個寫請求命令,使得其中攜帶的待寫入數(shù)據(jù)大小相同,并且等于每個條帶分布在每個磁盤上的空間容量。本實施例中的第一條帶為RAID中多個條帶中的其中一個,第一條帶在RAID中的每個磁盤中都包括一個存儲區(qū);在第一條帶中包括N個用于存儲待寫入的數(shù)據(jù)對應(yīng)的存儲區(qū)和用于存儲根據(jù)N個待寫入的數(shù)據(jù)計算得到的校驗數(shù)據(jù)的存儲區(qū);其中每一個存儲區(qū)存儲一個待寫入的數(shù)據(jù)。N為大于等于2的正整數(shù)。當確定連續(xù)接收的寫請求命令的數(shù)目達到N個時,即表示N個待寫入的數(shù)據(jù),以及根據(jù)N個待寫入的數(shù)據(jù)計算的校驗數(shù)據(jù)正好能夠存滿一個條帶。例如本實施例的技術(shù)方案應(yīng)用在RAID 5中時,根據(jù)N個待寫入的數(shù)據(jù)計算得到一個校驗數(shù)據(jù),此時對應(yīng)RAID中共包括N+1個磁盤。即每一個條帶跨越N+1個磁盤,包括N+1 個存儲區(qū),共可以存儲N個待寫入的和一個校驗數(shù)據(jù)。例如本實施例的技術(shù)方案應(yīng)用在RAID 6中時,根據(jù)N個待寫入的數(shù)據(jù)計算得到兩個獨立的校驗數(shù)據(jù),此時對應(yīng)RAID中共包括N+2個磁盤。即每一個條帶跨越N+2個磁盤, 包括N+1各存儲區(qū),共可以存儲N個待寫入的數(shù)據(jù)和兩個校驗數(shù)據(jù)。102、數(shù)據(jù)處理裝置根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);例如RAID 5中可以計算得到一個校驗數(shù)據(jù),RAID 6中可以計算得到兩個校驗數(shù)據(jù)。103、數(shù)據(jù)處理裝置將N個待寫入的數(shù)據(jù)和校驗數(shù)據(jù)寫入第一條帶中。本實施例的數(shù)據(jù)處理方法,通過接收主機發(fā)出的寫請求命令并存儲在緩存中,寫請求命令中攜帶待寫入的數(shù)據(jù);當確定連續(xù)接收的寫請求命令的數(shù)目達到N個時,為N個待寫入的數(shù)據(jù)分配空閑的第一條帶;第一條帶在RAID中的每個磁盤中都包括一個存儲區(qū); 第一條帶中包括N個用于存儲待寫入的數(shù)據(jù)的存儲區(qū)和用于存儲根據(jù)N個待寫入的數(shù)據(jù)計算得到的校驗數(shù)據(jù)的存儲區(qū);N為大于等于2的正整數(shù);根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù)JfN個待寫入的數(shù)據(jù)和校驗數(shù)據(jù)寫入第一條帶中。采用本實施例的技術(shù)方案,能夠?qū)⑦B續(xù)的N個寫請求命令中的待寫入的數(shù)據(jù)一起存儲在一個條帶中,這樣可以將N個寫請求命令轉(zhuǎn)換為一個請求來處理,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。進一步可選地,在上述圖I所示實施例的基礎(chǔ)上,上述實施例中的寫請求命令中還攜帶有待寫入的LBA,此時步驟101之后,還可以包括如下圖2所示的數(shù)據(jù)處理方法,圖2 為本發(fā)明實施例提供的另一數(shù)據(jù)處理方法的流程圖。如圖2所示,該數(shù)據(jù)處理方法,具體可以包括如下步驟200、數(shù)據(jù)處理裝置建立第一條帶中每個待寫入的數(shù)據(jù)對應(yīng)的LBA與待寫入的數(shù)據(jù)存儲在第一條帶的存儲區(qū)的第一 PBA之間的第一映射關(guān)系;201、數(shù)據(jù)處理裝置將第一映射關(guān)系存儲在緩存中。本實施例中具體可以以每一個條帶如第一條帶為對象,建立該第一條帶中每個待寫入的數(shù)據(jù)對應(yīng)的寫數(shù)據(jù)請求中的LBA與該待寫入的數(shù)據(jù)存儲在第一條帶的中的存儲區(qū)的第一 PBA之間的第一映射關(guān)系。此時對應(yīng)的第一映射關(guān)系可以為一個映射關(guān)系表,包括多個LBA與PBA的對應(yīng)關(guān)系。由于校驗數(shù)據(jù)沒有LBA,因此該第一映射關(guān)系中沒有關(guān)于校驗數(shù)據(jù)的映射關(guān)系。 可選地,本實施例中還可以以每一個待寫入的數(shù)據(jù)為對象,建立相應(yīng)的寫訪問請求中的主機的LBA與該待寫入的數(shù)據(jù)被存儲在第一條帶的存儲區(qū)的第一 PBA之間的映射關(guān)系。此時對應(yīng)的第一映射關(guān)系僅為一個LBA與一個PBA之間的對應(yīng)關(guān)系。本實施例中還需要將建立的第一映射關(guān)系保存在緩存中,以保證后續(xù)當需要訪問該數(shù)據(jù)時,該數(shù)據(jù)能夠被正常訪問。進一步可選地,在上述技術(shù)方案的基礎(chǔ)上,步驟201之后,還可以包括如下步驟202、數(shù)據(jù)處理裝置判斷緩存中的第二映射關(guān)系中是否存在第一映射關(guān)系中的 LBA;當存在時,執(zhí)行步驟203 ;否則當不存在時,暫時不執(zhí)行任何操作。需要說明的是,本實施例中的第二映射關(guān)系在第一映射關(guān)系之前建立;第二映射關(guān)系為第二條帶中存儲的數(shù)據(jù)的LBA與PBA之間的映射關(guān)系,且第二映射關(guān)系的建立與上述第一映射關(guān)系的建立的實現(xiàn)過程完全一樣。203、數(shù)據(jù)處理裝置將第二映射關(guān)系中PBA標識為垃圾標識,以表示第二條帶中的該PBA對應(yīng)的數(shù)據(jù)為垃圾數(shù)據(jù)。在本發(fā)明實施例中,垃圾標識是指該物理塊地址對應(yīng)的數(shù)據(jù)已經(jīng)失效,但是該垃圾數(shù)據(jù)不能立即去除,因為在同一第二條帶上其它數(shù)據(jù)依然有效,需等其它數(shù)據(jù)失效或者將有效數(shù)據(jù)搬移重新組成條帶后才能去除。按照上述步驟202和步驟203的方式,可以對第二映射關(guān)系中的所有PBA都標識上垃圾標識。例如在上述步驟203之后,還可以包括如下步驟204、數(shù)據(jù)處理裝置判斷第二條帶對應(yīng)的第二映射關(guān)系中的所有PBA是否全部標識有垃圾標識;當?shù)诙成潢P(guān)系中的所有PBA全部標識為垃圾標識時,執(zhí)行步驟205 ;否則暫時不執(zhí)行任何操作。205、數(shù)據(jù)處理裝置刪除第二條帶中存儲的數(shù)據(jù)。此時表示整個條帶都失效,可以刪除整個條帶上的數(shù)據(jù),以回收該條帶?;蛘咴谏鲜霾襟E203之后,還可以包括如下步驟206、數(shù)據(jù)處理裝置判斷第二條帶對應(yīng)的第二映射關(guān)系中標識垃圾標識的PBA的數(shù)目是否達到預(yù)設(shè)閾值;當?shù)诙成潢P(guān)系中標識垃圾標識的PBA的數(shù)目達到預(yù)設(shè)閾值時, 執(zhí)行步驟207 ;否則暫時不執(zhí)行任何操作。
207、數(shù)據(jù)處理裝置讀取第二條帶中未標識垃圾標識的PBA對應(yīng)的數(shù)據(jù)以及未標識垃圾標識的PBA對應(yīng)的LBA至緩存中,以作為一個新的寫請求命令;208、數(shù)據(jù)處理裝置刪除第二條帶中存儲的數(shù)據(jù)。本實施例中的預(yù)設(shè)閾值可以根據(jù)實際需求設(shè)置,例如當整個第二條帶包括10個存儲區(qū),當為RAID 5時,例如第二映射關(guān)系為以第二條帶為單位存儲時,第二映射關(guān)系中包括9個LBA與PBA的映射關(guān)系,當該條帶對應(yīng)的第二映射關(guān)系中標識垃圾標識的PBA的數(shù)目為8個,此時可以讀取第二條帶中未標識垃圾標識的PBA對應(yīng)的數(shù)據(jù)以及未標識垃圾標識的PBA對應(yīng)的LBA至緩存中,以作為一個新的寫請求命令;這樣繼續(xù)采用上述實施例的步驟101來存儲該數(shù)據(jù),在此不再贅述。此時由于第二條帶中未標識垃圾標識的PBA對應(yīng)的數(shù)據(jù)以及未標識垃圾標識的PBA對應(yīng)的LBA被作為一個新的寫請求命令讀取至緩存中, 此時對應(yīng)的第二條帶已經(jīng)全部變?yōu)槭?shù)據(jù),可以刪除第二條帶中的數(shù)據(jù),以回收該條帶。本實施例中的預(yù)設(shè)閾值可以設(shè)置為RAID的磁盤總數(shù)的60%、70%、80%或者 90 %,可以根據(jù)實際需求來設(shè)置。進一步可選地,在上述實施例的技術(shù)方案的基礎(chǔ)上,其中在上述實施例中的步驟 100之前,具體還可以包括如下步驟數(shù)據(jù)處理裝置預(yù)先在RAID中設(shè)置多個條帶,每個條帶橫跨RAID中的所有磁盤,每個條帶在RAID中的每個磁盤中形成一個存儲區(qū)。本實施例的數(shù)據(jù)處理方法,通過采用上述技術(shù)方案,能夠?qū)⑦B續(xù)的N個寫請求命令存儲的數(shù)據(jù)一起存儲在一個條帶中,這樣可以將N個寫請求命令轉(zhuǎn)換為一個寫請求命令來處理,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。圖3為本發(fā)明一實施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。如圖3所示,本實施例的數(shù)據(jù)處理裝置,具體可以包括如下本實施例的數(shù)據(jù)處理裝置中包括劃分模塊10、接收模塊11、分配模塊12、計算模塊13和存儲模塊14。其中劃分模塊10用于將RAID劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù),N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū)均勻分布在RAID的每個磁盤中;接收模塊11用于接收主機發(fā)出的寫請求命令并存儲在緩存中,該寫請求命令中攜帶待寫入的數(shù)據(jù);分配模塊12與分別接收模塊11和劃分模塊10連接連接,用于當確定接收模塊11接收的寫請求命令的數(shù)目達到N個時,從劃分模塊10劃分得到的多個條帶中為N 個數(shù)據(jù)分配空閑的第一條帶;計算模塊13用于根據(jù)接收模塊11接收的并存儲在緩存中的 N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);存儲模塊14分別與分配模塊12和計算模塊13,存儲模塊 14用于將接收模塊11接收的存儲在緩存中的N個待寫入的數(shù)據(jù),和計算模塊13計算得到的校驗數(shù)據(jù)存儲在分配模塊12分配得到的第一條帶中。本實施例的數(shù)據(jù)處理裝置,通過采用上述模塊實現(xiàn)數(shù)據(jù)處理,與上述相關(guān)方法實施例的實現(xiàn)機制相同,詳細可以參考上述相關(guān)方法實施例,在此不再贅述。本實施例的數(shù)據(jù)處理裝置,通過采用上述模塊接收主機發(fā)出的寫請求命令并存儲在緩存中,寫請求命令中攜帶待寫入的數(shù)據(jù);當確定連續(xù)接收的所述寫請求命令的數(shù)目達到N時,為N個待寫入的數(shù)據(jù)分配空閑的第一條帶;第一條帶為RAID中一個橫跨的所有磁盤的存儲帶,在RAID中的每個磁盤中都包括一個存儲區(qū);第一條帶中包括N個用于存儲待寫入的數(shù)據(jù)的存儲區(qū)和用于根據(jù)N個待寫入的數(shù)據(jù)計算得到的校驗數(shù)據(jù)的存儲區(qū);N為大于等于2的正整數(shù);根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù)個待寫入的數(shù)據(jù)和校驗數(shù)據(jù)存儲在第一條帶中。采用本實施例的技術(shù)方案,能夠?qū)⑦B續(xù)的N個寫請求命令存儲的數(shù)據(jù)一起存儲在一個條帶中,這樣可以將N個寫請求命令轉(zhuǎn)換為一個請求來處理,能夠有效地提高數(shù)據(jù)處理效率。
圖4為本發(fā)明另一實施例提供的數(shù)據(jù)處理裝置的結(jié)構(gòu)示意圖。如圖4所示,本實施例的數(shù)據(jù)處理裝置在上述圖3所示實施例的基礎(chǔ)上,進一步還可以包括如下技術(shù)方案。上述圖3所示實施例中的接收模塊11接收的主機發(fā)出的寫請求命令請求中還攜帶待寫入的數(shù)據(jù)對應(yīng)的LBA。本實施例的數(shù)據(jù)處理裝置中還可以包括建立模塊15。該建立模塊15與分配模塊 12連接,建立模塊15用于在分配模塊12為N個待寫入的數(shù)據(jù)分配空閑的所第一條帶之后, 根據(jù)分配模塊12分配的結(jié)果,建立第一條帶中的每個數(shù)據(jù)對應(yīng)的LBA與數(shù)據(jù)存儲在條帶的存儲區(qū)的第一 PBA之間的第一映射關(guān)系;存儲模塊14還與建立模塊15連接,存儲模塊14 還用于將建立模塊15建立的第一映射關(guān)系存儲在緩存中。進一步可選地,在上述技術(shù)方案的基礎(chǔ)上,本實施例的數(shù)據(jù)處理裝置中還可以包括判斷模塊16和標識模塊17。判斷模塊16用于在存儲模塊14將第一映射關(guān)系存儲在緩存中之后,判斷第二映射關(guān)系中是否存在緩存中的第一映射關(guān)系中的LBA ;第一映射關(guān)系建立之前緩存中保存有第二映射關(guān)系,第二映射關(guān)系為第二條帶中存儲的數(shù)據(jù)的LBA與PBA之間的映射關(guān)系。標識模塊17與判斷模塊16連接,標識模塊17用于根據(jù)判斷模塊16的判斷結(jié)果,當存在時, 將第二映射關(guān)系中的PBA標識對應(yīng)的PBA標識為為垃圾標識,以表示第二條帶中的該PBA 對應(yīng)的數(shù)據(jù)為垃圾數(shù)據(jù)。進一步可選地,在上述技術(shù)方案的基礎(chǔ)上,本實施例的數(shù)據(jù)處理裝置中還包括刪除豐旲塊18。判斷模塊16還用于判斷第二映射關(guān)系中的所有PBA是否全部標識有垃圾標識;刪除模塊18與判斷模塊16連接,刪除模塊18用于根據(jù)判斷模塊16的判斷結(jié)果,當?shù)诙成潢P(guān)系中的所有PBA全部標識為垃圾標識時,刪除第二條帶中存儲的數(shù)據(jù)。
或者進一步可選地,在上述技術(shù)方案的基礎(chǔ)上,本實施例的數(shù)據(jù)處理裝置中除了包括刪除模塊18,還包括讀取模塊19。判斷模塊16用于判斷第二映射關(guān)系中標識垃圾標識的PBA的數(shù)目是否達到預(yù)設(shè)閾值;讀取模塊19與判斷模塊16連接,讀取模塊用于根據(jù)判斷模塊16的判斷結(jié)果,當?shù)诙成潢P(guān)系中標識垃圾標識的PBA的數(shù)目達到預(yù)設(shè)閾值時,讀取第二條帶中未標識垃圾標識的PBA對應(yīng)的數(shù)據(jù)以及未標識垃圾標識的PBA對應(yīng)的LBA至緩存中,以作為一個新的寫請求命令;刪除模塊18與讀取模塊19連接,刪除模塊18用于在讀取模塊19讀取第二條帶中未標識垃圾標識的PBA對應(yīng)的數(shù)據(jù)以及未標識垃圾標識的PBA對應(yīng)的LBA至緩存中之后, 刪除第二條帶中存儲的數(shù)據(jù)。如圖4所示,本實施例的數(shù)據(jù)處理裝置,是以采用上述所有可選技術(shù)方案為例介紹本發(fā)明的技術(shù)方案,實際應(yīng)用中,上述多個可選技術(shù)方案可以采用任意可結(jié)合的方式結(jié)合,形成本發(fā)明的一個可選實施例,詳細在此不再贅述。本實施例的數(shù)據(jù)處理裝置,通過采用上述模塊實現(xiàn)數(shù)據(jù)處理,與上述相關(guān)方法·實施例的實現(xiàn)機制相同,詳細可以參考上述相關(guān)方法實施例,在此不再贅述。本實施例的數(shù)據(jù)處理裝置,通過采用上述模塊能夠?qū)⑦B續(xù)的N個寫請求命令存儲的數(shù)據(jù)一起存儲在一個條帶中,這樣可以將N個寫請求命令轉(zhuǎn)換為一個請求來處理,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。圖5為本發(fā)明實施例提供的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。如圖5所示,本實施例的數(shù)據(jù)處理系統(tǒng)具體可以包括緩存20、數(shù)據(jù)處理裝置30和RAID40。數(shù)據(jù)處理裝置30分別與緩存20和RAID40連接。其中數(shù)據(jù)處理裝置30用于將RAID40劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲所述N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù);并接收主機發(fā)出的寫請求命令并存儲在緩存30中,該寫請求命令中攜帶待寫入的數(shù)據(jù);當接收的寫請求命令的數(shù)目達到N個時,數(shù)據(jù)處理裝置30為N個待寫入的數(shù)據(jù)分配空閑的第一條帶;該第一條帶為RAID40中一個橫跨的所有磁盤的存儲帶;第一條帶中包括N 個用于存儲待寫入的數(shù)據(jù)對應(yīng)的存儲區(qū)和用于存儲根據(jù)N個待寫入的數(shù)據(jù)計算得到的校驗數(shù)據(jù)的存儲區(qū);N為大于等于2的正整數(shù);其中N個寫請求命令中的N個待寫入的數(shù)據(jù)和對應(yīng)的校驗數(shù)據(jù)正好能夠占用RAID的一個條帶。數(shù)據(jù)處理裝置30用于根據(jù)緩存20存儲的N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);并將緩存20中的N個待寫入的數(shù)據(jù)和計算得到的校驗數(shù)據(jù)存儲在分配得到的RAID40中的第一條帶中??蛇x地,本實施例的數(shù)據(jù)處理系統(tǒng)中的數(shù)據(jù)處理裝置30具體可以采用上述圖2或者圖3所示的數(shù)據(jù)處理裝置,并可以采用上述圖I及后續(xù)可選實施了的數(shù)據(jù)處理方法實現(xiàn)數(shù)據(jù)處理,詳細可以參考上述實施例的記載,在此不再贅述。以上所描述的裝置實施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到至少兩個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。最后應(yīng)說明的是以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然可以對前述各實施例所記載的技術(shù)方案進行修改, 或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
權(quán)利要求
1.一種數(shù)據(jù)處理方法,其特征在于,包括將獨立磁盤冗余陣列劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲所述N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù);接收主機發(fā)出的寫請求命令并存儲在緩存中,所述寫請求命令中攜帶待寫入的數(shù)據(jù); 當接收的所述寫請求命令的數(shù)目達到N個時,為所述N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的第一條帶;根據(jù)所述N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);將所述N個待寫入的數(shù)據(jù)和所述校驗數(shù)據(jù)寫入所述第一條帶中。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述寫請求命令中還攜帶有待寫入的邏輯塊地址;所述為所述N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的第一條帶之后,所述方法還包括建立第一映射關(guān)系,所述第一映射關(guān)系包括每個邏輯塊地址與所述待寫入的數(shù)據(jù)存儲在所述第一條帶的第一物理塊地址之間的映射關(guān)系;將所述第一映射關(guān)系存儲在所述緩存中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述第一映射關(guān)系建立之前緩存中保存有第二映射關(guān)系,所述第二映射關(guān)系為第二條帶中存儲的數(shù)據(jù)的邏輯塊地址與物理塊地址之間的映射關(guān)系;在將所述第一映射關(guān)系存儲在所述緩存中之后,所述方法還包括判斷所述第二映射關(guān)系中是否存在所述第一映射關(guān)系中的所述邏輯塊地址當存在時,將所述第二映射關(guān)系中的所述邏輯塊地址對應(yīng)的物理塊地址標識為垃圾標識,以表示所述第二條帶中的所述物理塊地址對應(yīng)的數(shù)據(jù)為垃圾數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括判斷所述第二映射關(guān)系中的所有物理塊地址是否全部標識有垃圾標識;當所述第二映射關(guān)系中的所有物理塊地址全部標識為垃圾標識時,刪除所述第二條帶中存儲的數(shù)據(jù)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,判斷所述第二映射關(guān)系中標識垃圾標識的物理塊地址的數(shù)目是否達到預(yù)設(shè)閾值; 當所述第二映射關(guān)系中標識所述垃圾標識的所述物理塊地址的數(shù)目達到所述預(yù)設(shè)閾值時,讀取所述第二條帶中未標識所述垃圾標識的物理塊地址對應(yīng)的數(shù)據(jù)以及所述未標識所述垃圾標識的物理塊地址對應(yīng)的邏輯塊地址至所述緩存中,以作為一個新的寫請求命令;刪除所述第二條帶中存儲的數(shù)據(jù)。
6.一種數(shù)據(jù)處理裝置,其特征在于,包括劃分模塊,用于將獨立磁盤冗余陣列劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲所述N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù); 接收模塊,用于接收主機發(fā)出的寫請求命令并存儲在緩存中,所述寫請求命令中攜帶待寫入的數(shù)據(jù);分配模塊,用于當接收的所述寫請求命令的數(shù)目達到N個時,為所述N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的第一條帶;計算模塊,用于所述根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);存儲模塊,用于將所述N個待寫入的數(shù)據(jù)和所述校驗數(shù)據(jù)寫入在所述第一條帶中。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述寫請求命令中還攜帶有待寫入的邏輯塊地址;所述裝置還包括建立模塊所述建立模塊,用于在所述分配模塊為所述N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的所述第一條帶之后,建立第一映射關(guān)系,所述第一映射關(guān)系包括每個邏輯塊地址與所述待寫入的數(shù)據(jù)存儲在所述第一條帶的第一物理塊地址之間的映射關(guān)系;所述存儲模塊,還用于將所述第一映射關(guān)系存儲在所述緩存中。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括 判斷模塊,用于在所述存儲模塊將所述第一映射關(guān)系存儲在所述緩存中之后,判斷第二映射關(guān)系中是否存在所述第一映射關(guān)系中的所述邏輯塊地址;所述第一映射關(guān)系建立之前緩存中保存有所述第二映射關(guān)系,所述第二映射關(guān)系為第二條帶中存儲的數(shù)據(jù)的邏輯塊地址與物理塊地址之間的映射關(guān)系;標識模塊,用于當所述判斷模塊確定所述第二映射關(guān)系中存在所述第一映射關(guān)系中的所述邏輯塊地址時,將所述第二映射關(guān)系中的所述邏輯塊地址對應(yīng)的所述物理塊地址標識為垃圾標識,以表示所述第二條帶中的所述物理塊地址對應(yīng)的數(shù)據(jù)為垃圾數(shù)據(jù)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括刪除模塊所述判斷模塊,還用于判斷所述第二映射關(guān)系中的所有物理塊地址是否全部標識有垃圾標識;所述刪除模塊,用于當所述判斷模塊確定所述第二映射關(guān)系中的所有物理塊地址全部標識為垃圾標識時,刪除所述第二條帶中存儲的數(shù)據(jù)。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括讀取模塊和刪除模塊;判斷模塊,用于判斷所述第二映射關(guān)系中標識垃圾標識的物理塊地址的數(shù)目是否達到預(yù)設(shè)閾值;所述讀取模塊,用于當所述判斷模塊確定所述第二映射關(guān)系中標識所述垃圾標識的所述物理塊地址的數(shù)目達到所述預(yù)設(shè)閾值時,讀取所述第二條帶中未標識所述垃圾標識的物理塊地址對應(yīng)的數(shù)據(jù)以及所述未標識所述垃圾標識的物理塊地址對應(yīng)的邏輯塊地址至所述緩存中,以作為一個新的寫請求命令;刪除模塊,用于刪除所述第二條帶中存儲的數(shù)據(jù)。
11.一種數(shù)據(jù)處理系統(tǒng),其特征在于,包括緩存、獨立磁盤冗余陣列以及如上權(quán)利要求 6-10任一所述的數(shù)據(jù)處理裝置。
全文摘要
本發(fā)明實施例提供一種數(shù)據(jù)處理方法、裝置及系統(tǒng)。其方法包括將RAID劃分為多個條帶,每個條帶中包括N個用于存儲數(shù)據(jù)的存儲區(qū)和用于存儲N個數(shù)據(jù)的校驗數(shù)據(jù)的存儲區(qū),N為大于或等于2的正整數(shù);接收主機發(fā)出的寫請求命令并存儲在緩存中,寫請求命令中攜帶待寫入的數(shù)據(jù);當接收的寫請求命令的數(shù)目達到N個時,為N個寫請求命令中包含的N個待寫入的數(shù)據(jù)分配空閑的第一條帶;根據(jù)N個待寫入的數(shù)據(jù)計算校驗數(shù)據(jù);將N個待寫入的數(shù)據(jù)和校驗數(shù)據(jù)寫入第一條帶中。本發(fā)明實施例的技術(shù)方案,能夠?qū)個寫請求轉(zhuǎn)換為一個寫請求來處理,能夠有效地提高數(shù)據(jù)處理效率,降低寫懲罰。
文檔編號G06F3/06GK102722340SQ20121012907
公開日2012年10月10日 申請日期2012年4月27日 優(yōu)先權(quán)日2012年4月27日
發(fā)明者柯喬 申請人:華為技術(shù)有限公司