專利名稱:磁盤陣列控制裝置及控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種磁盤陣列控制裝置及控制方法。
背景技術(shù):
隨著存儲市場需求的增長,存儲領(lǐng)域的發(fā)展越來越快,存儲結(jié)構(gòu)技術(shù)也
有新的發(fā)展,從并行技術(shù),例如小型計算機系統(tǒng)接口 (SCSI, Small Computer System Interface )、集成電路設(shè)備(IDE, Integrated Device Electronics )接口等 發(fā)展到串行技術(shù),例如串列主板連接(SATA, Serial AT Attachment)接口 、 光纖通道(FC , Fiber Channel )接口 、串行連接接口 ( SAS, Serial Attached SCSI )、 IB (Infmiband)存儲。但兼顧到數(shù)據(jù)的安全性、可靠性和可用性,則石茲盤陣 列是最好的存儲方式。磁盤陣列就是采用廉價冗余磁盤陣列(RAID, Redundant Array of Inexpensive Disk)技術(shù),把多個》茲盤按一定的規(guī)則組織成一個或多個 邏輯盤,并確保在一個或多個磁盤發(fā)生故障或失效時能根據(jù)磁盤陣列的組織 結(jié)構(gòu)恢復(fù)失效的磁盤數(shù)據(jù),因此,磁盤陣列能夠免除單塊硬盤故障所帶來的 災(zāi)難后果。傳統(tǒng)的磁盤陣列主要有兩種軟磁盤陣列和基于加速部件的磁盤 陣列。實現(xiàn)這兩種磁盤陣列的RAID引擎主要由軟件進行管理和操作,性能 相對比較低,為了提升磁盤陣列的性能,硬件實現(xiàn)磁盤陣列的技術(shù)開始被研 咒。
目前,應(yīng)用的較為廣泛的RAID磁盤陣列形式,例如RAID3,是把數(shù)據(jù) 分成多個"塊",按照一定的容錯算法,存放在N+1個硬盤上,實際數(shù)據(jù)占用 的有效空間為N個硬盤的空間總和,而第N+l個硬盤上存儲的數(shù)據(jù)是校驗容 錯信息,當(dāng)這N+1個硬盤中的其中一個硬盤出現(xiàn)故障時,從其它N個硬盤中 的數(shù)據(jù)也可以恢復(fù)原始數(shù)據(jù),這樣,僅使用這N個硬盤也可以繼續(xù)工作,當(dāng)
4更換一個新硬盤后,系統(tǒng)可以根據(jù)算法重新恢復(fù)完整的校驗容錯信息,這樣
的過程被稱為重構(gòu)/回拷。在例如申請?zhí)枮?00610054757.4的中國專利申請中 就公開了 一種RAID系統(tǒng),所述RAID系統(tǒng)根據(jù)主機的I/O請求訪問物理盤, 并執(zhí)行重構(gòu)/回拷處理,以在不干擾標準I/O處理的情況下實現(xiàn)高速重構(gòu)/回拷 處理。當(dāng)構(gòu)成RAID結(jié)構(gòu)的多個盤設(shè)備中一個盤設(shè)備失效時,根據(jù)RAID控制 中管理的標準I/0是否存在而改變用于重構(gòu)RAID的重構(gòu)/回拷的一次處理量。 當(dāng)存在標準I/O時,則可在不干擾標準I/O處理的情況下執(zhí)行重構(gòu)/回拷,并 且在不存在標準I/0的靜態(tài)狀態(tài)下,指定大于上述狀態(tài)處理量的處理量,以實 現(xiàn)高速重構(gòu)/回拷處理。
由于在一個磁盤陣列中,多于一個硬盤同時出現(xiàn)故障率的幾率^艮小,所 以一般情況下,使用RAID3,安全性是可以得到保障的。傳統(tǒng)的RAID3中數(shù) 據(jù)存儲的基本單位是"塊",即每個磁盤是以邏輯塊為單位的,塊的大小一般 是64KB或128KB,因為此配置能獲得比較高的性能,但卻有一個安全性的 問題,即當(dāng)一個文件小于64KB或128KB時,此文件便存放在一個》茲盤上, 容易被破譯,從而存儲的安全性較低。
發(fā)明內(nèi)容
本發(fā)明提供一種磁盤陣列控制裝置及控制方法,解決現(xiàn)有技術(shù)磁盤陣列 安全性較低的問題。
為解決上述問題,本發(fā)明提供了一種磁盤陣列控制方法,包括
將磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組 大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù);
按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲得每一個 奇偶校驗值;
將所獲得的奇偶校驗值寫入用于存儲奇偶校驗值的磁盤,并將所述各組
5分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。
可選的,所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成 分組數(shù)據(jù)包括,按所述待存儲數(shù)據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組大小按 序分割所述待存儲數(shù)據(jù)獲得分組數(shù)據(jù)。
可選的,所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成 分組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的位寬除以所述數(shù)據(jù)分組大'J、獲得分組數(shù)量, 以分組數(shù)量為選取間隔從所述待存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分組大小的數(shù)據(jù) 位組成分組數(shù)據(jù)。
可選的,所述,茲盤陣列控制方法還包括重構(gòu)步驟,所述重構(gòu)步驟包括 當(dāng)磁盤陣列出現(xiàn)故障磁盤并更換新磁盤后,將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置 成與故障磁盤的數(shù)據(jù)存儲狀態(tài)一致,所述數(shù)據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存 儲數(shù)量以及數(shù)據(jù)存儲位置。
可選的,所述磁盤陣列控制方法還包括數(shù)據(jù)延遲步驟,所述數(shù)據(jù)延遲步 驟包括將所述各組分組數(shù)據(jù)暫存,再分別寫入各自對應(yīng)的存儲磁盤。
本發(fā)明磁盤陣列控制裝置包括,數(shù)據(jù)分組單元、奇偶校驗單元及總線控 制單元,其中,
所述數(shù)據(jù)分組單元用于選擇一個磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù) 分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組 數(shù)據(jù);
所述奇偶校驗單元用于按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行 異或運算來獲得每一個奇偶校驗值;
所述總線控制單元用于將所述奇偶校驗值寫入用于存儲奇偶校驗值的磁 盤,將所述各組分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲一磁盤??蛇x的,所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成 分組數(shù)據(jù)包括,按所述待存儲數(shù)據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組大小按 序分割所述待存儲數(shù)據(jù)獲得分組數(shù)據(jù)。
可選的,所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成 分組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的位寬除以所述數(shù)據(jù)分組大小獲得分組數(shù)量, 以分組數(shù)量為選取間隔從所述待存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分組大小的數(shù)據(jù) 組成分組數(shù)據(jù)。
可選的,所述磁盤陣列控制裝置還包括重構(gòu)控制裝置,用于當(dāng)磁盤陣列 出現(xiàn)故障磁盤并更換新磁盤后,將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置成與故障磁 盤的數(shù)據(jù)存儲狀態(tài)一致,所述數(shù)據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存儲數(shù)量以及 數(shù)據(jù)存儲位置。
可選的,所述磁盤陣列控制裝置還包括數(shù)據(jù)延遲單元,用于暫存分組數(shù) 據(jù),再將分組數(shù)據(jù)發(fā)送至總線控制單元。
與現(xiàn)有技術(shù)相比,上述所公開的磁盤陣列控制裝置及控制方法的方案具
有以下優(yōu)點上述所公開的磁盤陣列控制裝置及控制方法,將磁盤陣列所用 總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的待存 儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù),并按位從所述的每一組分組數(shù)據(jù)中選取對 應(yīng)位進行異或運算來獲得每一個奇偶校驗值,而后將所獲得的奇偶校驗值寫 入用于存儲奇偶校驗值的磁盤,并將所述分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲 磁盤。由于數(shù)據(jù)是以所用總線位寬或位寬約數(shù),例如16位分散到不同的磁盤, 每個磁盤上存儲的數(shù)據(jù)對原數(shù)據(jù)而言是離散的,而目前文件系統(tǒng)的最小為 1KB,因此不存在一個文件存于一個磁盤的問題,提高了數(shù)據(jù)文件的安全性。
圖1是本發(fā)明磁盤陣列控制方法的一種實施方式流程7圖2是本發(fā)明磁盤陣列控制裝置的一種實施方式示意圖; 圖3是圖1所示流程中數(shù)據(jù)分組示意圖; 圖4是圖1所示流程中獲得奇偶校驗值示意圖; 圖5是圖2所示總線控制單元向磁盤寫入數(shù)據(jù)及奇偶校驗值示意圖。
具體實施例方式
本發(fā)明所公開的^f茲盤陣列控制裝置及控制方法,將^f茲盤陣列所用總線位 寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù) 中選取數(shù)據(jù)組成分組數(shù)據(jù),并按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進 行異或運算來獲得每一個奇偶校驗值,而后將所獲得的奇偶校驗值寫入用于 存儲奇偶校驗值的磁盤,并將所述分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。
參照圖1所示,本發(fā)明磁盤陣列控制方法的一種實施方式,包括
步驟sl,將磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù) 數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù);
步驟s2,按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲 得每一個奇偶校驗值;
步驟s3,將所獲得的奇偶校驗值寫入用于存儲奇偶校驗值的磁盤,并將 所述各組分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。
所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù) 包括,按所述待存儲數(shù)據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組大小按序分割所 述待存儲數(shù)據(jù)獲得分組數(shù)據(jù)。
或者,所述根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分 組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的位寬除以所述數(shù)據(jù)分組大小獲得分組數(shù)量,以 分組數(shù)量為選取間隔從所述待存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分組大小的數(shù)據(jù)位組成分組數(shù)據(jù)。
所述磁盤陣列控制方法還包括重構(gòu)步驟,所述重構(gòu)步驟包括當(dāng)磁盤陣 列出現(xiàn)故障磁盤并更換新磁盤后,將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置成與故障 磁盤的數(shù)據(jù)存儲狀態(tài)一致,所述數(shù)據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存儲數(shù)量以 及數(shù)據(jù)存儲位置。
所述磁盤陣列控制方法還包括數(shù)據(jù)延遲步驟,所述數(shù)據(jù)延遲步驟包括 將所述各組分組數(shù)據(jù)暫存,再分別寫入各自對應(yīng)的存儲磁盤。
對應(yīng)上述方法,舉例如下例如,假定磁盤陣列采用小型計算機系統(tǒng)接 口總線,所述總線位寬為16位,選擇總線位寬的約數(shù)16作為數(shù)據(jù)分組的大 小,當(dāng)所接收的存儲數(shù)據(jù)的位寬為64位,則所接收的數(shù)據(jù)總共被分成4組。 對64位存儲數(shù)據(jù)DO ~ D63來說,可以分成第一組DO ~ D15,第二組D16 ~ D31,第三組D32 D47,第四組D48-D63;也可以分成第一組DO、 D4、 D8、 D12...D60;第二組D1、 D5、 D9、 D13...D61;第三組D2、 D6、 DIO、 D14…D62;第四組D3、 D7、 Dll、 D15…D63。
然后按第一次分別從各組中選取第一位數(shù)據(jù)進行異或運算獲得第一個奇 偶校驗值,第二次分別從各組中選取第二位數(shù)據(jù)進行異或運算獲得第二個奇 偶校驗值...直到獲得所有對應(yīng)的奇偶校驗值。例如,對于上述第一種數(shù)據(jù)分 組形式,第一次選取DO、 D16、 D32、 D48進行異或運算獲得第一個奇偶校驗 值PO,即P0 = D0 D16 D32 D48;第二次選取D1、 D17、 D33、 D49進行 異或運算獲得第二個奇偶校驗值Pl,即PI =D1 D17 D33十D49…以此類 推,由于每一組有16位數(shù)據(jù),總共獲得16個奇偶校驗值P0 P15。
最后將所述4組分組數(shù)據(jù)和奇偶校驗值分別寫入不同的磁盤中,例如將 第一組分組數(shù)據(jù)寫入第一個磁盤,將第二組分組數(shù)據(jù)寫入第二個磁盤,將第 三組分組數(shù)據(jù)寫入第三個》茲盤,將第四組分組數(shù)據(jù)寫入第四個磁盤,將奇偶
9校驗值寫入第五個磁盤。為了使得分組數(shù)據(jù)和奇偶校驗值寫入磁盤的時間大 致相同,可以先將分組數(shù)據(jù)暫存,再寫入磁盤。
并且,為了磁盤陣列的可靠性更高,還可以增加重構(gòu)步驟,例如,磁盤l
存儲數(shù)據(jù)d0、 d4;磁盤2存儲數(shù)據(jù)dl、 d5;磁盤3存儲數(shù)據(jù)d2、 d6;磁盤4 存儲數(shù)據(jù)d3、 d7,磁盤5存儲對應(yīng)d0、 dl、 d2和d3的奇偶校驗值p0以及對 應(yīng)d4、 d5、 d6、 d7的奇偶校驗值pl,當(dāng)磁盤3故障后,更換新盤后,通過 d3=d0 dl④d2④p0獲得d3,通過d6=d4 d5 d7 pl獲得d6, @為異或運 算符號。然后,將d3和d6寫入新盤作為新的磁盤3,新的磁盤3保留了原磁 盤3的數(shù)據(jù)存儲數(shù)量和數(shù)據(jù)存儲位置的信息。
參照圖2所示,本發(fā)明磁盤陣列控制裝置的一種實施方式包括,接口單 元10、數(shù)據(jù)分組單元20、奇偶校驗單元30及總線控制單元40,其中,
所述接口單元10用于獲取待存儲數(shù)據(jù);
所述數(shù)據(jù)分組單元20用于選擇一個磁盤陣列所用總線位寬的約數(shù)作為數(shù) 據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成 分組數(shù)據(jù);
所述奇偶4交驗單元30用于按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進 行異或運算來獲得每一個奇偶校驗值;
所述總線控制單元40用于將所述奇偶校驗值寫入用于存儲奇偶校驗值的 磁盤,將所述各組分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。
所述數(shù)據(jù)分組單元20根據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中選取數(shù) 據(jù)組成分組數(shù)據(jù)包括,按所述待存儲數(shù)據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組 大'J 、按序分割所述待存儲數(shù)據(jù)獲得分組數(shù)據(jù)。
或者,所述數(shù)據(jù)分組單元20才艮據(jù)數(shù)據(jù)分組大小從所獲得的待存儲數(shù)據(jù)中 選取數(shù)據(jù)組成分組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的位寬除以所述數(shù)據(jù)分組大小獲
10得分組數(shù)量,以分組數(shù)量為選取間隔從所述待存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分 組大小的數(shù)據(jù)位組成分組數(shù)據(jù)。
所述磁盤陣列控制裝置還包括重構(gòu)控制裝置(圖未示),用于當(dāng)磁盤陣列 出現(xiàn)故障磁盤并更換新磁盤后,將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置成與故障磁 盤的數(shù)據(jù)存儲狀態(tài) 一致,所述數(shù)據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存儲數(shù)量以及
數(shù)據(jù)存儲位置。例如,磁盤l存儲數(shù)據(jù)d0、 d4;磁盤2存儲數(shù)據(jù)dl、 d5;磁 盤3存儲數(shù)據(jù)d2、 d6;》茲盤4存儲數(shù)據(jù)d3、 d7,磁盤5存儲對應(yīng)d0、 dl、 d2 和d3的奇偶校驗值p0以及對應(yīng)d4、 d5、 d6、 d7的奇偶校驗值pl,當(dāng)磁盤3 故障后,更換新盤,重構(gòu)控制裝置通過d3=d0 dl d2 p0獲得d3,通過d6=d4 d5@d7 pl獲得d6,④為異或運算符號。并且,重構(gòu)控制裝置將d3和d6 寫入新盤作為新的磁盤3,新的磁盤3保留了原磁盤3的數(shù)據(jù)存儲數(shù)量和數(shù)據(jù) 存儲位置的信息。
所述磁盤陣列控制裝置還包括數(shù)據(jù)延遲單元(圖未示),用于將數(shù)據(jù)分組 單元20獲得的分組數(shù)據(jù)暫存后再發(fā)送至總線控制單元40,使得分組數(shù)據(jù)和奇 偶校驗值到達總線控制單元40的時間相同。例如,通過一個監(jiān)一見奇偶校驗單 元30的控制裝置來控制數(shù)據(jù)延遲單元的數(shù)據(jù)暫存時間,當(dāng)奇偶校驗單元30 輸出奇偶校-驗值時,所述控制裝置就控制數(shù)據(jù)延遲單元向總線控制單元40發(fā) 送所述暫存數(shù)據(jù)。
下面以一個具體的例子對于磁盤陣列的寫盤操作進行詳細描述,使得上 述磁盤陣列控制裝置及控制方法更加清楚。
結(jié)合圖1和圖2所示,假設(shè)磁盤陣列控制裝置與PCI總線相連,PCI總線 的位寬為64位,則接口單元10也是一個64位的接口,即在某一個時刻接口 單元10通過一條PCI總線所獲得的存儲數(shù)據(jù)的位寬為64位。所述接口單元 10可以選用例如altera公司的PCI-CORE。當(dāng)接口單元10獲得PCI總線傳輸?shù)?4位的存儲數(shù)據(jù)后,會先傳送至數(shù)據(jù)分組單元20中來對于數(shù)據(jù)進行分 組。當(dāng)然,接口單元IO也可以將存儲數(shù)據(jù)先送至緩沖單元(圖未示)中暫存
再送入數(shù)據(jù)分組單元20中。所述緩沖單元可以是D觸發(fā)器。將存儲數(shù)據(jù)在緩
實現(xiàn)時序可控,因為通過控制D觸發(fā)器的輸入時鐘就可以控制D觸發(fā)器將數(shù) 據(jù)向數(shù)據(jù)分組單元20傳送的時間。
所述數(shù)據(jù)分組單元20在獲得接口單元10或緩沖單元傳送的數(shù)據(jù)后,根 據(jù)磁盤陣列所用總線位寬對所獲得的數(shù)據(jù)進行分組。本例中假定磁盤陣列所 用總線為SCSI總線,SCSI總線位寬一般為16位或8位。此處布i定SCSI總 線位寬為16位,也就是說每一條SCSI總線同一時間所能傳輸?shù)臄?shù)據(jù)的上限 為16位。所述數(shù)據(jù)分組單元20可以將接口單元10傳送的64位數(shù)據(jù)按每組 16位進4亍分組,也可以按每組8位進4亍分組,也可以按每組4位進4亍分組, 分組容量的確定參考數(shù)據(jù)傳輸?shù)男屎蚐CSI總線資源而定。以按每組16位 進行分組為例,參照圖3所示,所述的64位數(shù)據(jù)DO ~ D63就被分成了 4組, 即傳輸64位數(shù)據(jù)需要用到4條位寬為16位的SCSI總線,其中第一組DO ~ D15,第二組D16 D31,第三組D32 D47,第四組D48 D63。下面為了使 說明更清楚,對所述分組單元20的結(jié)構(gòu)舉例如下例如,所述分組單元20 包括與接收單元10或緩沖單元連接的4組D觸發(fā)器組,用于獲得接收單元 10或緩沖單元傳送的64位數(shù)據(jù),并將所述數(shù)據(jù)輸出給奇偶單元30以及總線 控制單元40。通過接收單元10或緩沖單元的輸出端與所述D觸發(fā)器輸入端 的不同連接順序,就能獲得不同的分組數(shù)據(jù)。例如將所述的4組D觸發(fā)器的 輸入端按D0-D64的順序與所述接收單元10或緩沖單元的輸出端相連,就 能獲得上述的分組數(shù)據(jù)。而若改變各組D觸發(fā)器的輸入端與接收單元10或緩 沖單元的輸出端的連接順序,就能獲得另 一種分組數(shù)據(jù)。
在分組之后,數(shù)據(jù)分組單元20就通過位寬為16位的SCSI總線將所述的
12四組分組數(shù)據(jù)分別傳送給奇偶校驗單元30以及總線控制單元40。按上述的數(shù) 據(jù)分組形式,將所述的四組分組^t據(jù)分別傳送給奇偶4交-險單元30和總線控制 單元40就需要分別給奇偶校驗單元30和總線控制單元40各配備4條位寬為 16位的SCSI總線。此處,數(shù)據(jù)分組單元20也可以先將四組分組數(shù)據(jù)先傳送 給數(shù)據(jù)延遲單元(圖未示),在數(shù)據(jù)延遲單元暫存后再發(fā)送給總線控制單元40。 從而,使得分組數(shù)據(jù)到達總線控制單元40的時間和奇偶校驗單元30產(chǎn)生的 奇偶校驗值到達總線控制單元40的時間大致相同。所述數(shù)據(jù)延遲單元可以是 D觸發(fā)器。通過控制D觸發(fā)器的控制時鐘就可以控制分組數(shù)據(jù)到達總線控制 單元40的時間。
奇偶校驗單元30在獲得數(shù)據(jù)分組單元20傳送的分組數(shù)據(jù)后,按位/人所 述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲得每一個奇偶校驗值。
例如,對于上述的分組數(shù)據(jù),第一組D0 D15,第二組D16 D31,第三 組D32 ~ D47,第四組D48 ~ D63,奇偶校驗單元30第 一次從各組中抽取各組 的第一位數(shù)據(jù)DO、 D16、 D32、 D48進行異或運算來獲得對應(yīng)的奇偶4交-瞼值 PO,即P0 = D0 D16 D32 D48;第二次從各組中抽取各組的第二位數(shù)據(jù) Dl、 D17、 D33、 D49進行異或運算來獲得對應(yīng)的奇偶才交驗值P1,即P1二D1 @D17@D33 D49;...以此類推,直到最終獲得對應(yīng)總共64位數(shù)據(jù)的奇偶才交 驗值P0-P15。由于每一次獲得奇偶校驗值的過程完全相同,下面僅就第一次 從各組中抽取各組的第 一位數(shù)據(jù)進行異或運算來獲得對應(yīng)的奇偶校驗值的過 程詳述如下
參照圖4所示,奇偶校驗單元30從第 一組中選取DO,從第二組中選取 D16,從第三組中選取D32,從第四組中選取D48,先分別對DO、 D16和D32、 D48異或,隨后再對所獲得的兩個異或值再次異或來獲得奇偶校驗值PO。圖 4所示也可以看作是異或門與數(shù)據(jù)分組單元20的輸出端的連接圖,例如將奇 偶校驗單元30中的一個異或門的兩輸入端中一端與數(shù)據(jù)分組單元20的輸出
13D0的輸出端相連,另一端與數(shù)據(jù)分組單元20的輸出D16的輸出端相連;另 一個異或門的兩輸入端中一端與數(shù)據(jù)分組單元20的輸出D32的輸出端相連, 另一端與數(shù)據(jù)分組單元20的輸出D48的輸出端相連,然后將所述兩個異或門 的輸出端與第三個異或門的兩個輸入端相連,從而所述第三個異或門的輸出 端就輸出PO。
在奇偶校驗單元30獲得奇偶校驗值后,就將所述奇偶校驗值傳送給總線 控制單元40??偩€控制單元40分別將所接收到的4組分組數(shù)據(jù)以及各個對應(yīng) 的奇偶校驗值通過SCSI總線寫入對應(yīng)的存儲磁盤中。
參照圖5所示,例如,總線控制單元40通過SCSI總線將DO寫入磁盤1, 將D16寫入磁盤2,將D32寫入磁盤3,將D48寫入磁盤4,將對應(yīng)DO、 D16、 D32、 D48的奇偶校驗值PO寫入磁盤5;將Dl寫入磁盤1,將D17寫入磁盤 2,將D33寫入磁盤3,將D49寫入磁盤4,將對應(yīng)Dl、 D17、 D33、 D49的 奇偶校驗值P1寫入磁盤5...以此類推,直到完成所有分組數(shù)據(jù)的磁盤寫入和 奇偶校驗值的磁盤寫入。
綜上所述,上述所公開的磁盤陣列控制裝置及控制方法,將磁盤陣列所 用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的待 存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù),并按位從所述的每一組分組數(shù)據(jù)中選取 對應(yīng)位進行異或運算來獲得每一個奇偶校驗值,而后將所獲得的奇偶4交-驗值 寫入用于存儲奇偶校驗值的磁盤,并將所述分組數(shù)據(jù)分別寫入各自對應(yīng)的存 儲磁盤。由于數(shù)據(jù)是以所用總線位寬或位寬約數(shù),例如16位分散到不同的i茲 盤,每個磁盤上存儲的數(shù)據(jù)對原數(shù)據(jù)而言是離散的,而目前文件系統(tǒng)的最小 為1KB,因此不存在一個文件存于一個磁盤的問題,提高了數(shù)據(jù)文件的安全 性。
雖然本發(fā)明己以較佳實施例披露如上,但本發(fā)明并非限定于此。任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動與修改, 因此本發(fā)明的保護范圍應(yīng)當(dāng)以權(quán)利要求所限定的范圍為準。
權(quán)利要求
1. 一種磁盤陣列控制裝置,其特征在于,包括,數(shù)據(jù)分組單元、奇偶校驗單元及總線控制單元,其中,所述數(shù)據(jù)分組單元用于選擇一個磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù);所述奇偶校驗單元用于按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲得每一個奇偶校驗值;所述總線控制單元用于將所述奇偶校驗值寫入用于存儲奇偶校驗值的磁盤,將所述各組分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。
2. 如權(quán)利要求1所述的磁盤陣列控制裝置,其特征在于,所述根據(jù)數(shù)據(jù)分組 大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù)包括,按所述待存儲數(shù) 據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組大小按序分割所述待存儲數(shù)據(jù)獲得分組 數(shù)據(jù)。
3. 如權(quán)利要求1所述的磁盤陣列控制裝置,其特征在于,所述根據(jù)數(shù)據(jù)分組 大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的 位寬除以所述數(shù)據(jù)分組大小獲得分組數(shù)量,以分組數(shù)量為選取間隔從所述待 存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分組大小的數(shù)據(jù)組成分組數(shù)據(jù)。
4. 如權(quán)利要求1所述的磁盤陣列控制裝置,其特征在于,所述磁盤陣列控制 裝置還包括重構(gòu)控制裝置,用于當(dāng)磁盤陣列出現(xiàn)故障磁盤并更換新磁盤后, 將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置成與故障磁盤的數(shù)據(jù)存儲狀態(tài)一致,所述數(shù) 據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存儲數(shù)量以及數(shù)據(jù)存儲位置。
5. 如權(quán)利要求1所述的磁盤陣列控制裝置,其特征在于,所述磁盤陣列控制 裝置還包括數(shù)據(jù)延遲單元,用于暫存分組數(shù)據(jù),再將分組數(shù)據(jù)發(fā)送至總線控 制單元。
6. —種磁盤陣列控制方法,其特征在于,包括,將磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組 大'J 、從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù);按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲得每一個 奇偶校驗值;將所獲得的奇偶校驗值寫入用于存儲奇偶校驗值的磁盤,并將所述各組 分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲》茲盤。
7. 如權(quán)利要求6所述的磁盤陣列控制方法,其特征在于,所述根據(jù)數(shù)據(jù)分組 大小從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù)包括,按所述待存儲數(shù) 據(jù)的數(shù)據(jù)排列順序,以所述數(shù)據(jù)分組大小按序分割所述待存儲數(shù)據(jù)獲得分組 數(shù)據(jù)。
8. 如權(quán)利要求6所述的磁盤陣列控制方法,其特征在于,所述根據(jù)數(shù)據(jù)分組 大d、從所獲得的待存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù)包括,將待存儲數(shù)據(jù)的 位寬除以所述數(shù)據(jù)分組大小獲得分組數(shù)量,以分組數(shù)量為選取間隔從所述待 存儲數(shù)據(jù)中選取個數(shù)為數(shù)據(jù)分組大小的數(shù)據(jù)組成分組數(shù)據(jù)。
9. 如權(quán)利要求6所述的磁盤陣列控制方法,其特征在于,所述磁盤陣列控制 方法還包括重構(gòu)步驟,所述重構(gòu)步驟包括當(dāng)磁盤陣列出現(xiàn)故障磁盤并更換 新磁盤后,將新磁盤中的數(shù)據(jù)存儲狀態(tài)設(shè)置成與故障磁盤的數(shù)據(jù)存儲狀態(tài)一 致,所述數(shù)據(jù)存儲狀態(tài)包括磁盤中數(shù)據(jù)的存儲數(shù)量以及數(shù)據(jù)存儲位置。
10. 如權(quán)利要求6所述的磁盤陣列控制方法,其特征在于,所述磁盤陣列控制 方法還包括數(shù)據(jù)延遲步驟,所述數(shù)據(jù)延遲步驟包括將所述各組分組數(shù)據(jù)暫 存,再分別寫入各自對應(yīng)的存儲磁盤。
全文摘要
一種磁盤陣列控制裝置及控制方法。所述磁盤陣列控制裝置包括,數(shù)據(jù)分組單元、奇偶校驗單元及總線控制單元,其中,所述數(shù)據(jù)分組單元用于選擇一個磁盤陣列所用總線位寬的約數(shù)作為數(shù)據(jù)分組的大小,并根據(jù)數(shù)據(jù)分組大小從所獲得的存儲數(shù)據(jù)中選取數(shù)據(jù)組成分組數(shù)據(jù);所述奇偶校驗單元用于按位從所述的每一組分組數(shù)據(jù)中選取對應(yīng)位進行異或運算來獲得每一個奇偶校驗值;所述總線控制單元用于將所述奇偶校驗值寫入用于存儲奇偶校驗值的磁盤,將所述各組分組數(shù)據(jù)分別寫入各自對應(yīng)的存儲磁盤。所述磁盤陣列控制裝置及控制方法提高了數(shù)據(jù)文件的安全性。
文檔編號G06F3/06GK101470582SQ20071016066
公開日2009年7月1日 申請日期2007年12月26日 優(yōu)先權(quán)日2007年12月26日
發(fā)明者馮冬明, 喻尊和, 崔曉陽, 建瀾濤, 平 朱, 軍 邵, 金丹鷹, 培 陳 申請人:無錫江南計算技術(shù)研究所