Что такое KVM гипервизорdevops-64

KVM (Kernel-based Virtual Machine) — это встроенный в Linux гипервизор типа 1 (bare-metal), который превращает ядро Linux в гипервизор для полной виртуализации. Это ведущее решение для виртуализации в Linux-экосистеме.

Основные характеристики KVM

  1. Архитектура:

    • Модуль ядра (kvm.ko)
    • Процессорные модули (kvm-intel.ko или kvm-amd.ko)
    • Использует аппаратную виртуализацию (Intel VT-x/AMD-V)
  2. Ключевые особенности:

    • Полноценная виртуализация (не паравиртуализация)
    • Поддержка SMP гостевых систем
    • Живая миграция виртуальных машин
    • Изоляция ресурсов через cgroups и namespaces

Как работает KVM

  1. Стек виртуализации:

    Приложение → QEMU → KVM модуль → Ядро Linux → Аппаратура
    
  2. Процесс запуска ВМ:

    • QEMU создает процесс для каждой ВМ
    • KVM переводит CPU в режим гостевой ОС
    • Обработка привилегированных инструкций через гипервизор

Преимущества KVM

  1. Производительность:

    • Близкая к bare-metal (менее 3% оверхеда)
    • Поддержка PCI passthrough
    • Оптимизации VirtIO
  2. Интеграция с Linux:

    • Использует стандартный планировщик Linux
    • Работает с обычными процессами ОС
    • Поддержка SELinux, cgroups v2
  3. Масштабируемость:

    • До 4096 vCPU на хосте
    • До 256 vCPU на ВМ
    • Поддержка TB-памяти

Пример создания ВМ

  1. Проверка поддержки виртуализации:
$ grep -E '(vmx|svm)' /proc/cpuinfo
  1. Запуск виртуальной машины:
qemu-system-x86_64 \
  -enable-kvm \
  -cpu host \
  -m 8G \
  -smp 4 \
  -drive file=vm.qcow2,format=qcow2

Управление KVM

Основные инструменты:

  • libvirt (унифицированный API)
  • virt-manager (GUI)
  • virsh (CLI инструмент)

Пример управления через virsh:

# Список ВМ
virsh list --all

# Запуск ВМ
virsh start vm1

# Просмотр информации
virsh dominfo vm1

Использование в облаках

KVM — основа многих облачных платформ:

  • OpenStack (Nova compute)
  • AWS (использует KVM в Nitro)
  • Google Cloud
  • Proxmox VE

Безопасность KVM

  1. sVirt (Security-enhanced virtualization)
  2. SEV (AMD Secure Encrypted Virtualization)
  3. Intel SGX поддержка

Резюмируем: KVM — это высокопроизводительный гипервизор уровня ядра, который превращает Linux в мощную платформу виртуализации. Его глубокая интеграция с ядром Linux, поддержка аппаратного ускорения и богатый набор функций делают его предпочтительным выбором для enterprise-виртуализации и облачных сред.