Установка proxmox на сервер dell

Обновлено: 07.07.2024

Рассмотрим 2 варианта установки гипервизора Proxmox

Оба варианта приемлемы, поскольку Proxmox использует ядро Linux и базируется на дистрибутиве Debian. Опишу только первый вариант, поскольку установка с родного образа не требует описания.

Установка на Debian 10

Добавим репозиторий в список debian:

Цифровая подпись репозитория proxmox:

Обновим список пакетов и систему:

Установим саму систему proxmox:

После установки перегружаем сервер.

Рекомендуется удалить пакет os-prober

Пакет os-prober сканирует все разделы хоста, в том числе гостевые виртуальные машины, для создания записей GRUB с двойной загрузкой.

Если нет необходимости загрузки на сервере другой ОС кроме Proxmox VE можно удалить пакет os-prober

Сервер Proxmox готов.

Администрирование

Управление Proxmox происходит либо через веб-панель, либо через консоль.

Аутентификация Linux PAM standard authentication:

Это предупреждение об отсутствии платной подписки Proxmox на обновления. Однако можно подключить другой репозиторий для получения обновлений.

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

Создаем по сути коммутатор (в понимании гипервизоров VMware и Hyper-V) с привязкой к сетевой карте. У Proxmox это называется Linux Bridge.

В настройках самого интерфейса ens192 удаляем галочку Autostart и значения IPv4/CIDR. Перегружаем сервер.

Этого достаточно, чтоб на гипервизоре можно было запускать контейнеры и виртуальные машины.

Кластер Proxmox

Следующим шагом будет разворачивание кластера на базе серверов Proxmox в тестовой среде.

Я выбрал установку с родного образа и все настройки были произведены уже на этапе подготовки к установке, кроме подключения бесплатного репозитория обновлений.

О тестовой среде.

О кластерах и кворуме

Кластер не существует без кворума. Кворум это по сути ноды (машины) включенные в кластер и у которых есть право голоса. Суть голосования в том, что, если происходит падение одной из нод по причине отказа или сбоя, остальные решают по принципу большинства продолжать работать кластеру или нет. Если у нас в кластере 3 машины и одна уходит в сбой, то остальные два имеют 2 голоса из 3-х и это большинство, кластер продолжает работать. А если в кластере четное количество машин, то при отказе половины кластер перестает работать. Т.е. для работоспособности кластера из n машин (нод) необходимо минимум n/2+1 доступных машин.

В ситуациях с четным количеством нод вводится понятие свидетеля. Свидетель по сути обычная машина, без наличия систем виртуализации, в нашем случае Proxmox-а. При четном количестве нод свидетель голосует, а при случае сбоя или вывода ноды из кластера, когда количество работоспособных нод становится нечетным, то голос свидетеля не учитывается и так по циклу пока не наступит минимум < n/2+1.

Я специально выбрал для тестовой среды четное количество нод (4) для демонстрации свидетеля. Свидетель будет 6-й машиной в тестовой среде на Debian.

Сетевые настройки тестовой среды

Важно! В настройках виртуального коммутатора на VMware необходимо включить Promiscuous Mode, если используете Hyper-V, то в настройках сетевого адаптера включить MAC address spoofing, иначе виртуальный коммутатор будет воспринимать только сетевую карту гипервизора Proxmox, а виртуальные машины внутри самого Proxmox не смогут отправлять пакеты наружу.


Установка Proxmox

Установка OpenMediaVault

Настройки OpenMediaVault

Настроим сеть под требования тестовой среды Принять изменения

В VMware создаём еще один диск для хранения данных. Размер соразмерный требуемому объему для установки ОС (я взял тонкий диск объемом 100Гб).

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

Создаем диск Монтируем диск к системе Подключаем NFS хранилище для совместного пользования всеми нодами Подключаем диск Задаем точку монтирования и права Задаем клиентов для доступа к NFS хранилищу с правами Включаем службу NFS

Подключим хранилище к первой ноде PVE1:

Настройки подключения

Для тестовой среды в качестве контента диска я выбрал все варианты, в реальной среде стоит разделять исходя из качества дисков (RAID, скорость и т.д.). Такие данные как iso образы или бэкапы можно хранить на других дисках, чем диски самих виртуальных машин или контейнеров.

Нужно заметить, что диск подключили к кластеру, а не к ноде и один и тот же общий диск не нужно подключать для каждой ноды.

Настроим репозиторий для обновлений Proxmox для каждой ноды.


После обновим необходимые пакеты на всех нодах.

Обновление Proxmox

Создаем кластер

Для полноценной демонстрации кластера необходимо создать отдельную выделенную сеть для самого кластера. В VMware создаю новый Port Group с названием ClusterNetwork и подключаю вторые сетевые карты на данный коммутатор.


Сетевые настройки для нод Proxmox – 172.16.1.211/28 – 172.16.1.214/28


Сетевые настройки кластерного трафика для Proxmox

Собираем ноды в кластер:

Выбираем созданную сеть под кластер. Будет создан кластер с одной текущей включённой нодой.

Забираем информацию для подключения остальных нод в кластер:


Переходим поочередно по всем нодам и вставляем скопированную информацию:

Выбираем сеть для кластерного трафика

Наш кластер готов.


Итого имеем кластер из 4-х нод, кластерный трафик управления проходит через изолированную сеть и можно создавать виртуальные машины. Как видно на всех нодах доступно общее хранилище.

Установка виртуальных машин

В качестве теста установим сервер на базе Linux Debian c Apache и одной простой страницей. На второй ноде создадим виртуальную машину и в качестве места хранения диска выберем общее хранилище.


