
我在 Debian 盒子 (Lenny) 中安裝了 QLogic 光纖通道卡,在與韌體發生一些衝突後,我設法讓作業系統識別該卡(DKMS 驅動程式和韌體的「firmware-qlogic」套件) 。
但是,由於某種原因,沒有為該單元公開的兩個 SAN 磁碟區建立任何區塊裝置。當我“cat /proc/scsi/scsi”時它們會出現,但沒有我可以看到的/dev/sdX 塊設備,而且,每次我需要獲取時,我都必須運行rescan-scsi-bus.sh shell 腳本/dev/sgX 裝置恢復。
如何讓系統持續辨識這些光纖通道磁碟區?
編輯:發現所看到的雙設備是我們與 SAN 陣列一起使用的多路徑 I/O 系統的一部分。在將磁碟區識別為區塊裝置之前是否需要設定多路徑 I/O?
答案1
確保您看到的裝置實際上是公開的 LUN,而不僅僅是儲存子系統控制器。
嘗試直接從 sgX 裝置讀取。如果您從真實磁碟讀取數據,您將看到:
# sg_read if=/dev/sg0 bs=512 count=1M mmap=1 time=2
time from second (SCSI) command to end was 3.851212 secs, 139.39 MB/sec
1048576+0 records in, SCSI commands issued: 8192
但是從訪問 LUN 讀取應該會失敗:
# sg_read if=/dev/sg4 bs=512 count=1M mmap=1 time=2
reading: SCSI status: Check Condition
Fixed format, current; Sense key: Illegal Request
Additional sense: Logical block address out of range
Field replaceable unit code: 5
plus...: Driver_status=0x08 [DRIVER_SENSE, SUGGEST_OK]
sg_read: failed, skip=0
Some error occurred, remaining block count=1048576
0+0 records in
我們可以看到 的輸出嗎lsscsi -g
?
如果我們只看到控制器,我期望類似:
[0:0:0:31] disk IBM Universal Xport 0916 -
[1:0:0:31] disk IBM Universal Xport 0916 -
但如果磁碟也在那裡,您應該會看到類似以下內容:
[0:0:0:0] disk IBM 1814 FAStT 0916 /dev/sda
[0:0:0:1] disk IBM 1814 FAStT 0916 /dev/sdb
[0:0:0:2] disk IBM 1814 FAStT 0916 /dev/sdd
[0:0:0:31] disk IBM Universal Xport 0916 -
[1:0:0:0] disk IBM 1814 FAStT 0916 /dev/sdc
[1:0:0:1] disk IBM 1814 FAStT 0916 /dev/sde
[1:0:0:2] disk IBM 1814 FAStT 0916 /dev/sdf
[1:0:0:31] disk IBM Universal Xport 0916 -
在看到區塊設備之前不需要進行多路徑設置,但應該在使用它們之前進行設置。
設定多路徑後,您應該會看到類似以下內容:
3600a0b8000266f7e000026314950d851 dm-0 IBM,1814 FAStT
[size=100G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=6][active]
\_ 1:0:0:2 sdf 8:80 [active][ready]
\_ round-robin 0 [prio=1][enabled]
\_ 0:0:0:2 sdd 8:48 [active][ghost]