В чем разница между /dev/vda и /dev/sda
Я готовлюсь к сертификации и имею локально установленный CentOS7 (VirtualBox) и другой экземпляр в облачной службе.
В локальной системе у меня есть /dev/sda
и на основе облачных у меня есть /dev/vda
,
Теперь мне интересно, что именно означает эта разница? Существует ли стандарт (документация?) Для именования этих устройств и что означают разные названия?
Редактировать:
Я думаю, что этот документ очень полезен для понимания названия: https://www.kernel.org/doc/Documentation/admin-guide/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.
1 ответ
Полная виртуализация против паравиртуализации
/dev/sda - это первый обнаруженный диск типа IDE/SATA/SCSI. В этом случае эмулируется (полностью виртуализируется) гипервизором.
/ dev / vda - это первый обнаруженный паравиртуализированный драйвер диска. Это быстрее, чем эмулируемые устройства sdX, если оба они относятся к одному и тому же диску, потому что в его работе меньше накладных расходов по сравнению с эмулируемым диском.
Рекомендации:
С http://www.ibm.com/developerworks/library/l-virtio/:
Полная виртуализация против паравиртуализации
Давайте начнем с быстрого обсуждения двух различных типов схем виртуализации: полная виртуализация и паравиртуализация. В полной виртуализации гостевая операционная система работает поверх гипервизора, который стоит на голом железе. Гость не знает, что он виртуализируется и не требует никаких изменений для работы в этой конфигурации. И наоборот, при паравиртуализации гостевая операционная система не только осознает, что работает на гипервизоре, но и содержит код для повышения эффективности переходов между гостями и гипервизорами.
В схеме полной виртуализации гипервизор должен эмулировать аппаратное обеспечение устройства, которое эмулируется на самом низком уровне диалога (например, для сетевого драйвера). Хотя эмуляция чиста в этой абстракции, она также является самой неэффективной и очень сложной. В схеме паравиртуализации гость и гипервизор могут работать совместно, чтобы сделать эту эмуляцию эффективной. Недостатком подхода паравиртуализации является то, что операционная система осознает, что она виртуализирована и требует изменений для работы.
С http://www.carfax.org.uk/docs/qemu-virtio:
Что такое паравиртуальные устройства?
При запуске виртуальной машины виртуальная среда должна представлять устройства для гостевой ОС - основными являются диски и сеть (плюс видео, USB, таймеры и другие). По сути, это аппаратное обеспечение, которое видит гость виртуальной машины.
Теперь, если гость должен оставаться полностью неосведомленным о факте его виртуализации, это означает, что хост должен эмулировать какое-то реальное оборудование. Это довольно медленно (особенно для сетевых устройств) и является основной причиной снижения производительности виртуальных машин.
Однако, если вы хотите сообщить гостевой ОС, что она находится в виртуальной среде, можно избежать накладных расходов, связанных с эмуляцией большей части реального оборудования, и использовать гораздо более прямой путь для обработки устройств внутри ВМ. Этот подход называется паравиртуализацией. В этом случае гостевой ОС необходим определенный драйвер, который обращается к паравиртуальному устройству. В Linux этот интерфейс был стандартизирован и называется интерфейсом virtio.