一種存儲數(shù)據(jù)的方法
【專利摘要】一種存儲數(shù)據(jù)的方法,所述方法包括:將隨機寫的數(shù)據(jù),在固態(tài)硬盤SSD中合并后存儲;將存儲在SSD中的數(shù)據(jù)寫入陣列RAID組中。應用本發(fā)明實施例后,利用固態(tài)硬盤記錄隨機寫的數(shù)據(jù),然后一次性寫入RAID組中,進而保證RAID5的讀寫性能。
【專利說明】一種存儲數(shù)據(jù)的方法
【技術領域】
[0001]本申請涉及計算機【技術領域】,更具體地,涉及一種存儲數(shù)據(jù)的方法。
【背景技術】
[0002]陣列(RAID)5是一種存儲性能、數(shù)據(jù)安全和存儲成本兼顧的存儲方案。RAID5可以理解為是RAIDO和RAIDl的折中方案。RAID5可以為系統(tǒng)提供數(shù)據(jù)安全保障,但保障程度要比鏡像(Mirror)低而磁盤空間利用率要比Mirror高。RAID5具有和RAIDO相近似的數(shù)據(jù)讀取速度,只是多了一個奇偶校驗信息,寫入數(shù)據(jù)的速度比對單個磁盤進行寫入操作稍慢。同時由于多個數(shù)據(jù)對應一個奇偶校驗信息,RAID5的磁盤空間利用率要比RAIDl高,存儲成本相對較低。
[0003]至少使用3塊硬盤組建RAID5磁盤陣列。當有數(shù)據(jù)寫入硬盤的時候,按照I塊硬盤的方式就是直接寫入這塊硬盤的磁道。如果是RAID5,數(shù)據(jù)寫入根據(jù)算法分成3部分,然后分別寫入3塊硬盤,寫入的同時還會在這3塊硬盤上寫入校驗信息,當讀取寫入數(shù)據(jù)的時會分別從3塊硬盤上讀取數(shù)據(jù)內(nèi)容,再通過檢驗信息進行校驗。當其中有I塊硬盤出現(xiàn)損壞的時候,則可以從另外2塊硬盤上存儲的數(shù)據(jù)計算出第3塊硬盤的數(shù)據(jù)內(nèi)容。也就是說raid5這種存儲方式只允許有一塊硬盤出現(xiàn)故障,出現(xiàn)故障時需要盡快更換。當更換故障硬盤后,在故障期間寫入的數(shù)據(jù)會進行重新校驗。如果在未解決故障又壞I塊硬盤,那就是災難性的故障。
[0004]利用RAID5存儲數(shù)據(jù)當遇到隨機寫的時候,因為要做讀修改寫(RMW)或者讀重建寫(RCW)操作,上述操作嚴重影響了 RAID5的讀寫性能。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提出一種存儲數(shù)據(jù)的方法,利用固態(tài)硬盤記錄需要隨機寫的數(shù)據(jù),然后一次性寫入RAID5中的硬盤,進而保證RAID5的讀寫性能。
[0006]本發(fā)明實施例的技術方案如下:
[0007]一種存儲數(shù)據(jù)的方法,所述方法包括:
[0008]將隨機寫的數(shù)據(jù)在固態(tài)硬盤SSD中合并后存儲;
[0009]將存儲在SSD中的數(shù)據(jù)寫入陣列RAID組中。
[0010]所述將隨機寫的數(shù)據(jù)在SSD中合并之前進一步包括:
[0011]將SSD分為元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū),元數(shù)據(jù)區(qū)記錄SSD中隨機寫的數(shù)據(jù)的信息,數(shù)據(jù)區(qū)存儲隨機寫的數(shù)據(jù)。
[0012]所述方法進一步包括:將數(shù)據(jù)區(qū)分割為至少一個數(shù)據(jù)塊,標識已使用的數(shù)據(jù)塊。
[0013]所述將數(shù)據(jù)區(qū)分割為至少一個數(shù)據(jù)塊包括:將數(shù)據(jù)區(qū)按照RAID5中條帶的大小分割為至少一個數(shù)據(jù)塊。
[0014]所述SSD中隨機寫的數(shù)據(jù)的信息包括:存儲隨機寫的數(shù)據(jù)的大小、隨機寫的數(shù)據(jù)在SSD中存儲位置和隨機寫的數(shù)據(jù)在RAID組中存儲位置。[0015]所述方法進一步包括:RAID組進行寫數(shù)據(jù)時,未滿條帶寫時,將所述未滿條帶數(shù)據(jù)緩存到SSD中。
[0016]所述將存儲在SSD中的數(shù)據(jù)寫入RAID5組中包括:
[0017]當條帶符合滿條帶數(shù)據(jù)時,則將所述條帶中的數(shù)據(jù)寫入RAID組中,清除SSD中所述條帶中的數(shù)據(jù)。
[0018]所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括:
[0019]在預設的時間閾值內(nèi),存儲在SSD中隨機寫的數(shù)據(jù)沒有修改,則將所述隨機寫的數(shù)據(jù)寫入RAID組中。
[0020]所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括:
[0021]將只需要RCW操作,且存儲在SSD中數(shù)據(jù)量最大的條帶中的數(shù)據(jù)寫入RAID組中。
[0022]所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括:
[0023]RMW操作的數(shù)據(jù)量相同時,將在磁盤中有多個連續(xù)條帶位置的數(shù)據(jù)寫入RAID組中。
[0024]從上述技術方案中可以看出,在本發(fā)明實施例中將需要RMW或RCW的數(shù)據(jù),在SSD中合并后存儲;將存儲在SSD中的數(shù)據(jù)寫入RAID組中。利用固態(tài)硬盤記錄需要隨機寫的數(shù)據(jù),然后寫入RAID組中的硬盤,進而保證RAID5的讀寫性能。
【專利附圖】
【附圖說明】
[0025]圖1為存儲數(shù)據(jù)的方法流程示意圖。
【具體實施方式】
[0026]為使本發(fā)明的目的、技術方案和優(yōu)點表達得更加清楚明白,下面結(jié)合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
[0027]在本發(fā)明實施例中,將隨機寫的數(shù)據(jù),在SSD中合并后存儲;將存儲在SSD中的數(shù)據(jù)寫入RAID組中。利用固態(tài)硬盤記錄需要隨機寫的數(shù)據(jù),然后一次性寫入RAID組中,保證RAID5的讀寫性能。
[0028]此外,在存儲在SSD中數(shù)據(jù)滿足一定條件時才存儲在RAID組中,若不滿足該條件則暫存在SSD中,從而避免了多次讀取RAID組中的數(shù)據(jù)。進而充分保證了 RAID5的讀寫性倉泛。
[0029]下面結(jié)合附圖1詳細說明本發(fā)明的技術方案,具體包括以下步驟:
[0030]101、將隨機寫的數(shù)據(jù),在SSD中合并后存儲。
[0031]SSD是用固態(tài)電子存儲芯片陣列而制成的硬盤,由控制單元和存儲單元組成。SSD具有讀寫速度快、防震抗摔性、低功耗、無噪音、工作溫度范圍大和輕便等優(yōu)點。考慮到在RAID5中所采用的機械硬盤,為了避免影響RAID5的讀寫性能,可以將需要RMW或RCW的數(shù)據(jù),在SSD中合并再存儲到RADI組的磁盤中。
[0032]SSD具有隨機讀寫的高性能的特點,可以集合SSD把一些影響性能的隨機寫的數(shù)據(jù),先寫到SSD里面做合并,然后再把這些數(shù)據(jù)寫到RAID組中。將隨機寫數(shù)據(jù)在SSD中合并,然后在滿條帶時再寫入RAID組中,這樣做相對于現(xiàn)有技術,大大減少了 RMW和RCW操作,提高了 RAID5的讀寫性能。[0033]首先,SSD分成元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū),元數(shù)據(jù)區(qū)記錄SSD中數(shù)據(jù)的信息,SSD中數(shù)據(jù)的信息存儲數(shù)據(jù)的大小和該信息所存儲的位置。例如,存儲數(shù)據(jù)的大小是1M,存儲在第一數(shù)據(jù)塊中。
[0034]數(shù)據(jù)區(qū)存儲隨機寫的數(shù)據(jù),在本發(fā)明中隨機寫的數(shù)據(jù)還包括數(shù)據(jù)小寫時的數(shù)據(jù)。將數(shù)據(jù)區(qū)分割為至少一個數(shù)據(jù)塊,通過比特位圖(bitmap)表標識已使用的數(shù)據(jù)塊,整個bitmap中所有bit位對應整個SSD數(shù)據(jù)區(qū)。數(shù)據(jù)塊大小可以設置成和RAID5中條帶的大小一致,這樣做的目的在于方便數(shù)據(jù)轉(zhuǎn)存至RAID5中,避免拆分數(shù)據(jù)塊。
[0035]另外,在RAID組進行寫數(shù)據(jù)時,未滿條帶寫時,將未滿條帶數(shù)據(jù)緩存到SSD中。其中,未滿條帶時的數(shù)據(jù)屬于隨機寫數(shù)據(jù)。
[0036]那么,元數(shù)據(jù)區(qū)進一步記錄RAID組中每個成員盤中SSD中隨機寫的數(shù)據(jù)的在SSD存儲位置、隨機寫的數(shù)據(jù)在SSD的存儲位置和隨機寫的數(shù)據(jù)的大小。例如,每個待寫入數(shù)據(jù)需要元數(shù)據(jù)需要記錄以下信息:
[0037]disk_numb:隨機寫的位置在哪個磁盤;
[0038]stripe_pos:隨機寫的位置在RAID5中哪個條帶位置;
[0039]data_offset:隨機寫的位置在條帶中偏移位置;
[0040]data_size:隨機寫的數(shù)據(jù)的位置大??;
[0041]block_numb:隨機寫的數(shù)據(jù)存在SSD哪個數(shù)據(jù)塊中。
[0042]通過元數(shù)據(jù)可以查看每個磁盤有隨機寫的數(shù)據(jù)的位置。根據(jù)數(shù)據(jù)的Strip_p0S位置,也可以查看已經(jīng)緩存在SSD中的數(shù)據(jù),哪些數(shù)據(jù)是在RAID5中同一條帶中。
[0043]102、將存儲在SSD中的數(shù)據(jù)寫入RAID組中。
[0044]在SSD中,所有的數(shù)據(jù)均是以條帶大小的數(shù)據(jù)塊為存儲單位存在在SSD中的。一個數(shù)據(jù)塊的大小與RAID5中條帶的大小相同。下面所述的條帶即SSD中數(shù)據(jù)塊。
[0045]當條帶符合滿條帶數(shù)據(jù)時,則將該條帶中的數(shù)據(jù)寫入RAID組中,清除SSD中所述條帶中的數(shù)據(jù)。
[0046]此外,還可以設置時間閾值,如果某些隨機寫的數(shù)據(jù)寫入SSD后,在時間閾值內(nèi)沒有再修改過,則將該隨機寫的數(shù)據(jù)寫入RAID組中。
[0047]如果客戶業(yè)務不忙的時候,選擇SSD中一個條帶中數(shù)據(jù)填的相對比較滿的只需RCW就可以完成的條帶數(shù)據(jù)優(yōu)先寫入RAID組中。由于一個條帶比較滿的情況,RCW操作相對較少。
[0048]在SSD數(shù)據(jù)中,有多個不同位置的條帶,需要RMW操作的數(shù)據(jù)量相同時候,優(yōu)先處理那些在某些或某個磁盤中有多個條帶位置連續(xù)的條帶數(shù)據(jù)。由于多個條帶位置連續(xù),對應到每個磁盤數(shù)據(jù)也是連續(xù)的,相應地數(shù)據(jù)順序讀寫時性能較好。
[0049]以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種存儲數(shù)據(jù)的方法,其特征在于,所述方法包括: 將隨機寫的數(shù)據(jù)在固態(tài)硬盤SSD中合并后存儲; 將存儲在SSD中的數(shù)據(jù)寫入陣列RAID組中。
2.根據(jù)權(quán)利要求1存儲數(shù)據(jù)的方法,其特征在于,所述將隨機寫的數(shù)據(jù)在SSD中合并之前進一步包括: 將SSD分為元數(shù)據(jù)區(qū)和數(shù)據(jù)區(qū),元數(shù)據(jù)區(qū)記錄SSD中隨機寫的數(shù)據(jù)的信息,數(shù)據(jù)區(qū)存儲隨機寫的數(shù)據(jù)。
3.根據(jù)權(quán)利要求2存儲數(shù)據(jù)的方法,其特征在于,所述方法進一步包括:將數(shù)據(jù)區(qū)分割為至少一個數(shù)據(jù)塊,標識已使用的數(shù)據(jù)塊。
4.根據(jù)權(quán)利要求3存儲數(shù)據(jù)的方法,其特征在于,所述將數(shù)據(jù)區(qū)分割為至少一個數(shù)據(jù)塊包括:將數(shù)據(jù)區(qū)按照RAID5中條帶的大小分割為至少一個數(shù)據(jù)塊。
5.根據(jù)權(quán)利要求2存儲數(shù)據(jù)的方法,其特征在于,所述SSD中隨機寫的數(shù)據(jù)的信息包括:存儲隨機寫的數(shù)據(jù)的大小、隨機寫的數(shù)據(jù)在SSD中存儲位置和隨機寫的數(shù)據(jù)在RAID組中存儲位置。
6.根據(jù)權(quán)利要求2存儲數(shù)據(jù)的方法,其特征在于,所述方法進一步包括:RAID組進行寫數(shù)據(jù)時,未滿條帶寫時,將所述未滿條帶數(shù)據(jù)緩存到SSD中。
7.根據(jù)權(quán)利要求6存儲數(shù)據(jù)的方法,其特征在于,所述將存儲在SSD中的數(shù)據(jù)寫入RAID5組中包括: 當條帶符合滿條帶數(shù)據(jù)時,則將所述條帶中的數(shù)據(jù)寫入RAID組中,清除SSD中所述條帶中的數(shù)據(jù)。
8.根據(jù)權(quán)利要求1存儲數(shù)據(jù)的方法,其特征在于,所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括: 在預設的時間閾值內(nèi),存儲在SSD中隨機寫的數(shù)據(jù)沒有修改,則將所述隨機寫的數(shù)據(jù)寫入RAID組中。
9.根據(jù)權(quán)利要求1存儲數(shù)據(jù)的方法,其特征在于,所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括: 將只需要RCW操作,且存儲在SSD中數(shù)據(jù)量最大的條帶中的數(shù)據(jù)寫入RAID組中。
10.根據(jù)權(quán)利要求1存儲數(shù)據(jù)的方法,其特征在于,所述將存儲在SSD中的數(shù)據(jù)寫入RAID組中包括: RMW操作的數(shù)據(jù)量相同時,將在磁盤中有多個連續(xù)條帶位置的數(shù)據(jù)寫入RAID組中。
【文檔編號】G06F3/06GK103729149SQ201310750346
【公開日】2014年4月16日 申請日期:2013年12月31日 優(yōu)先權(quán)日:2013年12月31日
【發(fā)明者】金振成 申請人:創(chuàng)新科存儲技術有限公司, 創(chuàng)新科軟件技術(深圳)有限公司