Top.Mail.Ru
КОНФИГУРАТОР Серверы ▶
Сетевое оборудование ▶
СХД ▶
IP-телефоны IP-камеры Источники бесперебойного питания (ИБП) Комплектующие Готовые решения Серверы под задачу
О компании Купить в лизинг Блог Отзывы Доставка Гарантия Контакты Работа у нас Реквизиты Спецпредложения Игровые ПК на ISKRAPC Заявка в тех поддержку
Эксперты в подборе IT-оборудования

KVM виртуализация: полное руководство по настройке и работе с гипервизором Linux

9 октября 2026
KVM виртуализация: полное руководство по настройке и работе с гипервизором Linux

KVM (Kernel-based Virtual Machine) - гипервизор, встроенный в ядро Linux. Он превращает обычный Linux-сервер в хост для виртуальных машин: ничего не нужно докупать, достаточно процессора с аппаратной виртуализацией и пары пакетов. KVM в ядре с 2007 года, на нём работают Proxmox VE, OpenStack, большинство облаков и российские платформы виртуализации.

Чтобы не путать: KVM-переключатель (Keyboard-Video-Mouse) - совсем другая вещь, это устройство для управления несколькими серверами с одной клавиатуры и монитора. Про него у нас есть отдельная статья о KVM over IP. Здесь речь о гипервизоре.

Ниже разберём, как устроена связка KVM, QEMU и libvirt, как поставить её на Ubuntu и RHEL, создать и настроить виртуальные машины, выбрать формат дисков, сделать бэкап и что проверять, если что-то не работает.

KVM изнутри: не просто модуль ядра

Когда говорят «KVM виртуализация», обычно имеют в виду связку из нескольких компонентов. Модуль ядра kvm.ko (вместе с kvm-intel.ko или kvm-amd.ko) отвечает за низкоуровневое управление процессором и памятью: запускает код гостевой системы прямо на физических ядрах через расширения Intel VT-x или AMD-V и изолирует его от хоста.

Одного модуля мало: нужен ещё компонент, который эмулирует устройства - диски, сетевые карты, видео. Эту работу делает QEMU. Он работает как обычный процесс в пространстве пользователя, но благодаря интеграции с KVM получает аппаратное ускорение. Получается гибрид: QEMU отвечает за периферию, а KVM гоняет виртуальные процессоры на физических ядрах.

Поверх этой связки обычно работает libvirt - библиотека и служба управления виртуализацией. Она даёт единый API для KVM, Xen, LXC и других технологий. Через libvirt работают графический virt-manager, консольный virsh, веб-консоль Cockpit и многие системы управления.

Как запускается виртуальная машина:

  1. libvirt по описанию ВМ (XML-файлу) запускает процесс QEMU и выделяет память.
  2. Модуль KVM загружает виртуальные процессоры на физические ядра.
  3. Процессор выполняет код гостевой ОС в изолированном режиме.
  4. Когда гость обращается к устройству, управление переходит в QEMU, тот эмулирует операцию и возвращает его обратно в KVM.

Такие переключения происходят тысячи раз в секунду. Аппаратная поддержка виртуализации и паравиртуальные драйверы virtio держат накладные расходы на уровне нескольких процентов.

KVM относят к гипервизорам первого типа: сам Linux с модулем KVM становится гипервизором и работает с железом напрямую. Строго формально тут есть спор, потому что на хосте работает полноценная ОС, подробнее про классификацию - в статье что такое гипервизор и какие бывают типы.

С чего начать: готовим систему к виртуализации

Первый шаг - проверить, поддерживает ли процессор аппаратную виртуализацию:

grep -E -c '(vmx|svm)' /proc/cpuinfo

Если вывод больше нуля - всё в порядке. Флаг vmx указывает на Intel VT-x, svm - на AMD-V. Если получили ноль, виртуализация выключена в BIOS: опция обычно называется Intel Virtualization Technology, SVM Mode или AMD-V. Как её найти и включить, разобрано в статье про Virtualization Technology в биосе.

Ubuntu и Debian

Установка на Ubuntu Server по официальной документации:

sudo apt update

sudo apt install qemu-kvm libvirt-daemon-system virtinst

