Вопрос «KVM или VirtualBox» обычно возникает, когда возможностей одного инструмента перестаёт хватать: машина тормозит, не видит USB-токен или требует проброса видеокарты. Оба решения запускают гостевые системы на Linux, но устроены принципиально по-разному. Ниже — сравнение по архитектуре, производительности и сценариям, команды для проверки хоста и чек-лист выбора без маркетинга.

Две разные архитектуры

KVM — модуль ядра Linux, превращающий систему в гипервизор первого типа. Сам по себе он лишь даёт аппаратную виртуализацию, устройством машины занимается QEMU, а управлением — libvirt и virt-manager. Гость исполняется в режиме VT-x или AMD-V почти нативно, ввод-вывод идёт через virtio-драйверы, а память выделяется динамически.

VirtualBox — гипервизор второго типа: обычное приложение со своими модулями ядра, которое эмулирует большую часть оборудования. Ему не нужен libvirt, зато каждый диск и сетевая карта проходят через дополнительный слой. Отсюда простота установки и более скромная скорость на тяжёлых нагрузках.

Производительность и virtio

На процессорных задачах разница заметна при сборке кода и работе с базами. KVM отдаёт гостю физические ядра, поддерживает вложенную виртуализацию, огромные страницы и NUMA. VirtualBox тоже умеет выделять несколько vCPU, но планировщик и эмуляция дают больший оверхед.

Для дисков решают драйверы. В KVM используйте virtio-blk или virtio-scsi с кэшем none, если важна целостность данных. В VirtualBox выбирайте AHCI с кэшем хоста ради скорости либо отключайте кэш, когда важнее сохранность при сбое питания.

Память расходуется по-разному: KVM умеет balloon, огромные страницы и overcommit, а VirtualBox выделяет фиксированный объём при старте и меняет его только через настройки. Для десятка одновременных машин это заметно.

Графика, 3D и рабочий стол

В KVM 3D-ускорение строится на virtio-gpu с прослойкой VirGL или Venus для Vulkan. Этого хватает для рабочего стола, браузера и лёгких игр, но дискретную карту это не заменяет. Для серьёзной графики нужен проброс GPU через VFIO: IOMMU, отдельная карта и готовность потерять её на хосте.

VirtualBox предлагает VBoxSVGA и 3D-ускорение с гостевыми дополнениями. Windows-гость работает, однако OpenGL-приложения и видеоконференции упираются в ограничения эмуляции. Для старых программ и проверки интерфейсов возможностей хватает.

Сеть, USB и проброс устройств

KVM даёт пользовательскую сеть NAT, мост через br0 и macvtap. Мост — стандарт для серверов: машина получает адрес в той же подсети, что и хост, и доступна снаружи. macvtap удобен, но ломает связь «хост — гость». USB пробрасывается через virt-manager и usbredir, PCI-устройства — через VFIO.

VirtualBox умеет NAT, мост, внутреннюю сеть и проброс портов. USB реализован проще и не требует IOMMU, поэтому сканеры, токены и программаторы часто удобнее отдавать ему. Для изолированных тестовых стендов пригодится внутренняя сеть: машины видят друг друга и не выходят наружу.

Установка KVM и первые команды

В Debian, Ubuntu и Linux Mint установка занимает минуты. Утилита проверки хоста сразу показывает, включена ли виртуализация в прошивке и каких возможностей не хватает.

sudo apt install qemu-kvm libvirt-daemon-system virt-manager
sudo virt-host-validate
sudo usermod -aG libvirt,kvm "$USER"
virsh list --all

После перезахода в сессию проверьте, что libvirtd работает и видит сеть default. Если машина стартует без ускорения, включите VT-x, SVM и IOMMU в UEFI. Вложенная виртуализация задаётся параметром nested=1 для модуля kvm_intel или kvm_amd. Убедиться в ускорении можно и напрямую через QEMU.

qemu-system-x86_64 -accel kvm -cpu host -m 4096 -cdrom image.iso
virsh capabilities | grep -A2 "domain type"

VirtualBox: когда он удобнее

VirtualBox остаётся быстрым способом попробовать ISO, не трогая системные пакеты. Он кроссплатформенный, умеет общие папки, бесшовный режим и снимки состояния. Управлять можно из графического интерфейса или через VBoxManage.

VBoxManage list vms
VBoxManage showvminfo "Windows 11" --details
VBoxManage modifyvm "Windows 11" --nested-hw-virt on

Для автоматизации подойдут headless-запуск и сохранение состояния. Помните: модули собираются через DKMS и после обновления ядра могут потребовать пересборки.

Миграция машины в KVM

Перенести гостя можно, конвертировав диск. Выключите машину и снимите снимок, чтобы не потерять данные.

qemu-img convert -p -f vdi -O qcow2 win11.vdi win11.qcow2
qemu-img info win11.qcow2

Создайте новую машину в virt-manager, подключите qcow2 и смените контроллер на virtio. Windows попросит драйверы virtio-win, Linux обычно находит модули сам. Сетевую карту тоже лучше заменить на virtio.

Снапшоты и обслуживание

Снапшоты в KVM делаются на уровне qcow2 и не требуют остановки гостя, хотя для согласованности файловой системы запись лучше кратко приостановить.

virsh snapshot-create-as win11 clean-install --description "после установки"
virsh snapshot-list win11
virsh snapshot-revert win11 clean-install

Следите за размером цепочки: каждый снимок хранит изменения и замедляет запись. Для долгого хранения используйте отдельную копию диска, а не десяток снапшотов. Перед обновлением гостевой системы сделайте снимок и проверьте, что места на хосте достаточно: разросшийся qcow2 легко занимает десятки гигабайт.

Подводные камни

Типичные проблемы KVM: забытый мост, отсутствие прав у пользователя, конфликт с Docker из-за iptables и выключенный IOMMU. На ноутбуках с гибридной графикой проброс GPU почти всегда упирается в mux и питание.

У VirtualBox свои камни: конфликт с Hyper-V и функциями безопасности Windows на Windows-хосте, проблемы с захватом экрана в Wayland и падение скорости при 3D на старых драйверах. Оба решения плохо дружат с NFS и сетевыми хранилищами для образов.

Чек-лист выбора

Выбирайте KVM, если:

  • нужен сервер без графического интерфейса, работающий годами;
  • требуется проброс GPU, PCI-устройств или вложенная виртуализация;
  • важны снапшоты, миграция и управление через API;
  • вы готовы разбираться с virtio и libvirt.

Выбирайте VirtualBox, если:

  • нужно быстро запустить ISO и сравнить дистрибутивы;
  • требуется проброс USB без настройки IOMMU;
  • машина должна одинаково работать на Windows, macOS и Linux;
  • достаточно десктопных сценариев и умеренной нагрузки.

Итог

KVM — инфраструктурное решение: быстрее, гибче и лучше автоматизируется, но требует понимания virtio, сети и прав доступа. VirtualBox выигрывает простотой и кроссплатформенностью, особенно для разовых задач и USB-периферии. Разумная стратегия — держать KVM основной платформой, а VirtualBox использовать как лёгкий инструмент для экспериментов и проверки образов.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте