- Создание нового пользователя
- Системные требования
- Часто задаваемые вопросы по теме статьи (FAQ)
- Ручное перемещение виртуальной машины
- Удаление ноды из кластера
- Создание виртуальной машины
- Сервер для Proxmox VE
- Proxmox-серверы
- CPU — процессор для Proxmox VE
- RAM — оперативная память для Proxmox VE
- Дисковая подсистема для Proxmox VE
- Сетевая карта (адаптер) для Proxmox VE
- Создание и настройка виртуальных машин
- Автозапуск виртуальной машины
- Возможности и преимущества Proxmox
- Зачем устанавливать macos на обычный компьютер?
- Системные требования Proxmox VE
- Удаление кластера
- Возможные ошибки
- Falling back to a fallback locale
- Гостевая служба помечена как masked
- Обновление 5-й версии Proxmox до 6-й
- Установка proxmox на mdadm raid 1 в debian 10
- Создание виртуальной машины для MacOS
- Подытожим
- Backup виртуальных машин
- Ubuntu и CentOS
- Тюнинг сервера PVE
- Отключение предупреждения об отсутствии подписки
- Сертификаты
- А) Установка сертификата с помощью графического интерфейса
- Б) Установка сертификата из командной строки
- Подготовка нод кластера
Создание нового пользователя
При установке PVE создается пользователь root. Рассмотрим процесс добавления еще одного через командную строку.
Подключаемся по SSH или открываем консоль из панели управления. Создаем пользователя в системе:
После создаем нового пользователя в Proxmox:
Задаем роль для созданного пользователя, например, административную:
* весь список ролей можно посмотреть в панели администрирования в разделе Датацентр — Разрешения — Роли.
Системные требования
Требования разделены на минимальные и рекомендованные:
Поддержка виртуализации Intel VT или AMD-V может быть отключена на материнской плате. Для проверки заходим в БИОС — находим раздел настройки процессора (как правило, в пункте меню Advanced) — проверяем, что технология виртуализации (Intel VT, AMD-V, Virtualization Technology, VMX) включена (Enabled). Если мы хотим протестировать платформу и устанавливаем ее на виртуальную машину, то в ее настройках включаем поддержку технологии виртуализации. Например, в VMware ESX 6 в настройке виртуальной машины на вкладке Virtual Hardware раскрываем CPU и ставим галочку Expose hardware assisted virtualization to the guest OS:

Часто задаваемые вопросы по теме статьи (FAQ)
Как можно делать инкрементные бэкапы виртуальных машин в Proxmox?
Проблема инкрементных бэкапов в proxmox очень актуальна. Универсального решения, к сожалению, нет. На текущий момент инкрементные бэкапы возможны только на уровне хранилища для виртуальных машин, если оно это поддерживает. К примеру, с помощью zfs это можно организовать через механизм снепшотов. Какого-то аналога для бэкапов, типа Veeam, для Proxmox не существует.
Есть ли разница, разворачивать Proxmox на Debian либо через официальный ISO образ?
Принципиальной разницы нет. На выходе будет одна и та же система. Другое дело, что установив сначала Debian, у вас возникает больше возможностей для преднастройки дисковой подсистемы. К примеру, вы можете установить все на массив mdadm. Штатный установщик из ISO образа не дает такой возможности.
Чтло лучше использовать — виртуальные машины или контейнеры?
Однозначного ответа на этот вопрос нет. Все зависит от решаемых задач. Контейнеры позволяют ускорить разворачивание и бэкап систем. Снижают потребление ресурсов за счет использования общего ядра с хостовой системой. Но это накладывает и ограничения. Если вам нужно изменить параметры ядра, то придется это делать для всего гипервизора и всех систем, работающих на его ядре. Так что тут рекомендация может быть такая — если вас устраивает функционал и ограничения контейнеров, используйте их. В остальных случаях — виртуальные машины.
Есть ли какая-то принципиальная разница в чистом гипервизоре KVM по сравнению с Proxmox?
Принципиальной разницы нет. По сути Proxmox — это система управления гипервизором на базе KVM. Виртуальные машины, как настройки, так и сами диски с данными, без проблем переносятся на любой другой гипервизор на базе KVM. Для этого не нужна ни конвертация данных, ни преобразование настроек.
Можно ли в виртуальные машины Proxmox пробрасывать внешние IP адреса?
Да, в этом нет никаких проблем. Просто делаете бридж с интерфейсом гипервизора, на который приходят эти ip адреса и добавляете интерфейсы из этого бриджа в виртуальные машины. А на них настраиваете внешние IP адреса.
Можно ли в Proxmox пробросить USB в виртуальную машину? Например, для подключения токена или лицензионного ключа.
Да, то можно сделать. Гипервизор KVM, на базе которого построен Proxmox, давно поддерживает возможность проброса USB портов в виртуальные машины.
Ручное перемещение виртуальной машины
Представим ситуацию, что у нас произошел сбой одного из узлов кластера, но при этом виртуальная машина не переехала на рабочую ноду. Например, если сервер был отправлен в перезагрузку, но не смог корректно загрузиться. В консоли управления нет возможности мигрировать виртуалку с неработающего сервера. Поэтому нам понадобиться командная строка.
И так, открываем SSH-консоль сервера, на любой работающем сервере Proxmox. Переходим в каталог qemu-server той ноды, которая не работает:
* мы предполагаем, что у нас вышел из строя сервер pve1.
Смотрим содержимое каталога:
Мы должны увидеть конфигурационные файлы запущенных виртуальных машин, например:
mv 100.conf ../../pve2/qemu-server/
* где pve2 — имя второй ноды, на которой мы запустим виртуальный сервер.
systemctl restart pvestatd
systemctl restart pvedaemon
systemctl restart pve-cluster
Сбрасываем состояние для HA:
ha-manager set vm:100 —state disabled
ha-manager set vm:100 —state started
* в данном примере мы сбросили состояние для виртуальной машины с идентификатором 100. Если это не сделать, то при запуске виртуалки ничего не будет происходить.
После виртуальную машину можно запустить:
Удаление ноды из кластера
Удаление узла из рабочего кластера выполняется из командной строки. Список всех нод можно увидеть командой:
Мы увидим, примерно, следующее:
* где pve1, pve2, pve3 — узлы кластера; local указываем на ноду, с которой мы выполняем команду pvecm.
Для удаления узла, например, pve2 вводим:
pvecm delnode pve2
Ждем немного времени, пока не пройдет репликация. В консоли управления Proxmox удаленный сервер должен пропасть
Создание виртуальной машины
Базовая настройка закончена — можно опробовать наш гипервизор в деле.
В правой верхней части панели управления кликаем по Создать VM:

В открывшемся окне снизу сразу ставим галочку Расширенный:

Задаем имя виртуальной машине и ставим галочку Запуск при загрузке (если хотим, чтобы виртуалка запускалась автоматически с сервером PVE):

* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.
Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:

* в данном примере мы будем устанавливать Linux Ubuntu. Среди списка операционных систем также доступны Microsoft Windows, Solaris и Other.
На вкладке Система можно оставить все значения по умолчанию:

* в некоторых случаях, необходимо выбрать другую видеокарту (при установке систем с GUI), а также особый вариант БИОС.
Задаем размер жесткого диска:

* 16 Гб для Ubuntu достаточно, однако, для наших задач расчет должен быть индивидуальным для каждой создаваемой виртуальной машины.
Мы можем задать количество процессоров и ядер:

* в данном примере мы создаем виртуалку с 2 процессорами, каждый из который с 2 ядрами, итого, 4. Для ненагруженных систем можно оставить значение по умолчанию.

* наша Ubuntu будет работать с 2 Гб оперативной памяти.
Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:

* в данном примере, мы указали vmbr0 для подключения к сети напрямую.
Ставим галочку, чтобы виртуальная машина сразу запустилась после создания:


Мы должны увидеть загрузку с ISO-образа.
Сервер для Proxmox VE

Если нет желания или возможности разбираться в подборе конфигурации сервера, то обращайтесь к нашим менеджерам на servermall.ru. Получите бесплатную профессиональную консультацию и КП за час.
Proxmox-серверы


2x Intel Xeon
E5-2667v3 (8C 20M Cache 3.20GHz)
2x Intel Xeon E5-2667v3 (8C 20M Cache 3.20GHz)
8x 32GB DDR4
RDIMM 2400MHz (Поддержка до 3072GB максимально, 24 DIMM портов)
8x 32GB DDR4 RDIMM 2400MHz (Поддержка до 3072GB максимально, 24 DIMM портов)
Network Interface controller HP 4 port 1Gb RJ-45
Integrated Network Interface controller HP 4 port 1Gb RJ-45
2x SSD 480GB 2x HDD 1TB
Снят с производства


E5-2667v2 (8C 25M Cache 3.30GHz)
2x Intel Xeon E5-2667v2 (8C 25M Cache 3.30GHz)
2x 32GB DDR3
1333MHz (Поддержка до 768GB максимально, 24 DIMM портов)
2x 32GB DDR3 1333MHz (Поддержка до 768GB максимально, 24 DIMM портов)
RAID Dell H710 (512MB+BBU)
Network Interface controller Dell 4 port 1Gb
Integrated Network Interface controller Dell 4 port 1Gb
2xHDD 1TB, 2xSSD 240gb (до 8 HDD 2.5″)

Gold 6226R (16C 22M Cache 2.90GHz)
2x Intel Xeon Gold 6226R (16C 22M Cache 2.90GHz)
8x 64GB DDR4
RDIMM 2666MHz (Поддержка до 3Тб максимально, 24 DIMM портов)
8x 64GB DDR4 RDIMM 2666MHz (Поддержка до 3Тб максимально, 24 DIMM портов)
RAID Dell H730p (2GB+BBU)
2 » SSD 480gb / 2xHDD 1TB (до 8 HDD 2.5″)
Ну а теперь перейдем к железякам 🙂
Влияние комплектующих часто переоценивают или недооценивают. Верное решение (как это обычно бывает) где-то посередине. Например, сервер может по всем параметрам подходить под задачу, кроме сетевой карты, но она и станет бутылочным горлышком, тормозящим всю систему.
Совет №1: Уделите комплектующим не меньше внимания, чем софту. Последний можно поменять, оптимизировать, а с железом могут быть сложности. От аппаратной части зависит ваша гибкость, доступность, эффективность, производительность и коэффициент консолидации (количество ВМ на 1 физический сервер). И окупаемость тоже не должна исчисляться сотнями лет, если так не задумано изначально 🙂
Поэтому динозавры старое оборудование (HP ProLiant G6, Dell PowerEdge Gen 10 или ПК времён CS 1.6), которое использовалось под другие задачи, вряд ли подойдёт под Proxmox VE и нормальную работу виртуальных машин.
- Не получится работать с высоким аптаймом большому количеству людей;
- Даже если заведётся, не выйдет заменить отдельные комплектующие на более мощные и современные (вертикальный рост);
- Устаревший процессор и малый объем памяти не лучшие друзья виртуализации и Proxmox;
- В старом сервере или ПК мало ОЗУ? Значит будет мало ВМ. Простая арифметика.
Совет №2: Проработайте задачу, проведите тесты — займёт неделю или месяц. Возможно, старый сервер и подойдёт, но лучше выяснить это заранее, чем во время простоя бизнеса.
Совет №3: Покупайте сервер с заделом на будущее. Одно из важнейший преимуществ сервера над ПК — это масштабирование, которое зачастую прямо пропорционально высоте сервера (в монтажных единицах, 1U = 44.45 см = 1.75‘).
Двух или четырёхсокетный сервер может кратно нарастить производительность в будущем, а объемные дисковые полки или корзины позволят расширить хранилище — быстро и относительно недорого. В эту же компанию входят слоты расширения.
Если сэкономите в моменте и возьмёте бюджетный сервер, то в будущем придётся покупать ещё один, либо полностью менять на новый.
Совет №4: Оптимальный сервер для виртуализации в небольших компаниях — это среднебюджетная модель в форм-факторе 2U и больше (5U, если форм-фактор Tower). Новейшие 1U серверы с компактными SSD — отличный выбор, если есть деньги.
Но вы можете смело выбирать из двух-трёх последних поколений: восстановленные серверы Servermall стоят сильно меньше новых, не уступают в надёжности и поставляются с полноценной гарантией 5 лет на всё.
Общие советы по серверу обсудили, теперь пробежимся по комплектующим: CPU, RAM, дисковая подсистема и сетевой адаптер.
CPU — процессор для Proxmox VE

