李攀 張蕊
摘要:該文提出了一種基于機械硬盤的壞扇區(qū)映射方法,包括如下步驟:系統(tǒng)啟動后,壞扇區(qū)管理模塊開始初始化;當硬盤上線完成后,系統(tǒng)先將IO請求的邏輯地址發(fā)送給壞扇區(qū)管理模塊,由壞扇區(qū)管理模塊轉換為物理地址后進行是否命中壞扇區(qū)映射表、預測壞扇區(qū)映射表的檢測;然后由壞扇區(qū)管理模塊依據檢測結果決定是將映射后的物理地址還是真實的物理地址返給系統(tǒng);系統(tǒng)按壞扇區(qū)管理模塊返回的物理地址進行硬盤讀寫,如果讀寫成功,則IO結束;如果讀寫失敗,則觸發(fā)壞扇區(qū)管理模塊執(zhí)行壞扇區(qū)映射操作。該方法可有效避免系統(tǒng)因連續(xù)扇區(qū)損壞所導致的IO頻繁報錯和邏輯上連續(xù)但實際物理扇區(qū)卻離散的問題,可極大提高系統(tǒng)的穩(wěn)定性和性能。
關鍵詞:機械硬盤 ?壞扇區(qū) ?系統(tǒng) ?映射 ?IO報錯 ?離線 ?性能
中圖分類號:TH122文獻標識碼:A ? 文章編號:1672-3791(2022)04(a)-0000-00
Research on Bad Sector Mapping Method Based on Mechanical Hard Disk
LI Pan ? ZHANG Rui
(Shanghai Technician School,Shanghai,200437China)
Abstract: This paper presents a bad sector mapping method based on mechanical hard disk, which includes the following steps: after the system starts, the bad sector management module starts to initialize; After the hard disk goes online, the system first sends the logical address of the IO request to the bad sector management module. After the bad sector management module converts it into a physical address, it detects whether it hits the bad sector mapping table and predicts the bad sector mapping table; Then, the bad sector management module decides whether to return the mapped physical address or the real physical address to the system according to the detection result; The system reads and writes the hard disk according to the physical address returned by the bad sector management module. If the reading and writing is successful, the IO ends; If the read / write fails, the bad sector management module is triggered to perform the bad sector mapping operation. This method can effectively avoid the problems of frequent IO error reporting and logically continuous but discrete physical sectors caused by continuous sector damage, and can greatly improve the stability and performance of the system.
Key Words: Mechanical hard disk; Bad sector; System; Mapping; IO error; Off-line; Performance
機械硬盤都是磁碟型的,是由重疊的一組盤片構成,每個盤面都被劃分為數目相等的磁道(Track),并從外緣的“0”開始編號,具有相同編號的磁道形成一個圓柱,稱之為柱面(Cylinder),每個磁道被等分為若干個弧段,這些弧段便是扇區(qū)(Sector)。數據是存儲在扇區(qū)里,對于無法寫入數據的扇區(qū)稱為壞扇區(qū)。
在機械硬盤的生命周期中,始終存在“因為扇區(qū)損壞而導致系統(tǒng)IO錯誤的情況”。因而,在以機械硬盤為主要存儲介質的存儲服務器中,因為硬盤扇區(qū)損壞而上報的IO錯誤,是系統(tǒng)讀寫失敗最主要的原因。
目前解決上述問題的通用方法是“一一對應”方法,該方法是在硬盤上線時,先預留一部分空間,以用于替換硬盤上損壞的扇區(qū),然后在系統(tǒng)出現一次IO錯誤時,就進行一次記錄,根據系統(tǒng)層IO攜帶的扇區(qū)地址進行壞扇區(qū)的映射,并且更新壞扇區(qū)映射表(用于記錄發(fā)生變化的扇區(qū)映射關系)。而系統(tǒng)在正常讀寫的過程中,如果讀寫的目標扇區(qū)地址命中壞扇區(qū)映射表中記錄的硬盤“已損壞”扇區(qū),則會修改目標系統(tǒng)即將讀寫的硬盤地址,即:根據之前建立的映射關系,從硬盤的預留扇區(qū)中找到一個同樣大小的扇區(qū)進行地址替換,以完成本次讀寫。在存儲服務器中,雖然通過這種“一一對應”方法,可提高硬盤的使用壽命和降低IO報錯情況,但在實際使用中,仍然存在一些弊端,例如:
對于大多數機械硬盤而言,機械硬盤損壞的扇區(qū)通常不是離散的和隨機的,而是有規(guī)律的、相關聯(lián)的一段物理地址,一旦出現某個扇區(qū)損壞,就會不可避免地產生一連串的IO錯誤,這時系統(tǒng)一方面需要處理這些錯誤(以Linux系統(tǒng)為例,通常會觸發(fā)其重建這條鏈路),另一方面又會在壞扇區(qū)映射表中重映射這個扇區(qū),以致會加重系統(tǒng)的負載,出現內存緊張、CPU占用過高、IO性能下降等問題;此外,采用“一一對應”時,因為一個扇區(qū)損壞,就會導致這個扇區(qū)的物理地址被重映射到“預留扇區(qū)表”中,從而出現邏輯上連續(xù)但實際物理扇區(qū)卻離散的問題,以致系統(tǒng)性能也受到影響。因此,有必要研發(fā)一種基于機械硬盤的壞扇區(qū)映射方法,以解決系統(tǒng)因扇區(qū)損壞而頻繁出現IO錯誤和出現的邏輯上連續(xù)但實際物理扇區(qū)卻離散的問題[1]。
1 技術方案提出
針對現有技術存在的上述問題和需求,該文提出一種基于機械硬盤的壞扇區(qū)映射方法,以解決系統(tǒng)因為扇區(qū)損壞而頻繁出現IO錯誤的問題及出現的邏輯上連續(xù)但實際物理扇區(qū)卻離散的問題,以提高系統(tǒng)IO讀寫性能、提升系統(tǒng)可靠性和穩(wěn)定性,并延長機械硬盤的使用壽命。
該文所提出的壞扇區(qū)映射方法具體包括如下步驟[2-4]。
(1)系統(tǒng)啟動后,壞扇區(qū)管理模塊開始初始化,所述初始化內容包括:
向系統(tǒng)申請內存資源;創(chuàng)建和初始化壞扇區(qū)映射表;獲取正在上線的硬盤磁道和盤片數量并據此建立從邏輯地址到物理地址的映射關系;獲取正在上線的硬盤容量,并截留5%~20%的硬盤空間作為預留扇區(qū)以用于映射;獲取正在上線的硬盤配置信息并據此創(chuàng)建壞扇區(qū)預測因子和預測壞扇區(qū)映射表[5-6];具體操作流程如圖1所示。
(2)當硬盤上線完成后,系統(tǒng)先將IO請求的邏輯地址發(fā)送給壞扇區(qū)管理模塊,由壞扇區(qū)管理模塊轉換為物理地址后進行是否命中壞扇區(qū)映射表的檢測;如果檢測結果為是,則壞扇區(qū)管理模塊依據壞扇區(qū)映射表中的映射關系將替換后的物理地址返給系統(tǒng);如果檢測結果為否,則執(zhí)行S3步驟。
(3)如果IO請求的物理地址沒有命中壞扇區(qū)映射表,再由壞扇區(qū)管理模塊檢測是否命中預測壞扇區(qū)映射表;如果檢測結果為否,則壞扇區(qū)管理模塊將真實的物理地址再返給系統(tǒng);如果檢測結果為是,則執(zhí)行S4步驟。
(4)如果IO請求的物理地址命中預測壞扇區(qū)映射表,則壞扇區(qū)管理模塊需進一步檢測預測壞扇區(qū)是否完成“數據遷移”,即:被標記為“已寫過”;如果檢測結果為是,則壞扇區(qū)管理模塊依據預測壞扇區(qū)映射表中的映射關系將替換后的物理地址返給系統(tǒng);如果檢測結果為否,則壞扇區(qū)管理模塊將真實的物理地址再返給系統(tǒng)。具體操作流程如圖2所示。
(5)系統(tǒng)按壞扇區(qū)管理模塊返回的物理地址進行硬盤讀寫,如果讀寫成功,則IO結束,返回成功;如果讀寫失敗,則觸發(fā)壞扇區(qū)管理模塊執(zhí)行壞扇區(qū)映射操作。
(6)系統(tǒng)按映射后的物理地址重試IO,如果再次發(fā)生錯誤,則再次觸發(fā)壞扇區(qū)管理模塊執(zhí)行壞扇區(qū)映射操作,直至讀寫成功。
2 結語
該文提出通過采用預測方法,在執(zhí)行壞扇區(qū)映射操作時,同時建立真實壞扇區(qū)的映射關系和預測壞扇區(qū)的映射關系兩條映射記錄,依據真實壞扇區(qū)的物理地址及創(chuàng)建的壞扇區(qū)預測因子對真實壞扇區(qū)進行三個維度的預測擴展,并通過使系統(tǒng)先將IO請求發(fā)送給壞扇區(qū)管理模塊進行相應檢測后,再依據壞扇區(qū)管理模塊經檢測后返回的物理地址進行硬盤讀寫操作,從而可有效避免系統(tǒng)因連續(xù)扇區(qū)損壞所導致的IO頻繁報錯的問題,可極大提高系統(tǒng)的穩(wěn)定性;以及,因預測壞扇區(qū)是依據真實壞扇區(qū)進行三維度的連續(xù)擴展得到,因此,也可有效避免邏輯上連續(xù)但實際物理扇區(qū)卻離散的問題,使系統(tǒng)性能也得到明顯提高,非常符合機械硬盤扇區(qū)損壞的特點,對大量使用機械硬盤的安防、傳統(tǒng)存儲領域具有重要意義。
參考文獻
[1]鄭勇,楊小蘭.基于信號提純的機械故障檢測系統(tǒng)設計[J].現代電子技術,2019,42(4):49-52.
[2]王一芃.面向智能電網業(yè)務與應用的無線傳感網若干理論方法研究[D].北京:北京交通大學,2020.
[3]周穎.無線傳感網中高能效數據匯聚關鍵算法研究[D].南京:南京郵電大學,2020.
[4]石崗,李希勝,李雪峰,等.航向測量系統(tǒng)中三軸磁傳感器標定的等效兩步法[J].儀器儀表學報,2017,38(2):402-407.
[5]王勇軍.融合多源信息的小型多旋翼無人機位姿估計方法研究[D].桂林:桂林電子科技大學,2021.
[6]徐祥,劉銘,曹國燦,等.基于自適應參數估計的三軸磁傳感器實時校正方法[J].中國慣性技術學報,2019,27(3):384-389.