Найти в Дзене
VN. IT News Technology

Proxmox для новичков: как быстро настроить виртуалки и контейнеры

Если у вас есть сервер, вы наверняка сталкивались с типичными проблемами администрирования. Классический подход выглядел так: мы устанавливали операционную систему — будь то Linux или Windows — и затем ставили на неё нужные приложения. Это могли быть веб-серверы, базы данных, файловые хранилища, почтовые сервисы или медиа-серверы. Такой способ до сих пор широко применяется, особенно если необходимы физическая изоляция систем или доступ к максимальному количеству ресурсов, например, для центральных баз данных или майнинговых ферм. Однако в большинстве случаев такой подход имеет массу неудобств. Допустим, вы поставили на сервер несколько критически важных сервисов, и внезапно одно из приложений перестаёт работать из-за обновления библиотек или конфликтующих пакетов. Что делать? Либо искать проблему, откатывать изменения и экспериментировать с версиями пакетов, либо сносить всё и поднимать систему заново. Docker частично решает эту проблему, создавая контейнеры и изолируя приложения друг
Оглавление
Proxmox
Proxmox

Proxmox — что это и зачем он нужен?

Если у вас есть сервер, вы наверняка сталкивались с типичными проблемами администрирования. Классический подход выглядел так: мы устанавливали операционную систему — будь то Linux или Windows — и затем ставили на неё нужные приложения. Это могли быть веб-серверы, базы данных, файловые хранилища, почтовые сервисы или медиа-серверы. Такой способ до сих пор широко применяется, особенно если необходимы физическая изоляция систем или доступ к максимальному количеству ресурсов, например, для центральных баз данных или майнинговых ферм. Однако в большинстве случаев такой подход имеет массу неудобств.

Допустим, вы поставили на сервер несколько критически важных сервисов, и внезапно одно из приложений перестаёт работать из-за обновления библиотек или конфликтующих пакетов. Что делать? Либо искать проблему, откатывать изменения и экспериментировать с версиями пакетов, либо сносить всё и поднимать систему заново. Docker частично решает эту проблему, создавая контейнеры и изолируя приложения друг от друга. Всё замечательно, пока обновления не затронут сам Docker. В случае сбоя контейнеры могут перестать запускаться, что снова приводит к необходимости исправлять ошибки, откатываться или тратить время на восстановление работоспособности.

Системное обновление без своевременных бэкапов — это ещё один риск. Чем дольше откладывать установку новых версий, тем выше шанс, что при обновлении операционная система слетит, и тогда придётся восстанавливать всё из резервных копий. А если полетело железо, восстановление может затянуться на долгие часы или даже дни. Приходится искать новое оборудование, устанавливать систему с нуля, заново настраивать приложения. Это неудобно и отнимает время. Именно здесь на сцену выходит Proxmox — мощный инструмент, который позволяет избежать этих проблем и создать гибкую, управляемую и отказоустойчивую серверную инфраструктуру.

Как Proxmox решает проблемы администрирования?

Как избежать всех этих неудобств и сделать серверную инфраструктуру более гибкой и надёжной? Один из лучших вариантов — это Proxmox. Устанавливаем Proxmox на единственный сервер, и он полностью меняет подход к управлению ресурсами. Самое приятное, что Proxmox бесплатен. Есть платная подписка с технической поддержкой и коммерческими репозиториями, но в бесплатной версии доступен весь функционал без каких-либо ограничений.

Proxmox позволяет создавать виртуальные машины (VM). Это не новинка, но теперь у нас появляется гибкость в управлении сервисами. Например, на сервере может работать несколько виртуальных машин с разными ОС: одна на Ubuntu, другая на Debian, третья на Windows. Вместо того чтобы ставить все сервисы на одну ОС, мы делим их на логические группы. Например, веб-сервер с базой данных и почтовыми сервисами работает в одной виртуалке, файловый сервер и медиасервер — в другой, а Docker-контейнеры с микросервисами — в третьей. Если что-то ломается, сбой не затрагивает весь сервер. Снимок виртуальной машины (Snapshot) или резервная копия (Backup) позволяют быстро восстановить работоспособность без долгих разбирательств.

