我有一个服务器与2个内部磁盘与Adaptec硬件RAID和外部磁盘盒通过SAS连接。
lsscsifind所有的设备:
# lsscsi [0:0:0:0] disk Adaptec System V1.0 /dev/sda [0:1:0:0] disk WDC WD1003FBYX-0 01.0 - [0:1:1:0] disk WDC WD1003FBYX-0 01.0 - [1:0:0:0] disk Promise VessRAID 1840s 0304 -
前3个是2个物理磁盘和硬件RAID。
第四个是通过SAS连接的外置磁盘盒。
正如你所看到的,在外部VessRAID / dev中没有对应的设备。
VessRAID是一个外部SAS-RAID盒,将其自身performance为SAS设备。 Linux很清楚的看到这个设备,但不知怎的,它并没有把它放到/ dev的设备中。
VessRAID上有两个逻辑驱动器。
我有这样的感觉,我需要告诉Linux,这是一个Linux磁盘设备,Linux应该使用并扫描逻辑驱动器并使其显示在/ dev中。 但是我一直无法find这样做的神奇命令。
周围挖掘/sys给了这个:
# cat /sys/class/bsg/1\:0\:0\:0/device/model VessRAID 1840s # cat /sys/class/bsg/1\:0\:0\:0/device/vendor Promise
这又证实了Linux看到了已知的设备。
/ dev / disk / *将RAID'ed内部磁盘视为具有2个分区的设备。 它没有看到外部磁盘:
# ls -al /dev/disk/by-path total 0 drwxr-xr-x 2 root root 100 Jun 29 17:06 . drwxr-xr-x 5 root root 100 Jun 29 17:06 .. lrwxrwxrwx 1 root root 9 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0 -> ../../sda lrwxrwxrwx 1 root root 10 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 Jun 29 17:06 pci-0000:02:00.0-scsi-0:0:0:0-part2 -> ../../sda2
问题不在于Linux端,而在存储端。 所需要的是将Linux分配为存储设备上的启动器,并禁用LUN屏蔽。
这样做后,我只是modprobe -r mptsas;sleep 1; modprobe mptsas modprobe -r mptsas;sleep 1; modprobe mptsas强制重新扫描。 然后磁盘出现在lsscsi :
[0:0:0:0] disk Adaptec System V1.0 /dev/sda [0:1:0:0] disk WDC WD1003FBYX-0 01.0 - [0:1:1:0] disk WDC WD1003FBYX-0 01.0 - [4:0:0:0] disk Promise VessRAID 1840s 0304 /dev/sdb [4:0:0:1] disk Promise VessRAID 1840s 0304 /dev/sdc