各位朋友,
AWS 在其 D3 实例中公开 HDD(https://aws.amazon.com/ec2/instance-types/d3/)为 nvme 驱动器,并且这些驱动器没有按预期设置旋转标志(https://lwn.net/Articles/408428/)。
我已经向 AWS 提交了问题,但他们的回复是,这是由 Linux 内核自动设置的,因此他们无能为力。有没有什么办法可以解决这个问题/如何以编程方式 100% 准确地识别驱动器类型?
无论如何,这会破坏现有的软件,例如 ceph,它试图通过这种方式检测驱动器类型。现在我唯一的选择是手动修复这个问题。欢迎任何想法!
谢谢。Subu
答案1
应该如此。并且它会设置它。但是 Linux 根据硬件暴露的内容设置此标志。Linux 在硬件初始化阶段向每个发现的设备发送 SCSI INQUIRY 命令,以了解它是什么,以及其他识别命令,并根据设备的回复设置这些标志。如果它回复它是旋转硬盘,则设置rotational
为 1。
AWS 是一个虚拟化云,因此您看到的不是物理硬件,而是虚拟的。我认为它是使用某个版本的 QEMU 进行模拟的。如果您virtio
在各个地方看到任何关于设备的提及(dmesg
,lspci
等等),您可以在 VM 中确认这一点。反过来,QEMU 实际上有一个选项,可以将每个虚拟存储设备作为“旋转”或“固态”暴露给 VM。
因此,Linux 会设置 AWS 云所设置的任何内容。使用适当的选项运行 QEMU 是云的职责。因此,我认为该回复是正式的样板或敷衍的回复,他们只是不想调查问题。