Solaris

執行 iostat -En 時“無設備”是什麼意思

  • March 6, 2019

我們假設將 SAN 連接到直接 I/O LDOM 的電纜出現故障。這是執行時的錯誤片段iostat -En

  c5t60060E8007C50E000030C50E00001067d0 Soft Errors: 0 Hard Errors: 696633 Transport Errors: 704386
Vendor: HITACHI  Product: OPEN-V           Revision: 8001 Serial No: 504463
Size: 214.75GB <214748364800 bytes>
Media Error: 0 Device Not Ready: 0 No Device: 6 Recoverable: 0
Illegal Request: 1 Predictive Failure Analysis: 0

這裡是什麼No Device: 6意思?

Illumos 光纖通道設備程式碼的搜尋ENODEV顯示了 13 種ENODEV在源自 OpenSolaris 的原始碼中的用途。

在這些情況下,我懷疑這是最有可能導致您的“無設備”錯誤的情況:

pd = fctl_hold_remote_port_by_pwwn(port, &pwwn);
if (pd == NULL) {
   fcio->fcio_errno = FC_BADDEV;
   return (ENODEV);
}

該程式碼在函式fp_fcio_login(),其中程式碼似乎正在嘗試登錄到遠端 WWN。假設一根壞電纜可以防止這種情況發生似乎是合適的。請注意,光纖通道錯誤程式碼是FC_BADDEV,這似乎也適用於壞電纜。

簡而言之,對原始碼的審查表明ENODEV錯誤始終是壞電纜。

dTrace如有必要,您可以使用來更密切地辨識關聯。鑑於硬錯誤和傳輸錯誤的發生頻率要高出大約 5 或 6 個數量級,IMO 沒有必要努力,直到ENODEV其他錯誤得到解決且不再發生之後才發生錯誤。

引用自:https://unix.stackexchange.com/questions/504585