У каждой виртуальной машины есть свой IP-адрес, что делает её полноценным изолированным сервером внутри сети. Помимо виртуальных машин, Proxmox поддерживает контейнеры LXC — это более лёгкая и быстрая альтернатива полноценным VM. Они удобны для развёртывания отдельных сервисов, таких как файловые хранилища, медиасерверы или веб-приложения. В отличие от Docker, который работает в пределах одной ОС и требует продуманной настройки портов, LXC-контейнеры получают собственные IP-адреса и работают как независимые серверы. Это устраняет конфликты портов и значительно упрощает администрирование. Кроме того, если контейнер выходит из строя, его можно легко восстановить из бэкапа.

Однако остаётся один нерешённый вопрос: если у нас один сервер, он может сломаться, и тогда всё перестанет работать. Как решить эту проблему? Используем Proxmox в режиме кластера. В этом случае виртуальные машины и контейнеры распределяются между несколькими серверами. Если один выходит из строя, сервисы автоматически перезапускаются на другом. Чтобы всё работало без перебоев, требуется централизованное хранилище (Storage Server)*, где хранятся виртуальные диски и контейнеры. Все узлы Proxmox-кластера должны быть подключены к этому хранилищу, что обеспечит бесперебойную работу даже в случае отказа одного из серверов.

Как устроен Proxmox и его установка

Внутреннее устройство системы

Proxmox построен на базе Linux Debian и использует KVM (Kernel-based Virtual Machine) для создания виртуальных машин. Управление виртуалками осуществляется через QEMU (Quick Emulator), что позволяет запускать гостевые операционные системы с высокой производительностью и доступом к аппаратным ресурсам. Для контейнеров используется встроенное ядро Linux с поддержкой LXC (Linux Containers), что делает возможным запуск лёгких, изолированных сред без необходимости эмулировать полную виртуальную машину.

Дополнительно Proxmox предлагает мощные сервисы и утилиты. Система поддерживает создание кластеров, прокси-серверов, управление правами пользователей, настройку сетей и централизованного хранилища, создание резервных копий и многое другое. Одним из главных преимуществ является удобный графический интерфейс (WebUI), который значительно упрощает управление всей инфраструктурой.

Установка Proxmox и обзор WebUI

Первым делом необходимо скачать последнюю версию Proxmox в виде ISO-образа с официального сайта. Затем записываем его на флешку, используя, например, Rufus. После этого загружаем сервер с флешки и приступаем к установке.

На выбор предлагается два режима установки: графический интерфейс или терминальный режим. Для удобства выбираем графический интерфейс, где указываем диск для установки. Если у вас несколько дисков, можно сразу настроить RAID-массив. Даже при наличии одного диска можно выбрать файловую систему: EXT4 или XFS. EXT4 считается более надёжной и совместимой, а XFS показывает лучшие результаты при работе с большими файлами, но может быть сложнее в восстановлении после сбоев. Оптимальный выбор — EXT4.

Proxmox автоматически распределяет пространство на жёстком диске:

- root-раздел (1/4 от общего объёма диска).

- swap-раздел (1/8 диска, минимум 4 ГБ, максимум 8 ГБ).

- minfree — резервное пространство в LVM-группе (по умолчанию 16 ГБ, если диск больше 128 ГБ).

- datasize — оставшееся пространство для хранения виртуальных дисков и контейнеров.

После этого выбираем страну, часовой пояс, раскладку клавиатуры, задаём пароль root и переходим к настройке сети. Если сервер подключён к DHCP-сети, он автоматически получит IP-адрес и сетевые параметры. Если настройки выполняются офлайн, выбираем сетевой интерфейс вручную.

Далее указываем Hostname в формате FQDN (например, `server.domain.com`), IP-адрес, маску сети, шлюз (Gateway) и DNS-серверы. После этого запускаем установку.

После успешной установки появится сообщение о необходимости перезагрузки системы. Теперь Web-интерфейс Proxmox доступен по указанному IP-адресу на порту 8006. Вход выполняется через браузер, после чего можно приступать к настройке виртуальных машин и контейнеров.

Разбор Web-интерфейса Proxmox

После успешной установки Proxmox перед нами открывается графическая оболочка WebUI, которая даёт полный контроль над системой. Управлять сервером можно на нескольких уровнях, иерархия интерфейса строится следующим образом:

YouTube channel NetworkwithChris
YouTube channel NetworkwithChris

Datacenter – управление всеми узлами

