/ dev / vda和/ dev / sda有什么区别?

我正在准备一个authentication,并在本地安装CentOS7(VirtualBox),另一个实例在基于云的服务中。

在本地系统上,我有一个/dev/sda ,在基于云的系统上,我有一个/dev/vda

现在我想知道这个区别究竟意味着什么? 有没有一个标准的(文件?)这个设备的命名,不同的名称代表什么?

编辑:

我认为这个文件对于理解命名非常有用: https : //www.kernel.org/doc/Documentation/devices.txt

 8 block SCSI disk devices (0-15) 0 = /dev/sda First SCSI disk whole disk 16 = /dev/sdb Second SCSI disk whole disk 32 = /dev/sdc Third SCSI disk whole disk ... 240 = /dev/sdp Sixteenth SCSI disk whole disk 

但是我找不到关于/ dev / vda的一些信息。

完全虚拟化与半虚拟化

/ dev / sda是IDE / SATA / SCSItypes中第一个检测到的磁盘。 在这种情况下,pipe理程序模拟(完全虚拟化)。

/ dev / vda是第一个检测到的paravirtualizated磁盘驱动程序。 如果两者都被引用到相同的磁盘上,它比仿真的sdX设备要快,因为与仿真驱动器相比,它的操作开销较小。

参考文献:


来自http://www.ibm.com/developerworks/library/l-virtio/

完全虚拟化与准虚拟化

让我们先简单讨论两种不同types的虚拟化scheme:完全虚拟化和半虚拟化。 在完全虚拟化中,客户操作系统运行在位于裸机上的虚拟机pipe理程序之上。 客户不知道它正在虚拟化,并且不需要更改就可以在此configuration中工作。 相反,在半虚拟化中,来宾操作系统不仅意识到它在虚拟机pipe理程序上运行,而且还包括使客户机到虚拟机pipe理程序转换更高效的代码。

在完整的虚拟化scheme中,pipe理程序必须仿真设备硬件,仿真对话的最低级别(例如,networking驱动程序)。 尽pipe仿真在这个抽象中是干净的,但它也是最低效和高度复杂的。 在半虚拟化scheme中,访客和pipe理程序可以协同工作,使这种仿真效率更高。 半虚拟化方法的缺点是操作系统意识到它正在被虚拟化并需要修改才能工作。

http://www.carfax.org.uk/docs/qemu-virtio

什么是半虚拟设备?

在运行虚拟机时,虚拟环境必须将设备呈现给客户操作系统 – 磁盘和networking是主要的两个(加上video,USB,定时器等)。 实际上,这是VM guest看到的硬件。

现在,如果客人完全不知道虚拟化的事实,这就意味着主机必须模拟某种真实的硬件。 这是非常缓慢的(特别是对于networking设备),并且是导致虚拟机性能降低的主要原因。

但是,如果您愿意让客户操作系统知道它在虚拟环境中,则可以避免模拟大多数真实硬件的开销,并使用更加直接的path来处理虚拟机内的设备。 这种方法被称为半虚拟化。 在这种情况下,客户操作系统需要安装一个特定的驱动程序来与半虚拟设备通信。 在Linux下,这个接口已经标准化了,被称为“virtio”接口。