Графический virt-manager ставится отдельно (sudo apt install virt-manager), на сервере без графики он не нужен. Проверить, что KVM доступен, удобно утилитой kvm-ok из пакета cpu-checker:

sudo apt install cpu-checker

kvm-ok

RHEL 9, AlmaLinux, Rocky Linux

CentOS Linux снят с поддержки, его место заняли RHEL и совместимые дистрибутивы. Пакеты ставятся через dnf:

sudo dnf install qemu-kvm libvirt virt-install virt-viewer

В RHEL 9 libvirt разделён на отдельные службы (virtqemud, virtnetworkd, virtstoraged и другие). Red Hat запускает их так:

for drv in qemu network nodedev nwfilter secret storage interface; do sudo systemctl start virt${drv}d{,-ro,-admin}.socket; done

Для управления ВМ в RHEL 9 Red Hat предлагает веб-консоль Cockpit. В отечественных Astra Linux и ALT виртуализация тоже построена на QEMU/KVM и libvirt, но названия пакетов и порядок установки смотрите в документации конкретной версии.

Проверка и права

После установки проверяем, что модуль KVM загрузился, и прогоняем встроенную проверку хоста:

lsmod | grep kvm

sudo virt-host-validate qemu

В выводе lsmod должны быть kvm_intel или kvm_amd. virt-host-validate покажет PASS, WARN или FAIL по каждому пункту: аппаратная виртуализация, доступ к /dev/kvm, IOMMU и так далее.

Чтобы управлять виртуальными машинами без sudo, добавьте пользователя в группу libvirt и перелогиньтесь:

sudo usermod -aG libvirt $USER

Управление виртуальными машинами: от кликов до автоматизации

Virt-manager хорош для знакомства: открываете, нажимаете «Create a new virtual machine», выбираете ISO-образ, назначаете ресурсы - и через несколько минут ВМ работает. Для повседневной работы на сервере удобнее консоль virsh, у неё доступ ко всем функциям libvirt:

virsh list --all # все ВМ, включая выключенные

virsh start vm-name # запуск

virsh shutdown vm-name # корректное выключение

virsh destroy vm-name # принудительное выключение

virsh console vm-name # подключиться к консоли

virsh autostart vm-name # запускать вместе с хостом

Создание ВМ из консоли

Без графики виртуальную машину создают утилитой virt-install. Пример для Ubuntu-гостя с диском 40 ГБ и подключением к сетевому мосту br0:

virt-install \

  --name vm1 \

  --memory 4096 --vcpus 2 \

  --disk size=40,format=qcow2,bus=virtio \

  --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \

  --os-variant ubuntu24.04 \

  --network bridge=br0,model=virtio \

  --graphics vnc

Список доступных значений --os-variant выводит osinfo-query os. Правильный вариант ОС важен: по нему libvirt выбирает драйверы и настройки по умолчанию.

Клонирование виртуальной машины - частая задача при создании тестовых сред:

virt-clone --original vm-template --name vm-clone-1 --auto-clone

Для массового развёртывания пишут скрипты или используют Ansible с модулями для libvirt, а начальную настройку гостей делают через cloud-init. Так можно поднять десятки одинаковых машин за несколько минут.

Живая миграция

Если у хостов общее хранилище (NFS, iSCSI, Ceph), работающую машину можно перенести без остановки:

virsh migrate --live vm-name qemu+ssh://target-host/system

Без общего хранилища тоже можно, с ключом --copy-storage-all, но тогда по сети переезжает и весь диск, и миграция идёт заметно дольше. Подробнее о механике - в статье про живую миграцию виртуальных машин.

Сеть: NAT и мост

По умолчанию libvirt создаёт сеть default с NAT через мост virbr0: машины выходят в интернет, но снаружи их не видно. Для рабочих серверов обычно нужен сетевой мост (bridge): виртуальные машины получают адреса из той же сети, что и хост, и доступны другим компьютерам.

На Ubuntu мост описывают в netplan, например в файле /etc/netplan/01-bridge.yaml:

network:

  version: 2

  ethernets:

    eno1:

      dhcp4: false

  bridges:

    br0:

      interfaces: [eno1]

      addresses: [192.168.1.10/24]

      routes:

        - to: default

          via: 192.168.1.1

      nameservers:

        addresses: [192.168.1.1]

Имя интерфейса и адреса подставьте свои. Применять настройки на удалённом сервере лучше командой sudo netplan try: если связь пропадёт, через 120 секунд конфигурация откатится сама. В RHEL и совместимых мост создают через nmcli или Cockpit.

Хранилища: qcow2, raw и пулы libvirt

Диск виртуальной машины - это файл на хосте или блочное устройство. От выбора формата зависят скорость, удобство снапшотов и расход места:

ФорматПлюсыМинусыКогда брать
qcow2Тонкое выделение места, встроенные снапшоты, сжатиеЧуть медленнее raw на интенсивной записиУниверсальный вариант по умолчанию, тестовые и большинство рабочих ВМ
rawМаксимальная скорость, проще форматНет встроенных снапшотов, на части ФС занимает весь объём сразуНагруженные базы данных, когда снапшоты делаются средствами хранилища
Логический том LVMСкорость блочного устройства, снапшоты LVMСложнее переносить и менять размерХосты, где диски ВМ живут на отдельной группе томов
Сетевое хранилище (iSCSI, Ceph RBD, NFS)Общий доступ для нескольких хостов, живая миграцияЗависимость от сети и её скоростиКластер из нескольких хостов

Тонкое выделение (thin provisioning) экономит место: диск растёт по мере записи данных. Создаётся так:

qemu-img create -f qcow2 -o preallocation=metadata disk.qcow2 100G

Файл весит несколько мегабайт, а гостевая система видит диск на 100 ГБ. Следите за свободным местом на хосте: если тонкие диски вырастут больше, чем есть на томе, остановятся все ВМ на нём.

libvirt хранит диски в пулах. Пул default - каталог /var/lib/libvirt/images. Отдельный пул удобно завести под быстрый массив:

virsh pool-define-as fast dir --target /srv/vm-fast

virsh pool-build fast

virsh pool-start fast

virsh pool-autostart fast

Производительность: выжимаем максимум из гипервизора

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

CPU pinning - закрепление виртуальных процессоров за конкретными физическими ядрами. Снижает задержки и улучшает работу кэша. В конфиге ВМ (virsh edit vm-name) указываете:

4

Теперь четыре виртуальных процессора этой машины работают только на ядрах 2-5. Для жёсткой привязки каждого vCPU к своему ядру используют блок cputune с элементами vcpupin.

NUMA важна для серверов с двумя процессорами. Если виртуальная машина обращается к памяти, подключённой к другому процессору, скорость падает. Привязка памяти ВМ к одному NUMA-узлу:

virsh numatune vm-name --mode strict --nodeset 0 --config

Hugepages - большие страницы памяти (2 МБ или 1 ГБ вместо стандартных 4 КБ). Снижают нагрузку на TLB процессора и ускоряют доступ к памяти. На хосте резервируем страницы, в конфиге ВМ включаем их использование:

sudo sysctl vm.nr_hugepages=1024

  

Драйверы virtio обязательны для нормальной скорости дисков и сети. Это паравиртуальные драйверы: гостевая система знает, что работает в виртуальной машине, и обменивается данными с гипервизором без эмуляции старого железа. В Linux они уже в ядре, для Windows их ставят из образа virtio-win.

Тип виртуального дискаКак работаетКогда брать
IDEЭмуляция старого контроллераТолько для древних ОС без драйверов virtio
SATAЭмуляция контроллера AHCIУстановка Windows без драйверов virtio, совместимость
virtio-blkПаравиртуальный диск, минимум накладных расходовБольшинство Linux-машин и Windows с драйверами virtio
virtio-scsiПаравиртуальный SCSI-контроллерМного дисков в одной ВМ, нужны TRIM/discard и SCSI-команды

Разница между эмуляцией IDE/SATA и virtio на дисковых операциях - многократная, поэтому на рабочих машинах virtio ставят всегда.

