Top.Mail.Ru
Базовые знания о виртуализации: понятия, технологии, инструменты


Mar 21, 2025

Базовые знания о виртуализации: понятия, технологии, инструменты

Виртуализация — один из ключевых инструментов в современной ИТ-инфраструктуре. Она позволяет запускать несколько изолированных операционных систем на одном физическом сервере, экономя ресурсы и повышая гибкость работы.

Современные операционные системы, включая Linux, Windows, macOS, а также специализированные гипервизоры (например, VMware ESXi, Proxmox VE, XenServer) предоставляют собственные механизмы и интерфейсы для управления виртуальными машинами. Например:

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


🔧 Основы виртуализации

Hypervisor (гипервизор)

Программа, которая управляет виртуальными машинами. Бывает двух типов:


VM (Virtual Machine)

Полноценная, изолированная система с собственной ОС, эмулируемыми устройствами, памятью и CPU. Для пользователя VM — это обычный компьютер, просто виртуальный.


vCPU (Virtual CPU)

Виртуальный процессор, предоставляемый VM. Гипервизор отображает vCPU на физические ядра или потоки.


⚙️ Оптимизация виртуальных машин

CPU Pinning

Закрепление виртуальных процессоров за конкретными физическими ядрами. Это снижает задержки и повышает стабильность работы.

Huge Pages

Память в Linux по умолчанию управляется страницами по 4 KB. Huge Pages — это большие страницы (2 MB или 1 GB), которые ускоряют доступ к памяти и снижают нагрузку на TLB.

NUMA (Non-Uniform Memory Access)

Архитектура, в которой каждый CPU имеет “свою” память. Для максимальной производительности VM лучше размещать vCPU и RAM в рамках одного NUMA-узла.


🧩 Устройства ввода-вывода и проброс

SR-IOV (Single Root I/O Virtualization)

Позволяет физическому устройству (например, сетевой карте) создать множество виртуальных функций (VF), которые можно напрямую назначить VM.

PCI Passthrough

Позволяет VM работать с физическим устройством напрямую — например, с видеокартой, диском или сетевой картой. Используется с VFIO и IOMMU.

VirtIO

Набор паравиртуальных драйверов для дисков, сети и других устройств. Обеспечивает более быструю работу VM за счёт прямого взаимодействия с гипервизором.


💾 Диски и хранилища

Виртуальные диски

Thin Provisioning

Выделение пространства по мере использования, без предварительного резервирования всего объема.

Snapshots

Позволяют сохранить состояние диска или всей VM в определённый момент времени.

VirtIO Disk

Паравиртуальный драйвер для ускоренной работы дисков.


🌐 Сетевые технологии

Типы сетевых подключений VM:

Tap-интерфейсы

Виртуальные сетевые устройства уровня L2, используемые для подключения VM к bridge.

VirtIO Net

Паравиртуальный сетевой интерфейс с высокой производительностью.

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

Часто гипервизоры запускают dnsmasq для DHCP, DNS, TFTP (например, libvirt).

PXE Boot

Поддержка загрузки VM по сети, используется для автоматической установки.

9p / VirtFS

Простой механизм шаринга директорий между хостом и VM.


🧰 Инструменты и сервисы

KVM

Модуль ядра Linux, превращающий систему в гипервизор. Работает с QEMU.

QEMU

Эмулятор и виртуализатор, может использовать KVM для ускорения.

libvirt

Фреймворк для управления виртуализацией. Предоставляет virsh, virt-manager, API.

Cloud-init

Автоматизация инициализации VM: пользователь, SSH, hostname, сеть и др.


📌 Заключение

Виртуализация — это не только запуск одной ОС внутри другой. Это целая экосистема драйверов, сервисов и утилит, которые позволяют гибко управлять вычислительными ресурсами, повышать эффективность и автоматизировать развертывание сервисов.