我感兴趣的是 /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 上使用。
因此,您需要采取额外措施才能在虚拟机上实现所需的结果。