Установим наш виртуальный сервер:


Виртуальный сервер готов, на нем работает наш сайт. Наша задача обеспечить доступность сервера при падении ноды на которой размещен сервер с сайтом.

У нас 4 ноды и задача при падении PVE2 сервер должен мигрировать на PVE3, если нет, то на PVE4, а на PVE1 не мигрировала.


Правила миграции в High Availability Group

Создаем группу и выставляем приоритеты. Чем выше приоритет, тем предпочтительнее нода в группе.

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


Более информативно через консоль

Отправим в shutdown ноду с веб-сервером. Посмотрим на состояние кворума:


Сервер мигрировал на PVE3 (как мы и хотели), кворум– ОК, кластер жив.


Все. Кластер перестал существовать. Наш сайт недоступен.


Кворум – необходимы 3 голоса, присутствуют 2


Кластер восстановил работу. 3 голоса из необходимых 3-х. Сервер вернулся на свою ноду.

Зачем может понадобиться иметь четное количество нод, если при падении половины кластер не работоспособен? Кроме обеспечения высокой доступности с миграцией серверов при сбое нод можно использовать другой инструмент сохранности сервисов – репликации. Репликации серверов происходят по заданному расписанию и на заданные ноды.

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

Свидетель в кластере

В нашем случае это обычный Debian 10 сервер который в реальной среде может выполнять и другие функции (иметь работающие службы и сервисы). Нам нужно будет установить 2 пакета.

Настроим сеть согласно условиям тестовой среды:

Установим пакеты на сервер свидетеля:

Установим пакет на всех нодах Proxmox:

В консоли PVE1 выполним команду:

На вопросы ответим – yes и далее введем необходимое количество раз пароль для соединения с нодами кластера.

Отредактируем файл /etc/corosync/corosync.conf на PVE1 и добавим следующее в секцию кворума:

Перезагрузим сервисы service и corosync-qdevice:

Сделаем аналогичные действия на всех нодах: отредактируем файл /etc/corosync/corosync.conf и перезапустим service corosync restart, service corosync-qdevice start.

Проверим свойства нашего кворума:


Отключим ноды PVE2 и PVE3:


Кластер жив при 2-х отсутствующих нодах. Сервере мигрировал на PVE4 согласно правилам перемещения.


Доступность сервисов через репликации

Рассмотрим вариант репликации с ноды на ноду на примере контейнера. Контейнер из шаблонов в котором развернута phpBB.


В качестве диска выбрано хранилище ZFS. Это важно, поскольку репликации идут только с хранилищ zfs.

Настройка репликации: на вторую ноду с zfs хранилищем и с расписанием каждые 30 мин.



И тот и другой вариант приемлемы для обеспечения доступности сервисов: для критических сервисов режим высокой доступности, для менее важных сервисов, с возможным простоем можно использовать режим репликации с последующим ручным разворачиванием сервисов на другой ноде.

На этом пока все. Повторюсь, Proxmox достаточно взрослая система и ее можно использовать в производственных средах, однако при наличии бюджета у компании все же имеет смысл присмотреться к основным игрокам этого рынка – Vmware (когда достаточно денег) или Microsoft (когда можно чуть сэкономить). Но если у вас только Linux сервера и нет вопросов с лицензированием клиентских ОС на гипервизоре в кластере, то тут опять преимущество Proxmox.


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


Proxmox кластер может состоять из двух и более серверов. Максимальное количество нод в кластере равняется 32 штукам. Наш собственный кластер будет состоять из трех нод на мультикасте (в статье я также опишу, как поднять кластер на уникасте — это важно, если вы базируете свою кластерную инфраструктуру на Hetzner или OVH, например). Коротко говоря, мультикаст позволяет осуществлять передачу данных одновременно на несколько нод. При мультикасте мы можем не задумываться о количестве нод в кластере (ориентируясь на ограничения выше).

Сам кластер строится на внутренней сети (важно, чтобы IP адреса были в одной подсети), у тех же Hetzner и OVH есть возможность объединять в кластер ноды в разных датацентрах с помощью технологии Virtual Switch (Hetzner) и vRack (OVH) — о Virtual Switch мы также поговорим в статье. Если ваш хостинг-провайдер не имеет похожие технологии в работе, то вы можете использовать OVS (Open Virtual Switch), которая нативно поддерживается Proxmox, или использовать VPN. Однако, я рекомендую в данном случае использовать именно юникаст с небольшим количеством нод — часто возникают ситуации, где кластер просто “разваливается” на основе такой сетевой инфраструктуры и его приходится восстанавливать. Поэтому я стараюсь использовать именно OVH и Hetzner в работе — подобных инцидентов наблюдал в меньшем количестве, но в первую очередь изучайте хостинг-провайдера, у которого будете размещаться: есть ли у него альтернативная технология, какие решения он предлагает, поддерживает ли мультикаст и так далее.

Установка Proxmox

Proxmox может быть установлен двумя способами: ISO-инсталлятор и установка через shell. Мы выбираем второй способ, поэтому установите Debian на сервер.

Перейдем непосредственно к установке Proxmox на каждый сервер. Установка предельно простая и описана в официальной документации здесь.

Добавим репозиторий Proxmox и ключ этого репозитория:


Обновляем репозитории и саму систему:


После успешного обновления установим необходимые пакеты Proxmox:


Заметка: во время установки будет настраиваться Postfix и grub — одна из них может завершиться с ошибкой. Возможно, это будет вызвано тем, что хостнейм не резолвится по имени. Отредактируйте hosts записи и выполните apt-get update



Изображение 1. Веб-интерфейс ноды Proxmox

