Hard-Drive

如何使用重新分配扇區數較多的磁碟?

  • August 9, 2016

經過 3 年的 24x7 服務,1TB 希捷梭子魚 ES.2 企業級硬碟出現故障跡象。SMART 重新分配的扇區數很高。

維基百科文章建議,如果重新映射的扇區未被使用,該驅動器仍可用於不太敏感的用途,例如陣列外部的暫存儲存。

A workaround which will preserve drive speed at the expense of capacity 
is to create a disk partition over the region which contains remaps and 
instruct the operating system to not use that partition.

為了創建這樣的分區,有必要獲取重新映射的扇區列表。但是,作業系統沒有可見的壞塊。即badblocks返回一個空列表。

有沒有辦法恢復重新分配的扇區列表?

**編輯:**這個驅動器來自一個陣列。我們每年都會有一些失敗,只是把它們扔掉似乎是一種浪費。我正在考慮給盤子更好的部分第二次機會。

這是 SMART 報告現在的樣子。

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda ES.2
Device Model:     ST31000340NS
Serial Number:    **********
Firmware Version: SN05
...
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 1 Raw_Read_Error_Rate     0x000f   056   054   044    Pre-fail  Always       -       164293299
 3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
 4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       14
 5 Reallocated_Sector_Ct   0x0033   005   005   036    Pre-fail  Always   FAILING_NOW 1955
 7 Seek_Error_Rate         0x000f   076   060   030    Pre-fail  Always       -       8677183434
 9 Power_On_Hours          0x0032   072   072   000    Old_age   Always       -       24893
10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
12 Power_Cycle_Count       0x0032   100   037   020    Old_age   Always       -       14
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   097   097   000    Old_age   Always       -       3
190 Airflow_Temperature_Cel 0x0022   050   043   045    Old_age   Always   In_the_past 50 (0 6 50 32)
194 Temperature_Celsius     0x0022   050   057   000    Old_age   Always       -       50 (0 18 0 0)
195 Hardware_ECC_Recovered  0x001a   021   010   000    Old_age   Always       -       164293299
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       21
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       21
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0

你沒有。

你去買另一個磁碟來替換它,除非你真的很喜歡失去數據。

我要感謝您的建議,並分享我從實驗中獲得的一些細節。

簡而言之,沒有簡單的方法來獲得重新分配的扇區列表,甚至映射磁碟的統計方法也因需要與韌體的邏輯相衝突而受到嚴重阻礙。

為了測試我badblocks -wv使用預設塊大小執行的驅動器,並在此過程中監控了重新分配的扇區數。我做了幾個觀察。

  1. 我觀察到在寫入磁碟開頭時重新分配的扇區數量急劇增加。然後從最初的 10G 到 700G 沒有任何變化。這可以通過以下事實來解釋:某些 RAID 管理數據儲存在磁碟的開頭,因此小地址區域的磨損高於磁碟的其餘部分。
  2. 然後在一個錯誤之後,磁碟將自身變為阻塞模式。那是每個 ATA 命令,甚至IDENTIFY DRIVE返回ABRT. 儘管重新分配部門的價值仍然是積極的。為了解釋大衛施瓦茨建議的這種行為,我假設保留扇區以某種方式分佈在驅動器的地址空間中。這意味著驅動器可能有保留扇區,但其中一部分可能會用完重新映射的扇區。在這種情況下,韌體只會阻止驅動器。
  3. 僅在對驅動器重新通電後,驅動器才會退出阻塞模式。當舊驅動器讓軟體跟踪壞塊並避免使用它們時,現代驅動器不會提供這個機會。當韌體認為它無法處理錯誤時,它會使驅動器無法使用。
  4. 通過將重新分配扇區的值執行到 02,我得出結論,該驅動器上有 2048 個保留扇區。
  5. 所謂的低級格式化,或將零寫入驅動器的每個可訪問扇區以從磁碟的不太可靠的部分重新分配扇區是行不通的,因為當驅動器用完保留扇區時,它會以某種方式改變處理錯誤的方式與不進行任何預測性故障分析並僅報告錯誤的傳統驅動器相比,這使其使用起來更不方便。

引用自:https://serverfault.com/questions/387765