[發明專利]數據寫入方法及裝置在審
| 申請號: | 201410074021.8 | 申請日: | 2014-02-28 |
| 公開(公告)號: | CN104881242A | 公開(公告)日: | 2015-09-02 |
| 發明(設計)人: | 劉卯銀 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06;G06F11/08 |
| 代理公司: | 北京康信知識產權代理有限責任公司 11240 | 代理人: | 余剛;梁麗超 |
| 地址: | 518057 廣*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 寫入 方法 裝置 | ||
技術領域
本發明涉及計算機領域,具體而言,涉及一種數據寫入方法及裝置。
背景技術
目前,在相關技術中,RAID5或RAID6采用異或校驗值來確保條帶的數據冗余性。在一個冗余條帶中既可以包含用戶的有效數據又可以包含上述有效數據的校驗值,每次寫操作都需要同時更新條帶的數據和校驗值。如果在執行寫操作時突然發生掉電情況導致寫操作失敗,那么會破壞該條帶的校驗一致性。而如果不對這種錯誤采取任何補救措施,仍然假設條帶是一致的,那么后面陸續寫入的數據將會使得條帶的數據越寫越壞。當一塊磁盤失效導致RAID5降級后,若希望讀取該失效磁盤上的數據,則必須利用RAID5的條帶校驗規則計算出上述數據。RAID5的條帶校驗通常建立在條帶一致的基礎上,而如果該條帶缺乏一致性,將會導致計算出的數據與期望不符,這就是所謂的RAID5、RAID6的write-hole問題。
圖1是根據相關技術的RAID5發生write-hole問題的示意圖。如圖1所示,初始時條帶具有冗余性,即P1=D1⊕D2⊕D3⊕D4,然而在寫入A1和P2的過程中,系統發生掉電,從而導致僅寫入了部分數據,此時,Y!=X⊕D2⊕D3⊕D4,條帶就此失去了校驗一致性。
在當前情況下,如果其中一塊磁盤發生故障,例如:D2盤發生故障,那么在對D2盤訪問時,需要通過D2=X⊕D3⊕D4⊕Y的計算得出結果。而由于之前發生的異常導致X⊕D2⊕D3⊕D4⊕Y!=0,因而,計算出的D2與期望不符,即讀取的數據是錯誤的。
對于上述問題,相關技術中提供了如下解決方案:
Linux內核可以通過位圖記錄正在訪問的條帶信息,采用先寫入位圖再寫入數據的方式。在掉電后系統恢復上電時,讀取位圖信息,對可能存在不一致的條帶進行恢復操作。使圖1中所示的Y=X⊕D2⊕D3⊕D4。
然而,采用上述Linux內核的解決方案,僅能減少RAID5、RAID6數據發生錯誤的概率,但卻不能完全解決因為掉電而產生的write-hole問題。
綜上所述,在系統發生掉電后,在RAID條帶尚未完成修復之前,如果其中一塊成員磁盤發生故障或者被拔走,那么條帶修復將會因為缺少一塊數據磁盤而無法進行。此時,若執行重構讀取操作,則讀取出的數據就是錯誤的。另外,在其中一塊磁盤發生故障后,若執行降級寫入操作,而恰巧在寫入的過程中發生掉電,由于對發生故障的磁盤進行了更換,因此將無法重構出正確的數據。
發明內容
本發明提供了一種數據寫入方法及裝置,以至少解決相關技術中因RAID5或RAID6中的write-hole問題會導致條帶校驗不一致,從而影響后續操作的問題。
根據本發明的一個方面,提供了一種數據寫入方法。
根據本發明實施例的包括:在執行寫輸入/輸出(I/O)操作將數據寫入磁盤之前,對寫條帶信息進行存儲,其中,寫條帶信息包括:條帶的位置信息、RAID寫模式、數據的地址信息以及數據;在將數據寫入磁盤的過程中發生異常時,采用寫條帶信息對條帶的校驗一致性進行恢復。
優選地,在采用寫條帶信息對條帶的校驗一致性進行恢復之后,還包括:在執行寫I/O操作成功后,對存儲的寫條帶信息進行刪除。
優選地,對寫條帶信息進行存儲包括:將寫條帶信息存儲在第一節點的內存中;經由在第一節點與第二節點之間的數據鏡像通道將寫條帶信息鏡像至第二節點中。
優選地,對寫條帶信息進行存儲包括:在本地磁盤上劃分存儲空間;將寫條帶信息保存至存儲空間。
優選地,采用寫條帶信息對條帶的校驗一致性進行恢復包括:確定在將數據寫入磁盤的過程中發生異常;讀取已經存儲的寫條帶信息,并根據位置信息、RAID寫模式、地址信息以及數據對條帶的校驗一致性進行恢復;繼續執行寫I/O操作。
優選地,對存儲的寫條帶信息進行刪除包括:向上層主機返回成功執行寫I/O操作的結果;刪除在第一節點上保存的寫條帶信息;經由數據鏡像通道刪除在第二節點上存儲的寫條帶信息。
優選地,對存儲的寫條帶信息進行刪除包括:向上層主機返回成功執行寫I/O操作的結果;刪除在存儲空間上保存的寫條帶信息。
根據本發明的另一方面,提供了一種數據寫入裝置。
根據本發明實施例的數據寫入裝置包括:存儲模塊,用于在執行寫輸入輸出I/O操作將數據寫入磁盤之前,對寫條帶信息進行存儲,其中,寫條帶信息包括:條帶的位置信息、RAID寫模式、數據的地址信息以及數據;恢復模塊,用于在將數據寫入磁盤的過程中發生異常時,采用寫條帶信息對條帶的校驗一致性進行恢復。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410074021.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種居民室內用電貫穿性電磁輻射抑制電路
- 下一篇:一種導航系統用射頻防雷器
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





