Linux/Unix存儲管理常見問題與解決方法(三)

問題5Linux主機在proc/scsi/scsi中發現重複LUN ID

平臺Red Hat Linux 5.3

產品Symmetirx DMX-4 VMAX系列

問題描述

一個磁盤設備呈現給2HBA,每個HBA上通過2個不同LUN ID顯示2個實例。主機應當在各HBA上看到相同的實例(LUN 16而非1617),而不是兩個不同的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 2SCSI 3標記缺失。重新添加標記會解決此問題,主機必須重啓以使更改生效。在HBA級別設置標記,例如:symmask -sid 308 -dir 8C -p 0 -wwn 10000000c99338ca set hba_flags on SPC2,SC3 –enable

當磁盤設備設置了SPC 2SCSI 3之後,proc/scsi/scsi將會返回正確地LUN ID

 

 

問題6Linux操作系統能否不重新加載Linux驅動而重新掃描磁盤設備?

平臺Red Hat LinuxSuSE Linux Enterprise Server(SLES)QLogic

問題描述:新LUN添加到存儲陣列之後,無法通過操作系統的QLogic HBA驅動看到該設備。重啓或重新加載驅動會造成生產中斷。

解決方法

按照以下步驟,強制驅動重新掃描目標設備,允許添加新磁盤設備。該步驟觸發驅動初始化LUN發現進程。掃描順序:首先驅動層(qla2300/qla2200等),之後Linux SCSI中間層(即OS掃描)。

  1. 1.    1. 通過命令行強制掃描,輸入以下命令:

     # echo "scsi-qlascan" > /proc/scsi/<driver_name>/<adapter_ID>

      <driver_name>qla2100, qla2200, qla2300 2.4內核驅動)或qla2xxx2.6內核驅動)<adapter_ID>HBA實例編號。

  1. 2.    2. 執行步驟1之後,通過以下命令強制SCSI中間層執行掃描併爲新加磁盤設備添加device table entry

     # echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi

     "0 1 2 3"是“主機 通道 LUN”。

 

 

 

 

問題7Red Hat Linux收到SCSI錯誤返回值0x20000

平臺Red Hat Enterprise Linux 4 U2及以上版本,QLogicPowerPath

問題描述

  1. 1.    1. Red Hat Linux收到SCSI錯誤返回值0x20000

  2. 2.    2. kernel: SCSI error : <1 0 7 206> return code = 0x20000
    kernel: end_request: I/O error, dev sdik, sector 4069594

       根本原因

     當一個端口被禁止,拔出,或重置光纖通道交換機通常會導致一個RSCNRegistered State Change Notification)事件,所有仍連接在交換機上的HBA都會看到該RSCN事件。在沒有預警的情況下,多路徑軟件(PowerPath, DMP, MPIO)將會無法判斷。

     注意:返回值0x20000表示DID_BUS_BUSY。並非所有0x20000錯誤都是由RSCN事件引起。Fabric或陣列故障也可能導致該錯誤。用戶不應假設RSCN一定是導致該錯誤發生的原因。

       解決方法

     要正確地解釋RSCN事件,須在modprobe.conf文件中添加一個內核選項。須重啓以使更改生效。

  1. 1.    1. 編輯/etc/modprobe.conf並添加以下一行內容:

     options qla2xxx ql2xproce***scn=1

  1. 2.    2. 保存文件。

  2. 3.    3. 重新編譯initrd

     mkinitrd -f /boot/initrd-`uname -r`.img `uname -r`

  1. 4. 重啓系統以使更改生效。

 

問題8Linux主機在/proc/scsi/scsi中只能看到一條路徑連接存儲

平臺SLES 9SLES 10QLogic 8.01.06.01PowerPath 5.0.1

問題描述

  1. 1.    SuSE Linux/proc/scsi/scsi中只看到一條路徑連接存儲。

  2. 2.    PowerPath只顯示一條路徑連接到emcpower設備。

  3. 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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章