virtualbox

Virtualbox ваш выбор если вы хотите быстро без особых знаний окунуться в мир виртуальных машин. Простой интерфейс с картиночками, никаких заумных возможностей, хорошая поддержка операционных систем. В свое время именно на нём я перепробовал кучу дистрибутивов. Но сейчас я смотрю на него совсем другими глазами и …

linux

Уже очень давно я перешёл на linux и почти ни о чем не жалею. Речь тут не об этом а о том как в ядро встроена возможность виртуализации. Само название KVM Kernel Virtual Machine говорит нам об этом. Для linux виртуальная машина это просто процесс, а операционная система умеет управлять процессами, выдавать им CPU, память и всё такое что обычно требуют от гипервизора. А вот эмуляцией различных девайсов обычно занимается quemu. Уже сложнее чем virtualbox, да и зачем оно надо.

Всё дело в том, что это нативный, оттестированный элемент ядра, а не сторонний модуль, что + к производительности и стабильности. Большее комьюнити даёт больше фич и помощи в случае чего.

Virtio

Достаточно внимательный пользователь virtualbox-а наверняка заметил что при виртуализации будет выполнена двойная работа. Например для того тобы записать данные на какой-то носитель, ОС гостя обращается к драйверу виртуализованного контроллера носителя который обращается к драйверу реального носителя. Наблюдательный пользователь не одинок в своих наблюдениях, и поэтому умные инженеры придумали паравиртуализацию. Пусть система хоста знает о том что она ненастоящая, а виртуализованная и обращается с виртуализованными устройствами как с виртуализованными. Такие устройства в отличии от реальных так же могут использовать фишки операционной системы хоста для увеличения производительности.

Скажу вам что смысл в этом действительно есть, был слуачай когда на виртуалке с WinXP удалось таким образом поднять скорость записи в 10(!!!) раз, и собирать там проект в почти 2.5 раза быстрее. Если же добавить сюда полное writeback кеширование, то при достаточном объёме оперативной памяти можно получить производительность SSD в виртуалке на HDD. Будет использоваться стандартный файловый кеш linux.

Так же не обошлось без unix-way и общирным возможностям которые он даёт. Например можно управлять хостом виртуализации с другой машины имея всего лишь доступ по ssh. Или использовать инструменты для автоматического развертывания сред. Использовать различные способы хранения виртуальных дисков: LVM, LVM-thin, iscsi, librbd и ещё что-то там). При наличии общего сетевого хранилища можно использовать живые миграции.

KVM может покрыть как потребности разработчика, так и потребности при создании облака виртуализации.

kvm64

kvm64 стандартный процессор в qemu-kvm с минимальным набором инструкций, такой что сэмулировать его сможет любой реальный процессор. Сегодня же многие программы используют насширенный набор инструкций, поэтому если вы не используете живые миграции, либо в вашем облаке все процессоры одинаковые, то советую использовать тип host. таки образом будут эмулированны все поддерживаемые хостом инструкции.