快速检查驱动器类型的方法


10

有没有一种快速的方法来了解Linux上的“存储”类型?是HDD还是SSD(或NVMe)?众所周知,主机是一台物理计算机,而不是VM。我第一件事就是rotational/sys/block/<device>/queue/目录下标记。但是以我的经验,即使对于SSD设备,它也可能包含“ 1”值。第二种方法(更现实,更真实)是延迟。衡量起来有点困难(一些使用/ proc / diskstats的工作),但看起来更可取。

还有其他方法吗?值得一提的是,我不需要知道“存储”的确切模型,只需知道它的类型即可。


1
测量等待时间并不是一个好的答案,因为某些旋转磁盘带有巨大的缓存,可能难以或可能很难与全容量固态设备区分开。
anx

2
除了smartctl这里提到的,其他实用程序,例如lshwlsblk报告相同的信息。另请参见askubuntu.com/q/792814/295286
Sergiy Kolodyazhnyy,

1
您将使用此信息做什么?换句话说,如果我给您一个名为isHDDorSSD的程序,您将如何处理
aaaaa说要恢复Monica

Bonnie ++可以显示基于IOPS的SSD与HDD(dd也可以)
沃伦(Warren

@Sergiy Kolodyazhnyy,我在中找不到此类信息lshw。还lsblk依赖rotationalsysfs目录中的标志,因此我无法信任它。smartctl使用ioctl调用并直接从设备询问信息。
lesovsky

Answers:


13

怎么样sudo smartctl -a /dev/<device> | grep Rotation-如果返回Rotation Rate: Solid State Device,那就是SSD。也不确定是否采用这种防弹方法。


1
看起来不错,即使通过RAID卡连接的驱动器也可以使用。
lesovsky '19

@lesovsky,我不会指望它通过RAID卡工作。我没有任何可以连接到RAID的SSD可以测试,但是它显示旋转磁盘的旋转速率不正确(阵列中的每个磁盘实际为7.2k时,其显示为10k)。
马克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.