Linux

我的硬碟快要死了嗎?

  • November 24, 2012

我有兩個硬碟驅動器在我的伺服器上設置為 RAID 1 陣列(Linux,使用 mdadm 的軟體 RAID),其中一個只是讓我在 syslog 中得到了這個“禮物”:

Nov 23 02:05:29 h2 kernel: [7305215.338153] ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 02:05:29 h2 kernel: [7305215.338178] ata1.00: irq_stat 0x40000008
Nov 23 02:05:29 h2 kernel: [7305215.338197] ata1.00: failed command: READ FPDMA QUEUED
Nov 23 02:05:29 h2 kernel: [7305215.338220] ata1.00: cmd 60/08:00:d8:df:da/00:00:3a:00:00/40 tag 0 ncq 4096 in
Nov 23 02:05:29 h2 kernel: [7305215.338221]          res 41/40:08:d8:df:da/00:00:3a:00:00/00 Emask 0x409 (media error) <F>
Nov 23 02:05:29 h2 kernel: [7305215.338287] ata1.00: status: { DRDY ERR }
Nov 23 02:05:29 h2 kernel: [7305215.338305] ata1.00: error: { UNC }
Nov 23 02:05:29 h2 kernel: [7305215.358901] ata1.00: configured for UDMA/133
Nov 23 02:05:32 h2 kernel: [7305218.269054] ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 02:05:32 h2 kernel: [7305218.269081] ata1.00: irq_stat 0x40000008
Nov 23 02:05:32 h2 kernel: [7305218.269101] ata1.00: failed command: READ FPDMA QUEUED
Nov 23 02:05:32 h2 kernel: [7305218.269125] ata1.00: cmd 60/08:00:d8:df:da/00:00:3a:00:00/40 tag 0 ncq 4096 in
Nov 23 02:05:32 h2 kernel: [7305218.269126]          res 41/40:08:d8:df:da/00:00:3a:00:00/00 Emask 0x409 (media error) <F>
Nov 23 02:05:32 h2 kernel: [7305218.269196] ata1.00: status: { DRDY ERR }
Nov 23 02:05:32 h2 kernel: [7305218.269215] ata1.00: error: { UNC }
Nov 23 02:05:32 h2 kernel: [7305218.341565] ata1.00: configured for UDMA/133
Nov 23 02:05:35 h2 kernel: [7305221.193342] ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 02:05:35 h2 kernel: [7305221.193368] ata1.00: irq_stat 0x40000008
Nov 23 02:05:35 h2 kernel: [7305221.193386] ata1.00: failed command: READ FPDMA QUEUED
Nov 23 02:05:35 h2 kernel: [7305221.193408] ata1.00: cmd 60/08:00:d8:df:da/00:00:3a:00:00/40 tag 0 ncq 4096 in
Nov 23 02:05:35 h2 kernel: [7305221.193409]          res 41/40:08:d8:df:da/00:00:3a:00:00/00 Emask 0x409 (media error) <F>
Nov 23 02:05:35 h2 kernel: [7305221.193474] ata1.00: status: { DRDY ERR }
Nov 23 02:05:35 h2 kernel: [7305221.193491] ata1.00: error: { UNC }
Nov 23 02:05:35 h2 kernel: [7305221.388404] ata1.00: configured for UDMA/133
Nov 23 02:05:38 h2 kernel: [7305224.426316] ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 02:05:38 h2 kernel: [7305224.426343] ata1.00: irq_stat 0x40000008
Nov 23 02:05:38 h2 kernel: [7305224.426363] ata1.00: failed command: READ FPDMA QUEUED
Nov 23 02:05:38 h2 kernel: [7305224.426387] ata1.00: cmd 60/08:00:d8:df:da/00:00:3a:00:00/40 tag 0 ncq 4096 in
Nov 23 02:05:38 h2 kernel: [7305224.426388]          res 41/40:08:d8:df:da/00:00:3a:00:00/00 Emask 0x409 (media error) <F>
Nov 23 02:05:38 h2 kernel: [7305224.426459] ata1.00: status: { DRDY ERR }
Nov 23 02:05:38 h2 kernel: [7305224.426478] ata1.00: error: { UNC }
Nov 23 02:05:38 h2 kernel: [7305224.498133] ata1.00: configured for UDMA/133
Nov 23 02:05:41 h2 kernel: [7305227.400583] ata1.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 02:05:41 h2 kernel: [7305227.400608] ata1.00: irq_stat 0x40000008
Nov 23 02:05:41 h2 kernel: [7305227.400627] ata1.00: failed command: READ FPDMA QUEUED
Nov 23 02:05:41 h2 kernel: [7305227.400649] ata1.00: cmd 60/08:00:d8:df:da/00:00:3a:00:00/40 tag 0 ncq 4096 in
Nov 23 02:05:41 h2 kernel: [7305227.400650]          res 41/40:08:d8:df:da/00:00:3a:00:00/00 Emask 0x409 (media error) <F>
Nov 23 02:05:41 h2 kernel: [7305227.400716] ata1.00: status: { DRDY ERR }
Nov 23 02:05:41 h2 kernel: [7305227.400734] ata1.00: error: { UNC }
Nov 23 02:05:41 h2 kernel: [7305227.472432] ata1.00: configured for UDMA/133