Установка Nginx и Let’s Encrypt сертификата

Мне не очень нравится ситуация с сертификатом и IP адресом, поэтому я предлагаю установить Nginx и настроить Let’s Encrypt сертификат. Установку Nginx описывать не буду, оставлю лишь важные файлы для работы Let’s encrypt сертификата:

Команда для выпуска SSL сертификата:

Не забываем после установки SSL сертификата поставить его на автообновление через cron:

Заметка: чтобы отключить информационное окно о подписке, выполните данную команду:


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

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

Создадим сетевой мост для внутренней сети, чтобы наши виртуальные машины (в моем варианте будет LXC контейнер для удобства) во-первых, были подключены к внутренней сети гипервизора и могли взаимодействовать друг с другом. Во-вторых, чуть позже мы добавим мост для внешней сети, чтобы виртуальные машины имели свой внешний IP адрес. Соответственно, контейнеры будут на данный момент за NAT’ом у нас.

Работать с сетевой конфигурацией Proxmox можно двумя способами: через веб-интерфейс или через конфигурационный файл /etc/network/interfaces. В первом варианте вам потребуется перезагрузка сервера (или можно просто переименовать файл interfaces.new в interfaces и сделать перезапуск networking сервиса через systemd). Если вы только начинаете настройку и еще нет виртуальных машин или LXC контейнеров, то желательно перезапускать гипервизор после изменений.

Теперь создадим сетевой мост под названием vmbr1 во вкладке network в веб-панели Proxmox.



Изображение 2. Сетевые интерфейсы ноды proxmox1



Изображение 3. Создание сетевого моста



Изображение 4. Настройка сетевой конфигурации vmbr1

Настройка предельно простая — vmbr1 нам нужен для того, чтобы инстансы получали доступ в Интернет.

Теперь перезапускаем наш гипервизор и проверяем, создался ли интерфейс:



Изображение 5. Сетевой интерфейс vmbr1 в выводе команды ip a

Заметьте: у меня уже есть интерфейс ens19 — это интерфейс с внутренней сетью, на основе ее будет создан кластер.

Повторите данные этапы на остальных двух гипервизорах, после чего приступите к следующему шагу — подготовке кластера.

Также важный этап сейчас заключается во включении форвардинга пакетов — без нее инстансы не будут получать доступ к внешней сети. Открываем файл sysctl.conf и изменяем значение параметра net.ipv4.ip_forward на 1, после чего вводим следующую команду:


В выводе вы должны увидеть директиву net.ipv4.ip_forward (если не меняли ее до этого)

Настройка Proxmox кластера

Теперь перейдем непосредственно к кластеру. Каждая нода должна резолвить себя и другие ноды по внутренней сети, для этого требуется изменить значения в hosts записях следующих образом (на каждой ноде должна быть запись о других):


Также требуется добавить публичные ключи каждой ноды к остальным — это требуется для создания кластера.

Создадим кластер через веб-панель:



Изображение 6. Создание кластера через веб-интерфейс

После создания кластера нам необходимо получить информацию о нем. Переходим в ту же вкладку кластера и нажимаем кнопку “Join Information”:



Изображение 7. Информация о созданном кластере

Данная информация пригодится нам во время присоединения второй и третьей ноды в кластер. Подключаемся к второй ноде и во вкладке Cluster нажимаем кнопку “Join Cluster”:



Изображение 8. Подключение к кластеру ноды

Разберем подробнее параметры для подключения:

  1. Peer Address: IP адрес первого сервера (к тому, к которому мы подключаемся)
  2. Password: пароль первого сервера
  3. Fingerprint: данное значение мы получаем из информации о кластере

Вторая нода успешно подключена! Однако, такое бывает не всегда. Если вы неправильно выполните шаги или возникнут сетевые проблемы, то присоединение в кластер будет провалено, а сам кластер будет “развален”. Лучшее решение — это отсоединить ноду от кластера, удалить на ней всю информацию о самом кластере, после чего сделать перезапуск сервера и проверить предыдущие шаги. Как же безопасно отключить ноду из кластера? Для начала удалим ее из кластера на первом сервере:


После чего нода будет отсоединена от кластера. Теперь переходим на сломанную ноду и отключаем на ней следующие сервисы:


Proxmox кластер хранит информацию о себе в sqlite базе, ее также необходимо очистить:


Данные о коросинке успешно удалены. Удалим оставшиеся файлы, для этого необходимо запустить кластерную файловую систему в standalone режиме:


Перезапускаем сервер (это необязательно, но перестрахуемся: все сервисы по итогу должны быть запущены и работать корректно. Чтобы ничего не упустить делаем перезапуск). После включения мы получим пустую ноду без какой-либо информации о предыдущем кластере и можем начать подключение вновь.

Установка и настройка ZFS

ZFS — это файловая система, которая может использоваться совместно с Proxmox. С помощью нее можно позволить себе репликацию данных на другой гипервизор, миграцию виртуальной машины/LXC контейнера, доступ к LXC контейнеру с хост-системы и так далее. Установка ее достаточно простая, приступим к разбору. На моих серверах доступно три SSD диска, которые мы объединим в RAID массив.


Обновляем список пакетов:


Устанавливаем требуемые зависимости:


Устанавливаем сам ZFS:


Если вы в будущем получите ошибку fusermount: fuse device not found, try ‘modprobe fuse’ first, то выполните следующую команду:


Теперь приступим непосредственно к настройке. Для начала нам требуется отформатировать SSD и настроить их через parted:

Аналогичные действия необходимо произвести и для других дисков. После того, как все диски подготовлены, приступаем к следующему шагу:

zpool create -f -o ashift=12 rpool /dev/sda4 /dev/sdb4 /dev/sdc4

Применим некоторые настройки для ZFS:


Теперь нам надо рассчитать некоторые переменные для вычисления zfs_arc_max, я это делаю следующим образом:


В данный момент пул успешно создан, также мы создали сабпул data. Проверить состояние вашего пула можно командой zpool status. Данное действие необходимо провести на всех гипервизорах, после чего приступить к следующему шагу.

Теперь добавим ZFS в Proxmox. Переходим в настройки датацентра (именно его, а не отдельной ноды) в раздел «Storage», кликаем на кнопку «Add» и выбираем опцию «ZFS», после чего мы увидим следующие параметры:

ID: Название стораджа. Я дал ему название local-zfs
ZFS Pool: Мы создали rpool/data, его и добавляем сюда.
Nodes: указываем все доступные ноды

Данная команда создает новый пул с выбранными нами дисками. На каждом гипервизоре должен появится новый storage под названием local-zfs, после чего вы сможете смигрировать свои виртуальные машины с локального storage на ZFS.

Репликация инстансов на соседний гипервизор

В кластере Proxmox есть возможность репликации данных с одного гипервизора на другой: данный вариант позволяет осуществлять переключение инстанса с одного сервера на другой. Данные будут актуальны на момент последней синхронизации — ее время можно выставить при создании репликации (стандартно ставится 15 минут). Существует два способа миграции инстанса на другую ноду Proxmox: ручной и автоматический. Давайте рассмотрим в первую очередь ручной вариант, а в конце я предоставлю вам Python скрипт, который позволит создавать виртуальную машину на доступном гипервизоре при недоступности одного из гипервизоров.

Для создания репликации необходимо перейти в веб-панель Proxmox и создать виртуальную машину или LXC контейнер. В предыдущих пунктах мы с вами настроили vmbr1 мост с NAT, что позволит нам выходить во внешнюю сеть. Я создам LXC контейнер с MySQL, Nginx и PHP-FPM с тестовым сайтом, чтобы проверить работу репликации. Ниже будет пошаговая инструкция.

Загружаем подходящий темплейт (переходим в storage —> Content —> Templates), пример на скриншоте:



Изображение 10. Local storage с шаблонами и образами ВМ

Нажимаем кнопку “Templates” и загружаем необходимый нам шаблон LXC контейнера:



Изображение 11. Выбор и загрузка шаблона

Теперь мы можем использовать его при создании новых LXC контейнеров. Выбираем первый гипервизор и нажимаем кнопку “Create CT” в правом верхнем углу: мы увидим панель создания нового инстанса. Этапы установки достаточно просты и я приведу лишь конфигурационный файл данного LXC контейнера:


Контейнер успешно создан. К LXC контейнерам можно подключаться через команду pct enter , я также перед установкой добавил SSH ключ гипервизора, чтобы подключаться напрямую через SSH (в PCT есть небольшие проблемы с отображением терминала). Я подготовил сервер и установил туда все необходимые серверные приложения, теперь можно перейти к созданию репликации.

Кликаем на LXC контейнер и переходим во вкладку “Replication”, где создаем параметр репликации с помощью кнопки “Add”:



Изображение 12. Создание репликации в интерфейсе Proxmox



Изображение 13. Окно создания Replication job

Я создал задачу реплицировать контейнер на вторую ноду, как видно на следующем скриншоте репликация прошла успешно — обращайте внимание на поле “Status”, она оповещает о статусе репликации, также стоит обращать внимание на поле “Duration”, чтобы знать, сколько длится репликация данных.



Изображение 14. Список синхронизаций ВМ

Теперь попробуем смигрировать машину на вторую ноду с помощью кнопки “Migrate”

Начнется миграция контейнера, лог можно просмотреть в списке задач — там будет наша миграция. После этого контейнер будет перемещен на вторую ноду.

Ошибка “Host Key Verification Failed”

Иногда при настройке кластера может возникать подобная проблема — она мешает мигрировать машины и создавать репликацию, что нивелирует преимущества кластерных решений. Для исправления этой ошибки удалите файл known_hosts и подключитесь по SSH к конфликтной ноде:


Примите Hostkey и попробуйте ввести эту команду, она должна подключить вас к серверу:

Особенности сетевых настроек на Hetzner

Переходим в панель Robot и нажимаем на кнопку “Virtual Switches”. На следующей странице вы увидите панель создания и управления интерфейсов Virtual Switch: для начала его необходимо создать, а после “подключить” выделенные сервера к нему. В поиске добавляем необходимые сервера для подключения — их не не нужно перезагружать, только придется подождать до 10-15 минут, когда подключение к Virtual Switch будет активно.

После добавления серверов в Virtual Switch через веб-панель подключаемся к серверам и открываем конфигурационные файлы сетевых интерфейсов, где создаем новый сетевой интерфейс:


Давайте разберем подробнее, что это такое. По своей сути — это VLAN, который подключается к единственному физическому интерфейсу под названием enp4s0 (он у вас может отличаться), с указанием номера VLAN — это номер Virtual Switch’a, который вы создавали в веб-панели Hetzner Robot. Адрес можете указать любой, главное, чтобы он был локальный.

Отмечу, что конфигурировать enp4s0 следует как обычно, по сути он должен содержать внешний IP адрес, который был выдан вашему физическому серверу. Повторите данные шаги на других гипервизорах, после чего перезагрузите на них networking сервис, сделайте пинг до соседней ноды по IP адресу Virtual Switch. Если пинг прошел успешно, то вы успешно установили соединение между серверами по Virtual Switch.

