Глиф Учебники

Урок 1. Гипервизор, виртуальные машины и контейнеры

Курс «Proxmox VE» · урок 1 из 9 · 4 минуты чтения

Прежде чем ставить Proxmox, полезно понять, что именно он делает. В этом уроке — основные слова, без которых дальше будет непонятно: гипервизор, виртуальная машина, контейнер, узел и гость.

Что такое виртуализация

Обычный сервер большую часть времени почти не нагружен: сайт или база данных занимают малую долю процессора и памяти. Виртуализация позволяет разделить один физический компьютер на несколько независимых «компьютеров» и загрузить его полезной работой.

Каждый такой виртуальный компьютер думает, что он настоящий: у него свой процессор, память, диск и сетевая карта. Внутри ставится обычная операционная система — Ubuntu, Debian, Windows — и обычные программы. Если внутри одной машины что-то сломалось, остальные продолжают работать.

Гипервизор

Гипервизор — программа, которая создаёт виртуальные машины и делит между ними ресурсы настоящего компьютера. Гипервизоры делят на два вида:

Proxmox VE — гипервизор первого типа: его ставят на сервер вместо Windows или другой системы, а управляют им с другого компьютера через браузер.

Первый тип работает прямо на оборудовании ВМ Ubuntu ВМ Windows ВМ Debian Proxmox VE — гипервизор сервер: процессор, память, диски Второй тип программа внутри вашей системы ВМ Ubuntu ВМ Windows ВМ Debian VirtualBox — гипервизор ваша система — лишний слой ноутбук или обычный ПК
Гипервизор первого типа, Proxmox VE, стоит прямо на оборудовании сервера, а гипервизор второго типа, VirtualBox, работает поверх вашей системы.

Виртуальная машина

Виртуальная машина (ВМ, по-английски VM — virtual machine) — полная копия компьютера в программе. В Proxmox их запускает QEMU с модулем ядра Linux KVM: QEMU изображает оборудование, а KVM использует аппаратную виртуализацию процессора (Intel VT-x или AMD-V), чтобы машина работала почти так же быстро, как настоящая.

У виртуальной машины своё ядро операционной системы, поэтому в ней можно запустить что угодно: Windows, любой Linux, FreeBSD. Цена — накладные расходы: машине нужна память под своё ядро и свои кэши, а загрузка идёт столько же, сколько у обычного компьютера.

Контейнер

Контейнер — более лёгкий способ разделить сервер. Контейнер не изображает оборудование: программы внутри него работают на ядре самого сервера, но видят только свои файлы, процессы и сеть. Снаружи контейнер выглядит как отдельная система Linux со своим адресом, пользователями и пакетами.

Proxmox использует контейнеры LXC (Linux Containers). Контейнер запускается за секунды и почти не тратит лишней памяти. Ограничения:

Виртуальная машина 100 программы Windows своё ядро оборудование изображает QEMU только Linux, своего ядра нет запуск за секунды Контейнер 101 программы Debian Контейнер 102 программы Ubuntu Proxmox VE: ядро Linux сервера с модулем KVM — общее для контейнеров оборудование сервера: процессор с VT-x или AMD-V, память, диски
У виртуальной машины своё ядро и оборудование, которое изображает QEMU, а контейнеры LXC работают на общем ядре Linux сервера.

Сравнение

Виртуальная машинаКонтейнер LXC
Какие системылюбые: Windows, Linux, BSDтолько Linux
Ядросвоёобщее с сервером
Запусккак у компьютера, десятки секундсекунды
Расход памятибольше: своё ядро, свои кэшименьше: только сами программы
Изоляциясильнаяслабее
Перенос без остановкида, в кластеренет, только с перезапуском

Правило простое: Windows и всё, где важна изоляция, — в виртуальную машину; лёгкие службы на Linux (DNS, веб-сервер, база для домашних нужд) — в контейнер.

Контейнеры LXC и Docker — разные вещи. LXC — целая система Linux с входом, пользователями и службами. Docker запускает одно приложение из готового образа. Ставить Docker прямо на сервер Proxmox документация не советует: обычно его ставят внутрь виртуальной машины. О самом Docker — в теме Docker.

Что добавляет Proxmox

KVM и LXC есть в любом Linux. Proxmox VE собирает их в одну систему и добавляет:

Слова, которые встретятся в курсе

Datacenter — общие настройки всех узлов узел 1 — физический сервер гости и их номера VMID 100 виртуальная машина 101 контейнер хранилища local local-lvm узел 2 — физический сервер гости и их номера VMID 102 виртуальная машина 100 уже есть на узле 1 хранилища local local-lvm
В Datacenter входят узлы, у каждого узла свои гости и хранилища, а номер VMID не повторяется во всём кластере.

Коротко

Проверьте себя

1. Какую систему можно запустить только в виртуальной машине, но не в контейнере LXC?
2. Почему контейнер запускается быстрее виртуальной машины?
3. Что означает «гипервизор первого типа»?
4. С какого номера начинаются VMID гостей в Proxmox?