版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一種改進的RAID 后臺初始化技術 摘 要: 新創(chuàng)建的RAID 系統(tǒng)必須要經過初始化才能使磁盤上的隨機數(shù)據(jù)滿足一定的校驗關系,從而使RAID 系統(tǒng)具有數(shù)據(jù)恢復能力。本文分析了傳統(tǒng)RAID 系統(tǒng)初始化方案的優(yōu)缺點,提出了一種改進的后臺初始化方案,試驗證明該方案能夠有效做到初始化與主機IO 讀寫的并行,并在初始化性能和主機IO 讀寫性能上較傳統(tǒng)方案有較大的提高。關鍵詞:RAID;磁盤陣列;后臺初始化;數(shù)據(jù)一致性;校驗初始化中圖分類號:TP 文獻標識碼:A1引言RAID 是Redundant Array of Inexpensive Disk 的縮寫意為
2、廉價冗余磁盤陣列。RAID 系統(tǒng)通過將數(shù)據(jù)拆分到多個磁盤,實現(xiàn)對多個磁盤的并行讀寫,大幅提高了數(shù)據(jù)讀寫性能。由于引入了條帶化的數(shù)據(jù)冗余技術,RAID 系統(tǒng)還可以在一塊或者多塊磁盤損壞的情況下進行正常的讀寫,并且能夠通過已有的數(shù)據(jù)重構出損壞磁盤上的數(shù)據(jù)。有效的提高了數(shù)據(jù)的安全性和可靠性。 以常見的RAID5 為例:RAID5 分條中的各個數(shù)據(jù)單元應滿足關系式P=D1D2D3Dn 其中為異或運算,P 為校驗單元,D1-n 為數(shù)據(jù)單元,我們將滿足這個異或關系式稱為滿足數(shù)據(jù)一致性。當分條中某一個數(shù)據(jù)單元損壞后可以通過運算式Dn=PD1D2D3 重構出該數(shù)據(jù)單元的數(shù)據(jù)。由此可見只有數(shù)據(jù)一致性的RAID
3、系統(tǒng)才具有數(shù)據(jù)重構的能力。但是對于一個新創(chuàng)建的RAID 來說由于磁盤上數(shù)據(jù)的分布是隨機的,這些數(shù)據(jù)并不滿足數(shù)據(jù)一致性,無法提供數(shù)據(jù)重構等數(shù)據(jù)可靠性功能。所以RAID 系統(tǒng)在使用之前必須使各個磁盤上的數(shù)據(jù)滿足數(shù)據(jù)一致性,這個過程稱為RAID 系統(tǒng)的初始化。目前常用的初始化方式有寫零初始化和校驗初始化兩種。寫零初始化通過將整個分條寫全0的方式來達到分條的數(shù)據(jù)一致性,校驗初始式化通過對分條數(shù)據(jù)單元進行異或運算來的得到新的校驗數(shù)據(jù)從而使分條滿足數(shù)據(jù)一致性。然而這些初始化方法都無法做到初始化與主機IO 的并行,RAID 系統(tǒng)都必須等待初始化完成以后才能進行主機IO 的讀寫。由于初始化操作需要遍歷所有分條
4、,需要消耗大量的時間。用戶往往需要等待幾個小時甚至幾天的時間才能對新建立的RAID 系統(tǒng)進行讀寫。為了實現(xiàn)RAID 系統(tǒng)初始化和主機IO 讀寫能夠并行進行,使得RAID 系統(tǒng)一旦建立便可以正常讀寫,業(yè)界提出了多種后臺初始化方案。本文在綜合分析這些方案的基礎上提出了一個改進的后臺初始化方案,較現(xiàn)有的方案在初始化性能和主機IO 性能上都有較大提高。2現(xiàn)有后臺初始化方案的比較與分析現(xiàn)有的后臺初始化方案大體可以分為基于寫零方式的后臺初始化方案和基于校驗方式的后臺初始化方案兩種3。它們分別是在傳統(tǒng)的寫零初始化和校驗初始化的基礎上加入了支持主機IO 也初始化并行的機制演變而來。與傳統(tǒng)的寫零初始化和校驗初始
5、化方案相比這些后臺初始化方案能夠解決初始化與主機IO 并行操作的問題,但是由于附加機制的引入使得在初始化性能和主機IO 性能上都有不同程度的損耗,此同時由于單一依賴于寫零初始化或校驗初始化使得這些方案不能很好的適應主機IO 與初始化并行時的不同的場景。-2-2.1 基于校驗方式的后臺初始化方案DeKoning,Humlicek 2等人提出了一種基于校驗方式的后臺初始化方案,該方案從第一個分條開始依次向后進行順序的校驗初始化。由于校驗初始化具有不破壞已寫入數(shù)據(jù)的優(yōu)點,使得順序初始化進程與主機IO 可以并行進行。對于主機IO 的處理,該方案提出在初始化過程中如果主機IO 寫入的區(qū)域已經初始化則主機
6、IO 采用讀改寫(Read-Modify Write)的方式寫入數(shù)據(jù),其中讀改寫的寫入方式為:1 讀取校驗數(shù)據(jù)2 讀取分條中需要寫入的那些數(shù)據(jù)單元的舊數(shù)據(jù)3 將校驗數(shù)據(jù),讀出的舊數(shù)據(jù) 需要寫入的新數(shù)據(jù)進行異或得到新的校驗數(shù)據(jù)4 將需要寫入的新數(shù)據(jù)和計算得到的新校驗數(shù)據(jù)寫入分條如果主機IO 需要寫入的區(qū)域還未初始化則主機IO 采用重構寫(Reconstruct Write)的方式寫入數(shù)據(jù),重構寫的方式具體如下:1 讀取分條中需要寫入的數(shù)據(jù)以外的舊數(shù)據(jù)2 將需要寫入的新數(shù)據(jù),讀出的舊數(shù)據(jù)進行異或得到新的校驗數(shù)據(jù)3 寫入新數(shù)據(jù)4 寫入新的校驗數(shù)據(jù)ND3 ND2 D1 NP異或運算ND:需要寫入的新數(shù)
7、據(jù) NP:計算的校驗數(shù)據(jù)分條圖2 重構寫操作示意Fig2 Reconstruct Write diagram圖1 RAID5 分條結構圖Fig1 RAID5 stripe structure-3-當IO 寫入的區(qū)域正在初始化則等待該區(qū)域初始化完成后主機IO 數(shù)據(jù)按讀改寫方式寫入。該方案雖然實現(xiàn)了主機IO 與RAID 初始化操作的并行,但由于校驗初始化需要讀出分條中的數(shù)據(jù)單元進行異或計算校驗數(shù)據(jù),使得順序初始化效率非常低。2.2 基于寫零方式的后臺初始化方案Hung Ching Hai1等人提出了一種基于寫零方式的后臺初始化方案。由于寫零初始化可能破壞主機IO 已經寫入的數(shù)據(jù),該方案引入了初始化
8、分區(qū)表的概念,將整個RAID 空間分成若干個大小相等的分區(qū),每個分區(qū)用分區(qū)表中的一項表示,初始化開始前分區(qū)表中每個分區(qū)為未初始化狀態(tài)。該方案對各個分區(qū)依次進行順序的寫零初始化,每個分區(qū)初始化完成后需要更新分區(qū)表中對應項的狀態(tài)為已初始化。順序初始化進程在初始化每個分區(qū)前需要查詢該分區(qū)對應的分區(qū)表項狀態(tài)是否為已初始化,如果已經初始化則順序初始化跳過該分區(qū)進行下一個分區(qū)的初始化。對于主機IO 在寫入某個分區(qū)前也需要在初始化分區(qū)表中查詢該分區(qū)是否已經初始化,如果該分區(qū)已經初始化則直接寫入數(shù)據(jù),如果沒有初始化則首先采用寫零的方式初始化該分區(qū)并更新分區(qū)表,然后再寫入IO 數(shù)據(jù)。寫零與校驗初始化性能比較05
9、01001502002501 2 3 41 單盤順序寫 2 寫零初始化 3 校驗初始化MB/S圖3 寫零和校驗初始化性能比較Fig3 Performance Comparison of two kinds of initialization對比以上兩種方案,Hung Ching Hai 等人的方案由于采用了寫零初始化,對于只有順序初始化而主機IO 沒有讀寫到的那些區(qū)域,初始化性能要明顯高于DeKoning 等人的校驗初始化方案。但對于主機IO 讀寫的區(qū)域,Hung Ching Hai 等人的方案必須先將這些區(qū)域寫全零然后主機IO 才能采用寫入數(shù)據(jù),使得主機IO 的延時大大增加,嚴重降低了初始化
10、過程中主機IO 的性能。3一種改進的后臺初始化方案3.1 基于寫零方式的后臺初始化方案綜合現(xiàn)有后臺初始化方案的優(yōu)點并分析他們的不足,本文提出了一種改進的后臺初始化方案。為了在RAID 創(chuàng)建后主機IO 可以立刻對該RAID 系統(tǒng)進行讀寫,本方案將RAID 初始化分為后臺順序初始化和主機IO 觸發(fā)的初始化。將整個RAID 組空間以分條為初始化的最小分區(qū),創(chuàng)建一張初始化位圖Bitmap 與之對應。初始化位圖的每一個Bit 對應一個分條,該Bit 為0 表示該分條還未被初始化,若為1 則表示該分條已經被初始化。順序初始化進程從第一個分條開始依次初始化所有分條,順序初始化采用性能最高的寫零的方式進行初始
11、化,每初始化一個分條后順序初始化進程將初始化位圖中對應的Bit 置為1。由于順序初始化進程采用分條寫全零的方式進行初始化當與主機IO 并行時可能將已經寫入主機IO 數(shù)據(jù)的分條寫零,為了避免該情況的發(fā)生,順序初始化進程在初始化每個分條前必須先查詢初始-4-化位圖中的對應Bit,用以判斷該分條是否已經格式化,如果該Bit 為1 則跳過該分條繼續(xù)下一個分條的初始化,如果該Bit 為0 則初始化該分條然后更新Bit 位為1。對于主機IO 觸發(fā)的初始化,為了盡量減小初始化對主機IO 的影響,本方案采用校驗初始化的方式初始化主機IO 需要寫入的分條。主機IO 數(shù)據(jù)以重構寫的方式寫入分條,可以同時完成分條的
12、初始化和IO 數(shù)據(jù)的寫入,可以最大限度的降低初始化對主機IO 寫入的時延。當數(shù)據(jù)寫入后更新初始化位圖中對應的Bit 位為1 表示該分條已經初始化并寫入數(shù)據(jù),如果主機IO 所寫入的分條已經初始化則直接寫入主機數(shù)據(jù)。順序初始化位圖Bit=0分條寫全零跳到下一個分條否是最后一個分條?END否設置位圖相應Bit=1是圖 4 順序初始化進程流程示意Fig4 Flowchart of Sequential Initialization process-5-本方案中由于順序初始化不承載主機IO 數(shù)據(jù),所以直接采用速度和效率最快的寫零初始化的方式將分條寫入全零數(shù)據(jù)而無需讀出原有數(shù)據(jù)并計算校驗位,可以最大限度的
13、利用磁盤帶寬,是目前最快的初始化方式。但對于主機IO 觸發(fā)的初始化由于整個初始化過程最后需要寫入主機IO 數(shù)據(jù),如果依然采用寫零發(fā)的初始化方式則主機IO 在寫入前需要調用寫零初始化將分條寫零,然后才能以讀改寫的方式寫入主機IO 數(shù)據(jù),大大增加了主機IO 的時延。然而主機IO 初始化直接采用重構寫的方式寫入數(shù)據(jù)可以同時做到初始化分條和數(shù)據(jù)寫入的目的,主機IO 初始化采用重構寫的方式初始化比寫零的初始化方式效率更高,能有效的降低主機IO 的時延。與此同時采用初始化位圖的方式記錄已經初始化和未初始化的分條,有效地避免了寫零初始化對主機IO 寫入數(shù)據(jù)的破壞。本方案綜合了寫零初始化和校驗初始化在不同場景
14、下的優(yōu)點,彌補了單一使用一種初始化方式帶來的不足,兼顧了順序初始化和主機IO 的性能。3.2 初始化位圖的置換算法本方案使用了精細到分條粒度的初始化位圖,是為了能夠支持主機IO 初始化時進行分條的重構寫操作同時可以避免對分條進行操作時順序寫零初始化破壞主機IO 寫入的數(shù)據(jù)。只有這樣才能夠將寫零和校驗兩種初始化類型結合到一起,由此可以看出位圖有著至關重要 的作用。與采用較大的初始化分區(qū)相比精細到分條的分區(qū)使得位圖的大小有所增加??紤]到在初始化過程中一定時間段內可能只有一小部分空間被初始化,而內存中只需要
15、存放這部分空間對應的初始化位圖即可,其余位圖可以存放在磁盤中等到需要查詢和設置時再讀入內存。 由此我們借鑒了LRU 頁面置換算法來管理我們的位圖空間。首先我們將整張位圖以4K 頁面的形式存放在RAID 組成員磁盤的保留區(qū)域,在內存中我同樣以4K 頁面的形式來管理位圖,系統(tǒng)開始時先從磁盤中讀出一部分位圖4K 頁面到內存,在內存中維護一個位圖4K 頁面表,記錄著每個4K 頁面的內存地址,磁盤位置,以及未命中次數(shù)的計數(shù)值,該計數(shù)值用來記錄該4K 頁面未被命中的次數(shù)。每當一個位圖4K 頁面被初始化進程查詢或設置一次,該頁面的對應計數(shù)值清0。其余所有未被訪問的4K 頁面的計數(shù)值增加1,當順序初主機IO位
16、圖Bit=0直接寫入IO數(shù)主機IO大寫據(jù)否是讀or寫直接讀取END讀寫更新位圖對應Bit=1圖5 主機IO 觸發(fā)的初始化進程流程示意Fig5 Flowchart of IO Initialization process-6-始化或主機IO 初始化需要訪問的位圖不在內存中時,從磁盤中讀出需要訪問的那個位圖4K頁到內存中,并將未命中計數(shù)值最大的那一個頁面寫入磁盤對應位置,將其換出內存。使用該算法能夠有效的減少位圖對內存的開銷。4實驗及結果分析我們以4 盤的RAID5 為基準,對本文提出的方案進行測試,并與DeKoning 等人的傳統(tǒng)校驗后臺初始化方案和Hung Ching Hai 等人的傳統(tǒng)寫零后
17、臺初始化方案在順序初始化性能和初始化過程中的主機IO 性能上進行比較。順序初始化性能比較0501001502001 2 3 41 傳統(tǒng)校驗方式 2 傳統(tǒng)寫零方式 3 本方案MB/S圖 6 順序初始化性能比較Fig6 Performance Comparison of three kinds of Sequential initialization由圖6 可以看到對于順序格式化,傳統(tǒng)的后臺寫零初始化性能最高,達到了150MB/S而傳統(tǒng)的校驗格式化性能最低只有80MB/S 左右,由于本方案的順序初始化部分采用了寫零方式,使得順序初始化性能與傳統(tǒng)的寫零初始化基本相當,達到了145MB/S。與傳統(tǒng)寫零
18、方式差距分析主要可能是由于位圖讀寫以及位圖的置換算法帶來的性能損耗。滿分條順序寫主機IO性能比較050100150200250512 128 64 32 16分條深度 單位KBMB/S本方案傳統(tǒng)寫零后臺初始化傳統(tǒng)校驗后臺初始化圖 7 主機IO 性能比較Fig7 Performance Comparison of three kinds of IO initialization初始化過程中的主機IO 性能是衡量后臺初始化方案好壞的一個重要指標,本文對不同分條深度的LUN 進行主機順序寫操作,得到如圖7 的性能統(tǒng)計結果。可以看到由于傳統(tǒng)的寫零后臺初始化在初始化過程中主機IO 需要進行分條寫全零再寫
19、分條數(shù)據(jù),相當于進行了兩次寫操作其主機IO 性能最差,而傳統(tǒng)的校驗后臺初始化的主機IO 性能最高,幾乎與正-7-常情況下的主機IO 性能相當。本方案對于主機IO 觸發(fā)的初始化采用與而傳統(tǒng)的校驗后臺初始化相同的重構寫方式,使得本方案初始化過程中的主機IO 性能幾乎和校驗初始化相當,相比于寫零初始化有很大的提高。5結論傳統(tǒng)的后臺初始化方案由于自身初始化方式的局限,無法做到初始化和主機IO 性能的兼?zhèn)洹Ec這些傳統(tǒng)的后臺初始化方案相比本文提出的改進方案吸取了傳統(tǒng)的寫零初始化和校驗初始化的優(yōu)點,能夠很好的兼顧初始化性能和主機IO 性能,相對于傳統(tǒng)方案有較大的性能提升。參考文獻1 Hung Ching h
20、ai . Raid consistency initialization method P .United States Patent Application,20050076260,April 7, 2005 .2 Rodney A DeKoning, Donald R Humlicek, Robin Huber .Method for logical unit creation with immediateavailability in a raid storage environment P . United States Patent 6467023 Oct 15, 2002.3 譚志虎,謝長生,萬繼光. RAID 一致性初始化方法研究A. 小型 微型計算機系統(tǒng), 2008,29(7):1204-12074 張靜. RAID 技術工作原理分析及實現(xiàn)J. 科技信息, 2008,(32):33
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《外科護理》第十五章第一節(jié)腹外疝病人的護理課件
- 專業(yè)菊花供應商2024年銷售協(xié)議草案版B版
- 二零二五年度航空發(fā)動機加工承包合同樣本3篇
- 2025礦山合作開發(fā)協(xié)議合同
- 2025年建筑合同中的勞動爭議解決3篇
- 改造施工合同范本
- 二零二五年度高空橋梁施工安全責任承諾書6篇
- 裝修勞務用工合同范本
- 隧道工程勞務分包施工合同
- 證券公司市場分析保密規(guī)定
- 軟件項目應急措施及方案
- 2025河北邯鄲經開國控資產運營管理限公司招聘專業(yè)技術人才5名高頻重點提升(共500題)附帶答案詳解
- 2024年民法典知識競賽考試題庫及答案(共50題)
- 2025老年公寓合同管理制度
- 鈑金設備操作培訓
- 水利工程招標文件樣本
- 第17課 西晉的短暫統(tǒng)一和北方各族的內遷(說課稿)-2024-2025學年七年級歷史上冊素養(yǎng)提升說課稿(統(tǒng)編版2024)
- 共生理論視域下開放型區(qū)域產教融合實踐中心建設路徑研究
- 2024-2025學年人教版七年級上冊數(shù)學期末專項復習:期末考試必刷易錯60題(解析版)
- 2025屆河南省九師聯(lián)盟高一物理第一學期期末監(jiān)測模擬試題含解析
- 中國新茶飲行業(yè)政策、市場規(guī)模及投資前景研究報告(智研咨詢發(fā)布)
評論
0/150
提交評論