解密持續的 mpt2sas 系統日誌消息
概括
自從我安裝了一些新硬體以來,我一直在 syslog 中收到這些神秘的消息,但我無法弄清楚問題是什麼,是否嚴重,或者該怎麼做。
它們來自新的 SATA HBA,它們遵循某種模式。我會在 5-30 秒後收到幾條第一條消息,然後是幾條第二條消息。它們出現在所有在同一秒內記錄的 blob 中,每個的確切數量在 2 到 35 之間變化。條目出現之間可能是幾分鐘或幾小時。
兩條消息的範例:
Jul 13 06:06:23 durandal kernel: [366918.435596] mpt2sas0: log_info(0x31120303): originator(PL), code(0x12), sub_code(0x0303) Jul 13 06:06:28 durandal kernel: [366923.145524] mpt2sas0: log_info(0x31110d01): originator(PL), code(0x11), sub_code(0x0d01)
它總是 0x31120303 後跟 0x31110d01。
mpt2sas 是我正在使用的 SATA 主機匯流排適配器的驅動程序,但錯誤內容過於神秘。它沒有告訴我問題是什麼,它使用什麼磁碟或埠,或者它有多嚴重。
硬體
Supermicro X9SCL配備Xeon E3-1220和 8GB RAM。
基於 LSI SAS2008 的 Supermicro AOC-USAS2-L8I SAS/SATA HBA 連接到 Supermicro CSE-M35T-1B磁碟托盤組。它插入了三個Western Digital WD30EZRX和兩個Segate ST3000DM001。所有 3TB 驅動器(實際上完全相同的扇區數)。沒有使用埠擴展器。
HBA、磁碟托盤和 4 個驅動器是新的。其中一個 WD30EZRX 已經使用了幾個月,沒有任何問題。如果之前已將其連接到集成的 Intel SATA 控制器,則使用此新設置將其移動到驅動器托架中。
HBA 存在問題,需要經常重置並獲得非常糟糕的性能。將韌體/bios 更新為“第 12 階段”,這是 Supermicro 提供的最新版本,並將類型更改為 IT(即直通,從 IR 用於集成 RAID,因為我打算使用所有軟體 RAID):2008IT12.FW。該更新清除了所有早期問題,直到後來我才開始收到上述消息(見下文)。
我添加的前四個磁碟都在第一個 SFF-8087 埠上(拆分為 4 條 SATA 電纜)。我添加的最新磁碟在另一個埠上,如果這很重要的話。
系統上唯一的其他磁碟包含作業系統,並且是插入集成 SATA 控制器的較舊的 Intel 80GB SSD。
軟體
Ubuntu 11.10 (oneiric)。Linux 3.0.0-14-伺服器 x86_64。使用作業系統自帶的mpt2sas驅動。
嘗試使用帶有這五個磁碟的 Linux md 建構 RAID6 陣列。從 3 個磁碟、兩個 Segate 和一個新的 WD 驅動器的退化陣列開始。這很快而且進展順利,在我進行韌體更新後日誌中沒有任何消息。同時,我仍在同一控制器的埠 0 上使用舊的 WD 磁碟。
將另一個新的 WD 磁碟添加到陣列中。重建開始了,我現在定期在 syslog 中收到這些消息。我不確定將磁碟添加到陣列需要多長時間,但估計時間(cat /proc/mdstat)從數千到數万分鐘不等,比前 3 個磁碟花費的時間要長得多。我確實知道 WD 磁碟要慢得多。我有不同的型號來減少多磁碟故障的機會,這是兩個最便宜的 3TB 型號。
筆記
SMART 不會報告任何磁碟上的任何問題。任何磁碟上都沒有記錄錯誤,並且沒有任何故障統計資訊接近門檻值。
記錄的消息僅在我添加最後一個磁碟後才開始出現,這表明一個可能有問題,但我沒有其他任何指向。
我確實找到了一個似乎與來自該驅動程序的日誌消息相對應的標頭檔。第一條消息似乎是未列出的“子程式碼”0303 的中止(程式碼 12)。第二條消息是重置(程式碼 11),原因也不清楚。如果我能確定 0303 和 0d01 的含義,那將非常有幫助。
我知道 5 個磁碟 RAID6 中的 4 個磁碟是一個不完整的陣列。我計劃在完成第 4 個磁碟的集成後將舊磁碟的內容複製到陣列中,然後將舊磁碟也添加到陣列中。
最好的選擇可能是磁碟之間的某個硬體問題,直到並包括您的 sas RAID 控制器。我建議嘗試:
- 執行供應商提供的任何診斷工具(如果可用)
- 檢查/重新安裝/更換電纜
- 剝離硬體組件並更換將磁碟連接到您的 RAID 控制器的鏈中的硬體,包括控制器本身(即,對您而言,嘗試除主機板集成 RAID 之外的其他東西)。
我有兩分之一相同的 Dell PowerEdge R515 提供非常相似的消息(日誌定期填充 mpt2sas0 消息,儘管我沒有確切的數字程式碼)。戴爾自己的可啟動診斷程序將這些診斷為“硬體錯誤”,更換 RAID sas 背板解決了這個問題。
當我調查時,我找不到各種 mpt2sas0 錯誤程式碼含義的綜合資源。我懷疑它們甚至可能是特定於硬體供應商的(對 SAS 有更多了解的人需要確認或否認這一點)。所以你的錯誤程式碼可能意味著完全不同的東西,但如果 SMART 是乾淨的,很難想像 mpt2sas0 報告錯誤程式碼的其他充分理由。
這些錯誤可能非常嚴重。我的 R515 使用 12 個磁碟的 Ubuntu Linux 軟體 raid 6 處理這些消息似乎沒問題,但隨後突然將所有 12 個磁碟從陣列中彈出,因為損壞(!)
同樣在我的情況下,所有磁碟的 SMART 都是完全乾淨的。一個好的檢查是智能的自我診斷測試:
smartctl -t long /dev/sdX
,然後在大約一天后用 來檢查結果smartctl -l selftest /dev/sdX
。如果一切正常,測試應該說Completed
並且該LBA_first_err
列應該是空的。