В левой части интерфейса отображается Datacenter, где находятся все серверы Proxmox в инфраструктуре. Здесь доступны следующие разделы:

- Summary – общая информация обо всех серверах в датацентре.

- Notes – возможность хранить текстовые заметки.

- Cluster – настройка кластера Proxmox.

- Ceph – управление хранилищем на базе Ceph.

- Options – глобальные параметры, включая настройку двухфакторной аутентификации.

- Storage – управление резервными копиями и дисковыми хранилищами.

- Replication – настройка репликации между нодами (необходимы минимум два узла).

- Permissions – управление пользователями, группами и ролями, а также создание API-токенов для мониторинга.

- HA – настройка правил высокодоступной архитектуры (перезапуск ВМ и контейнеров при отказе узла).

- SDN – создание виртуальных сетей для разделения клиентов и сервисов.

- ACME – автоматическая генерация SSL-сертификатов.

- Firewall – управление правилами брандмауэра.

- Metric Server – сбор и хранение метрик для мониторинга нагрузки.

- Resource Mappings – привязка физических PCI и USB устройств к виртуальным машинам.

- Notifications – настройка оповещений о событиях (например, сбои или критические ошибки в кластере).

Управление отдельным сервером (нодом)

Каждый сервер (нода) в интерфейсе также имеет свой раздел с детальными настройками:

- Summary – общая информация: загрузка процессора, потребление оперативной памяти и дискового пространства.

- Notes – текстовые заметки.

- Shell – встроенный терминал для работы с Proxmox из командной строки.

- System – управление запущенными процессами, возможность остановки, запуска и перезапуска сервисов.

- Network – список всех сетевых интерфейсов, включая виртуальные сети.

- Certificates – управление SSL-сертификатами.

- DNS – настройка DNS-серверов.

- Hosts – редактирование локального файла `/etc/hosts`.

- Options – настройка задержки запуска и изменение MAC-адреса для Wake-on-LAN.

- Updates – установка обновлений.

- Firewall – настройка брандмауэра.

- Disks – просмотр подключённых жёстких дисков и их разметки.

- Ceph и Replications – управление распределённым хранилищем и репликацией данных.

- Task Historyжурнал всех выполненных операций.

Благодаря понятной структуре интерфейса, WebUI Proxmox позволяет легко управлять виртуальными машинами, контейнерами и всей инфраструктурой в целом.

Установка и настройка Linux VM в Proxmox

Создание виртуальной машины

Виртуальные машины хранятся в двух местах: Local – для образов ISO и Local-lvm – для самих виртуальных машин. Рассмотрим установку Ubuntu 24.04.

1. Загружаем образ ISO в Storage -> Local -> Upload.

2. Создаём виртуальную машину: Create VM.

3. General:

- VM ID – идентификатор ВМ, используется в консоли для управления.

- Name – задаём любое имя.

- Start at boot – включаем, если хотим, чтобы машина запускалась автоматически при старте сервера.

- Tags – удобны при управлении большим количеством ВМ и контейнеров.

Настройки системы

4. OS:

- Указываем загруженный ISO-файл.

- Type: Linux.

- Version: оставляем по умолчанию.

5. System:

- Graphic Card: Default.

- Qemu Agent: включаем галочку (позволяет Proxmox взаимодействовать с ВМ).

- SCSI Controller: оставляем VirtIO SCSI single.

- BIOS: Default.

6. Disks:

- Disk size – указываем нужный размер.

- Storage – выбираем Local-lvm.

- Cache – Default.

7. CPU:

- Указываем количество ядер.

- Type: оставляем x86-64-v2-AES.

8. Memory:

- Выбираем объём ОЗУ (по умолчанию 4 ГБ – достаточно для большинства задач).

9. Network:

- Оставляем по умолчанию, если не создавали кастомные сети.

Запуск и настройка системы

После старта виртуальной машины заходим в Console и проходим стандартную установку Ubuntu.

Если Proxmox выводит предупреждение Guest Agent not configured, исправляем:

1. Заходим в ВМ через консоль.

2. Выполняем обновление:

-5

3. Устанавливаем QEMU Guest Agent:

-6

4. Добавляем в автозагрузку:

-7

5. Выключаем и включаем ВМ (не перезагрузка, а именно выкл/вкл).

Теперь можно подключаться к ВМ через SSH (PuTTY, MobaXterm) и использовать её в полноценном режиме.