Over-committing - выдача виртуальным машинам в сумме больше процессоров и памяти, чем физически есть, в расчёте на то, что не все будут использовать ресурсы одновременно. Для процессоров это нормальная практика, с памятью - осторожнее. Работает в тестовых средах и VDI, в рабочих системах требует мониторинга: как только хост начнёт активно использовать своп или перегружать процессор, проседают все ВМ разом.

Резервное копирование ВМ

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

virsh snapshot-create-as vm-name before-update

virsh snapshot-revert vm-name before-update

От смерти диска или хоста снапшот не спасёт: он лежит там же, где сама машина. Резервная копия должна уезжать на другое устройство. Варианты по нарастанию удобства:

  1. Выключить ВМ, скопировать файл диска и XML-описание (virsh dumpxml vm-name) на другой сервер или NAS. Просто и надёжно, но с простоем.
  2. Внешний снапшот на время копирования: машина работает, базовый диск копируется в фоне, потом изменения сливаются обратно. Это делается скриптами на virsh, в свежих версиях libvirt есть и штатная команда virsh backup-begin.
  3. Готовая система бэкапа. Для небольших компаний практичнее всего Proxmox VE с Proxmox Backup Server: инкрементальные копии, дедупликация и восстановление в пару кликов.

Восстановление проверяйте хотя бы раз в квартал: бэкап, который ни разу не разворачивали, нельзя считать бэкапом.

Когда KVM - лучшее решение

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

KVM vs VMware ESXi. VMware даёт vMotion, HA, DRS и единую консоль из коробки, но требует лицензий, а для поддержки - оборудования из списка совместимости. KVM бесплатен и работает на любом сервере, который поддерживает Linux, а кластерные функции дают платформы поверх него: Proxmox, oVirt, OpenStack. Если у вас Linux-инфраструктура и команда знает эту экосистему, KVM логичнее.

KVM vs Xen. Xen исторически был первым массовым гипервизором для Linux, но у него сложнее архитектура: нужен отдельный управляющий домен Dom0. KVM проще в настройке и обслуживании, потому что это часть ядра. AWS долго работал на Xen, а с 2017 года переводит инстансы на свою платформу Nitro, построенную на KVM.

KVM vs Hyper-V. Если инфраструктура на Windows и Active Directory, Hyper-V встроен в Windows Server и интегрирован с ней. Если на Linux - KVM. Запускать на каждом из них гостей «чужой» ОС можно, просто родная интеграция удобнее.

Общий расклад по платформам, включая цены и лицензии, - в нашем сравнении гипервизоров 2026.

Где KVM особенно хорош:

  • облачные платформы: OpenStack и Apache CloudStack построены на KVM;
  • частные облака, где нужен полный контроль без привязки к вендору;
  • тестовые среды: быстро развернуть, клонировать, откатить снапшот, всё через API или командную строку;
  • рабочие сервисы на Linux, где нет смысла тащить отдельный гипервизор.

Для малого и среднего бизнеса важная оговорка: на «голом» KVM с virsh редко строят инфраструктуру компании. Обычно ставят платформу на его основе с веб-интерфейсом, кластером и бэкапом: Proxmox VE или российские zVirt и «Брест», которые тоже работают на KVM. Знание самого KVM пригодится и там: под капотом те же QEMU, virtio и те же настройки производительности.

Безопасность. Аппаратная виртуализация изолирует машины на уровне процессора: гостевая ОС не может прочитать память хоста или других ВМ без уязвимости в процессоре или гипервизоре. SELinux (sVirt) и AppArmor добавляют ещё один уровень защиты, ограничивая процессы QEMU. На новых процессорах KVM умеет запускать конфиденциальные ВМ (AMD SEV-SNP, Intel TDX), память которых зашифрована даже от администратора хоста.

Если что-то не работает

