專利名稱:一種raid4系統(tǒng)及其數(shù)據(jù)讀寫方法
技術領域:
本發(fā)明涉及計算機存儲領域,具體涉及一種RAID4系統(tǒng)及其數(shù)據(jù)讀寫方法。
背景技術:
RAID (Redundant Access Independent Disks,獨立冗余磁盤陣列)技術已經(jīng)作 為一種成熟的技術廣泛應用于數(shù)據(jù)存儲中。RAID技術具有從RAIDO到6七種基本的RAID 級別,不同RAID級別代表著不同的存儲性能、數(shù)據(jù)安全性和存儲成本。其中RAID4是在 RAID3的基礎上發(fā)展起來的。如圖1所示,在RAID4模式中,盤陣包含N個存儲數(shù)據(jù)的磁盤 (簡稱數(shù)據(jù)盤)以及一個專用于存儲奇偶校驗信息的磁盤(簡稱校驗盤),它以條帶(Data striping)為基礎,在把文件數(shù)據(jù)分塊后寫進一個數(shù)據(jù)盤的同時,對其它數(shù)據(jù)盤內(nèi)與該數(shù)據(jù) 塊相同盤內(nèi)位置的所有數(shù)據(jù)塊計算出它們的奇偶校驗值(X0R操作來完成),最終形成一個 由奇偶校驗值組成的信息塊,并將其寫入校驗盤,這被稱為數(shù)據(jù)保護(Data guarding) 0它 的好處是提供了容錯能力,即這N+1個磁盤中任何一個出現(xiàn)故障,都不會造成丟失數(shù)據(jù)的 問題。因為奇偶校驗的對稱性,可以用剩下的N個磁盤的內(nèi)容,計算出存放在有故障磁盤中 的正確的數(shù)據(jù)內(nèi)容,盡管這一計算比較費時間。相對于機械磁盤技術,固態(tài)存儲是一種完全采用半導體芯片作為數(shù)據(jù)存儲介質和 讀取機構的存儲形式,摒棄了磁盤物理和機械特性的缺陷,其具有高IOPSanput/Output Operations Per Second,即每秒進行讀寫操作的次數(shù))和低功耗的特征,典型的固態(tài)硬盤 (SSD)的IOPS可以達到機械硬盤的20倍以上。因此采用SSD作為RAID4系統(tǒng)的校驗盤,可 以顯著提高RAID4系統(tǒng)的響應能力以及降低系統(tǒng)功耗?,F(xiàn)有的采用SSD作為校驗盤的RAID4 系統(tǒng)如圖2所示,其包括RAID控制器203和盤陣,盤陣包括N個數(shù)據(jù)盤(N為大于等于2的 正整數(shù))構成的磁盤陣列204和一個用作校驗盤的SSD 205。主機端為服務器201、202,它 同時支持光纖通道 206 和 iSCSlGnternet Small Computer System hterface,互聯(lián)網(wǎng)小 型計算機系統(tǒng)接口 )通道207,并通過二個通道與RAID控制器203連接,RAID控制器203 與盤陣連接。該系統(tǒng)讀數(shù)據(jù)的流程為RAID控制器對讀請求的讀地址空間按照條帶進行拆 分,從對應的數(shù)據(jù)盤中讀出各條帶數(shù)據(jù),之后將這些條帶數(shù)據(jù)緩存在RAID控制器中,再傳 送到主機端。該系統(tǒng)寫數(shù)據(jù)的流程為先把數(shù)據(jù)盤中的需要寫的條帶數(shù)據(jù)和校驗盤中的校 驗數(shù)據(jù)讀出到RAID控制器中緩存,并對它們進行反向計算從而得到其它數(shù)據(jù)盤內(nèi)與該條 帶數(shù)據(jù)相同盤內(nèi)位置的所有數(shù)據(jù)的校驗和,此校驗和再與新條帶數(shù)據(jù)進行XOR操作,計算 出新校驗數(shù)據(jù),然后把新條帶數(shù)據(jù)寫入到相應數(shù)據(jù)盤,新校驗數(shù)據(jù)寫入到校驗盤。因此,一 次寫操作需要進行校驗盤的讀和寫各一次,即兩次10操作。由此可見,采用SSD作為校驗盤的RAID4系統(tǒng)的校驗盤瓶頸問題仍然存在,原因在 于,簡單的將SSD代替?zhèn)鹘y(tǒng)機械硬盤,并沒有改變其10讀寫方式,任何一個數(shù)據(jù)盤發(fā)生寫操 作,都需要更新校驗盤,即使SSD的讀寫速度較機械硬盤快,但對大數(shù)據(jù)量更新操作校驗盤 的響應能力仍然決定了整個系統(tǒng)的10響應能力。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種具有簡化IO操作功能的新型SSD作為校驗盤的RAID4 系統(tǒng)及其數(shù)據(jù)讀寫方法,該系統(tǒng)通過大幅減少讀寫數(shù)據(jù)時校驗盤的IO操作數(shù),有效消除校 驗盤的讀寫瓶頸,進而提高系統(tǒng)的性能。本發(fā)明提供的RAID4系統(tǒng),包括RAID控制器和盤陣,盤陣包括由多個數(shù)據(jù)盤構成 的磁盤陣列和一個用作校驗盤的SSD,RAID控制器與盤陣連接,其特征在于,RAID控制器通 過SSD自定義的接口命令實現(xiàn)與SSD之間的數(shù)據(jù)交互,在SSD的控制器中增設緩存模塊和 異或模塊,緩存模塊用于存儲RAID控制器寫入SSD的數(shù)據(jù),異或模塊取代控制器中的校驗 更新模塊,實現(xiàn)校驗信息的計算功能,以實現(xiàn)數(shù)據(jù)的讀寫。本發(fā)明所提供的系統(tǒng)采用SSD作為校驗盤,將傳統(tǒng)RAID控制器中的校驗更新模塊 改放到SSD中實現(xiàn),使得該SSD具有簡化IO操作功能。與傳統(tǒng)SSD作為校驗盤的RAID4系 統(tǒng)相比本發(fā)明所提供的系統(tǒng),減少了 RAID控制器與校驗盤之間因更新校驗數(shù)據(jù)而產(chǎn)生的 IO操作數(shù)。因而本發(fā)明具有以下優(yōu)點1.由于采用SSD作為校驗盤,顯著提高了 RAID4系統(tǒng)的響應能力,同時降低了系統(tǒng) 功耗;2.由于采用具有簡化IO操作功能的SSD作為校驗盤,大幅減少了讀寫數(shù)據(jù)時校驗 盤的IO操作數(shù);3.由于采用具有簡化IO操作功能的SSD作為校驗盤,有效消除了校驗盤 的讀寫瓶頸;3.由于采用具有簡化IO操作功能的SSD作為校驗盤,大大提高了系統(tǒng)的性能;4.由于采用具有簡化IO操作功能的SSD作為校驗盤,校驗更新模塊在SSD中實 現(xiàn),大大降低了 RAID控制器的設計難度和成本。
圖1為現(xiàn)有RAID4系統(tǒng)的拓撲結構示意圖;圖2為現(xiàn)有的采用SSD作為校驗盤的RAID4系統(tǒng)的整體結構示意圖;圖3為本發(fā)明提供的RAID4系統(tǒng)的整體結構示意圖;圖4為本發(fā)明中具有簡化IO操作功能的SSD的整體結構示意圖;圖5為本發(fā)明所提供系統(tǒng)中的讀操作示意圖;圖6為本發(fā)明所提供系統(tǒng)中的寫操作示意具體實施例方式下面將結合本發(fā)明實施實例中的附圖,對本發(fā)明實例中的技術方案進行清楚、完 整的描述,本文所描述的實施例是本發(fā)明的一部分實例,而不是全部的實施例。基于本發(fā)明 的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例, 都屬于本發(fā)明保護的范圍。本發(fā)明提供的RAID4系統(tǒng)(也稱之為RAID 4+系統(tǒng))如圖3所示,與現(xiàn)有的RAID4 系統(tǒng)一樣,均包括RAID控制器303和盤陣,盤陣包括磁盤陣列304和一個用作校驗盤的SSD 305。主機端服務器301、302通過光纖通道306和iSCSI通道307與RAID控制器303連接。 由于RAID4+系統(tǒng)的需要,與現(xiàn)有技術的普通SSD作為校驗盤不同,本發(fā)明采用的是一種改
4造后的SSD,該SSD具有簡化IO操作功能。如圖4所示,改造后的SSD是在現(xiàn)有結構的SSD 的控制器部分加入了兩個功能模塊緩存模塊(Data BUffer)4093,和異或模塊4091,其中 緩存模塊4093除了作為數(shù)據(jù)緩沖之外,由于SSD的寫壽命問題,使用性能較好的緩存硬件 以及較優(yōu)的寫策略,可以減少對SSD的閃存介質的寫次數(shù)(在主機對相同地址多次寫操作 時,可以在緩存里最終合并成一個操作并發(fā)送到閃存介質),從而延緩SSD的寫壽命。另外, 異或模塊4091是將原本設置在RAID控制器中的校驗更新模塊改為在SSD中的現(xiàn)場可編程 邏輯門陣列中實現(xiàn),將原本要在RAID控制器這層進行的數(shù)據(jù)異或處理改為在SSD控制器中 進行處理,這樣做的好處是減少RAID控制器與SSD之間因更新校驗數(shù)據(jù)而產(chǎn)生的IO操作 數(shù),以提高系統(tǒng)整體性能。因為在RAID控制器中計算校驗時,需要先讀回原來的校驗信息, 并與新寫入到數(shù)據(jù)盤的數(shù)據(jù)計算以生成新的校驗信息,因此在校驗盤內(nèi)計算校驗能避免不 必要的數(shù)據(jù)傳輸動作,發(fā)揮輸入輸出接口的最大能力,從而提高系統(tǒng)整體性能。本發(fā)明提供的改造后的SSD實現(xiàn)了一組自定義的接口命令,RAID控制器通過使用 這組自定義的接口命令來調(diào)用校驗計算相關的功能。這組自定義的接口命令包括“異或 寫”等,由SSD的異或模塊完成。在進行寫操作時,RAID控制器使用“異或寫”命令將數(shù)據(jù) 盤中的原條帶數(shù)據(jù)以及需要寫入數(shù)據(jù)盤的新條帶數(shù)據(jù)一次性的寫入SSD緩存模塊,由SSD 的異或模塊進行校驗計算。下面,闡述本發(fā)明系統(tǒng)的讀寫方法。本發(fā)明的RAID4+系統(tǒng)的讀操作方法與傳統(tǒng)RAID4系統(tǒng)是一致的,如圖5所示,以 SCSKSmall Computer System hterface,小型計算機系統(tǒng)接口)協(xié)議為例,讀操作包括以 下步驟步驟501,RAID控制器收到來自服務器的讀請求,并響應;步驟502,對該命令請求的讀地址空間按照條帶進行拆分,這些屬于同一個讀請求 的條帶用隊列管理起來;步驟503,RAID控制器的處理線程為每一個條帶構造一個目標盤和RAID控制器緩 沖模塊之間通信的讀命令,并且將命令發(fā)送到對應的數(shù)據(jù)盤;步驟504,RAID控制器從對應的數(shù)據(jù)盤中讀出各條帶數(shù)據(jù),之后將這些條帶數(shù)據(jù) 緩存在RAID控制器中;步驟505,將RAID控制器中緩存的數(shù)據(jù)向主機端進行傳輸。如圖6所示,RAID4+系統(tǒng)的寫操作包括以下步驟步驟601,RAID控制器收到來自服務器的寫請求,并響應;步驟602,對該命令請求的寫地址空間按照條帶進行拆分,這些屬于同一個寫命令 的條帶用隊列管理起來。步驟603,RAID控制器為每一個條帶計算出其目標數(shù)據(jù)盤,以及每一個條帶的目 標寫位置所對應的校驗信息在校驗盤的位置。步驟604,RAID控制器將原始的條帶數(shù)據(jù)讀入RAID控制器中緩存,之后調(diào)用SSD 的自定義命令“異或寫”,將原始的條帶數(shù)據(jù)1和需要寫入的新條帶數(shù)據(jù)1’同時寫入SSD 的緩存模塊。步驟605,在SSD中異或模塊進行異或運算1 1' P=P'(其中數(shù)據(jù)P位原始的校 驗數(shù)據(jù)),得到新的校驗數(shù)據(jù)條帶P’ ;
步驟606,將校驗數(shù)據(jù)條帶P’寫入作為校驗盤的SSD的相應位置,同時將條帶數(shù)據(jù) 1,寫入相應的數(shù)據(jù)盤中。由以上寫操作方法可知,RAID4+系統(tǒng)的一次寫操作,只進行了一次校驗盤的IO操 作,與現(xiàn)有技術中的RAID4系統(tǒng)相比,大幅減少了讀寫數(shù)據(jù)時校驗盤的IO操作數(shù)。在典型的RAID系統(tǒng)中,在計算校驗數(shù)據(jù)的時候,有兩種情況;一種是用寫操作要 修改的目標數(shù)據(jù)與校驗盤數(shù)據(jù)計算,另一種是用寫操作要修改的目標數(shù)據(jù)所在的條帶的其 他數(shù)據(jù)盤的數(shù)據(jù)來直接計算。根據(jù)RAID系統(tǒng)的實現(xiàn)策略不同,本發(fā)明的寫操作一般步驟分 為兩種情況。情況1的步驟為步驟1 讀入寫操作要修改的目標數(shù)據(jù)并緩存。步驟2 將寫操作要修改的目標數(shù)據(jù)和寫操作的數(shù)據(jù)送到用作校驗盤的固態(tài)硬盤 中,對應的命令是“異或寫”。步驟3 將寫操作的數(shù)據(jù)送到目標數(shù)據(jù)盤。情況2的步驟為步驟1 讀入寫操作要修改的目標數(shù)據(jù)所在的條帶的其他數(shù)據(jù)盤的數(shù)據(jù)。步驟2 將寫操作要修改的目標數(shù)據(jù)所在的條帶的其他數(shù)據(jù)和寫操作的數(shù)據(jù)送到 用作校驗盤的固態(tài)硬盤中,對應的命令是“異或寫”。步驟3 將寫操作的數(shù)據(jù)送到目標數(shù)據(jù)盤。本發(fā)明不僅局限于上述具體實施方式
,本領域一般技術人員根據(jù)本發(fā)明公開的內(nèi) 容,可以采用其它多種具體實施方式
實施本發(fā)明,因此,凡是采用本發(fā)明的設計結構和思 路,做一些簡單的變化或更改的設計,都落入本發(fā)明保護的范圍。
權利要求
1.一種RAID4系統(tǒng),包括RAID控制器和盤陣,盤陣包括由多個數(shù)據(jù)盤構成的磁盤陣列 和一個用作校驗盤的固態(tài)硬盤,RAID控制器與盤陣連接,其特征在于,RAID控制器通過自 定義的接口命令實現(xiàn)與固態(tài)硬盤之間的數(shù)據(jù)交互,在固態(tài)硬盤的控制器中增設緩存模塊和 異或模塊,緩存模塊用于存儲RAID控制器寫入固態(tài)硬盤的數(shù)據(jù),異或模塊取代RAID控制器 中的校驗更新模塊,實現(xiàn)校驗信息的計算功能。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述自定義的接口命令為“異或寫”命令, 在進行寫操作時,RAID控制器使用“異或寫”命令將數(shù)據(jù)盤中的原條帶數(shù)據(jù)以及需要寫入 數(shù)據(jù)盤的新條帶數(shù)據(jù)一次性的寫入固態(tài)硬盤緩存模塊,由固態(tài)硬盤的異或模塊進行校驗計 笪弁。
3.—種權利要求1或2所述的RAID4系統(tǒng)的讀方法,其特征在于,該方法包括以下步驟步驟501,RAID控制器收到來自服務器的讀請求,并響應;步驟502,對該命令請求的讀地址空間按照條帶進行拆分,這些屬于同一個讀請求的條 帶用隊列管理起來;步驟503,RAID控制器的處理線程為每一個條帶構造一個目標盤和RAID控制器緩沖模 塊之間通信的讀命令,并且將命令發(fā)送到對應的數(shù)據(jù)盤;步驟504,RAID控制器從對應的數(shù)據(jù)盤中讀出各條帶數(shù)據(jù),之后將這些條帶數(shù)據(jù) 緩存在RAID控制器中;步驟505,將RAID控制器中緩存的數(shù)據(jù)向主機端進行傳輸。
4.一種權利要求1或2所述的RAID4系統(tǒng)的寫方法,其特征在于,該方法包括以下步驟步驟601,RAID控制器收到來自服務器的寫請求,并響應;步驟602,對該命令請求的寫地址空間按照條帶進行拆分,這些屬于同一個寫命令的條 帶用隊列管理起來;步驟603,RAID控制器為每一個條帶計算出其目標數(shù)據(jù)盤,以及每一個條帶的目標寫 位置所對應的校驗信息在校驗盤的位置;步驟604,RAID控制器將原始的條帶數(shù)據(jù)讀入RAID控制器中緩存,之后調(diào)用SSD的自 定義命令“異或寫”,將原始的條帶數(shù)據(jù)1和需要寫入的新條帶數(shù)據(jù)1’同時寫入SSD的緩 存模塊;步驟605,在SSD中異或模塊中進行異或運算1 1’ P=P'(其中數(shù)據(jù)P位原始的校 驗數(shù)據(jù)),得到新的校驗數(shù)據(jù)條帶P’ ;步驟606,將校驗數(shù)據(jù)條帶P’寫入作為校驗盤的SSD的相應位置,同時將條帶數(shù)據(jù)1’ 寫入相應的數(shù)據(jù)盤中。
全文摘要
本發(fā)明公開了一種RAID4系統(tǒng)及其數(shù)據(jù)讀寫方法。該RAID4系統(tǒng)包括RAID控制器和盤陣,盤陣包括由多個數(shù)據(jù)盤構成的磁盤陣列和一個用作校驗盤的固態(tài)硬盤,RAID控制器與盤陣連接,其特征在于,RAID控制器通過自定義的接口命令實現(xiàn)與固態(tài)硬盤之間的數(shù)據(jù)交互,在固態(tài)硬盤的控制器中增設緩存模塊和異或模塊,緩存模塊用于存儲RAID控制器寫入固態(tài)硬盤的數(shù)據(jù),異或模塊取代RAID控制器中的校驗更新模塊,實現(xiàn)校驗信息的計算功能。該系統(tǒng)通過對作為校驗盤的固態(tài)硬盤進行改造,同時提供相應的數(shù)據(jù)讀寫方法,大幅減少了讀寫數(shù)據(jù)時校驗盤的IO操作數(shù),有效消除校驗盤的讀寫瓶頸,進而提高了系統(tǒng)的性能。
文檔編號G06F3/06GK102122235SQ201110025349
公開日2011年7月13日 申請日期2011年1月24日 優(yōu)先權日2011年1月24日
發(fā)明者吳非, 王亞軒, 陳祥 申請人:華中科技大學, 武漢固捷聯(lián)訊科技有限公司