/sys/block 中的哪些设备是 HDD?

/sys/block 中的哪些设备是 HDD?

我感兴趣的是 /sys/block 中的哪些设备是真正的 HDD 驱动器:

[root@sdp1a block]# pwd
/sys/block
[root@sdp1a block]# ls
dm-0   dm-12  dm-3  dm-7   loop1  loop5  ram1   ram13  ram3  ram7  sdaa  sdae  sdai  sdam  sdaq  sdau  sday  sdbb  sdbf  sdc  sdg  sdk  sdo  sds  sdw
dm-1   dm-13  dm-4  dm-8   loop2  loop6  ram10  ram14  ram4  ram8  sdab  sdaf  sdaj  sdan  sdar  sdav  sdaz  sdbc  sdbg  sdd  sdh  sdl  sdp  sdt  sdx
dm-10  dm-14  dm-5  dm-9   loop3  loop7  ram11  ram15  ram5  ram9  sdac  sdag  sdak  sdao  sdas  sdaw  sdb   sdbd  sdbh  sde  sdi  sdm  sdq  sdu  sdy
dm-11  dm-2   dm-6  loop0  loop4  ram0   ram12  ram2   ram6  sda   sdad  sdah  sdal  sdap  sdat  sdax  sdba  sdbe  sdbi  sdf  sdj  sdn  sdr  sdv  sdz
[root@sdp1a block]#

我该如何理解这一点?

答案1

块设备是否为真正的 HDD 可以根据man sd和中记录的磁盘驱动程序对应的主设备号得出man 4 hd
SCSI 和 SATA 磁盘有主设备号 8,旧 IDE 磁盘有 3 或 22。

您可以在文件中看到这些内容/proc/devices或解析这些/sys/block/*/dev内容:
cd /sys/block; grep -lE '^(8|3|22):' */dev | sed 's-/dev--'
sda
sdb

当在虚拟机中运行时,结果取决于虚拟化类型
硬件虚拟化,除 PVHVM 外,行为与上文相同(见下文)。
使用半虚拟化,情况发生了变化。例如,XEN xvd 驱动程序使用主要 202。
对于肺动脉高压例如,在 Amazon EC2 上使用。
因此,您需要采取额外措施才能在虚拟机上实现所需的结果。

相关内容