Proxmox LXC Containers: установка и настройка

LXC-контейнеры vs Docker-контейнеры

LXC-контейнеры не стоит путать с Docker. Docker изолирует отдельные приложения, а LXC-контейнеры работают на уровне всей операционной системы. Это делает их ближе к полноценным виртуальным машинам. LXC-контейнеры получают отдельный IP-адрес в сети, поэтому их можно использовать как полноценные серверы без сложной сетевой настройки, как в Docker.

Как работают LXC-контейнеры?

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

LXC-контейнеры предлагают альтернативный вариант. У нас всё так же есть железо и система, но контейнеры используют ядро основного сервера вместо того, чтобы загружать собственное. Это делает их лёгкими, быстрыми и экономными по ресурсам, особенно по сравнению с полноценными ВМ.

Создание LXC-контейнера

1. Загрузка шаблонов

- Заходим в Storage → CT Templates и скачиваем нужные образы.

2. Создаём контейнер (Create CT):

- CT ID – идентификатор контейнера.

- Node – выбираем сервер, где будет размещён контейнер.

- Hostname – задаём имя.

- Unprivileged container – включаем, если не нужен root-доступ (повышенная безопасность).

- Nesting – позволяет запускать виртуальные среды внутри контейнера (например, для Docker или других LXC-контейнеров).

- SSH public key – загружаем, чтобы сразу подключаться по SSH.

3. Настройка ресурсов:

- Template – выбираем образ ОС.

- Disks – задаём объём хранилища (по умолчанию 8 ГБ, можно изменить).

- CPU – выбираем количество ядер (например, 2).

- Memory – минимум 512 МБ, но лучше 2 ГБ для быстрой работы.

4. Сетевые настройки:

- Network – если есть DHCP, контейнер получит IP автоматически. Static – фиксируем IP вручную.

- DNS – указываем домен и IP-адрес DNS-сервера (локальный или публичный).

Запуск и настройка контейнера

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

apt update && apt upgrade -y

Работа с LXC-контейнерами в Proxmox проста и удобна. Они создаются быстро, занимают минимум места и экономят системные ресурсы. Если нет строгой необходимости в полноценной виртуальной машине, используйте контейнеры – это существенно упростит администрирование.

Templates для VM и LXC. Linked vs Full Templates

Что такое шаблоны и зачем они нужны?

При создании виртуальной машины или контейнера часто возникает вопрос: «Как быстро развернуть несколько таких же?» Настраивать каждый заново – долго и неудобно. Решение – использование шаблонов (Templates). Шаблон – это базовая ВМ или контейнер с предустановленными настройками, программами и пользователями, который можно быстро клонировать и развертывать новые инстансы.

Как создать шаблон?

1. Настроить виртуальную машину или контейнер с необходимыми параметрами.

2. Установить нужные программы и создать пользователей.

3. Сохранить конфигурацию в виде шаблона (Convert to Template). Важно: этот процесс необратим, обратно в обычную ВМ или контейнер изменить нельзя.

При развертывании новых машин можно создать новую ВМ с нуля, клонировать существующую или развернуть новую из шаблона.

Linked Clone vs Full Clone

Существует два типа клонирования Linked Clone и Full Clone, и у каждого есть свои особенности.

- Linked Clone – создаётся «связанный клон», который использует шаблон как базу. На диск записываются только изменения по сравнению с шаблоном. Это экономит место и ускоряет создание, но оригинальный шаблон нельзя удалить, пока есть связанные клоны.

- Full Clone – создаётся полная копия ВМ или контейнера. Клон не зависит от оригинального шаблона и работает как полностью автономная машина. Однако такой способ требует больше дискового пространства.

Нюансы использования Linked Clone

- Если хранилище использует LVM-thin, то удаление шаблона не влияет на работу линк-клонов – они продолжают работать, поскольку LVM-thin сохраняет данные, пока они используются.

- В случае ZFS удалить шаблон без удаления линк-клонов невозможно, так как они полностью зависят от базы.

Шаблоны упрощают и ускоряют развёртывание виртуальных машин и контейнеров. Linked Clone позволяет экономить место и быстро создавать клоны, но имеет ограничения. Full Clone даёт полную независимость, но требует больше ресурсов. В современных системах место на диске не является критически важным фактором, поэтому выбор клонирования зависит от ваших задач.