СимптомВероятная причинаЧто сделать
Нет /dev/kvm, lsmod не показывает kvm_intel / kvm_amdВиртуализация выключена в BIOSВключить Intel VT-x / SVM в BIOS, перезагрузить хост
«Permission denied» при запуске ВМ от пользователяПользователь не в группе libvirt / kvmsudo usermod -aG libvirt,kvm $USER, перелогиниться
virsh не подключается: «Failed to connect socket»Служба libvirt не запущенаUbuntu: sudo systemctl enable --now libvirtd; RHEL 9: запустить сокеты virtqemud и других служб
ВМ на мосту не получает адресIP остался на физическом интерфейсе, мост не поднятПеренести адрес на br0, проверить ip a и bridge link
Установщик Windows не видит дискДиск virtio, драйвера в установщике нетПодключить второй CD с virtio-win и загрузить драйвер на шаге выбора диска
Диски ВМ работают медленноЭмуляция IDE/SATA, кэш хоста, тонкий диск на медленном массивеПеревести на virtio, cache=none для баз данных, перенести диск на быстрый пул

Куда движется технология

KVM активно развивается. Появляются оптимизации под новые процессоры, улучшается живая миграция, снижаются накладные расходы. Интересное направление - контейнеры в лёгких виртуальных машинах: Kata Containers запускают каждый контейнер в микро-ВМ на KVM и добавляют изоляцию без заметной потери скорости.

Автоматизация тоже идёт вперёд. Terraform, Ansible и Kubernetes (через KubeVirt) работают с KVM через API libvirt, так что инфраструктуру можно описывать кодом и разворачивать одной командой. Новые механизмы ядра вроде io_uring снижают задержки дисковых операций, а улучшенная работа с NUMA ускоряет многопроцессорные конфигурации.

Начать можно за пять минут, установив пару пакетов. А довести хост до состояния эффективной системы - задача, где пригодится понимание процессоров, памяти, сети и дисков. KVM ничего из этого не прячет за мастерами настройки.

Вопросы и ответы

KVM - это что?

Гипервизор, встроенный в ядро Linux. С ним на одном сервере работает много виртуальных машин с Linux, Windows и другими ОС, используя аппаратную виртуализацию процессора.

Чем KVM отличается от QEMU?

KVM - модуль ядра, который запускает код виртуальных машин на процессоре. QEMU - программа, которая эмулирует для них устройства: диски, сеть, видео. Работают они вместе, поэтому часто пишут «QEMU/KVM».

KVM - гипервизор первого или второго типа?

Обычно его относят к первому типу: Linux с модулем KVM сам становится гипервизором и работает с железом напрямую. Формально на хосте работает полноценная ОС, поэтому иногда KVM называют гибридом.

Можно ли запускать Windows на KVM?

Да. Windows Server и настольные версии работают в KVM. Для нормальной скорости дисков и сети при установке подключают драйверы virtio из образа virtio-win.

По теме: Системные требования Proxmox, Docker vs LXC

Собираете хост под KVM или Proxmox?

Подберём сервер под ваши виртуальные машины: процессоры, память с запасом под рост, диски под нужный формат хранения. Соберём и протестируем перед отгрузкой. Посмотрите сервер с виртуализацией в каталоге или напишите нам: +7 (800) 551-80-12, info@ittelo.ru. Серверами мы занимаемся больше 11 лет и за это время накопили серьёзную экспертизу. Даём гарантию до 5 лет, берём сервер на постпродажное обслуживание и не пропадаем после отгрузки.

ПОДПИСКА

НА РАССЫЛКУ
ПОЛЕЗНЫЕ СТАТЬИ, АКЦИИ
И ЗАКРЫТЫЕ РАСПРОДАЖИ
Котик подписка
Похожие статьи
Вам также может быть интересно

ТОП-5 ошибок при выборе сервера
Товар добавлен в список сравнения
Перейти в сравнение
Продолжить просмотр
Заявка в тех поддержку
Загрузка формы…
Не удалось загрузить форму. Обновите страницу или свяжитесь с нами по телефону.
Консультация
ИТ-специалиста
Оставьте контакты — свяжемся с вами в течение нескольких минут и подготовим коммерческое предложение
IT-архитектор подберет сервер под вашу задачу
Заполните форму — наш специалист свяжется с вами в течение 15 минут, уточнит задачу и подготовит коммерческое предложение
Заказать сервер
Отправим конфигурацию вам на почту. Менеджер перезвонит в течение 15 минут
Зарегистрироваться в бонусной программе
Консультация
ИТ-специалиста
Оставьте контакты — свяжемся с вами в течение нескольких минут и подготовим коммерческое предложение