Centos6

光纖多路徑失敗:結果:hostbyte=DID_ERROR driverbyte=DRIVER_OK

  • January 16, 2017

我正在嘗試在後端同一數據中心的兩台伺服器之間複製(使用 rsync 約 7TB 的數據),它使用 EMC VMAX3

複製約 30-40GB 的數據後,多路徑開始失敗

Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: Recovered to normal mode
Dec 15 01:57:53 test.example.com multipathd: 360000970000196801239533037303434: remaining active paths: 1
Dec 15 01:57:53 test.example.com kernel: sd 1:0:2:20: [sdeu]  Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK 

[root@test log]# multipath -ll |grep -i fail
|- 1:0:0:15 sdq  65:0   failed ready running
 - 3:0:0:15 sdai 66:32  failed ready running

我們使用預設的 multipath.conf

HBA driver version  8.07.00.26.06.8-k

HBA model QLogic Corp. ISP8324-based 16Gb Fibre Channel to PCI Express Adapter

OS: CentOS 64-bit/2.6.32-642.6.2.el6.x86_64
Hardware:Intel/HP ProLiant DL380 Gen9

已驗證此解決方案並與 EMC 檢查一切看起來都不錯https://access.redhat.com/solutions/438403

更多資訊

  • 網路側沒有丟棄/錯誤數據包。
  • 使用 noatime、nodiratime 掛載文件系統
  • 文件系統 ext4(已經嘗試過 xfs 但同樣的錯誤)
  • LVM 處於條帶模式(以線性選項開始,然後轉換為條帶)
  • 已禁用 THP
  • echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
  • 每當多路徑啟動失敗程序進入 D 狀態
  • 系統韌體升級
  • 嘗試使用最新版本的 qlogic 驅動程序
  • 嘗試使用不同的調度程序(noop、deadline、cfq)
  • 嘗試使用不同的調整配置文件(企業儲存)

發行期間收集的 Vmcore

我可以在發布期間收集 vmcore

 KERNEL: /usr/lib/debug/lib/modules/2.6.32-642.6.2.el6.x86_64/vmlinux
DUMPFILE: vmcore  [PARTIAL DUMP]
   CPUS: 36
   DATE: Fri Dec 16 00:11:26 2016
 UPTIME: 01:48:57
 LOAD AVERAGE: 0.41, 0.49, 0.60
  TASKS: 1238
NODENAME: test.example.com
RELEASE: 2.6.32-642.6.2.el6.x86_64
VERSION: #1 SMP Wed Oct 26 06:52:09 UTC 2016
MACHINE: x86_64  (2297 Mhz)
 MEMORY: 511.9 GB
  PANIC: "BUG: unable to handle kernel NULL pointer dereference at 0000000000000018"
    PID: 15840
COMMAND: "kjournald"
   TASK: ffff884023446ab0  [THREAD_INFO: ffff88103def4000]
    CPU: 2
  STATE: TASK_RUNNING (PANIC)

在 qlogic sid 上啟用調試模式後

qla2xxx [0000:0b:00.0]-3822:5: FCP command status: 0x2-0x0 (0x70000) nexus=5:1:0 portid=1f0160 oxid=0x800 cdb=2a200996238000038000 len=0x70000 rsp_info=0x0 resid=0x0 fw_resid=0x0 sp=ffff882189d42580 cp=ffff88276d249480.
qla2xxx [0000:84:00.0]-3822:7: FCP command status: 0x2-0x0 (0x70000) nexus=7:0:3 portid=450000 oxid=0x4de cdb=2a20098a5b0000010000 len=0x20000 rsp_info=0x0 resid=0x0 fw_resid=0x0 sp=ffff882189d421c0 cp=ffff8880237e0880.

這是HP ProLiant DL380 Gen9伺服器。相當標準的企業級伺服器。

你能給我有關伺服器韌體版本的資訊嗎?

是否實際安裝了 EMC PowerPath?如果是這樣,請查看此處

您是否安裝了 HP Management Agents?如果是這樣,您是否有能力發布hplog -v.

您在 ILO4 日誌中看到了什麼嗎?國際勞工組織是無障礙的嗎?

您能描述一下系統插槽中安裝的所有 PCIe 卡嗎?

對於特定於 RHEL6 的調整,我強烈推薦 XFS,執行tuned-adm profile enterprise-storage並確保您的文件系統已掛載nobarrier調整的配置文件應該可以處理)。

對於卷,請確保您使用的是dm(多路徑)設備而不是/dev/sdX. 見:https ://access.redhat.com/solutions/1212233


查看您目前提供的內容以及Redhat 支持站點上列出的檢查(以及此處的描述),我不能排除 HBA 故障或 PCIe 轉接卡問題的可能性。此外,VMAX 端存在問題的可能性很小。

你能換個PCIe插槽再試一次嗎?可以換卡再試試嗎?

HBA 上的韌體是最新的嗎?這是2016 年 12 月的最新包。

韌體 6.07.02 BIOS 3.21

DID_ERROR 通常表示驅動程序軟體通過從 HBA 返回的數據中的異常檢測到某種類型的硬體錯誤。

儲存子系統中存在硬體或基於 san 的問題,因此接收到的光纖通道響應幀包含驅動程序無法使用或協調的無效或衝突資訊。

請檢查系統硬體、切換錯誤計數器等,看看是否有任何跡象表明問題可能出在哪裡。最有可能的候選者是 HBA 本身。

在我看來,這就像您的一個 SFP 發生了軟故障……在您進行大型複制時,查看您的儲存交換機埠上的錯誤。

我最近遇到了類似的問題,一切看起來都很棒。伺服器供應商簽署了他們的東西,儲存供應商說他們的東西看起來不錯,發誓 SFP 都很好…… SFP 仍然顯示為正常執行,直到通過 MPIO 介面發送大量數據並且在儲存交換機埠將開始記錄。

我不得不用新的光纜替換所有的光纜,然後用我手頭的備件切換 SFP,以向供應商證明 SFP 是壞的,即使它看起來還不錯。

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