目錄

簡介

必要條件

需求

採用元件

背景資訊

處理HDD中等錯誤

硬碟角色

擴展缺陷(G-list)硬碟級別

RAID控制器角色

Patrol Read

一致性檢查

RAID控制器無法修復介質錯誤時的條件

相關資訊

簡介

本文檔介紹不同型別的磁碟錯誤、如何對其進行分類，以及可用於識別這些錯誤的工具。

必要條件

需求

本文件沒有特定需求。

採用元件

本文檔中的資訊基於統一計算系統(UCS)中的硬碟。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

背景資訊

本文檔還概述了識別驅動器上的介質錯誤時硬碟驅動器(HDD)和獨立磁碟冗餘陣列(RAID)控制器的角色。

附註：介質錯誤也稱為介質錯誤

處理HDD中等錯誤

什麼導致HDD介質錯誤？

造成介質誤差的最常見原因是訊號幅度過低，導致

- 不可靠邏輯匯流排地址(LBA)讀取位置。有時可以多次重試。

- 瞬態條件，軟粒子造成的高寫入率。

- 由臨時衝擊、振動或聲音事件引起的瞬態情況，這些事件會導致偏離軌跡寫入。

- 在HDD製造中差錯對映功能導致填充當前主缺陷位置。

HDD如何檢測到介質錯誤？

步驟1.HDD定期執行後台介質掃描以檢測錯誤。

步驟2. HDD嘗試從介質讀取，由於某種原因，無法檢索寫入的資料。

步驟3.當HDD無法檢索已寫入的資料時，將呼叫HDD恢復代碼，該代碼將嘗試各種錯誤恢復步驟，以成功從介質讀取資料。

步驟4.如果所有恢復步驟均失敗，則驅動器將生成03/11/0x錯誤並返回主機，並且LBA將被置於待處理的缺陷列表中。

Raid控制器如何檢測介質錯誤？

- 在巡查讀取、一致性檢查、正常讀取、重建以及讀取/修改/寫入操作時，RAID控制器將遇到中等錯誤。

- 根據RAID配置，控制器可以處理HDD報告的介質錯誤，並且不需要進一步的操作。

- 在某些情況下，控制器將無法處理介質錯誤，並將錯誤傳遞給主機以處理該錯誤。

作業系統(OS)何時發現中等錯誤？

- 如果HDD報告介質錯誤，並且RAID控制器無法處理恢復，則主機將收到該錯誤的通知。

- 此通知不再只是通知系統已發生事件的建議消息，而是請求作業系統採取行動，因為HDD和RAID控制器無法從介質錯誤中恢復。

- 如果作業系統具有正確解決介質錯誤所需的上下文，則應由作業系統處理

- 如果磁碟僅位於磁碟組(JBOD)中，作業系統將看到錯誤，因為控制器不會糾正這些錯誤。這在HyperFlex(HX)/虛擬儲存區域網路(VSAN)環境中很常見。

硬碟角色

擴展缺陷(G-list)硬碟級別

當驅動器操作時，磁頭可能會遇到磁讀取電平變弱的扇區。資料仍然可讀，但可能低於合格良好扇區讀取級別的首選閾值。此磁碟驅動器會將此扇區視為可能並將扇區此數據，以備用此資料到已知完好保留清單中的新位置。移動資料後，舊扇區地址將新增到Growed Defects清單中，再也不使用。此過程是一個可恢復的介質錯誤。在大部分已知良好的備用扇區用盡後，驅動器將發出SMART觸發器。

RAID控制器角色

Patrol Read

- 巡邏讀取是一個使用者可定義的選項，可在後台執行驅動器讀取並對映出驅動器的任何壞區域。

- Patrol Read檢查可能導致驅動器故障的物理磁碟錯誤。這些檢查通常包括嘗試糾正操作。可以使用自動或手動啟用啟用或禁用Patrol read。

