lsscsi 找到 sas 设备,但 /dev 中未列出任何设备

lsscsi 找到 sas 设备,但 /dev 中未列出任何设备

我有一台服务器,该服务器有 2 个带有 Adaptec 硬件 RAID 的内部磁盘和一个通过 SAS 连接的外部磁盘盒。

lsscsi找到所有设备:

# 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连接的外部磁盘盒。

如您所见,/dev 中没有与外部 VessRAID 对应的设备。

VessRAID 是一个外部 SAS-RAID 盒,它本身是一个 SAS 设备。Linux 清楚地看到了该设备,但不知何故它没有将其变成 /dev 中的设备。

VessRAID 上有两个逻辑驱动器。

我觉得我需要告诉 Linux 这是一个 SAS 磁盘设备,Linux 应该使用它来扫描逻辑驱动器并让它们显示在 /dev 中。但我一直找不到执行此操作的神奇命令。

经过深入挖掘,/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 的内部磁盘视为具有 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

答案1

问题不在于 Linux 端,而在于存储端。需要做的是在存储设备上将 Linux 指定为启动器并禁用 LUN Masking。

完成此操作后,我只需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

相关内容