В нашем блоге на Хабре выходила большая познавательная статья про серверные (и не только) GPU и процессоры. В ней я подробно рассказал о линейках от Intel и AMD. Два гиганта, которые поделили почти весь рынок пополам. И вам придётся выбрать что-то одно. Сделать кластер из серверов на процессорах разных вендоров — вряд ли получится.
Начнём с Intel — это компания-пионер, которая долгое время безоговорочно доминировала на рынке CPU, поэтому их преимущества: большой выбор из предыдущих поколений и отличная оптимизация софта. Но ситуация немного переломилась с выходом архитектуры Zen от AMD.
Сейчас цены и производительность близки у обеих компаний; технологии в процессорах одинаковые или во многом альтернативные. Разницу нужно выискивать тестами под лупой. Иногда впереди Intel Scalable из-за лучшей оптимизации, а иногда AMD EPYC из-за своих performance/watt характеристик. В некоторых сценариях разница в пару процентов, а в некоторых — десятки.
Ремарка. Процессоры Intel Scalable могут выдавать больше ГГц на ядро, чем AMD EPYC, но это будет намного дороже.
AMD добилась отличного соотношения цены к производительности в последних поколениях EPYC 7003 и рекордной доли в сегменте x86-процессоров ~ 27,7%. В серверном сегменте цифра меньше ~ 11.6%, но рост есть. Да, корпоративные клиенты и сисадмины часто консервативны, но это не значит, что процессоры AMD EPYC хуже.
Кстати, у процессоров AMD EPYC есть одно важное преимущество. Некоторое ПО лицензируют посокетно (например, вы решите сменить Proxmox на Citrix в будущем) — это значит, что можно сэкономить на количестве лицензий.
Насчёт совместимости — процессор для Проксмокса должен поддерживать одну из двух проприетарных технологий виртуализации. Они есть во всех современных серверных ЦПУ соответствующих вендоров, так что вряд ли вы наткнётесь на несовместимое железо:
- AMD-V (Virtualization Technology), Vi;
- Intel VT (Virtualization Technology), VT-x, VT-d и VT-c.
RAM — оперативная память для Proxmox VE

Три планки регистровой памяти в сервере
Серверы для виртуализации (для Proxmox VE в частности) — одни из самых требовательных к оперативной памяти. Часть пирога отъедает система (гипервизор). Большая часть памяти нужна виртуальным машинам и установленным на них приложениям. И ещё сверху про запас нужно 20-30%, а лучше больше.
Дисковая подсистема для Proxmox VE

Менее производительный, но более бюджетный вариант — это SAS HDD. Если сделать RAID 0, 6, 10, 50 или 60, то вырастает скорость работы и общий аптайм сервера. Ну а каждый ГБ памяти в HDD традиционно выходит дешевле, чем у SSD.
Сетевая карта (адаптер) для Proxmox VE

