hostprofi.ru
Подобрать хостинг
Термин·буква Q

QEMU

краткое определение

QEMU (Quick EMUlator) — свободный эмулятор и виртуализатор с открытым исходным кодом, способный эмулировать различные аппаратные архитектуры (x86, ARM, MIPS, RISC-V) или использовать аппаратное ускорение KVM для нативной производительности.

QEMU — это две вещи одновременно: полнофункциональный эмулятор (запускает код x86 на ARM-процессоре и наоборот) и быстрый виртуализатор для нативных архитектур. В режиме эмуляции QEMU программно воспроизводит все аппаратные компоненты: CPU, память, диски, сетевые карты. В режиме KVM QEMU использует аппаратное ускорение процессора и работает с производительностью, близкой к нативной (5–10% накладных расходов).

Как работает

QEMU + KVM — стандартная пара для виртуализации в Linux. KVM предоставляет ядерный модуль для аппаратного ускорения, QEMU управляет виртуальными устройствами (диски, сеть, USB). Интерфейс управления — libvirt, который абстрагирует детали QEMU/KVM и предоставляет API для Proxmox, virt-manager и других.

Диски виртуальных машин в QEMU хранятся в формате QCOW2 (QEMU Copy-On-Write). Этот формат поддерживает снапшоты, сжатие, шифрование и тонкое выделение (thin provisioning). Один QCOW2-файл может содержать цепочку снапшотов с diff-блоками.

История

QEMU создал французский программист Фабрис Беллар (Fabrice Bellard) в 2003 году. Он же создал FFmpeg, tcc (Tiny C Compiler) и вычислил миллиард цифр числа Пи на стандартном ПК. Первая публичная версия QEMU вышла в 2003 году. KVM (Kernel-based Virtual Machine) интегрирован в ядро Linux в 2007 году. В 2007 году компания Qumranet разработала KVM и была приобретена Red Hat в 2008 году.

Режимы работы QEMU

  • Full system emulation — полная эмуляция другой архитектуры (медленно, но универсально)
  • KVM acceleration — нативная производительность на x86 (≥95% от bare-metal)
  • User mode emulation — запуск ELF-бинарников другой архитектуры без полной ОС
  • TCG (Tiny Code Generator) — JIT-компилятор для трансляции инструкций без KVM

На что обращать внимание

QEMU/KVM — основа большинства Linux-хостингов: Proxmox, OpenStack, oVirt, VDS-провайдеры — все используют QEMU под капотом. Важен выбор формата диска: QCOW2 гибок (снапшоты), но raw-образы производительнее на 5–10%. Для live migration между хостами нужен shared storage (Ceph, NFS, iSCSI).

QEMU и KVM: синергия

QEMU редко используется в одиночку — в production его связывают с KVM. KVM обеспечивает аппаратное ускорение виртуализации (через VT-x/AMD-V), QEMU предоставляет эмуляцию устройств. Управление связкой QEMU+KVM осуществляется через libvirt — стандартный демон виртуализации в Linux, используемый Proxmox VE и OpenStack. Virtio-драйверы для дисков и сети снижают оверхед I/O до 5--10% по сравнению с полной эмуляцией.

История QEMU

QEMU создал Фабрис Беллар (Fabrice Bellard) в 2003 году. Первоначально использовался для эмуляции других архитектур (ARM на x86). KVM-поддержка добавлена в 2007 году. В 2011 году QEMU 1.0 стал стандартом de facto для Linux-виртуализации. QEMU поддерживает эмуляцию ARM, RISC-V, PowerPC, MIPS — что позволяет разрабатывать под встраиваемые системы на x86-машине.

На что обращать внимание при QEMU на хостинге

Если хостер использует QEMU+KVM, проверьте наличие паравиртуализированных Virtio-драйверов в вашем образе. На Windows-гостях нужно ставить Virtio Windows Drivers отдельно — без них дисковый I/O в 5--10 раз медленнее. На Linux они встроены с ядра 2.6.25. Формат диска qcow2 поддерживает снапшоты и тонкое выделение (thin provisioning), raw немного быстрее, но не поддерживает снапшоты. Proxmox VE использует QEMU+KVM как основной гипервизор.

Другие термины