



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于linux的通用軟磁盤陣列平臺
隨著雙重錯誤問題的深入研究,一些科學家提出了各種新的數(shù)據(jù)組織和布局形式。這些容雙故障的編碼大體分為兩類,一類是使用編碼函數(shù),如果同時有兩個磁盤發(fā)生故障,則使用函數(shù)計算的方法將發(fā)生故障的磁盤數(shù)據(jù)計算出來,從而保證數(shù)據(jù)的安全性。像使用reed-solemon編碼的raid6就屬于著一類。另外一類是二進制線性碼。它們使用簡單的異或操作,通過將數(shù)據(jù)分成條紋單元,對條紋單元在磁盤上的不同的分布來達到數(shù)據(jù)的安全性,典型的有DH1、DH2等。兩類方法各有優(yōu)缺點,第一類方法磁盤利用率較高,但是計算復(fù)雜,一般只能使用專用的硬件來進行計算,以期達到較好的使用效果。第二類方法計算簡單,使用軟件就可以進行計算,但是磁盤的冗余度高。目前工程化應(yīng)用的容雙故障的磁盤陣列使用的多為raid6,使用專用的硬件做計算,價格昂貴。而使用簡單的異或操作的數(shù)據(jù)布局還沒有系統(tǒng)實現(xiàn),也沒有相應(yīng)的仿真軟件和測試軟件。本文提出并設(shè)計實現(xiàn)了適用于這種方法的通用平臺。1該項目的目的和基本理念1.1系統(tǒng)存儲、存儲資源可靠性低,價格低廉。存儲Deraid的設(shè)計目標有兩個,一個是為各種服務(wù)系統(tǒng)提供大容量、高可靠性、價格低廉、性能適中的存儲服務(wù),可以同時容許兩個磁盤出現(xiàn)故障而保證數(shù)據(jù)不丟失。第二個目標是為各種不同的數(shù)據(jù)布局提供試驗平臺。1.2明確盤數(shù)的編碼單元使用二進制線性碼來實現(xiàn)容雙故障的磁盤陣列,其關(guān)鍵在于將磁盤數(shù)據(jù)分割成為條紋單元,通過將這些條紋單元在磁盤上的巧妙安排,從而達到當出現(xiàn)故障的時候,可使用沒有損壞的單元將損壞的單元計算出來。其結(jié)構(gòu)和術(shù)語見圖1。如圖1所示,二進制線性碼將磁盤分為固定大小的數(shù)據(jù)塊,稱之為條紋單元,這些條紋單元分為數(shù)據(jù)單元和校驗單元。陣列中同一列條紋單元組成一個條紋,而若干個條紋則組成一個布局周期。所有的磁盤存儲空間就是由這些布局周期組成的。二進制線性碼就是通過在一個布局周期內(nèi)通過合理安排數(shù)據(jù)單元和校驗單元的分布來達到目的。表1給出了一個最為簡單的二進制線性碼的編碼方案。其中磁盤個數(shù)為4,布局周期深度為二個條紋。表中PN表示校驗單元,DXY表示數(shù)據(jù)單元,其中X和Y分別代表這個數(shù)據(jù)單元所參加的校驗單元的標號,例如,D23參加了P2和P3兩個校驗單元的校驗,P1則是由D12和D01計算出來的。當任意兩個磁盤出現(xiàn)故障,假定為磁盤2和磁盤4,則D01可以由D30和P0計算出來,由D01和D12可以計算出P1,由D12和P2可以計算出D23,最后,P3可以由D23和D30計算出來。當其他的磁盤組合損壞的時候,可以用類似的方法進行恢復(fù)。這些條紋單元的布置需要滿足一些必要的條件才能成為容雙故障的磁盤數(shù)據(jù)布局,相關(guān)內(nèi)容見參考文獻。Deraid的設(shè)計也遵循這樣的思想,其核心思想就是將各種不同的數(shù)據(jù)布局通過一定的編碼方式輸入到系統(tǒng)中去,系統(tǒng)通過分析這些編碼自動解析出一個布局周期內(nèi)條紋單元的分布,然后按照給定的分布對磁盤的數(shù)據(jù)進行組織。當上層的讀寫請求來到時,就按照這個分布進行校驗計算等工作。2具體設(shè)計和實現(xiàn)2.1deid布局設(shè)計Deraid的實現(xiàn)是基于Linux操作系統(tǒng)的,其主要原因是Linux本身是一個開放源碼的操作系統(tǒng),可以在內(nèi)核一級進行開發(fā)。使之成為操作系統(tǒng)的一個部分。整個系統(tǒng)處于Linux的系統(tǒng)內(nèi)核態(tài),它在文件系統(tǒng)和下層塊設(shè)備驅(qū)動程序之間增加了一個薄層塊設(shè)備驅(qū)動程序。其在系統(tǒng)中所處的位置如圖2所示。當上層的文件系統(tǒng)的讀寫請求到達Deraid驅(qū)動程序?qū)拥臅r候,驅(qū)動程序通過對請求的分析,經(jīng)過一些必要的計算,將數(shù)據(jù)發(fā)送到真正的塊設(shè)備驅(qū)動程序上進行具體的操作。通過這樣的設(shè)計,整個系統(tǒng)的模塊化程度很好,下層的塊設(shè)備不必局限于磁盤設(shè)備,其他諸如usb設(shè)備等都可以作為Deraid系統(tǒng)的底層設(shè)備加以支持。數(shù)據(jù)在磁盤上的布局以及內(nèi)存中的表示如圖3所示。Deraid的磁盤布局分為兩個部分:超級塊和數(shù)據(jù)區(qū)。超級塊用來存放整個Deraid陣列的全局信息,例如啟動信息、磁盤數(shù)量、陣列的容量、條紋單元的大小、時間信息、陣列各磁盤的狀態(tài)等。陣列中的每一塊磁盤都有超級塊,這些超級塊的內(nèi)容相同,且都位于磁盤的最低端,占用4kB的磁盤空間。系統(tǒng)啟動的時候?qū)⒌谝粋€磁盤的超級塊讀入內(nèi)存,同時進行系統(tǒng)設(shè)置,如果第一個超級塊損壞的話,就尋找第二個超級塊,以此類推。如果在系統(tǒng)運行過程中超級塊中的內(nèi)容發(fā)生變化,則同時將所有盤上的超級塊同步更新。這樣的設(shè)計可以大大提高超級塊等全局性的數(shù)據(jù)的安全性,從而提高整個系統(tǒng)的可靠性。磁盤剩余的空間都屬于數(shù)據(jù)區(qū),數(shù)據(jù)區(qū)按照布局周期進行組織,其結(jié)構(gòu)見圖1。默認系統(tǒng)的條紋單元大小為32kB。布局周期是按照用戶所指定的方式進行排列,從而給用戶以較大的靈活性,易于實現(xiàn)多種數(shù)據(jù)布局。當上層的讀寫請求到達Deraid層時,Deraid首先計算出讀寫的數(shù)據(jù)塊所在的磁盤位置以及它所在布局周期中的偏移量,進而在內(nèi)存中申請一塊布局周期緩沖,布局周期緩沖的結(jié)構(gòu)和一個磁盤布局周期相似,它負責管理一個磁盤布局周期在內(nèi)存中的映射。當系統(tǒng)得到這個布局周期緩沖以后,就可以對相應(yīng)的數(shù)據(jù)塊進行讀寫,同時更新布局周期中的校驗條紋單元。讀寫完畢以后,系統(tǒng)就可以收回這個布局周期緩沖以供其它請求使用。2.2具體應(yīng)用和關(guān)鍵技術(shù)2.2.1deid設(shè)計原理由于Deraid系統(tǒng)需要運行于Linux系統(tǒng)的內(nèi)核態(tài),使用基于Linux的模塊機制來實現(xiàn)系統(tǒng)。Deraid提供兩種連接模式,既可以將它當作內(nèi)核的一部分編譯到Linux系統(tǒng)中去,也可以將它單獨編譯成模塊,待使用的時候再插入到系統(tǒng)中去,不使用的時候亦可以從系統(tǒng)中卸載。Deraid系統(tǒng)的設(shè)計關(guān)鍵在于將用戶不同的布局周期應(yīng)用到系統(tǒng)中去,這就要求系統(tǒng)具有很高的靈活性,以適應(yīng)不同的數(shù)據(jù)布局。Deraid使用用戶態(tài)的配置文件來與用戶進行交互,用戶只需要將自己的數(shù)據(jù)布局通過配置文件所規(guī)定的格式寫到配置文件中,系統(tǒng)就可以自動將數(shù)據(jù)布局讀入到內(nèi)核中進行處理。軟件的總體結(jié)構(gòu)如圖4所示。系統(tǒng)從用戶態(tài)的配置文件得到數(shù)據(jù)布局的信息之后,經(jīng)過系統(tǒng)的計算會生成一系列的數(shù)據(jù)結(jié)構(gòu),其中最關(guān)鍵的就是一個布局周期編碼表,它將用戶的布局周期信息翻譯成若干個數(shù)據(jù)表,以便于系統(tǒng)進行操作。所有的讀寫操作都是從這些編碼表中得到信息進行處理的。2.2.2理據(jù)進線緩沖板使用目的在于存布局周期緩沖在做系統(tǒng)的核心是一個緩存管理系統(tǒng),結(jié)構(gòu)如圖4所示。Deraid維護著一個布局周期緩沖池,其大小是可以進行調(diào)配的,系統(tǒng)默認是256個緩沖。每一個緩沖可以對應(yīng)一個磁盤上的布局周期。這些緩沖塊在系統(tǒng)啟動的時候都連接到一個空閑鏈表中,當上層的文件系統(tǒng)需要進行讀寫操作的時候,必須先從空閑鏈表中申請到一個空閑的布局周期緩沖,對這個緩沖進行初始化,然后按照讀寫請求所要求的磁盤偏移量等信息,結(jié)合布局周期編碼表,從磁盤上讀取出相應(yīng)的數(shù)據(jù)進行緩沖區(qū)的預(yù)處理。然后按照編碼表計算校驗信息,標志臟數(shù)據(jù)塊等操作,經(jīng)過處理的緩沖區(qū)就可以加入到一個哈希表中等待下層的設(shè)備驅(qū)動程序進行真正的讀寫操作,同時也可供新的對同一緩沖操作的讀寫請求使用。當空閑鏈表中的布局周期緩沖數(shù)量下降到一定程度,有新的請求到來的時候,如在哈希表中沒有找到相應(yīng)的布局緩沖,同時空閑鏈表中也沒有足夠可使用的空閑緩沖,這個時候讀寫進程就必須等待在一個信號量上。Deraid需要從哈希表中選取一定量沒有被用戶使用的緩沖,將它們從哈希表中脫離出來,并將緩沖中需要進行磁盤I/O操作的臟頁面刷新到磁盤上去,將它們連接到空閑鏈表中,最后喚醒那些等待的進程。這些工作都由一個內(nèi)核守護進程負責協(xié)調(diào)與實施。3條紋單元大小對性能的比較本文對Deraid的讀寫性能以及崩潰重啟時間進行了測試,測試主機為毒龍600MHz,內(nèi)存64MB,操作系統(tǒng)為Redhat7.3。用7個磁盤分區(qū)模擬的raid磁盤構(gòu)造磁盤陣列,每個分區(qū)大小300MB。條紋單元大小4kB,使用如表2所示的數(shù)據(jù)布局方式。表中Pn代表校驗單元。Dxy表示數(shù)據(jù)單元,例如D310就參加了P3和P10的校驗。同時也使用同樣的配置,在同樣的磁盤數(shù)量,同樣條紋單元大小,同樣磁盤容量的條件下建立了raid5系統(tǒng)。在兩個系統(tǒng)上分別建立了ext2文件系統(tǒng),均使用bonnie以及我們自己開發(fā)的raidtest作為測試軟件,同時進行了測試,以進行比較,其測試結(jié)果如圖5所示。從圖中可以看出,RAID5小數(shù)據(jù)讀寫性能要優(yōu)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 日喀則地區(qū)吉隆縣2025屆數(shù)學五下期末達標檢測試題含答案
- 九江學院《電子商務(wù)視覺設(shè)計》2023-2024學年第一學期期末試卷
- 新星職業(yè)技術(shù)學院《光電檢測技術(shù)及應(yīng)用》2023-2024學年第二學期期末試卷
- 婦科尿瘺的護理
- 企業(yè)管理系統(tǒng)
- 大學生心理教育
- 呼吸心肺功能個案護理
- 2025高級計算機程序員核心備考試題庫及答案(濃縮300題)
- 護理行業(yè)人才需求
- 教師提高安全意識培訓(xùn)
- 安化十二中學生違紀處分登記表
- 網(wǎng)格絮凝池計算書
- 07J501-1鋼雨篷玻璃面板圖集
- 【教案】第五課+雅與俗的交流-經(jīng)濟、科技發(fā)展與美術(shù)作品的關(guān)系+教學設(shè)計高中美術(shù)湘美版(2019)美術(shù)鑒賞
- 醫(yī)院網(wǎng)絡(luò)布線改造施工方案
- 普通診所污水、污物、糞便處理方案及周邊環(huán)境情況說明
- 《勸學》學業(yè)水平考試復(fù)習(學生版)
- 兒童保健科疾病診療常規(guī)診療規(guī)范
- 商標注冊委托協(xié)議書
- 2023年中考語文備考之名著閱讀《鋼鐵是怎樣煉成的》2022年中考真題集合
- 鋁合金門窗質(zhì)量管理體系及保證措施
評論
0/150
提交評論