- 巡邏讀取定期驗證連線到控制器的所有物理磁碟扇區，包括配置了RAID的驅動器中的系統保留區域。Patrol Read適用於所有RAID級別和所有熱備盤驅動器。

- 此過程僅當RAID控制器空閒一段定義的時間且沒有其它後台任務處於活動狀態時開始，儘管它仍可以像繁重的輸入/輸出(I/O)過程一樣繼續運行。

- 您無法在在JBOD中配置的驅動器上執行巡邏讀取操作。

注意：潛在語義索引(LSI)建議將巡檢讀取頻率和其他巡檢讀取設定保留為預設值，以實現最佳系統效能。如果您決定更改這些值，請在此處記錄原始預設值，以便以後恢復。

註:Patrol Read不會在運行過程中報告其進度。巡邏讀取狀態僅在事件日誌中報告。

Patrol Read選項如下圖所示：

MegaCli示例

要檢視有關巡邏讀取狀態和巡邏讀取運行之間的延遲的資訊，請執行以下操作：

# MegaCli64 -AdpPR -Info -aALL

要瞭解當前巡邏讀取速率，請執行：

# MegaCli64 -AdpGetProp PatrolReadRate -aALL

要禁用自動巡邏，請閱讀：

# MegaCli64 -AdpPR -Dsbl -aALL

要啟用自動巡邏讀取，請執行以下操作：

#MegaCli64 -AdpPR -EnblAuto -aALL

要啟動手動巡邏讀取掃描，請執行以下操作：

# MegaCli64 -AdpPR -Start -aALL

要停止巡邏讀取掃描：

# MegaCli64 -AdpPR -Stop -aALL

一致性檢查

- 在RAID中，一致性檢查驗證陣列中冗餘資料的正確性。例如，在具有奇偶校驗的系統中，檢查一致性意味著計算資料驅動器的奇偶校驗並將結果與奇偶校驗驅動器的內容進行比較。

- JBOD不支援一致性檢查。

- RAID 0不支援一致性檢查。

- RAID 1使用資料比較而不是奇偶校驗。

- RAID 6計算2個奇偶校驗驅動器的奇偶校驗，並驗證兩者。

附註：建議您至少每月運行一次一致性檢查。

一致性檢查管理選項如下圖所示：

一致性檢查計畫選項如下圖所示：

MegaCli示例

要檢視下一個計畫的一致性檢查時間，請執行以下操作：

#MegaCli64 -AdpCcSched -Info -aALL

要更改計畫的一致性檢查時間，請執行以下操作：

#MegaCli64 -AdpCCSched -SetSTartTime 20171028 02 -aALL

要禁用一致性檢查，請執行以下操作：

#MegaCli64 -AdpCcSched -Dsbl -aALL

RAID控制器無法修復介質錯誤時的條件

- 在JBOD中

- 主機OS負責中等錯誤。

- 在RAID 0中

- 沒有冗餘，因此控制器無法向HDD提供資料以寫入LBA。

- 在RAID 1中

- 當控制器無法判斷哪個映象副本包含正確資料時。僅當兩個LBA均可讀取，但資料不匹配時，才會出現這種情況。

- RAID 5

- 如果同一條帶中有2個或更多錯誤。最有可能發生在陣列重建開始之後。重建的驅動器是一個錯誤，而任何其他驅動器重建上的介質錯誤將是第二個錯誤。控制器將無法重建在更換驅動器上重建LBA所需的資料。

- RAID 6

- 如果同一條帶中有3個或更多錯誤。重建陣列時最有可能發生。重建的驅動器是一個錯誤，重建過程中其他兩個驅動器上的介質錯誤是第二個和第三個錯誤，或者介質錯誤和第二個驅動器故障。控制器將無法重建在出現錯誤的驅動器上重建LBA所需的資料。

相關資訊

- MegaRaid® SAS軟體使用手冊

- 技術支援與文件 - Cisco Systems