Сетевая карта с одним гигабитным портом может ограничить ваши возможности в будущем. В целом, если в сервере есть свободные слоты расширения, и он поддерживает сетевые платы с разными интерфейсами (в том числе высокоскоростные), то вы сможете сделать апгрейд при необходимости.
Поэтому изучите спецификации планируемого оборудования. Если всё ок, то нет смысла переплачивать за 10-Гбитный адаптер с 4 портами на старте (если этого не требует задача здесь и сейчас). Но есть ещё несколько важных моментов, которые стоит учесть.
Создание и настройка виртуальных машин
В настройке виртуальных машин в proxmox нет ничего сложного и необычного. Я не буду по шагам рассказывать, как это сделать. Если вы дошли до этого пункта, преодолев все остальные, разобраться не составит труда. Обращаю внимание только на несколько ключевых моментов.
Чтобы установить виртуальную машину, нужно использовать iso образ. Его надо как-то загрузить на proxmox. Сделать это не сложно, нужно только понимать, что загрузить образ можно только на тот storage, который поддерживает такую возможность. Сторейджи LVM не позволяют загружать образы, для этого нужно использовать, например, storage в виде локальной директории. По умолчанию, один такой есть в системе. В него и загрузим образ виртуальной машины. Для этого открываем нужный storage и выбираем вкладку . Жмем на Upload и выбираем нужный образ.
На этапе загрузки iso образа я иногда сталкиваюсь с проблемой. Образ больше 4Гб не загружается. Проверял несколько раз, в том числе в различных инсталляциях на разное железо. Ошибка время от времени проявляется. Если у вас образы больше, чем 4 Гб, ищите альтернативные способы загрузки в хранилище, благо это не составляет большого труда.
Альтернативный способ загрузки iso образа в proxmox — использовать scp или напрямую через wget качать образ из интернета. Положить его нужно в директорию /var/lib/vz/template/iso, если используете дефолтный storage, добавленный по-умолчанию после установки.
Дожидаемся окончания загрузки. Теперь этот образ можно использовать для установки ОС на виртуальную машину. Создание виртуальной машины выглядит следующим образом. Нажимаем на кнопку
Заполняем все необходимые поля и стартуем машину. Некоторое время уйдет на создание машины (от нескольких секунд до 1-2 минут). В нижней части экрана ведется лог событий, там увидите информацию об окончании создания:
Выбирайте только что созданную машину и запускайте ее. Для того, чтобы попасть в консоль виртуальной машины, выбери соответствующий раздел:
Виртуальная машина должна быть запущена, чтобы увидеть консоль. Рассказывать про настройку виртуальных машин особенно нечего. Все настройки видны в свойствах машины, выставляйте то, что вам необходимо и пользуйтесь. Отдельно рассмотрю вопрос автозапуска.
Автозапуск виртуальной машины
По-умолчанию созданные виртуальные машины не запускаются со стартом гипервизора, это нужно делать вручную. Но есть настройка, которая отвечает за автозагрузку виртуальных машин, а так же за порядок их загрузки. Вот список параметров, которыми мы можем управлять:
Рассмотрим простой пример. У нас есть виртуальная машина, к примеру Windows Server с ролью Active Directory на борту. Все остальные серверы завязаны на корректную работу службы каталогов. Нам надо сначала запустить контроллер домена, а затем все остальные серверы за ним. Установите параметр Start at boot в положение Yes для всех виртуальных машин, которые хотите запускать автоматически. Укажите Start/Shutdown order на контроллере домена 1, Startup delay 240, Shutdown timeout 120. С такими настройками при запуске гипервизора первой стартует виртуальная машина с КД, через 240 секунд все остальные в соответствии с их настройками.

Возможности и преимущества Proxmox

Во-первых, Proxmox — не идеален (кто-то сомневался?).
Во-вторых, PVE — это бесплатный софт с открытыми исходниками (лайк от малого бизнеса с ограниченным бюджетом).
Например. Во времена Windows 2008, при её использовании в качестве гостевой системы, приходилось подбирать параметры виртуализуемого железа (контроллер дисков, сетевую карту) и версии драйверов. И технология Ballooning (общая оперативная память на виртуалки) работала не очень стабильно.
Некоторые вещи (например, создать кластер) сделать „чуть“ сложнее, чем в VMware или Citrix. Предупреждён — значит не лезь она тебя сожрёт вооружен.
Да, многое придётся делать своими силами, так что смело переходите по ссылке на Proxmox Support Forum и добавляйте страницу в закладки. Ctrl+D, друзья, Ctrl+D 🙂
Итак, преимущества Proxmox:
- Открытый исходный код, Debian и полная свобода действий. Хотите установить на хост другие приложения или дополнительные инструменты мониторинга? Без проблем. Вы можете настроить маршрутизацию, VPN и NAT прямо на гипервизоре — без необходимости отдельной виртуальной машины-роутера;
- Бесплатное ПО, платить нужно только за поддержку, если нет возможности администрировать самому (характерно для энтерпрайз бизнеса). Но платным “подписчикам” доступны отдельные репозитории, вроде как с более стабильными версиями пакетов. Но это не точно;
- Встроенная служба резервного копирования с возможностью автоматизации бэкапирования;
- Быстрое развертывание гостевых систем по типовым шаблонам;
- Библиотека установочных образов;
- Proxmox поддерживает множество операционных систем в качестве гостевых, поскольку использует KVM. Как популярные, вроде GNULinux и Windows, так и менее популярные — вроде FreeBSD. Можно запустить и MacOS, правда чтобы соблюсти чистоту лицензии, Proxmox придётся ставить на Mac;
- Proxmox VE может использовать как локальные, так и сетевые хранилища для размещения виртуальных машин. Есть нативная поддержка Ceph из GUI, но без высококвалифицированного специалиста лучше не тратьте на это время;
- Простое администрирование через WEB-интерфейс, для ценителей есть API и консольные команды;
- Кластерный режим Proxmox позволяет управлять несколькими серверами с одной страницы и проводить живую миграцию виртуальных машин;
- Real-Time Monitoring (RTM) — мониторинг нагрузки в реальном времени;
- Не нужно совместимое серверное железо. PVE запустится там, где запустится Linux;
- Низкие системные требования Proxmox, и минимальный процент потери общей производительности на виртуализацию;
- Полная свобода действий, никаких ограничений вендора, как это происходит, например, с VMware vSphere, где чётко прописан список совместимого железа (поэтому у VMWare всё хорошо работает, но только на железе из HCL);
- Proxmox поддерживает полную и «легкую виртуализацию» (или изоляцию) с технологией OpenVZ. Это работает только с Linux, но потери производительности CPU/RAM близки к нулю;
Зачем устанавливать macos на обычный компьютер?
В данном случае под обычным компьютером я имею ввиду то, что не относится к железу от Apple, на котором, и только на котором, должна работать MacOS. Как известно, существует проект Hackintosh, который позволяет установить macos не только на виртуальные машины, но и обычные ноутбуки и pc. Видел даже услугу под ключ, где вам на чистый ноут поставят hackintosh. Только нужно будет купить железо, которое гарантированно поддерживается.
Мне, для удовлетворения любопытства, не нужно отдельное железо, поэтому я решил поставить MacOS на виртуальную машину Proxmox. Каких-то практических целей я не преследую. Чистое любопытство, получится или нет. В пятницу сидел, дела делать не хотелось, решил поразбираться немного. В итоге у меня всё получилось, поэтому решил поделиться информацией.

