本發明專利技術公開了一種高效實現SSD內部RAID的構建方法,該方法包括步驟:將RAID的條帶大小設置為一個管理單元的大小,所述管理單元包括相鄰的一個或多個邏輯地址;將RAID的條帶內的全部數據寫入存儲芯片的物理地址連續相鄰的區域內。本發明專利技術還公開了一種RAID存儲系統、RAID控制器以及高效實現SSD內部RAID的數據讀寫方法。采用本發明專利技術實施例,能夠高效實現SSD內部RAID的構建,從而減少數據讀取/寫操作,提高了數據讀寫性能。
【技術實現步驟摘要】
本專利技術涉及通信
,尤其涉及一種高效實現SSD內部RAID的構建方法、數 據讀寫方法及裝置。
技術介紹
固態硬盤(Solid State Disk, SSD)是一種采用固態電子存儲芯片陣列作為存 儲器(比如NAND Flash),由控制器負責進行數據存取的硬盤設備。SSD相對傳統硬盤而言 具備了速度快、無噪音、低功耗等一系列優點,廣泛用于軍事、車載、航空等系列領域。但在 實際使用中,作為存儲介質的存儲芯片常常會遇到芯片失效的問題,導致讀出的數據與寫 入的數據不一致。即使在SSD中加入了錯誤檢查和糾正技術(Error Correcting Code, ECC),也仍有較大概率出現上述問題。如將存儲系統中所廣泛采用的獨立冗余磁盤陣列技 術(Redundant Arrays of Independent Disks,RAID)應于 SSD 盤內,將會使 SSD 的可靠性 得到極大的提升。RAID由多個磁盤聚合在一起,能夠在提供大容量的同時,提供更高的訪問速度、更 好的可用性、以及數據冗余保護。其中,RAID中的磁盤可稱為該RAID的成員磁盤。以下簡 單介紹RAID的相關概念分區(Extent),是一個磁盤上的地址連續的存儲塊。一個磁盤可以劃分為多個分區,每 個分區可以大小相等。分區有時也稱為邏輯磁盤;分塊(Str ip),將一個分區分成多個人小相等的、地址相鄰的塊,這些塊稱為分塊; 分塊通常被認為是條帶的元素。虛擬磁盤以分塊為單位,將虛擬磁盤的地址映射到成 員磁盤的地址;條帶(Stripe),是RAID的不同分區上的位置相關的分塊(Strip)的集合,是組織不同 分區上條塊的單位。條帶大小等于分塊大小乘以成員磁盤數目。RAID技術已廣泛應用于數據存儲的各種場合,其中使用最為廣泛的是RAID5。 RAID5每個條帶含有I個分塊的校驗位,用于通過對條帶中其他數據分塊中的數據進行奇 偶校驗以提供冗余保護。當一塊磁盤損壞時,可以通過校驗位與其他磁盤中的數據進行 奇偶校驗運算來重建丟失的數據。奇偶校驗數據是由每個條帶中的數據位使用異或運算 (XOR)得出,這樣在一個磁盤發生損壞時,可以通過條帶中的數據位和奇偶校驗位使用異或 運算來還原丟失的那部分數據。我們知道,實現RAID5的時候,一般會區分大小寫,以一個 條帶由4個數據塊和一個校驗塊購成舉例。我們可以將一個條帶中未更改的數據讀出再與 新數據一起進行計算可以得出校驗值;也可以將要更改的數據的舊數據和舊的校驗值讀出 進行計算得出新校驗值。這兩種方式都可以,為提高計算效率在實現的時候一般判斷更改 數據塊的多少,改的數據塊數目多的時候采用前者(大寫)方式,改的數據塊數目少時采用 后者(小寫)方式。現有技術中,條帶大小的設置主要分為兩種一種為固定的條帶大小,在RAID陣 列創建時設定,以后就不能再更改;另一種為可手動更改整個RAID陣列的條帶大小。在這里,我們著重研究第一種條帶大小固定的RAID陣列。對于條帶大小固定的RAID陣列,RAID創建過程中條帶大小就已經設定好,整個陣列的條帶就被固定,如由5個磁盤組成的一個RAID陣列,創建時設置了條帶大小為32KB這里B表示字節)。則條帶中的每個分塊大小為32/ (5-1) = 8KB。圖1為現有技術的固定條帶大小陣列的寫操作示意圖,當業務I/O所對應的寫數據大小為16KB時,該寫數據被RAID 控制器分成兩個8KB的分塊數據塊O和數據塊I,分別覆蓋條帶I中的數據塊L和數據塊 A。然而在寫入條帶I前,RAID控制器還需要將數據塊B和數據塊C的數據讀取出來,通過以下公式計算出新的奇偶校驗位P1’,來覆蓋條帶I中的Pl:P1’ =數據塊O Φ數據塊I Φ數據塊B φ數據塊C最后再將數據塊O和數據塊I和P1’寫入條帶I中對應的分塊中。顯然,該力一案存在以下缺點1、傳統RAID設計中,將一個管理單元(SSD控制器通常將相鄰的一個或多個邏輯地址作為一個單元進行管理,也即管理單元,同時根據存儲芯片廠商的要求控制器將對應一個或多個邏輯地址大小的數據進行ECC數據保護,將其稱為ECC單元,一個管理單元包含多個 ECC單元)視作一個條帶寬度,一個條帶大小則包含多個管理單元,在這種情況下,如主機進行的隨機性的寫操作,這樣當新寫入的數據大小不是整個條帶大小時將會引起SSD多個附加的讀操作和寫操作,這就浪費了 SSD的寬帶,從而引起SSD的隨機寫性能的下降 以及性磨損的增加;2、另外,在傳統RAID設計中,由于將一個條帶內的數據放在不相鄰的位置,當因SSD上的數據出現不可糾正的錯誤而需要利用RAID進行數據恢復時,需將出錯條帶上的其他數據從多個存儲芯片中讀出,也即需對多個位置發起讀操作,從而影響了這些位置上的正常的讀操作,引起性能的下降;同時由于數據分散在多個位置中,也使得恢復數據的響應時間變長;可見,提供一種高效實現SSD內部RAID的構建方法,以減少數據讀取/寫操作,從而提聞了數據讀與性能和效率具有一定的意義。在現有技術中,通過動態調整條帶大小以提高數據讀寫性能,例如,申請號為 200910082961. O的中國申請專利公開了一種獨立磁盤冗余陣列的數據操作方法及裝置。其中,所述方法包括基于RAID創建邏輯單元,將所述邏輯單元劃分為多個粒度區間,并基于粒度區間進行條帶化處理;在對所述邏輯單元進行寫操作之前,判斷將要寫入的粒度區間的條帶大小是否與條帶參數的當前值相匹配如不匹配,則先根據所述條帶參數的當前值調整將要寫入的粒度區間的條帶大小,再根據調整后的條帶大小進行寫操作;否則, 直接根據將要寫入的粒度區間的條帶大小進行寫操作;其中,所述條帶參數具有一初始值,且根據對所述邏輯單元寫操作的寫數據量進行更新。雖然該方法在一定程度上可以提高RAID的數據讀寫性能,但是每次進行讀寫操作之前都需要對條帶的大小進行調整,增加操作步驟且操作麻煩,降低了數據讀寫效率。另外,申請號為US2007,0759,951的美國申請專利的說明書中公開了一種使用矩陣條帶高速緩存器(MSC)來改進獨立磁盤冗余陣列(RAID)系統的輸入/輸出(I/O)性能的方法,所述方法包括第一步驟,用于通過將執行對磁盤的寫入的單元MSC,生成在行組合之前呈現的基本RXW矩陣,即讀取和寫入矩陣;第二步驟,用于通過行組合,根據在第一步驟中生成的行組合之前的RXW矩陣來生成RXW矩陣,即最終的讀取和寫入矩陣;以及第三步驟,基于第二步驟中生成的行組合后的RXW矩陣來執行讀取、針對基于行的行組 合后的RXW矩陣來執行XOR操作、以及基于列的行組合后的RXW矩陣來執行寫入。該方法 實現過程比較復雜,要改變現有閃存存儲系統的編程/擦除程序而實現,不利于普及使用。
技術實現思路
本專利技術的實施例提供一種高效實現SSD內部RAID的構建方法、數據讀寫方法及裝 置,能夠高效實現SSD內部RAID的構建,從而減少數據讀取/寫操作,提高了數據讀寫性 倉泛。為達到上述目的,本專利技術的實施例采用如下技術方案一種高效實現SSD內部 RAID的構建方法,該方法包括步驟將RAID的條帶大小設置為一個管理單元的大小,所述 管理單元包括相鄰的一個或多個邏輯地址;將RAID的條帶內的全部數據寫入存儲芯片的 物理地址連續相鄰的區本文檔來自技高網...
【技術保護點】
一種高效實現SSD內部RAID的構建方法,其特征在于,該方法包括步驟:將RAID的條帶大小設置為一個管理單元的大小,所述管理單元包括相鄰的一個或多個邏輯地址;將RAID的條帶內的全部數據寫入存儲芯片的物理地址連續相鄰的區域內。
【技術特征摘要】
1.一種高效實現SSD內部RAID的構建方法,其特征在于,該方法包括步驟 將RAID的條帶大小設置為一個管理單元的大小,所述管理單元包括相鄰的一個或多個邏輯地址; 將RAID的條帶內的全部數據寫入存儲芯片的物理地址連續相鄰的區域內。2.如權利要求1所述的高效實現SSD內部RAID的構建方法,其特征在于,還包括 將RAID的條帶空間切分為多個與ECC單元長度一致的條帶單元,其中,每個ECC單元包括相鄰的一個或多個邏輯地址。3.如權利要求1所述的高效實現SSD內部RAID的構建方法,其特征在于,所述RAID的條帶內的全部數據包括根據RAID5方式計算所得的校驗數據。4.如權利要求Γ3任一項所述的高效實現SSD內部RAID的構建方法,其特征在于,所述將RAID的條帶內的全部數據寫入存儲芯片的物理地址連續相鄰的區域內具體為 將RAID的條帶內的全部數據寫入存儲芯片的同一個物理頁內。5.一種RAID控制器,其特征在于,包括 RAID大小設置模塊,用于將RAID的條帶空間大小設置為一個管理單元的大小,所述管理單元包括相鄰的一個或多個邏輯地址; RAID數據配置模塊,用于將RAID的條帶內的全部數據寫入存儲芯片的物理地址連續相鄰的區域內。6.如權利要求5所述的RAID控制器,其特征在于,還包括 RAID空間切分模塊,用于將RAID的條帶空間切分為多個與ECC單元長度一致的條帶單元,其中,每個ECC單元包括...
【專利技術屬性】
技術研發人員:向志華,張琴,李欣,王燦,楊繼濤,李程,黎智,
申請(專利權)人:向志華,張琴,李欣,王燦,楊繼濤,李程,黎智,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。