從我目前閱讀的內容來看,我不確定讀取錯誤是否意味著硬碟驅動器正在死去(到目前為止沒有寫入錯誤)。過去我遇到過硬碟錯誤,而那些總是有關於未能寫入日誌中特定扇區的錯誤。這次不行。

我應該更換驅動器嗎?可能是其他原因導致了問題嗎?

我已經安排了一個smartctl -t long將在幾個小時內完成的測試。我希望這會給我更多的資訊。


更新:奇蹟般的事情發生了。詳情如下:

我正在從那台機器上備份一些文件,準備更換有故障的驅動器。然後,當我複制這些大文件時,我收到了這封日誌檢查電子郵件:

Security Events for kernel
=-=-=-=-=-=-=-=-=-=-=-=-=-
Nov 23 17:16:24 h2 kernel: [7359837.963597] end_request: I/O error, dev sdb, sector 1202093816
Nov 23 17:16:41 h2 kernel: [7359855.196334] end_request: I/O error, dev sdb, sector 1202093816

System Events
=-=-=-=-=-=-=
Nov 23 17:14:06 h2 kernel: [7359700.193114] ata2.00: exception Emask 0x0 SAct 0x1 SErr 0x0 action 0x0
Nov 23 17:14:06 h2 kernel: [7359700.193139] ata2.00: irq_stat 0x40000008
Nov 23 17:14:06 h2 kernel: [7359700.193158] ata2.00: failed command: READ FPDMA QUEUED
Nov 23 17:14:06 h2 kernel: [7359700.193180] ata2.00: cmd 60/08:00:58:03:aa/00:00:47:00:00/40 tag 0 ncq 4096 in
Nov 23 17:14:06 h2 kernel: [7359700.193181]          res 41/40:08:58:03:aa/00:00:47:00:00/00 Emask 0x409 (media error) <F>
Nov 23 17:14:06 h2 kernel: [7359700.193247] ata2.00: status: { DRDY ERR }
Nov 23 17:14:06 h2 kernel: [7359700.193265] ata2.00: error: { UNC }
Nov 23 17:14:06 h2 kernel: [7359700.194458] ata2.00: configured for UDMA/133

哎呀!我的頭髮,如果我剃光的頭上有一些的話,會豎起來。看,它在第二個驅動器上真正影響壞扇區。怎麼辦?有兩個故障驅動器,我該怎麼辦?

我想了想,決定:

  • 有一個我懷疑有故障的驅動器
  • 另一個我 100% 肯定對日誌中的壞扇區投訴有問題。

所以我替換了第二個,而不是我最初發布問題的那個。我有幾個分區,每個分區都設置在不同的 RAID 上,我希望至少能夠重新同步 root 和引導分區,這樣我就不必重新安裝伺服器上的所有內容。我可能不得不從備份中恢復巨大的數據分區,但是,我會節省一些工作。

更換驅動器,開始重新同步。根分區和引導分區(大約 50GB)重新同步非常快。沒有錯誤。我是一個快樂的露營者!

只是為了好玩,讓我們嘗試重新同步巨大的數據分區——它大約有 2TB,上面有 500GB 的數據。我開始重新同步並觀看了一段時間。這似乎需要很長時間,我將伺服器上線,讓使用者使用他們的東西。重新同步在後台發生。而且,您知道嗎,大約 18 小時後,重新同步結束,沒有出現任何錯誤。伺服器現在完全活著。

我想知道我現在是否應該更換原始驅動器。我敢肯定硬碟驅動器的伺服器之神正在嘲笑我。

它不會死。它已經死了。

盡快更換它,如果失去任何數據,請從備份中恢復。

找不到任何可靠的來源來驗證我自己的觀點,但我真的認為這不是硬體損壞。這更像是一種數據檢索問題。

如果任何數據寫入磁碟的位置與讀取操作失敗的位置完全相同,那麼它應該是可讀的。

因此,作為最後一點,您目前的數據可能無法在該驅動器上恢復,但由於您有一個 RAID 陣列,您仍然可以從另一個驅動器取回數據並進行備份,然後格式化您的故障驅動器並重新同步您的 RAID大批。

電磁場改變硬碟驅動器的內容可能會出現此問題。

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