Sup*_*ake 35 virtual-machine udev
当我使用 Ubuntu 和 CentOS 时,我看到/dev/sda
和/dev/vda
. 所以我无法理解上述两者之间有什么不同?
der*_*ert 31
它们是不同的设备。
/dev/sda
是第一个 SCSI 或(更有可能)向用户土地提供 SCSI 驱动器 API 的磁盘。这包括使用 libata 的 SATA 驱动器和 IDE 驱动器。这也可以是 IDE/SATA/SCSI/等。由管理程序模拟的驱动器。
/dev/vda
是第一个使用虚拟化感知磁盘驱动程序的磁盘。性能应该好得多,因为管理程序不必模拟某些硬件接口。
如果磁盘在两个接口下都暴露给您的 VM,您应该更喜欢/dev/vda
它,因为它几乎肯定会更快。
小智 17
/dev/sdx
并且/dev/hdx
是物理(硬盘)磁盘驱动器或模拟物理(硬盘)磁盘驱动器。当内核或某些程序对这些进行 I/O 操作时,它会执行各种操作,例如将磁盘置于正确的位置并执行各种特定于物理的“工作”。
/dev/vdx
用于虚拟(硬盘)磁盘驱动器。内核在 I/O 时所做的就是告诉虚拟化软件需要读/写位,然后就完成了。一般来说,vdx
速度更快,因为内核不需要告诉硬盘驱动器做一大堆真正不需要的随机垃圾,因为它只需要告诉虚拟机管理程序做一些事情。
我为“东西”这个词道歉,我想不出更好的词:D
在udev
规则中/lib/udev/rules.d/*
定义了哪种硬件从内核中获得哪个名称。
请参阅以下规则/dev/vd*
:
# partitions do not have hardware identifiers
ENV{DEVTYPE}!="disk", GOTO="persistent_storage_not_a_disk"
# nor do paravirtualized hard disks
KERNEL=="vd*", GOTO="persistent_storage_not_a_disk"
...
KERNEL=="vd*", ATTRS{serial}=="?*", \
ENV{ID_BUS}="virtio", ENV{ID_SERIAL}="$attr{serial}"
Run Code Online (Sandbox Code Playgroud)
所以/dev/vda
是第一,虚拟硬盘(无硬件identificators)和总线ID virtio
。看起来像一个 qemu/kvm 来宾。
/dev/sd*
设备的 udev 规则可以是更多不同的硬件类型:scsi、ata、ieee1394、usb、...
归档时间: |
|
查看次数: |
22629 次 |
最近记录: |