Я готовлюсь к сертификации и у меня локально установлен 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.
/ 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".