Сразу скажу, что способов практического использования подобной системы не много, так как без графического ускорителя macos работает очень плохо. Вся анимация тормозит. Я не прорабатывал вопрос проброса видеокарты в виртуальную машину с macos. Мне он видится очень нетривиальным и без большой надобности разбираться с этим не захотелось. Но при этом нормально работает сеть, к системе можно подключаться по ssh, так что кому-то может и пригодится.
Я все операции проделывал на гипервизоре Proxmox 7.0, работающем на базе процессора Intel i5.
Системные требования Proxmox VE

У Proxmox VE нет строгого HCL (Hardware Compatibility List) или списка совместимых аппаратных средств — если запустится Linux/Debian, значит запустится и PVE, но всё же перечислю рекомендации с сайта Proxmox:
Да, проксмокс нетребователен, поэтому иногда им пренебрегают в расчётах производительности целевой системы. НО!
Эти системные требования Proxmox VE не учитывают:
- количество виртуальных машин;
- нагрузки гостевых систем.
А от этих двух параметров будет зависеть 95-99% конфигурации, если мы говорим о чистой системе с Proxmox.
Например, у вас небольшой типовой офис: контроллер домена, 1С — две виртуалки и что-то ещё по мелочи. Тут всё просто, выбирайте базовые модели предыдущих поколений — Dell T430 или HP ML350p Gen8. Лучше взять сразу два одинаковых сервера — для отказоустойчивости.
Совершенно другая ситуация, если у вас огромный офис, много сотрудников и задач:
- Терминальный сервер на 100 человек;
- WEB-сервер на несколько сайтов;
- Почтовый сервер для разных подразделений;
- Несколько файловых серверов;
- Рендер-ферма — для 3D моделирования в CAD. Здесь упомяну, что если вы работали c VMware и, например, Nvidia Grid, то знаете про разделение графического процесса по виртуальным машинам (vGPU), когда каждой ВМ выделяют фиксированный объем видеопамяти. В Proxmox VE это не поддерживается, но можно целиком пробросить графический ускоритель в виртуальную машину (привет, passthrough);
- Autodesk Revit и Revit Server — для информационного моделирования зданий (BIM);
Одного сервера точно не хватит. Тут нужен герой кластер мощных серверов с сотнями ГБ оперативной памяти, объемными и быстрыми накопителями, системы хранения, коммутаторы, сети, графические ускорители и т.д. Если говорить о серверах, то смотрите на: Dell R740 или HPE DL385 Gen10 Plus v2.
Чем больше виртуальных машин и сложнее характер нагрузки, тем производительнее нужна система. Чтобы точно рассчитать будущие характеристики, нужно тестировать виртуальные машины (ВМ) под нагрузкой. Для этого берите бесплатные тест-драйвы у хостинг-провайдеров или арендуйте ВМ на месяц. Результаты по всем виртуалкам суммируйте, добавляйте 5% на Proxmox VE и 20-30% про запас на всю систему — это негласный стандарт.
Да, я говорю о процентах, а не о конкретных цифрах, потому что не знаю ваших задач, но общие рекомендации по комплектующим дам.
Удаление кластера
Рассмотрим процесс удаления нод из кластера и самого кластера. Данные действия не могут быть выполнены из веб-консоли — все операции делаем в командной строке.
Подключаемся по SSH к одной из нод кластера. Смотрим все узлы, которые присоединены к нему:
Мы получим список нод — удалим все, кроме локальной, например:
pvecm delnode pve3
* в данном примере мы удалили ноды pve2 и pve3.
Необходимо подождать, минут 5, чтобы прошла репликация между нодами. После останавливаем следующие службы:
systemctl stop pvestatd pvedaemon pve-cluster corosync
Подключаемся к базе sqlite для кластера PVE:
Удаляем из таблицы tree все записи, поле name в которых равно corosync.conf:
Отключаемся от базы:
Удаляем файл блокировки:
rm -f /var/lib/pve-cluster/.pmxcfs.lockfile
Удаляем файлы, имеющие отношение к настройке кластера:
Запускаем ранее погашенные службы:
systemctl start pvestatd pvedaemon pve-cluster corosync
Возможные ошибки
Рассмотрим некоторые ошибки, с которыми столкнулся я.
Falling back to a fallback locale
Ошибка появляется при установке гостевой утилиты на компьютер с Linux, а также выполнении некоторых других команд.
Решение: исходя из причины, нам нужно правильно настроить локаль. Это можно сделать в интерактивном режиме командой:
После выбираем нужные локали, например: en_US.UTF-8 и ru_RU.UTF-8.
Также можно просто отредактировать файл:
Настраиваем формат времени и определяем язык интерфейса:
Гостевая служба помечена как masked
Мы можем заметить, что служба qemu-guest-agent не запускается со статусом masked:
qemu-guest-agent.service
Loaded: masked (/dev/null; bad)
Active: inactive (dead)
Причина: в некоторых операционных системах (я столкнулся в Astra Linux) по умолчанию сервис qemu-guest-agent маскируется.
Решение: маскировку можно снять простой командой:
systemctl unmask qemu-guest-agent
После перечитываем конфигурацию daemon-reload:
Можно разрешить запуск сервиса и стартовать его:
systemctl enable qemu-guest-agent —now
Обновление 5-й версии Proxmox до 6-й
Процесс обновления Proxmox c 5-й версии на 6-ю практически тривиален и подробно описан на официальном сайте — https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0. Я обновлял одиночный сервер, все получилось без проблем. В конце покажу видео, где человек обновляет кластер и у него тоже все получилось с первого раза по предложенной инструкции.

