如何知道磁盘是来自 Jbod 还是作为硬件机器的一部分

如何知道磁盘是来自 Jbod 还是作为硬件机器的一部分

在某些情况下,当我们不在 HW Linux 机器附近时,我们只能看到如下磁盘:

/dev/sdd                  20511312   199536  20295392   1% /grd/sdd
/dev/sdb                  20511312   487852  20007076   3% /grd/sdb
/dev/sde                  20511312    91572  20403356   1% /grd/sde
/dev/sdf                  20511312    45192  20449736   1% /grd/sdf

但如果磁盘位于硬件计算机中或来自外部 JBOD,则不会获取信息。

如何知道磁盘位于何处?也许是通过dmidecode或其他什么?

答案1

您可以尝试 hdparm -i {device},例如:

# hdparm -i /dev/sda

/dev/sda:

 Model=SAMSUNG MZ7TD512HAGM-000L1, FwRev=DXT05L0Q, 
SerialNo=S151NYADA01701
 Config={ Fixed }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1000215216
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: unknown:  ATA/ATAPI-2,3,4,5,6,7

 * signifies the current active mode

以上是标准磁盘驱动器的正确输出。我相信虚拟磁盘(例如 JBOD 或 RAID)应该会失败。然后它会显示类似以下内容:

# hdparm -i /dev/sdb

/dev/sdb:
SG_IO: bad/missing sense data, sb[]:  70 00 05 00 00 00 00 0a 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 HDIO_GET_IDENTITY failed: Invalid argument

但是,如果您的本地磁盘也是由某些硬件控制器提供的 RAID 类型,则 hdparm 就没有多大用处。那么你可以尝试 udevadm:

udevadm info -a -p  $(udevadm info -q path -n /dev/sdb)

它的输出很长,所以我不会将其全部粘贴到此处,但是当您比较输出时,有足够的信息来区分节点上的 sdX 设备类型。

相关内容