Я также приложу конфигурационный файл sysctl.conf, он понадобится, если у вас будут проблемы с форвардингом пакетом и прочими сетевыми параметрами:


Добавление IPv4 подсети в Hetzner

Перед началом работ вам необходимо заказать подсеть в Hetzner, сделать это можно через панель Robot.

Создадим сетевой мост с адресом, который будет из этой подсети. Пример конфигурации:


Теперь переходим в настройки виртуальной машины в Proxmox и создаем новый сетевой интерфейс, который будет прикреплен к мосту vmbr2. Я использую LXC контейнер, его конфигурацию можно изменять сразу же в Proxmox. Итоговая конфигурация для Debian:


Обратите внимание: я указал 26 маску, а не 29 — это требуется для того, чтобы сеть на виртуальной машине работала.

Добавление IPv4 адреса в Hetzner

Ситуация с одиночным IP адресом отличается — обычно Hetzner дает нам дополнительный адрес из подсети сервера. Это означает, что вместо vmbr2 нам требуется использоваться vmbr0, но на данный момент его у нас нет. Суть в том, что vmbr0 должен содержать IP адрес железного сервера (то есть использовать тот адрес, который использовал физический сетевой интерфейс enp2s0). Адрес необходимо переместить на vmbr0, для этого подойдет следующая конфигурация (советую заказать KVM, чтобы в случае чего возобновить работу сети):


Перезапустите сервер, если это возможно (если нет, перезапустите сервис networking), после чего проверьте сетевые интерфейсы через ip a:


Как здесь видно, enp2s0 подключен к vmbr0 и не имеет IP адрес, так как он был переназначен на vmbr0.

Теперь в настройках виртуальной машины добавляем сетевой интерфейс, который будет подключен к vmbr0. В качестве gateway укажите адрес, прикрепленный к vmbr0.

В завершении

Надеюсь, что данная статья пригодится вам, когда вы будете настраивать Proxmox кластер в Hetzner. Если позволит время, то я расширю статью и добавлю инструкцию для OVH — там тоже не все очевидно, как кажется на первый взгляд. Материал получился достаточно объемным, если найдете ошибки, то, пожалуйста, напишите в комментарии, я их исправлю. Всем спасибо за уделенное внимание.

Автор: Илья Андреев, под редакцией Алексея Жадан и команды «Лайв Линукс»


Proxmox Virtual Environment или сокращенно Proxmox VE - является программным обеспечением для виртуализации серверов которая в свою очередь имеет открытый исходный код, основанное на Debian Linux с ядром RHEL, модифицированное, чтобы вы смогли создать и запустить новые виртуальные машины для частных серверов и контейнеров.

Proxmox предлагает вам два типа виртуализации: полную виртуализацию с KVM и контейнеры с LXC.

Proxmox дает вам простой способ установки и настройки виртуальных машин из окна вашего браузера (требуется плагин Java Iced tea), он предоставляет удобные инструменты и REST API для сторонних приложений. Если вы хотите установить программу Proxmox на сервере, с которым вы хотите работать, то вам потребуется уточнить:
Процессор/материнская плата которую вы покупаете, имеет поддержку Intel VT/AMD-V CPU, минимум 2 ГБ оперативной памяти для ОС и сервисов Proxmox VE.

Возможности Proxmox

  • Поддержка локального хранилища с LVM, каталогами и ZFS.
  • Поддержка сетевых хранилищ с iSCSI, Fibre Channel, NFS, GlusterFS, CEPH и DRBD.
  • Поддержка кластеров для создания кластеров высокой доступности.
  • Живая миграция, виртуальные машины можно перемещать с одного хоста на другой без простоев.
  • Proxmox предоставляет готовые серверные программные устройства, которые можно загрузить через графический интерфейс.

Установка Proxmox

1. Создайте сеанс IPMI из консоли Mivolcoud.

3. Загрузите сервер из файла ISO, выбрав виртуальный привод в параметрах загрузки.

4. Отобразится лицензионное соглашение Proxmox EULA. Примите это, нажав Я согласен:


5. Отобразится сводка установщика Proxmox. Щелкните Параметры внизу страницы:


6. Выберите уровень RAID для Proxmox. Чтобы зеркалировать данные на обоих дисках, выберите zfs (RAID1), затем нажмите Далее, чтобы продолжить установку:


7. Введите расположение вашего сервера и выберите часовой пояс для использования, затем нажмите Далее, чтобы перейти к следующему шагу:


8. Введите надежный пароль администратора, содержащий не менее восьми символов, введите его подтверждение и контактный адрес электронной почты. Proxmox будет отправлять важные уведомления на этот адрес электронной почты, поэтому убедитесь, что он действителен. Когда все будет готово, нажмите Далее:


9. Настройте сеть управления. Это будет сетевой интерфейс, на котором будут доступны веб-интерфейс и API Proxmox. Рекомендуется настроить его на основном адресе электронной почты вашего Mivolcoud.


Конфигурация сети должна выглядеть следующим образом:

10. Отобразится сводка конфигурации. Убедитесь, что все параметры верны, прежде чем нажать Установить, чтобы запустить установку:


11. Машина в процессе установки. Это может занять некоторое время. После завершения установки отобразится подтверждение. Нажмите Reboot, чтобы перезагрузить сервер перед доступом к веб-интерфейсу Proxmox:


Доступ к Proxmox

После перезагрузки сервера становится доступен веб-интерфейс Proxmox.


Войдите в систему администратора Proxmox, используя имя пользователя root и свой пароль. После входа в веб-интерфейс нам нужно настроить сеть для Proxmox.

