您好,登錄后才能下訂單哦!
如何解析Linux/Unix系統中主機HBA無法發現LUN路徑顯示錯誤及LUN相關錯誤,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Linux/Unix系統幾個常見的SCSI故障如:主機HBA無法發現LUN,路徑顯示錯誤,同一個LUN顯示重復的LUN ID,故障切換問題,重新掃描磁盤問題等,并列出相關解決方法。 問題1:如何通過iSCSI在Linux動態發現新LUNs? 平臺:RedHat Linux, SuSE Linux 問題描述:無法動態發現新磁盤設備 根本原因: iSCSI...
Linux/Unix系統幾個常見的SCSI故障如:主機HBA無法發現LUN,路徑顯示錯誤,同一個LUN顯示重復的LUN ID,故障切換問題,重新掃描磁盤問題等,并列出相關解決方法。
問題1:如何通過iSCSI在Linux動態發現新LUNs?
平臺:Red Hat Linux, SuSE Linux
問題描述:無法動態發現新磁盤設備
根本原因:
iSCSI驅動可在Ethernet上動態發現目標存儲系統,然而,它無法動態發現存儲系統上的LUN。Linux操作系統的SCSI中間層負責發現LUN。因此,通過Fibre Channel,用戶必須重新掃描SCSI總線以發現新添加LUN,用戶可通過重啟服務器或重新加載iSCSI模塊實現上述操作。
解決方法:
root權限使用以下命令在 RHEL 3, RHEL4, SLES 8, SLES 9, Asianux 1.0, and Asianux 2.0上重新加載iSCSI驅動:
# /etc/init.d/iscsi restart
在RHEL5和SLES 10上作為root使用以下命令:
RHEL5:
# /etc/init.d/iscsid restart
SLES 10:
# /etc/init.d/open-iscsi restart
或
# /sbin/iscsiadm -m session –R
問題2:Linux是否需要LUN 0?
平臺:Linux
問題描述:
1. /proc/scsi/scsi每條路徑只包含一個DGC LUN Z。
2. /proc/scsi/qla2?00/[0-9] 顯示除了LUN 0以外的所有LUN,星號標記顯示沒有 SCSI注冊。
3. Emulex HBA 已在 FA注冊 但/proc/scsi/scsi中沒有device entry。
根本原因:
Linux 2.4.x內核對LUN 0使用SCSI INQUIRY命令以確定系統連接到何種類型的磁盤設備。如果沒有LUN 0,QLogic和Emulex驅動將會返回錯誤而不是發INQUIRY命令給磁盤設備,因此,Linux系統將無法自動掃描磁盤設備。須手動激活LUN。
解決方法:
可通過以下方法解決此問題:
1. 映射一個Gatekeeper給LUN 0。Linux 2.4受到最大SCSI磁盤設備數量的限制,因此可能需要手動指定HLU。
2. 手動掃描LUN。用戶須小心規劃掃描時間。
3. 為Linux SCSI驅動打補丁(不推薦)。
詳情請見Primus Solution emc115253。
問題3:Linux主機Emulex HBA無法看見磁盤設備
平臺:Linux Kernel 2.4
問題描述:
1. 主機在存儲端注冊并登記后無法看到任何磁盤設備。
2. 所有lpfc驅動實例文件(例如:/proc/scsi/lpfc/*)無法看見存儲WWN。
解決方法:
按照以下步驟進行操作:
1. 通過如下命令檢查哪些模塊依賴于lpfc:
lsmod | grep lpfc
lpfc 243664 0 [lpfcdfc]
命令輸出地黑體部分是正在使用lpfc的模塊。在lpfcdfc被刪除之前,lpfc將無法刪除。
2. 使用rmmod命令刪除相關模塊,命令格式如下:
rmmod lpfcdfc
當該命令執行成功,通過lsmod命令驗證該模塊已被刪除。
3. 使用以下命令刪除lpfc模塊:
rmmod lpfc
4. 使用以下命令重新加載lpfc模塊:
modprobe lpfc
5. 模塊成功加載之后,將會初始化PLOGI及存儲端口信息,將會在驅動實例文件中看到。
同時也會自動掃描磁盤設備,如果沒有,運行命令echo '- - -' > /proc/scsi/scsi掃描磁盤設備。
問題4:"powermt display dev=all "Device(s) not found""
平臺:HP-UX, IBM AIX, Red Hat Linux, UNIX
軟件:PowerPath 5.0
問題描述:使用命令powermt display dev=all無法查看新加SCSI磁盤設備
解決方法:在emcgrab日志"powermt display options"文件檢查PowerPath陣列狀態是否設置為“managed”,或在主機運行命令powermt display options。
如果指定陣列設置為“unmanaged”,則輸入以下命令:
powermt manage class=symm (or class=clariion, etc.)
powermt display dev=all
powermt save。
問題5:Linux主機在proc/scsi/scsi中發現重復LUN ID
平臺:Red Hat Linux 5.3
產品:Symmetirx DMX-4, VMAX系列
問題描述:
一個磁盤設備呈現給2個HBA,每個HBA上通過2個不同LUN ID顯示2個實例。主機應當在各HBA上看到相同的實例(LUN 16而非16和17),而不是兩個不同的LUN ID。
Host: scsi5 Channel: 00 Id: 02 Lun: 16
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi5 Channel: 00 Id: 02 Lun: 17
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi3 Channel: 00 Id: 02 Lun: 16
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
Host: scsi3 Channel: 00 Id: 02 Lun: 17
Vendor: EMC Model: SYMMETRIX Rev: 5772
Type: Direct-Access ANSI SCSI revision: 02
解決方法:
查看是否SPC 2和SCSI 3標記缺失。重新添加標記會解決此問題,主機必須重啟以使更改生效。在HBA級別設置標記,例如:symmask -sid 308 -dir 8C -p 0 -wwn 10000000c99338ca set hba_flags on SPC2,SC3 –enable。
當磁盤設備設置了SPC 2和SCSI 3之后,proc/scsi/scsi將會返回正確地LUN ID。
問題6:Linux操作系統能否不重新加載Linux驅動而重新掃描磁盤設備?
平臺:Red Hat Linux,SuSE Linux Enterprise Server(SLES),QLogic,
問題描述:新LUN添加到存儲陣列之后,無法通過操作系統的QLogic HBA驅動看到該設備。重啟或重新加載驅動會造成生產中斷。
解決方法:
按照以下步驟,強制驅動重新掃描目標設備,允許添加新磁盤設備。該步驟觸發驅動初始化LUN發現進程。掃描順序:首先驅動層(qla2300/qla2200等),之后Linux SCSI中間層(即OS掃描)。
1. 1. 通過命令行強制掃描,輸入以下命令:
# echo "scsi-qlascan" > /proc/scsi/<driver_name>/<adapter_ID>
<driver_name>是qla2100, qla2200, qla2300 (2.4內核驅動)或qla2xxx(2.6內核驅動)<adapter_ID>是HBA實例編號。
2. 2. 執行步驟1之后,通過以下命令強制SCSI中間層執行掃描并為新加磁盤設備添加device table entry。
# echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
"0 1 2 3"是“主機 通道 LUN”。
問題7:Red Hat Linux收到SCSI錯誤返回值0x20000
平臺:Red Hat Enterprise Linux 4 U2及以上版本,QLogic,PowerPath
問題描述:
1. 1. Red Hat Linux收到SCSI錯誤返回值0x20000。
2. 2. kernel: SCSI error : <1 0 7 206> return code = 0x20000
kernel: end_request: I/O error, dev sdik, sector 4069594
根本原因:
當一個端口被禁止,拔出,或重置光纖通道交換機通常會導致一個RSCN(Registered State Change Notification)事件,所有仍連接在交換機上的HBA都會看到該RSCN事件。在沒有預警的情況下,多路徑軟件(PowerPath, DMP, MPIO)將會無法判斷。
注意:返回值0x20000表示DID_BUS_BUSY。并非所有0x20000錯誤都是由RSCN事件引起。Fabric或陣列故障也可能導致該錯誤。用戶不應假設RSCN一定是導致該錯誤發生的原因。
解決方法:
要正確地解釋RSCN事件,須在modprobe.conf文件中添加一個內核選項。須重啟以使更改生效。
1. 1. 編輯/etc/modprobe.conf并添加以下一行內容:
options qla2xxx ql2xprocessrscn=1
2. 2. 保存文件。
3. 3. 重新編譯initrd。
mkinitrd -f /boot/initrd-`uname -r`.img `uname -r`
4. 重啟系統以使更改生效。
問題8:Linux主機在/proc/scsi/scsi中只能看到一條路徑連接存儲
平臺:SLES 9,SLES 10,QLogic 8.01.06.01,PowerPath 5.0.1
問題描述:
1. SuSE Linux在/proc/scsi/scsi中只看到一條路徑連接存儲。
2. PowerPath只顯示一條路徑連接到emcpower設備。
3. 即使配置了4條路徑,/proc/scsi/scsi也只顯示一條路徑連接到磁盤設備
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: DGC Model: RAID 5 Rev: 0324
Type: Direct-Access ANSI SCSI revision: 04
powermt display dev=all displays only one path to the emcpower device:
Pseudo name=emcpowera
CLARiiON ID=CK200072300649 [SG_LINUXTST01]
Logical device ID=60060160128C1D00D8D768A3915BDC11 [fiscuat2 DATA]
state=alive; policy=BasicFailover; priority=0; queued-IOs=0
Owner: default=SP B, current=SP B
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
0 qla2xxx sda SP B0 active alive 0 0
根本原因:
如果用戶阻止PowerPath顯示交換機上連接HBA0的端口,路徑將會故障切換。PowerPath顯示LUN并沒有被另一個HBA通過另一個SP訪問。(LUN將會trespass)。信息顯示如下:
Jan 29 16:01:07 linuxtst01 kernel: qla2400 0000:08:00.0: LOOP DOWN detected (2).
Jan 29 16:01:18 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016039a028a8 -> 5006016839a028a8 - LUN 00, reason=0x2
Jan 29 16:01:18 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 0
Jan 29 16:01:19 linuxtst01 cmafcad[6362]: Host controller 129 status change.Status is now Loop Degraded.
Jan 29 16:01:21 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016839a028a8 -> 5006016a39a028a8 - LUN 00, reason=0x2
Jan 29 16:01:21 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 0
Jan 29 16:01:23 linuxtst01 kernel: qla2400 0000:08:00.0: Scheduling rescan for new luns...
Jan 29 16:01:23 linuxtst01 kernel: qla2400 0000:08:00.1: Scheduling rescan for new luns...
Jan 29 16:01:24 linuxtst01 kernel: qla2x00: FAILOVER device 0 from 5006016a39a028a8 -> 5006016939a028a8 - LUN 00, reason=0x2
Jan 29 16:01:24 linuxtst01 kernel: qla2x00: FROM HBA 0 to HBA 1
很明顯PowerPath沒有進行故障切換,但QLogic本機的故障切換被激活了。
檢查/etc/modprobe.conf (RHEL主機) 或/etc/modprob.conf.local (SuSE 主機)的ql2xfailover參數。
解決方法:
更改ql2xfailover參數值為0以禁止本機故障切換。在/etc/modprobe.conf中添加options qla2xxx ql2xfailover=0 ConfigRequired=0,重新編譯initrd并重啟。重啟之后,確認"cat /sys/module/qla2xxx/parameters/ql2xfailover"返回0。
看完上述內容,你們掌握如何解析Linux/Unix系統中主機HBA無法發現LUN路徑顯示錯誤及LUN相關錯誤的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。