Первым делом нужно обновить гипервизор до самой последней версии. Можно это сделать как через web интерфейс, так и через консоль командами:
# apt update && apt dist-upgrade
Дальше в консоли запускаем утилиту pve5to6. Она ничего не изменяет, просто проверяет proxmox на возможность обновления и выводит информацию.

Я запустил уже на обновленном сервере, так как забыл сохранить вывод до обновления. Но у вас будет примерно то же самое. У меня были 2 предупреждения:
- Система не обновлена до последней версии
- Работали виртуалки
Я запустил обновление, выключил виртуалки. Утилита написала, что все в порядке, можно обновляться. Дальше в файле с репозиториями /etc/apt/sources.list заменяем все упоминания stretch на buster. Можно это сделать вручную, либо автоматически через sed.
# sed -i ‘s/stretch/buster/g’ /etc/apt/sources.list
У меня не были подключены никакие сторонние репозитории, плюс отключен репозиторий enterprise, так что мне больше ничего не пришлось делать.
После изменения списка репозиториев, обновляем кэш пакетов и ставим обновление proxmox 6.0.
Если делаете удаленно по ssh, обязательно запускайте команду в screen или tmux. Если этого не сделать и оборвется связь, получите неработающий сервер, который хоть и можно будет починить, но придется повозиться. Я обновлял через ssh, все прошло без проблем.
После запуска обновления получил предупреждение.

В процессе обновления был еще вопрос на разрешение перезапуск служб. Я ответил положительно.


На глаз никаких изменений не заметил. Полез внимательно читать changelog, нашел там некоторые изменения в gui. Например, просмотр syslog изменился. Есть изменения по ceph, но я его не использую.
На этом все по обновлению proxmox до 6-й версии.
Установка proxmox на mdadm raid 1 в debian 10
Первым делом нам нужно установить чистую систему Debian. На данный момент это версия 10 Buster. У меня есть отдельная статья по установке Debian. Там подробно описан процесс установки системы на софтовый рейд mdadm. В конце я на примере показал, что делать, когда диск выходит из строя, как его менять. Я на практическом примере продемонстрировал отказоустойчивость такого решения, поэтому не буду здесь подробно на этом останавливаться.
Скачивайте дистрибутив последней версии Debian. Взять его можно, к примеру, на Yandex.Mirror, конкретно здесь. Для установки подойдет образ CD-1 либо netinst. Начинайте стандартную установку и доходите до пункта настройки жесткого диска. Я буду использовать консольное отображение, не графическое. Мне так удобнее. Принципиальных отличий нет, можете делать по аналогии, если начали установку в графическом режиме. Когда дело дойдет до настройки диска, выбирайте вариант ручной разметки.
Если вы делаете установку на чистые диски, то вас должна встретить такая картина состояния дисков:
Если есть какие-то разделы, то удалите их все, чтобы были чистые диски. Для написания статьи я использую виртуальную тестовую среду, диски выделены небольшого объема. Для учебных целей этого достаточно. Я разобью диски следующим образом:
Создаем в инсталляторе указанные разделы на обоих дисках. Не буду расписывать по шагам как их сделать, надеюсь сами разберетесь, это не сложно. Должна получиться такая картина:
Параметры первого раздела на 500 Мб:
Параметры второго раздела на 10 Гб:
Оба раздела должны быть Primary.
Теперь создадим 2 отдельных raid массива на 500 мб и 10 гб. Выбираем раздел Configure Software RAID, дальше Create MD device, потом RAID1, 2 диска в массиве, и в завершении выбираем 2 наших раздела по 500 мб:
То же самое делаем с разделами по 10гб — объединяем их в рейд:
Как закончите, жмете Finish. У вас должна получиться такая картина:
Теперь нужно создать файловую систему на рейд массивах. Сделаем на первом раздел /boot ext2, а на втором корень системы — / и файловую систему ext4. В итоге должно получиться вот так:
Применяем изменения и продолжаем стандартную установку. У вас будет предупреждение о том, что не указан раздел для swap.
Игнорируйте его, потом подключим swap отдельно в виде файла. В процессе установки вам будет предложено выбрать набор пакетов. Не ставьте ничего лишнего, только ssh сервер и системные утилиты.
В конце будет предложено установить загрузчик на один из дисков. Можете выбрать любой диск, позже мы установим загрузчик на второй диск и убедимся, что он будет установлен на обоих дисках. Это нужно для того, чтобы система могла загружаться с любого из дисков, в случае выхода одного из строя.
Теперь установим grub на оба жестких диска. Подключаемся к серверу по ssh и выполняем команду:
# dpkg-reconfigure grub-pc
На все вопросы оставляете дефолтные значения, в конце выбираете оба жестких диска для установки загрузчика:
На всякий случай проверим как встала система на жесткие диски:
Все в порядке, получилось так, как и задумывали. На данном этапе можно повынимать жесткие диски и проверить как система работает без одного из них, научиться заменять сбойный диск. Команды и рекомендации не буду приводить, чтобы не раздувать статью. Мануалов по работе с mdadm в интернете полно. К тому же, я об этом рассказываю в статье про установку debian, ссылку на которую уже давал ранее. Рекомендую сразу настроить мониторинг mdadm в zabbix.
Переходим непосредственно к установке proxmox. Для этого редактируем файл /etc/hosts и приводим его строго к следующему виду. Если что-то будет не так, как указано у меня, получите ошибку установки с очень большой долей вероятности. Я на этом моменте прилично застрял, когда разбирался.
# mcedit /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.155.104 proxmox6.local proxmox6 pvelocalhost
Проверить правильность настроек можно командой:
# hostname —ip-address
192.168.155.104
В ответ должны получить свой ip адрес.
Добавляем в список репозиториев репу proxmox и стандартные репозитории debian. Я буду использовать зеркало яндекса, все остальное можно закомментировать:
deb http://mirror.yandex.ru/debian/ buster main non-free contrib
deb-src http://mirror.yandex.ru/debian/ buster main non-free contrib
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Если не подходит репозиторий яндекса (заблокирован), можно воспользоваться любым другим, например http://mirror.corbina.net/debian/
Добавляем цифровую подпись proxmox репозитория:
# wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
Если раньше не обновили систему, то обновитесь и на всякий случай перезагрузите сервер после этого:
# apt update && apt full-upgrade
# reboot
Теперь устанавливаем саму систему виртуализации proxmox:
# apt install proxmox-ve postfix open-iscsi
Если получите ошибку во время установки:
dpkg: error processing package proxmox-ve (—configure):
dependency problems — leaving unconfigured
Errors were encountered while processing:
pve-cluster
libpve-access-control
librados2-perl
pve-firewall
pve-ha-manager
qemu-server
pve-container
pve-manager
proxmox-ve