У меня есть один сетевой интерфейс «eth0» для исходящих соединений с IP-адресом «192.168.168.168», а мой шлюз - «192.168.55.254».
На этом этапе мы хотим создать новый сетевой интерфейс (мост) «vmbr0», затем мы включаем маршрутизацию на этом сетевом интерфейсе и включаем proxy arp в исходный интерфейс «eth0».
Vmbr0 - это интерфейс для ВМ(виртуальных машин) в Proxmox.
Это хороший вариант, если у нас есть только один общедоступный IP-адрес и мы хотим, чтобы виртуальная машина была скрыта за IP-адресом хоста.

Введите следующие учетные данные для входа: Имя пользователя: root Пароль: пароль, установленный при установке Proxmox. Область: стандартная аутентификация Linux PAM Язык: язык интерфейса Proxmox (например, английский).

2. Отобразится панель управления Proxmox. Теперь вы можете продолжить развертывание виртуальных машин и управление ими:


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

В данной статье мы рассмотрим установку Proxmox, одного из популярных систем виртуализации. Proxmox VE (Proxmox Virtual Environment) - система виртуализации с открытым исходным кодом, основанная на Debian GNU/Linux. Используя гипервизоры на уровне операционной системы KVM и LXC, она позволяет разворачивать внутри себя виртуальные сервера Linux без потери в производительности. Proxmox является идеальным инструментом, позволяющим на одном физическом сервере развернуть несколько полноценных виртуальных серверов под разные задачи.

В этом примере мы установим гипервизор на тестовый сервер со следующими характеристиками:

CPU: Intel Pentium G4400 3.3 GHz

240 Gb диск SSD x 2

500 Gb диск SSD x 2

А для тех кто читать не любит, мы подготовили видео:

Установка Proxmox VE

Установка не представляет особой сложности. Нам потребуется загрузочный флешь-накопитель с образом, который бесплатно можно скачать на сайте разработчика.

Сайт разработчика proxmox

В этом примере, для отказоустойчивости, гипервизор мы будем ставить на Raid 1. На данном этапе нам необходимо установить систему, программный raid для хранилища мы соберем позже. Систему ставим на SSD емкостью 120 Gb, выбрав zfs (RAID1). Важно не перепутать и не выбрать raidz-1. На ZFS raidz-1 является аналогом RAID-5 и требует установку на три диска. Дальнейшие действия очень просты.

zfs(RAID1)

Окно утсановки proxmox

Окно для ввода регистрационн6ых данных

Важный момент. Продумайте заранее архитектуру, у вас будет один гипервизор, или кластер из нескольких гипервизоров. Когда на нем будут развернуты гостевые операционные системы, сменить hostname одной командой не выйдет.

Конфигурация сети

Окно с подтверждением всех установливаемых параметорв.

По окончанию успешной установки вы увидите следующее окно приветствия. После аутентификации вы попадаете в привычную среду Debian.

Среда Debian

Настройка гипервизора Proxmox VE

Первым делом обновим наш Debian

Затем, утилитой fdisk посмотрим состояние наших дисков и разделов.

/dev/vda и /dev/vdb — ssd 120 Gb, на который установлен Proxmox.

/dev/vdc и /dev/vdd — ssd 500 Gb, на которых мы будем собирать программный raid с помощью утилиты mdadm.

Куталоги в которых установлен Proxmox и в которых мы собирается RAID

Они пусты, нам необходимо создать партиции разделов. Ниже приведен пример, как это сделать для /dev/vdc, такую же процедуру необходимо выполнить для /dev/vdd, создав партиции /dev/vdc1 и /dev/vdd1 соответственно.

Создание партиции разделов.

Создание партиций разделов.

Данная процедура может занять некоторое время, проверять состояние синхронизации вы можете командой:

После успешной синхронизации программного raid массива, мы увидим следующую картину:

Успешная синхронизация програмного raid массива.

Следующим этапом, создадим файловую систему ext4 на программном рейде /dev/md127

Создание файловой сиситемы ext4.

Командой blkid проверим uuid собранного raid /dev/md127

Проверка uuid

В нашем случае, это:

/dev/md127: UUID="400de0bd-6de7-46e5-a6ca-d03b11fe1c6f" TYPE="ext4"

Создадим каталог data, который смонтируем к нашей новой fs

Далее правим файл /cat/fstab, указывая новую точку монтирования, чтобы после перезагрузки гипервизора изменения остались в силе. У нас должен получиться следующий результат:

Результат правки файла /cat/fstab,

Как вы могли не заметить, установка программной части Proxmox VE у нас выполнена на файловой системе ZFS. Это масштабируемая FS, работа которой, и работа с которой в корне отличается от привычных нам ext4 и иже с ней. Эта файловая система разрабатывалась под UNIX, и для корректно работы с Linux потребуется некоторый тюннинг. Это обусловлено так же особенностью работы с оперативной памятью. Чтобы исключить неконтролируемое потребление ОЗУ, создадим следующий файл:

В который необходимо добавить следующие параметры:

options zfs zfs_arc_max=2147483648

options zfs zfs_arc_min=1073741824

options zfs zfs_prefetch_disable=1

Настроим swappiness в Linux. Параметр vm.swappiness по умолчанию имеет значение 60, и контролирует процент свободной памяти. Он контролирует значение, после которого начнется активный сброс данных в swap. Значение «60» означает следующее: 100-60=40%. Другими словами, при загрузке ОЗУ более чем 40%, данные начнут кешироваться в swap. Не существует оптимального значения, он обусловлен только конфигурацией вашего сервера. Если ОЗУ достаточно, это значение можно уменьшить следующими командами:

Чтобы после перезагрузки значения не сбросились до первоначальных, в файле /etc/sysctl.conf необходимо добавить: vm.swappiness=10

Применить настройку «на лету» можно следующей командой:

Чтобы после перезагрузки значения не сбросились до первоначальных, в файле /etc/sysctl.conf необходимо добавить: vm.swappiness=10

Выше были рассмотрены базовые настройки для полноценного функционирования гипервизора. Оптимизация остальных параметров, таких как настройка программного обеспечения, настройка smart мониторинга ssd дисков и т. д., не отличается от работы с любым другим дистрибутивом Linux Debian.

WEB-интерфейс гипервизора Proxmox VE

Proxmox VE имеет очень удобный и функциональный web-интерфейс, в котором мы будем далее выполнять настройки. Если в предыдущих пунктах вы все сделали верно, он будет доступен по следующей ссылке:

Аутентифицировавших польхователем root вместо окна приветствия мы увидим следующее предупреждение:

Окно после root авторизации

Proxmox VE является программным обеспечением с открытым исходным кодом, он бесплатен и поставляется под лицензией GNU GPL\GNU AGPL. Однако поддержка Enterprise версии платная. Если вы не желаете покупать лицензию, необходимо изменить репозиторий обновлений:

В нем необходимо закомментировать репозиторий pve-enterprise и добавить репозиторий pve-no-subscription:

Теперь приступим к настройке хранилища. Для этого нам необходимо перейти в пункт меню «Datacenter» - «Storage» и нажать «Add», выбрав тип хранилища «Directory». Сюда мы добавим наш примонтированый каталог data, который мы создали на нашем программном raid, и на котором у нас будут размещены гостевые виртуальные машины.

Добавление каталога data

Просмотр каталога data

Настройка сети. Для функционирования обычно используют три режима: Bridge, Routed и NAT. Bridge - при этом режиме, гостевые VM находятся в одной подсети с гипервизором и используют ip адреса этой подсети. Routed - при этом режиме, одна из виртуальных машин настроена как шлюз, для выхода в сеть интернет. NAT - виртуальные машины имеют собственную подсеть, однако во внешнюю выходят через NAT, который настроен на гипервизоре.

В этом примере мы используем режим Brige. Для этого необходимо перейти в раздел «Datacenter» - «your_Node» - «System» - «Network» и нажать «Create», выбрав режим «Linux Brige»

Использование режима Brige

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

Перейдем в каталог для образов и скачаем необходимый дистрибутив, который будем инсталлировать. Для нашего пример а выберем CentOS8 и рандомный официальный репозиторий

Для создания новой виртуальной машины внутри гипервизора необходимо в правом верхнем углу web-интерфейса нажать «Create VM», после чего откроется окно настройки.

Окно создания виртуального сервера

Перед вами откроется окно настроек с восемью вкладками и множеством параметров. Рассмотрим основные базовые, вы их можете изменить под свои нужды. Единственный момент, который необходимо учесть при создании виртуальных машин, их ресурсы не должны превышать физические характеристики гипервизора. Логично, что имея физически на боту 16 Gb оперативной памяти, создать виртуальных несколько машин потребляющих суммарно 32 Gb у вас получится, но при превышении ресурсов гипервизор просто «уйдет в себя». Это же касается и емкости жестких дисков. За этим важно следить.

Приведу листинг по пунктам:

Окно проверки параметров при создании виртуального сервера

Сверившись, что все настроено верно, нажимаем «Finish» и ждум загрузку виртуальной машины. Когда она будет запущена, выберем ее и перейдем во вкладку «Console», где увидим окно первоначальной настройки дистрибутива.

Окно первоначальной настройки дистрибутива

Настройка виртуальной машины ничем не отличается от обычной настройки дистрибутива CentOS. Настроив все параметры, сеть, вы сможете подключаться к ней по ssh и работать как с полноценным сервером.

У нас Вы можете арендовать сервер (dedicated server) c поддержкой аппаратной виртуализации, развернуть на котором гипервизор Proxmov VE у Вас не сосотавит труда. Если во время использования инструкции у Вас возникнут вопросы, наша техническая поддержка готова прийти на помощь в любое время.

Proxmox Virtual Environment (Proxmox VE) - система виртуализации с открытым исходным кодом на базе Debian, использующая в качестве гипервизора KVM для виртуальных машин и LXC для контейнеров. Это позволяет запускать в виртуальной среде Linux-системы без потери производительности и остальные, поддерживаемые KVM ОС с минимальными потерями. Кроме того, Proxmox VE позволяет создавать высокодоступные конфигурации с несколькими серверами и распределенными системами хранения.

Для установки используется собственный инсталлятор и весь процесс предельно прост, от вас потребуется указать конфигурацию дисковой подсистемы:

PVE-base-001.jpg

А также пароль суперпользователя, настройки сети, страну и часовой пояс. Потом останется только откинуться в кресле и немного подождать, пока система установится на ваш компьютер. По завершении процесса установки вас встретит приглашение входа в систему, над которым будет указан адрес, который следует набрать в браузере для доступа к консоли управления.

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

Затем создадим свой список:

В который внесем следующие строки:

Теперь можно переходить к консоли управления, откроем браузер и наберем предложенный адрес, консоль управления продуктами Proxmox работает на порту 8006, что следует помнить.

PVE-base-003.jpg

Структура Proxmox VE иерархична, высший уровень составляет Датацентр, здесь есть настройки, применяемые сразу ко всем узлам, например, управление пользователями или хранилищами, настройки резервного копирования и т.д.

