Виртуализация
Что такое KVM?
KVM is full hardware virtualisation built into the Linux kernel, giving each guest its own kernel and hardware-enforced isolation from other tenants. Because a KVM guest runs its own kernel, it can load kernel modules, run non-Linux operating systems, use real swap and support nested virtualisation.
Почему KVM важен
Поскольку гость KVM запускает собственное ядро, он может загружать модули ядра, запускать не-Linux операционные системы, использовать настоящий swap и поддерживать вложенную виртуализацию. Память, выделенная гостю KVM, действительно зарезервирована, что является практическим отличием от контейнерной виртуализации.
KVM на практике
Когда вы запускаете KVM-сервер, первое, что вы проверяете, — это /proc/cpuinfo в гостевой системе: если он не совпадает с флагами хоста, вы, скорее всего, видите паравиртуализированные обходные пути, а не полный KVM. Вы устанавливаете выделение памяти с реальными резервированиями: overcommit вызовет срабатывание OOM-киллера в гостевой системе, пока хост выглядит незагруженным. Если вы неправильно настроите вложенную виртуализацию, вы потеряете аппаратное ускорение страничной адресации, и гостевые системы будут работать на доле скорости. Ошибка стоит вам производительности, которую нельзя восстановить без перезагрузки.
Что люди часто понимают неправильно в отношении KVM
Люди предполагают, что KVM — это то же самое, что OpenVZ или LXC, потому что оба используют ядро Linux. Исправление: KVM даёт каждой гостевой системе собственное ядро, тогда как контейнеры используют ядро хоста. Вы можете загружать модули ядра и запускать не-Linux ОС только на KVM. Изоляция с общим пространством имён не обеспечивается аппаратно.
KVM — частые вопросы
Что означает KVM для производительности?
Аппаратная виртуализация KVM означает, что у каждой гостевой системы собственное ядро, поэтому производительность CPU и памяти близка к нативной. Память действительно резервируется, а не разделяется. Вы можете ожидать предсказуемой, изолированной пропускной способности по сравнению с контейнерами.
Можно ли запускать Windows на KVM?
Да, гостевая система KVM запускает собственное ядро, поэтому она может запускать не-Linux операционные системы, такие как Windows. Вам нужно будет загрузить ISO и подключить VNC-консоль. Лицензия Windows Server доступна как опция в некоторых регионах.
Где встречается KVM
- Какой самый дешёвый VPS, который действительно пригоден для работы? Примерно за $4 в месяц вы получаете 1 vCPU, 1 ГБ ОЗУ и 20 ГБ NVMe на настоящей KVM-виртуализации. Этого действительно достаточно для WireGuard VPN, DNS-рез…
- Как выбрать VPS-провайдера? Проверьте пять вещей: тип виртуализации (KVM, а не OpenVZ), выделенные ли ядра, в какой юрисдикции находится сервер, какие данные о личности собирает прова…
- Можно ли установить любую операционную систему на VPS? На KVM — да. OnionVPS предоставляет шаблоны для Ubuntu, Debian, AlmaLinux, Rocky, Fedora, Arch, Alpine, NixOS, FreeBSD, OpenBSD, Windows Server, Proxmox и …
- Что такое KVM-виртуализация? KVM (Kernel-based Virtual Machine) — это полная аппаратная виртуализация, встроенная в ядро Linux, использующая расширения процессора для запуска каждой го…
- Что отличает OnionVPS от других VPS-провайдеров? Четыре вещи: отсутствие какой-либо верификации личности, оплата только криптовалютой без участия карт или банков, 138 локаций в 116 странах, включая настоя…
- Что включено в каждый тариф? Полный root-доступ, виртуализация KVM с поддержкой собственного ядра, загрузка собственных ISO, консоль VNC внеполосного доступа, один IPv4-адрес, маршрути…
Больше из раздела «виртуализация»
- OpenVZ
- OpenVZ — это контейнерная виртуализация, в которой каждый экземпляр разделяет ядро хоста, поэтому гости не могут загружать модули ядра или запускать другую операционную систему.
- LXC
- LXC — это нативная контейнеризация Linux, которая изолирует процессы с помощью namespace и cgroups, разделяя ядро хоста.
- Гипервизор
- Гипервизор — это программный слой, который создаёт и запускает виртуальные машины, распределяя между ними физические CPU, память и ввод-вывод.
- Nested virtualisation
- Вложенная виртуализация позволяет виртуальной машине самой запускать виртуальные машины, предоставляя гостю расширения виртуализации процессора.
- vCPU
- vCPU — это виртуальный процессор, предоставляемый гостевой системе, поддерживаемый временем планирования на физическом ядре или потоке.
- cloud-init
- cloud-init — стандартный механизм настройки виртуальной машины при первой загрузке, использующий метаданные, предоставляемые платформой.