Виртуализация
Что такое Hypervisor?
A hypervisor is the software layer that creates and runs virtual machines, allocating physical CPU, memory and IO between them. A type-1 hypervisor runs directly on the hardware; KVM is unusual in being a type-1 hypervisor implemented as a Linux kernel module, which lets it use the whole Linux driver ecosystem.
Почему Hypervisor важен
Гипервизор типа 1 работает непосредственно на оборудовании; KVM необычен тем, что это гипервизор типа 1, реализованный как модуль ядра Linux, что позволяет использовать всю экосистему драйверов Linux.
Hypervisor на практике
Когда вы запускаете сервер на гипервизоре KVM, вы смотрите на фактическое выделение оборудования: vCPU, RAM, дисковый I/O. Вы регулируете это из панели, часто горячо добавляя память без перезагрузки. Если ошибиться, перегрузив хост, шумные нагрузки соседей будут душить CPU или IO вашего экземпляра, превращая правильно настроенную гостевую систему в вялую. Вложенная виртуализация означает, что вы можете запустить гипервизор внутри своего гипервизора, удобно для тестирования, но это стоит производительности и может запутать подсчёт собственных ресурсов.
Что люди часто понимают неправильно в отношении Hypervisor
Частая ошибка — считать гипервизор границей контейнера. Это не так. Гипервизор даёт полноценную виртуальную машину: собственное ядро, собственный /proc, без общих namespace. Люди предполагают, что процессы соседа невидимы или что кастомное ядро невозможно, а потом упираются в ограничения. Исправление: с KVM вы получаете настоящую изоляцию и контроль, поэтому можете загрузить собранный вручную образ или запустить вложенную виртуализацию — то, что контейнер не умеет.
Hypervisor — частые вопросы
Что значит «гипервизор первого типа»?
Гипервизор первого типа работает напрямую на оборудовании хоста, а не поверх операционной системы. KVM уникален тем, что это гипервизор первого типа, реализованный как модуль ядра Linux, поэтому он использует всю экосистему драйверов Linux для управления железом. Это даёт производительность «голой» виртуализации с гибкостью Linux.
Чем KVM отличается от контейнеров, таких как OpenVZ?
KVM обеспечивает настоящую виртуализацию: каждая гостевая система получает своё ядро, свой /proc, без общих namespace, так что у вас есть полный root-доступ и возможность запускать кастомные ядра. Контейнеры разделяют ядро хоста и namespace, что ограничивает возможности. С KVM вы получаете изоляцию и контроль, включая вложенную виртуализацию или загрузку собственного ISO.
Где встречается Hypervisor
- Полезна ли полнодисковое шифрование на VPS? Против физического изъятия выключенного диска — однозначно да: без вашей парольной фразы том является шифротекстом. Против атаки с доступом к работающему г…
- Каков ваш SLA по аптайму? 99,99% на инстанс, измеряется ежемесячно по доступности сети и гипервизора. Нарушения дают автоматический кредит по опубликованной шкале: 10% ниже 99,99%, …
- Может ли мой хостинг-провайдер видеть файлы на моём VPS? Технически да: любой провайдер с доступом к гипервизору может прочитать незашифрованный диск гостя и его память. Это верно для любой платформы виртуализаци…
- Что такое CPU steal time и почему это важно? Steal time — это процент времени, в течение которого ваш виртуальный процессор был готов к выполнению, но гипервизор отдал физическое ядро кому-то другому.…
- Безопасен ли VPS? Изоляция сильная: KVM обеспечивает разделение на уровне оборудования, и её взлом — это серьёзный исследовательский эксплойт. Реальный риск — не гипервизор,…
- Управляемый или неуправляемый VPS: кто обновляет сервер? На неуправляемом VPS провайдер гарантирует оборудование, сеть и гипервизор; всё выше ядра — ваше, включая обновления, файрвол и резервные копии. Управляемы…
Больше из раздела «виртуализация»
- KVM
- KVM — это полная аппаратная виртуализация, встроенная в ядро Linux, предоставляющая каждому гостю собственное ядро и аппаратно-обеспеченную изоляцию от других арендаторов.
- OpenVZ
- OpenVZ — это контейнерная виртуализация, в которой каждый экземпляр разделяет ядро хоста, поэтому гости не могут загружать модули ядра или запускать другую операционную систему.
- LXC
- LXC — это нативная контейнеризация Linux, которая изолирует процессы с помощью namespace и cgroups, разделяя ядро хоста.
- Nested virtualisation
- Вложенная виртуализация позволяет виртуальной машине самой запускать виртуальные машины, предоставляя гостю расширения виртуализации процессора.
- vCPU
- vCPU — это виртуальный процессор, предоставляемый гостевой системе, поддерживаемый временем планирования на физическом ядре или потоке.
- cloud-init
- cloud-init — стандартный механизм настройки виртуальной машины при первой загрузке, использующий метаданные, предоставляемые платформой.