PVE-base-004.jpg

Следующий уровень - настройки узла, здесь доступна подробная статистика и большое количество настроек, которые относятся именно к этому серверу. Мы не будем останавливаться на них подробно, для администратора с достаточным уровнем подготовки разобраться с ними не составит труда.

Но есть и "сложности перевода", так в разделе Обновления, нас ждут две одинаковые кнопки Обновить.

PVE-base-005.jpg

В английской версии это были Update и Upgrade, а вот здесь перевели как перевели. Первая из них запускает обновление списка пакетов, а вторая запускает само обновление, открывая в отдельном окне консоль сервера.

PVE-base-006.jpg

Если вам нужно просто попасть в консоль сервера, можно нажать кнопку Оболочка и перед вами в отдельном окне браузера откроется noVNC-сессия, при этом не требуется ни Flash, ни Java, что позволяет подключаться как к серверу, так и к виртуальным машинам с любого устройства, был бы браузер.

Перед тем, как создавать виртуальные машины и контейнеры, обратимся к Хранилищам, по умолчанию создается два хранилища: local и local-lvm.

PVE-base-007.jpg

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

Для получения шаблонов следует нажать кнопку Шаблоны и мы попадем в официальное хранилище шаблонов, здесь мы может сразу загрузить шаблон другого продукта Proxmox - Mail Gateway или шаблоны стандартных Linux-систем.

PVE-base-009.jpg

Чтобы загрузить выбранный шаблон достаточно нажать кнопку Загрузка внизу окна.

Для создания виртуальной машины нажмем Создать VM. На первом экране укажем имя виртуальной машины:

PVE-base-010.jpg

Затем укажем тип и версию гостевой ОС и подключим нужный образ из хранилища.

PVE-base-011.jpg

После чего, последовательно перемещаясь по пунктам следует настроить все остальные параметры виртуалки, особых сложностей это составить не должно. Но создав виртуальную машину не спешите ее запускать. Прежде всего перейдем в раздел Оборудование. Здесь можно не только настроить уже подключенное оборудование, но и добавить новое. В отличие от Hyper-V, Proxmoх позволяет пробрасывать внутрь виртуальных машин USB-устройства, что может быть полезным, если вам нужно работать с ключами защиты или USB-токенами.

PVE-base-012.jpg

Также не забудьте заглянуть в Параметры, где стоит включить Запуск при загрузке и Агент QEMU. И если с первым пунктом все понятно, то Агент позволяет управлять системой со стороны гипервизора, без него вы, например, не сможете сделать резервную копию без остановки работы машины.

Итак, все настройки закончены, включаем виртуальную машину и переключаемся в консоль. Да, прямо в браузере вы увидите экран вашей виртуалки, при этом ничего не тормозит, работать с системой достаточно комфортно.

PVE-base-014.jpg

Пока идет установка системы создадим еще новый контейнер, для этого следует нажать кнопку Создать CT в правом верхнем углу консоли управления. В качестве контейнеров могут быть только Linux-системы, на первом экране укажите имя контейнера и задайте пароль root или загрузите публичный SSH-ключ.

PVE-base-015.jpg

Затем укажите шаблон и следующими шагами сконфигурируйте виртуальное железо.

PVE-base-016.jpg

Доступных настроек у контейнеров гораздо меньше, зато они гораздо более экономно расходуют ресурсы.

PVE-base-017.jpg

Обратите внимание, что запущенный контейнер с Debian 10 потребляет всего лишь 55,46 МБ оперативной памяти.

Для других дистрибутивов следует установить пакет qemu-guest-agent штатным пакетным менеджером.

С Windows все несколько сложнее, прежде всего скачаем и поместим в хранилище Proxmox ISO-образ с virtIO драйверами. Получить его можно со страницы Fedora Project. Затем подключим скачанный образ к виртуальной машине.

PVE-base-019.jpg

При включенном QEMU-агенте мы увидим три неустановленных устройства.

PVE-base-020.jpg

Начнем с последнего, для Драйвера прерываний кнопок HID перейдем в выбор из списка уже установленных драйверов и укажем драйвер Универсальной шины.

PVE-base-021.jpg

Для двух оставшихся выполним поиск драйверов на смонтированном диске и устанавливаем драйвер VirtIO Serial Driver, который отвечает за работу QEMU-агента:

PVE-base-023.jpg

Также вы можете теперь включить для виртуальной машины динамическую память, для этого установите флаг Раздувание памяти и укажите минимальный размер оперативки, с которой начнет работу виртуалка:

PVE-base-024.jpg

Но придерживайтесь при этом разумных пределов, так вы можете столкнуться с невозможностью запустить современные версии Windows если укажете минимальный размер памяти менее 1 ГБ.

Еще одна важная функция, которая доступна в Proxmox VE - это резервное копирование. Существует хорошая практика - хранить резервные копии за пределами хоста. Поэтому подключим к Proxmox сетевое хранилище, для этого перейдем в Датацентр - Хранилище. Выбор здесь достаточно богатый: iSCSI, NFS, CIFS и прочее.

PVE-base-025.jpg

В нашем случае мы подключим CIFS (SMB) хранилище.

PVE-base-026.jpg

Укажите имя хранилища, в нашем случае backup, его IP-адрес или FQDN-имя, доступные ресурсы будут просканированы автоматически и вам останется только выбрать их из списка, в поле Содержимое укажите Резервная копия , а также не забудьте указать максимальное количество резервных копий в хранилище.

Затем перейдем в раздел Резервная копия и создадим новый сценарий резервного копирования:

PVE-base-027.jpg

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

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

Читайте также: