📌 KVM
KVM (Kernel-based Virtual Machine) — встроенный в Linux Kernel модуль, превращающий ядро в полноценный гипервизор. Позволяет запускать изолированные виртуальные машины с доступом к CPU и RAM через аппаратную виртуализацию.
🧠 Как работает
KVM использует:
- Hardware virtualization расширения: Intel VT-x, AMD-V
- Модули ядра:
kvm.ko
,kvm-intel.ko
,kvm-amd.ko
- QEMU как пользовательский уровень для эмуляции устройств
Каждая VM — это обычный Linux процесс, использующий /dev/kvm
для взаимодействия с гипервизором.
Компоненты:
- /dev/kvm — интерфейс между QEMU и ядром
- KVM API — ioctl-интерфейс управления ВМ
- VMCS / VMCB — аппаратные структуры управления виртуализацией
- EPT / NPT — вложенные таблицы страниц
Поддерживает:
- SMP (несколько vCPU)
- VirtIO для ускоренного ввода-вывода
- NUMA, PCI Passthrough, HugePages
- Live migration (через libvirt или QEMU)
⚙️ Где применяется
Область | Применение |
---|---|
Cloud | Основной гипервизор для OpenStack, Proxmox |
DevOps | Локальные среды разработки и тестирования |
CD | Автоматизация билдов и тестов в изоляции |
NFV | Сетевые функции виртуализированы |
✅ Преимущества
- Встроен в Linux Kernel, нет стороннего ядра
- Высокая производительность благодаря аппаратной виртуализации
- Хорошо масштабируется под многопроцессорные VM
- Активно развивается и используется в индустрии
❌ Недостатки
- Требует Hardware virtualization
- Без libvirt или virt-manager — сложность управления
- Некоторые устройства требуют passthrough для высокой скорости