HDD、SSD 和 HBA 故障排除

HDD、SSD 和 HBA 故障排除

HDD、SSD 和 HBA 故障排除

這份文件為翻譯程式自動翻譯結果,請點選以下連結流灠英文版文件內容。

描述

當磁碟機遇到可復原的錯誤、警告或完全故障時,Stargate 服務會將磁碟標記為離線。如果在一小時內偵測到該磁碟離線3次,則會自動將其從叢集中移除,並產生警報( KB-4158KB-6287 )。

如果 Prism 中產生警報,則必須更換磁碟。無需執行故障排除步驟。

注意:如果 AWS 上的 Nutanix 叢集中遇到故障磁碟,一旦確認磁碟發生故障,就會繼續譴責對應的節點。譴責受影響的節點會將其替換為相同類型的新裸機實例。

解決方案

更換磁碟後,應執行 NCC 運行狀況檢查以確保最佳叢集運作狀況。
但是,如果一開始沒有產生警報或需要進一步分析,則可以使用以下步驟進一步排除故障。

在開始故障排除之前,請先驗證 HBA 控制器的類型。

警告:
對 LSI 3408 或更高版本的 HBA 使用 SAS3IRCU 命令可能會導致 NMI 事件,從而導致儲存不可用。
在使用以下指令之前,請確認 HBA 控制器。

若要確定使用的 HBA 類型,請尋找位於CVM上的 /etc/nutanix/hardware_config.json 中的控制器名稱。

  • 使用 SAS3008 時的輸出範例:

    在這種情況下,指令SAS3IRCU是正確使用的指令。

    請注意"led_address": "sas3ircu:0,1:0"行:

     "node": { "storage_controllers": [ { "subsystem": "15d9:0808", "name": "LSI Logic / Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3", "mapping": [ { "slot_designation": "1", "hba_address": "0", "slot_id": null, "location": { "access_plane": 1, "cell_x": 6, "width": 6, "cell_y": 2, "height": 1 }, "led_address": "sas3ircu:0,1:0"          },
  • 使用 SAS3400/3800(或更新版本)時的輸出範例:

    在這種情況下,使用 SAS3IRCU 是不明智的。請改用storcli指令。有關 StorCLI 的信息,請參閱KB-10951

    注意"led_address": "storcli:0"行。

     "storage_controllers_v2": [      {        "subsystem": "15d9:1b64",        "name": "Broadcom / LSI Fusion-MPT 12GSAS/PCIe Secure SAS38xx",        "hba_hints": {          "sas_address": "0x50030480208d9939"        },        "mapping": [          {            "slot_designation": "1",            "hba_address": "0",            "slot_id": 1,            "location": {              "access_plane": 1,              "height": 3,              "width": 4,              "cell_y": 0,              "cell_x": 78            }, "led_address": "storcli:0"          },
    "storage_controllers_v2": [      {        "subsystem": "15d9:1b64",        "name": "Broadcom / LSI Fusion-MPT 12GSAS/PCIe Secure SAS38xx",        "hba_hints": {          "sas_address": "0x50030480208d9939"        },        "mapping": [          {            "slot_designation": "1",            "hba_address": "0",            "slot_id": 1,            "location": {              "access_plane": 1,              "height": 3,              "width": 4,              "cell_y": 0,              "cell_x": 78            }, "led_address": "storcli:0"          },
  1. 識別有問題的磁碟

    1. 檢查 Prism Web 控制台是否有故障磁碟。在圖表視圖中,您可以看到遺失磁碟的紅色或灰色。
    2. 檢查 Prism Web 控制台的磁碟警報,或使用下列命令檢查產生故障訊息的磁碟。
       nutanix@cvm$ ncli alert ls
    3. 檢查是否有任何節點缺少掛載的磁碟。兩個輸出應該在數字上匹配。
      1. 檢查CVM(控制虛擬機器)掛載的磁碟。
         nutanix@cvm$ allssh "df -h | grep -i stargate-storage | wc -l"
      2. 檢查 CVM 中的實體磁碟。
         nutanix@cvm$ allssh "lsscsi | grep -v DVD-ROM | wc -l"
      3. 檢查磁碟狀態是否全部為Online且顯示為Normal
         nutanix@cvm$ ncli disk ls | egrep -i -E 'Online|Status'
    4. 驗證叢集中預期的磁碟數量。
       nutanix@cvm$ ncli disk ls | grep -i 'Status' | wc -l

      上述指令的輸出應該是步驟 1c.i 和 1c.ii 的輸出總和。

      在某些情況下,該數字可能高於或低於預期。因此,它是一個重要指標,可以與步驟 1b 中列出的磁碟進行比較。

    5. 尋找多餘或遺失的磁碟。
       nutanix@cvm$ ncli disk ls
    6. 檢查所有磁碟是否都指示為已安裝 rw(讀寫)而不是 ro(唯讀)。
       nutanix@cvm$ sudo mount | grep -E 'stargate-storage.*rw' nutanix@cvm$ sudo mount | grep -E 'stargate-storage.*ro'
  2. 確定磁碟節點的問題

    1. 孤立磁碟 ID

      這是系統不再使用但未正確刪除的磁碟 ID。症狀包括在ncli disk ls的輸出中看到額外的磁碟 ID。

      要修復孤立磁碟 ID:

       nutanix@cvm$ ncli disk rm-start id= force=true 
            nutanix@cvm$ ncli disk rm-start id= force=true
           

      確保驗證磁碟序號並且該裝置不在系統中。另外,請確保使用lsscsimountdf -h填入所有磁碟,並計算完整磁碟填入的磁碟數。

    2. 磁碟故障和/或磁碟遺失

      檢查磁碟是否對控制器可見,因為它是磁碟所在匯流排的裝置。可以使用以下命令:

      1. lspci - 顯示 CVM 看到的 PCI 設備。
        • NVME 裝置 - 非揮發性記憶體控制器: Intel公司 PCIe 資料中心 SSD(修訂版 01)。
        • SAS3008 控制器 - 序列連接 SCSI 控制器:LSI Logic / Symbios Logic SAS3008 PCI-Express Fusion-MPT SAS-3 (rev 02) - LSI。
        • SAS2308 控制器 (戴爾) - 序列連接 SCSI 控制器:LSI Logic / Symbios Logic SAS2308 PCI-Express Fusion-MPT SAS-2 (rev 05)。
        • MegaRaid LSI 3108 (戴爾) - RAID 匯流排控制器:LSI Logic / Symbios Logic MegaRAID SAS-3 3108 [Invader] (rev 02)。
        • LSI SAS3108 (UCS) - 序列連接 SCSI 控制器:LSI Logic / Symbios Logic SAS3108 PCI-Express Fusion-MPT SAS-3(修訂版 02)。
      2. lsiutil - 顯示連接埠的 HBA(主機匯流排適配器)卡透視圖以及連接埠是否處於 UP 狀態。如果連接埠未啟動,則要么是設備沒有回應,要么是連接埠或與設備的連接損壞。最有可能的問題是設備(磁碟)。
         nutanix@cvm$ sudo /home/nutanix/cluster/lib/lsi-sas/lsiutil -a 12,0,0 20
      3. lsscsi - 列出看到的 SCSI 匯流排設備,包括任何 HDD 或 SSD(NVME 除外,它不會通過 SATA 控制器)。
      4. sas3ircu - 報告插槽位置和磁碟狀態。它對於遺失磁碟或驗證磁碟是否位於正確的插槽中非常有用。 (請勿在Lenovo HX 硬體上執行以下命令,因為這可能會導致 HBA 鎖定和重設)
         nutanix@cvm$ sudo /home/nutanix/cluster/lib/lsi-sas/sas3ircu 0 display
      5. storcli - 報告類似 lsiutil 的磁碟機錯誤。也報告插槽位置和磁碟狀態。
         sudo ~/cluster/lib/storcli/storcli64 /call/pall show phyerrorcounters|tail -n+6 - Show phy error counts in concise output sudo ~/cluster/lib/storcli/storcli64 /call/pall show |tail -n+6 - Show detected speeds and interfaces sudo ~/cluster/lib/storcli/storcli64 /call show all - Show everything
      6. 檢查 CVM 的dmesg中是否有 LSI mpt3sas 訊息。我們通常應該看到每個實體插槽都有一個條目。 (以下範例顯示因磁碟損壞/故障而重複檢查 SAS 位址「0x5000c5007286a3f5」。請注意如何一次偵測到其他位址,並重複輪詢可疑位址。
         nutanix@cvm$ sudo dmesg | grep "detecting\: handle" [ 3.693032] mpt3sas_cm0: detecting: handle(0x0009), sas_address(0x5000c40074c6d56d), phy(0) [ 3.702423] mpt3sas_cm0: detecting: handle(0x000a), sas_address(0x4431221107000000), phy(7) [ 3.941624] mpt3sas_cm0: detecting: handle(0x000b), sas_address(0x4431221106000000), phy(6) [ 4.191170] mpt3sas_cm0: detecting: handle(0x000c), sas_address(0x5000c500856f9e51), phy(1) [ 4.211879] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5006286a3f5), phy(2) [ 4.213080] mpt3sas_cm0: detecting: handle(0x000e), sas_address(0x5000c500856fa075), phy(3) [ 4.231194] mpt3sas_cm0: detecting: handle(0x000f), sas_address(0x5000c500856f9735), phy(4) [ 4.245974] mpt3sas_cm0: detecting: handle(0x0010), sas_address(0x5000c50084e02b31), phy(5) [ 4.942347] mpt3sas_cm0: detecting: handle(0x000a), sas_address(0x4431221107000000), phy(7) [ 5.214032] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2) [ 6.215092] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2) . . [ 12.233236] mpt3sas_cm0: detecting: handle(0x000d), sas_address(0x5000c5007286a3f5), phy(2)
      7. smartctl - 如果 Hades 指示某個磁碟在一小時內被 smartctl 檢查 3 次,則自動失敗。
         nutanix@cvm$ sudo smartctl -x /dev/sdX -T permissive
        • 有關使用smartctl進行故障排除的信息,請參閱KB-8094
      8. 使用 NCC check disk_online_check檢查離線磁碟。
         nutanix@cvm$ ncc health_checks hardware_checks disk_checks disk_online_check
      9. 確認是否可以從 LSI 設定公用程式中看到磁碟。這對於排除可能阻止您偵測某些磁碟機的潛在driver或 CVM/Hypervisor 設定問題非常有用。 LSI 設定公用程式為您提供直接連接 HBA 韌體的接口,無需依賴軟體作業系統。它可用於執行許多與「lsiutil」相同的操作:(a) 檢查是否在特定插槽中偵測到磁碟,(b) 檢查磁碟連結速度,(c) 啟動 LED 信標在特定的磁碟機上。在 G6 和 G7 平台上,LSI 配置選單預設為停用狀態,因此您必須在BIOS中啟用它才能使用它。在 G8 平台上,您必須直接透過BIOS選單查看連接的磁碟機。
        • G8:直接透過BIOS查看連接的驅動器
          • 在節點啟動時,透過在「Nutanix」啟動畫面上按 DEL 鍵進入BIOS選單。
          • 前往「進階」標籤並選擇「 SCC-B8SB80-B1 (PCISlot=0x8) 配置」。這就是 3060-G8 上的選單選項的名稱。在其他型號上,它的命名可能略有不同。
            1

            2
  • 如果「裝置屬性」選項為灰色,請選擇「刷新拓撲」。
  • 選擇「磁碟機屬性」以查看主機可見的 SATA 磁碟機清單。
    3
  • G6 & G7:如何啟用和存取 LSI HBA OPROM
    • 在節點啟動時,透過在「Nutanix」啟動畫面上按 DEL 鍵進入BIOS選單。
    • 轉到“高級”選項卡並找到“LSI HBA OPROM”。將其設為“啟用”。然後按“F4”以“儲存並退出” BIOS選單。這將導致節點重新啟動。
    • 注意:取得所需資訊後,請務必返回BIOS並停用 OPROM。您也可以按 F3 載入優化預設值,這將使BIOS恢復到禁用 OPROM 的原始出廠設定。
      4
  • 下次啟動時,請尋找標題為「Avago Technologies MPT SAS3 BIOS 」的畫面,然後按 CRTL+C 進入「SAS 設定公用程式」。
    5
  • 進入設定實用程式後,選擇您感興趣的 HBA 卡。在多 HBA 系統中,每個 HBA 將為每個節點上的不同磁碟機子集提供服務。
    6
  • 在下一個畫面上,選擇“SAS 拓撲”,然後選擇“直接連接裝置”以查看與該 HBA 關聯的磁碟機的資訊。
    7

    8

    9

    10

    11

    12
  • 如果您選擇的 HBA 根本沒有偵測到任何驅動器,它將報告「沒有可顯示的裝置」。
    13
  1. lsiutil中,磁碟可能會發生故障,通常是在更換或升級磁碟之後。執行完上述所有檢查後,仍然看不到磁碟,請比較新舊磁碟「磁碟盒或託盤」。確保類型相同。在某些情況下,可能會調度錯誤的磁碟類型,且該磁碟未正確放置在磁碟托架中,因此控制器無法偵測到該磁碟類型。
    14
  1. 確定節點類型或有問題的節點。
    執行ncli host ls並尋找符合的節點 ID。特定的節點插槽位置、節點序列和節點類型是記錄重複出現問題時需要記錄的重要資訊。它還有助於追蹤 HBA、節點位置和節點類型的現場問題。
  2. 識別故障發生情形。
    1. 檢查星際之門日誌。對應時間段的stargate.INFO日誌指示 Stargate 是否發現磁碟有問題並將其傳送至磁碟管理員 (Hades) 進行檢查,或在存取磁碟時存在其他錯誤。使用磁碟 ID 號碼和序號在磁碟所在對應節點的 Stargate 日誌中進行 grep 查找。
    2. Hades 日誌包含它所看到的磁碟以及磁碟運作狀況的資訊。它還檢查哪個磁碟是元資料磁碟或 Curator 磁碟,如果系統中尚不存在或已從系統中刪除/消失,則選擇磁碟。檢查哈迪斯日誌。
    3. 檢查/home/nutanix/data/logs/sysstats/df.INFO中的df -h以查看磁碟上次被視為已掛載的時間。
    4. 檢查/home/nutanix/data/logs/sysstats/iostat.INFO以查看上次看到設備的時間。
    5. 檢查/home/log/messages設備上的錯誤,特別是使用設備名稱,例如 sda 或 sdc。
    6. 檢查dmesg控制器或裝置上的錯誤。運行dmesg | less對於環中的目前訊息,或查看/var/log中記錄的 dmesg 輸出。
  3. 確定磁碟故障的原因。
    • 如果沒有磁碟上次使用數據,請檢查 CVM 上次啟動時間。再次參考《星際之門》和《哈迪斯》日誌。
    • 檢查磁碟故障前後的 Stargate 日誌。 Stargate 向 Hades 發送一個磁碟,檢查它是否在給定時間內沒有回應以及對該磁碟的操作逾時。不同的錯誤和版本表示不同,因此請始終按磁碟 ID 和磁碟序列進行搜尋。
  4. 檢查磁碟故障的計數。
    如果該插槽中的磁碟機多次發生故障並且更換了磁碟,則表示此時機箱有潛在問題。

  5. 檢查 lsiutil 是否顯示錯誤。
    如果lsiutil在多個插槽上均勻地顯示錯誤,則可能表示控制器有問題。

  6. 檢查磁碟機韌體的已知問題是否有磁碟錯誤。

  7. 如果這是 G8,MCU 版本為 1.1A 或更高,且背板也已升級:
    參考此文件: NX-G8:Nutanix 背板 CPLD、主機板 CPLD 和多節點 EC 韌體手動升級指南

  8. 如果這是 G8,請檢查 LSI 控制器韌體是否為 25.00.00 或更高:
    使用修剪時存在與 SSD 穩定性相關的修復,可修正導致磁碟機上出現 PHY 錯誤和不穩定的實例。從故障排除的角度來看,使用韌體 25.00.00 或更高版本也很重要。

注意:希捷硬碟的「 smartctl 」輸出中的事件 ID:191G-Sense_Error_Rate可以安全地忽略,除非效能下降。 G-Sense_Error_Rate值僅表示HDD適應衝擊或振動偵測。 Seagate 建議不要信任這些值,因為該計數器會在運行時動態變更閾值。

相關文章

文件ID:HT516504
原始發布日期:05/16/2024
Last Modified Date:06/03/2024