Проверяйте файл hosts. У меня там лишние строки были, кроме тех, что я указал ранее. Когда исправил, установка прошла без ошибок. После окончания установки перезагрузите сервер, чтобы загрузилось новое ядро. Если все в порядке, то увидите окно приветствия на мониторе сервера:
Открывайте браузер по указанному адресу и заходите в web интерфейс. Напоминаю, что web порт proxmox по-умолчанию — 8006. Не забывайте его указывать в строке адреса в браузере. Вы должны увидеть предупреждение браузера насчет сертификата. Так и должно быть, по-умолчанию используется самоподписанный сертификат.
Если у вас нет своего железа для установки proxmox, можно арендовать недорогой сервер у Selectel. Линейка выделенных севреров Chipcore стартует с абонентки в 1500 р. в месяц. Через панель управления во время заказа сервера можно сразу выбрать proxmox, установленный на софтовый рейд mdadm. Самим ничего делать не нужно будет. Сразу получите отказоустойчивый настроенный гипервизор.

Создание виртуальной машины для MacOS
Теперь идём в веб интерфейс proxmox и создаем виртуальную машину для MacOS. Я ей выделю 4 ядра и 8 гигабайт оперативной памяти. Количество ядер не должно быть 6. Я лично пробовал с 4 или 8 ядрами. Если сделать 6, ничего не получится. Динамическую память тоже обязательно выключаем.
Не буду расписывать все шаги, а просто покажу картинки настроек. Они будут предварительные. Затем завершим подготовку виртуальной машины в консоли. А пока создаём через веб интерфейс.

Создание VM для macOS

Выбор типа OS

Настройка системных параметров


Выбор типа процессора


Выбор модели сетевой карты
После создания открываем список оборудования VM и добавляем туда iso образ Catalina-installer.iso.

После создания, виртуальную машину не запускаем. Перемещаемся в консоль гипервизора и открываем конфиг виртуальной машины в директории /etc/pve/qemu-server. Имя конфиг виртуальной машины будет равен её номеру. В моем случае это 135.conf. Нам нужно привести конфиг к следующему виду. Я выделю то, что я добавил и изменил.
args: -device isa-applesmc,osk=»ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc» -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc
balloon: 0
bios: ovmf
boot: order=ide2
cores: 4
cpu: Penryn
efidisk0: local-500G:135/vm-135-disk-0.qcow2,size=128K
ide0: local-500G:iso/Catalina-installer.iso,cache=unsafe,size=2096528K
ide2: local-500G:iso/OpenCore-v13.iso,cache=unsafe,size=150M
machine: q35
memory: 8196
name: macos-test
net0: vmxnet3=26:06:41:79:8E:7A,bridge=vmbr0
numa: 0
ostype: other
sata0: raid1:vm-135-disk-0,cache=unsafe,discard=on,size=128G,ssd=1
scsihw: virtio-scsi-pci
smbios1: uuid=ed285c88-e9b7-41e9-b8cc-c18467097fb1
sockets: 1
vga: vmware
vmgenid: 1d33ec8f-921c-41eb-9577-6b92088d2902
В веб интерфейсе настройки должны выглядеть примерно вот так:

Если у вас процессор не Intel, а AMD, параметры процессора следует использовать другие:
В консоли гипервизора делаем еще одну настройку, меняя параметры модуля ядра kvm.
Активируем эту настройку без перезагрузки:
modprobe kvm options ignore_msrs=Y
У нас всё готово к тому, чтобы начать установку MacOS на виртуальную машину Proxmox.
Подытожим
Proxmox VE, как и любой другой гипервизор требует тщательного подбора железа. И да, у него хватает конкурентов: VMware ESXi и Microsoft Hyper-V Server — абсолютно бесплатны, но местами проигрывают по функциональности. А это уже тема для другой статьи.
Но Proxmox VE — это действительно хороший гипервизор как для опытных админов, которые готовы повозиться с настройкой, так и для начинающих, особенно для небольших инсталляций. И чем дольше PVE развивается, тем лучше становится.
Backup виртуальных машин
Подошли к очень важному этапу настройки proxmox — организация бэкапа виртуальных машин. На этот момент нужно обратить особенное внимание, и все хорошенько проверить. Настраивается backup так же просто, как и все остальное в proxmox. Идем в раздел Backup и создаем задание:
Выставляем необходимые параметры, например такие:

Ждем назначенного часа и проверяем исполнение задания.
Для того, чтобы выполнить разовый бэкап конкретной виртуальной машины, достаточно открыть виртуальную машины, выбрать в ней раздел Backup и нажать Backup Now:
Дальше указываете необходимые параметры и дожидаетесь завершения бэкапа. Обращаю внимание, что бэкап будет выполняться при работающей виртуальной машине. Останавливать ее не требуется.

Тут сразу встает следующий вопрос — как автоматически удалять старые бэкапы? Однозначно ответить не получится, все будет зависеть от того, где будут храниться бэкапы. Если это обычный linux сервер с доступом к консоли, то можно воспользоваться программой find:
После выполнения этой команды, все файлы в папке /mnt/backups-vm старше 30 дней будут удалены. Для автоматизации процесса команду можно поместить в cron. С помощью zabbix вы можете мониторить актуальность бэкапов и следить за их размерами.
После создания бэкапа рекомендую сразу убедиться, что из него можно восстановить виртуальную машину. Для этого откройте обзор storage, где у вас сделана копия и оттуда начните процесс восстановления. В таком случае вы сможете указать новое имя для виртуальной машины. Если вы будете пробовать восстановить из бэкапа в интерфейсе виртуальной машины, то будет предложена только замена существующей ВМ.
Не забудьте у восстановленной копии виртуальной машины, если восстановите на том же гипервизоре, поменять mac адрес и сетевые настройки. Если не поменять мак, то будете потом долго ловить и разбираться с непонятными сетевыми проблемами.
Ubuntu и CentOS
Возможно, кому-то захочется установить Proxmox именно на Ubuntu или CentOS. К сожалению, разработчики остановились на Debian. Возможно, есть неофициальные обходные пути установки Proxmox на другие дистрибутивы Linux, однако такой путь не является приемлемым для продуктивной среды. Для настройка виртуализации на Ubuntu и CentOS предлагаю инструкции:
1. Установка и настройка KVM на CentOS 7
2. Настройка KVM на Ubuntu Server
Тюнинг сервера PVE
Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.
Отключение предупреждения об отсутствии подписки
Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:

Оно говорит нам о том, что мы используем бесплатную версию программного продукта. Чтобы сообщение нас не беспокоило, выполним 2 действия:
- Отключим платный репозиторий для получения пакетов proxmox.
- Отредактируем файл js для отключения данного сообщения.
И так, в SSH открываем на редактирование репозиторий proxmox:
Приводим его к виду:
#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise
deb http://download.proxmox.com/debian/pve stretch pve-no-subscription
* мы закомментировали репозиторий pve-enterprise и добавили pve-no-subscription.
** при большом желании, можно удалить файл репозитория с именем pve-enterprise.list и создать новый — кому как будет удобнее.
Добавляем gpg-ключ для репозитория:
apt-key adv —keyserver keyserver.ubuntu.com —recv-keys 0D9A1950E2EF0603
После обновим список пакетов:
Закрываем окно браузера с Proxmox, если оно было открыто и запускаем его снова. Входим в систему — сообщение не должно появиться.
Сертификаты
Сервер PVE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:
- Быть выдан доверенным центром сертификации или зарегистрированным в вашей локальной сети, например, локальный AD CS.
- Быть для доменного имени, по которому мы заходим в панель управления.
- Иметь актуальные даты начала действия и окончания.
И так, сам сертификат можно купить, запросить бесплатно у Let’s Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции. После у нас есть, как минимум, два способа загрузить его.
А) Установка сертификата с помощью графического интерфейса
Получив сертификат, открываем панель управления PVE и переходим к серверу — Система — Сертификаты — кликаем по Загрузить пользовательский сертификат:

В открывшемся окне заполняем поля для закрытого и открытого ключей:

Б) Установка сертификата из командной строки
Сначала создадим их копию:
mkdir -p /backup/proxmox/ssl
Предположим, что мы получили сертификаты с помощью Let’s Encrypt и они находятся по пути /etc/letsencrypt/live/pve.dmosk.ru. Тогда копируем нужны ключи:
cp /etc/letsencrypt/live/pve.dmosk.ru/fullchain.pem /etc/pve/nodes/pve/pve-ssl.pem
cp /etc/letsencrypt/live/pve.dmosk.ru/privkey.pem /etc/pve/nodes/pve/pve-ssl.key
Возможно, вы подумаете, что для сертификатов Let’s Encrypt лучше создавать симлинки, вместо копирования файлов. Однако, для каталога /etc/pve создается FUSE файловая система, которая не поддерживает симлинки.
systemctl restart pvestatd pvedaemon pve-cluster corosync
Подготовка нод кластера
Серверы должны иметь возможность обращения друг к другу по их серверным именам. В продуктивной среде лучше всего для этого создать соответствующие записи в DNS. В тестовой можно отредактировать файлы hosts. В Proxmox это можно сделать в консоли управления — устанавливаем курсор на сервере — переходим в Система — Hosts — добавляем все серверы, которые будут включены в состав кластера:

* в данном примере у нас в hosts занесены наши два сервера Proxmox, из которых мы будем собирать кластер.

