我在 Debian 盒(Lenny)中安装了 QLogic 光纤通道卡,在与固件发生一些冲突后,我设法让操作系统识别该卡(DKMS 驱动程序和固件的“firmware-qlogic”包)。
但是,出于某种原因,没有为暴露给该单元的两个 SAN 卷创建块设备。当我使用“cat /proc/scsi/scsi”时,它们会出现,但我看不到 /dev/sdX 块设备,而且每次我需要恢复 /dev/sgX 设备时,我都必须运行 rescan-scsi-bus.sh shell 脚本。
如何让系统持续识别这些光纤通道卷?
编辑:发现看到的双设备是我们在 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]