[發明專利]一種固態盤陣列的重建方法有效
| 申請號: | 201110350044.3 | 申請日: | 2011-11-08 |
| 公開(公告)號: | CN102521068A | 公開(公告)日: | 2012-06-27 |
| 發明(設計)人: | 陳儉喜;劉景寧;馮丹;劉芳;戚世貴;楊宗 | 申請(專利權)人: | 華中科技大學 |
| 主分類號: | G06F11/14 | 分類號: | G06F11/14 |
| 代理公司: | 華中科技大學專利中心 42201 | 代理人: | 李佑宏 |
| 地址: | 430074 湖北*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 固態 陣列 重建 方法 | ||
1.一種固態盤陣列的重建方法,其特征在于,包括如下步驟:
(1)構建存儲系統
首先,在固態盤陣列外添加一個附加的磁盤,該附加盤用來存儲重建過程中重定向的寫數據;
其次,在內存中設置位圖日志表和寫重定向元數據Hash表,位圖日志表用來記錄跟隨讀負載優先重建的條帶,元數據Hash表用來記錄重定向寫請求的關鍵信息,包括請求所在條帶的起始邏輯地址、請求寫入的固態盤號、條帶的校驗盤號和重定向到附加盤上的邏輯塊地址;
(2)固態盤陣列的重建進程
當系統中有成員固態盤發生故障時,取出故障盤,插入新的替換盤,啟動固態盤陣列開始進行重建,具體過程如下:
(2.1)初始化位圖日志表,日志表的每一位對應固態盤陣列的一個條帶,將位圖日志表的每一位都初始化為0,繼續步驟(2.2);
(2.2)重建進程根據當前需要重建的條帶的起始邏輯地址判斷位圖日志表相應的位是否為1,如果是則繼續步驟(2.3),否則轉入步驟(2.4);
(2.3)該條帶已經被重建過,跳過該條帶的重建,獲取下一個重建條帶的起始邏輯地址,轉入步驟(2.5);
(2.4)該條帶沒有重建過,獲取一個空閑條帶,讀出所有幸存盤上該條帶位置處的數據,將這些數據進行異或XOR運算,將計算的結果寫入到替換固態盤對應的位置上,置位圖日志表中相應的位為1,繼續步驟(2.5);
(2.5)重復上述步驟(2.2)--(2.4),直至所有的條帶都重建完畢,釋放位圖日志表占用的資源;
(3)數據寫回
(3.1)判斷寫重定向元數據Hash表是否為空,如果不為空則繼續步驟(3.2),否則轉入步驟(3.4);
(3.2)從寫重定向元數據Hash表中取出條帶起始邏輯地址相同但邏輯盤號不同的記錄,從附加盤中讀出這些記錄對應的數據,并將它們寫回到重建完成的固態盤陣列中,更新校驗塊,繼續步驟(3.3);
(3.3)將所述這些記錄從Hash表中刪除,轉入步驟(3.1);
(3.4)完成了所有重定向數據的寫回過程,釋放Hash表占用的資源。
2.根據權利要求1所述的一種固態盤陣列的重建方法,其特征在于,所述重建階段中進行數據讀寫的過程為:
(4.1)判斷陣列的狀態,如果處于重建狀態則繼續步驟(4.2);
(4.2)判斷上層下發的讀寫請求的類型,如果是讀請求,則繼續步驟(4.3),否則轉入步驟(4.8);
(4.3)處理用戶讀請求,根據RAID的數據組織方式獲取讀請求對應的條帶S,根據條帶S的起始邏輯地址C和該請求在條帶S中的邏輯盤號N查詢寫重定向元數據Hash表,如果命中則繼續步驟(4.4),否則轉入步驟(4.5);
(4.4)要讀的最新數據在附加盤中,根據命中的元數據表項中附加盤上的邏輯塊地址,讀取附加盤中的最新數據返回給用戶,結束;
(4.5)要讀的數據在重建固態盤陣列中,查詢起始邏輯地址C對應的位圖日志表相應的位,如果為0則轉入步驟(4.6),否則轉入步驟(4.7);
(4.6)讀請求所在的條帶S沒有被重建,將所有幸存盤上位于條帶S的數據塊從底層固態盤中讀取出來,分別記為D(i),其中i=1,2,3...n-1,n為陣列中成員固態盤的個數,利用異或運算XOR將替換盤上的數據D(n)計算出來,即將用戶讀請求需要讀取的數據塊D={D(i)|i=1,2,3...n}返回給用戶,同時將D(n)寫入到替換固態盤中,置位圖日志表中相應的位為1,結束;
(4.7)按照正常的數據讀流程進行處理,結束;
(4.8)處理用戶寫請求,對于待寫數據D’,根據RAID的數據組織方式獲取寫請求對應的條帶S’,計算出條帶S’的起始邏輯地址C’,寫請求在條帶S’中的邏輯盤號N’,條帶的校驗盤號P’,若該條帶為滿帶寫,則進入步驟(4.9),否則轉入步驟(4.10);
(4.9)寫數據塊覆蓋了整個條帶緩沖區,將待寫數據D’填充到條帶緩沖區C’(N)中,轉入步驟(4.12);
(4.10)寫數據塊沒有覆蓋整個條帶緩沖區,根據條帶起始邏輯地址查看位圖日志表相應的位,如果為0則繼續步驟(4.11),否則轉入步驟(4.12);
(4.11)該條帶還沒有被重建,將所有幸存盤上位于條帶S’的數據塊從固態盤陣列中讀取出來,分別記為D’(i),其中i=1,2,3...n-1,n為陣列中成員固態盤的個數,利用異或運算XOR將替換盤上的數據D’(n)計算出來,即將寫數據D’填充到條帶緩沖區C’(N),同時將D’(n)寫入到替換固態盤中,置位圖日志表中相應的位為1,轉入步驟(4.12);
(4.12)將條帶緩沖區C’(N)中的數據重定向到附加盤中,附加盤采用順序追加的方式,根據條帶S’起始邏輯地址C’和邏輯盤號N’查找寫重定向元數據Hash表,如果命中則轉入(4.13),否則轉入(4.14);
(4.13)更新命中的元數據表,修改命中表項中附加盤的邏輯塊地址,將附加盤中該數據塊對應的老數據塊標識為無效,結束;
(4.14)將該重定向寫請求的元數據表項添加到Hash表中,結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華中科技大學,未經華中科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110350044.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種空氣帶狀線寬帶低互調一分四功分器
- 下一篇:微同軸混合編織射頻電纜





