All-in-one: proxmox + openmediavault или ещё одна идея для домашнего nas

Введение

Использовать систему в работе удобно и за все время использования она меня не подводила. Начинал использование с 4 версии, но вышла 5 версия с очень удобными и функциональными изменениями. Сразу после выхода новой версии любого программного продукта я не спешу обновляться и всегда жду в районе 3 месяцев, так я избавляю себя от ошибок которые всегда есть при выходе любой новой версии. На сайте разработчика есть инструкции как производить обновление на новую версию. Вариант установки как с готового образа iso так и ручная установки на Debian.

В моем случае я как раз нарушил оба этих правила и обновить систему не удалось.

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

Hochverfügbarer Proxmox VE HA Cluster

Der Proxmox VE HA Cluster ermöglicht den Einsatz hochverfügbare virtuelle Server. Der Cluster basiert auf bewährten Linux HA-Technologien und bietet stabile und verlässliche Services.

Proxmox VE HA Manager

Während des laufenden Betriebs überwacht der Proxmox VE HA Manager, der integrierte Ressourcen-Manager, alle virtuellen Maschinen und Container auf dem gesamten Cluster und wird automatisch aktiv falls einer der Knoten ausfällt. Der Proxmox VE HA Manager wird vorinstalliert geliefert und erfordert keine Konfiguration. Das integrierte Watchdog-basierte Fencing vereinfacht die gesamte Softwareverteilung enorm.

Das gesamte Setup eines Proxmox VE HA Clusters kann einfach über die web-basierte Management-Oberfläche konfiguriert werden.

Proxmox VE HA Simulator

Mit dem integrierten Proxmox VE HA Simulator können Hochverfügbarkeits-Funktionen erlernt und ausgiebig getestet werden bevor mit dem Produktivbetrieb gestartet wird.

Authentication

PVE uses a Token Based Authentication. All request to the API need to include that token inside a Cookie. We usually call that token a ‘ticket’. Additionally, any write request must include a CSRF prevention token inside the HTTP header. The following examples use the ‘curl’ command line tool.

Example: get a new ticket and the CSRF prevention token

# curl -k -d "username=root@pam&password=yourpassword"  https://10.0.0.1:8006/api2/json/access/ticket 
{ "data": { 
  "CSRFPreventionToken":"4EEC61E2:lwk7od06fa1+DcPUwBTXCcndyAY",  
  "ticket":"PVE:root@pam:4EEC61E2::rsKoApxDTLYPn6H3NNT6iP2mv...", 
  "username":"root@pam"}
}

You need to pass the returned ticket with a cookie to any further request:

curl -k -b "PVEAuthCookie=PVE:root@pam:4EEC61E2::rsKoApxDTLYPn6H3NNT6iP2mv..." https://10.0.0.1:8006/api2/json/

Additionally, any write request (POST, PUT, DELETE) must include the CSRFPreventionToken header:

curl -XDELETE -H "CSRFPreventionToken: 4EEC61E2:lwk7od06fa1+DcPUwBTXCcndyAY" ...

NOTE: Tickets have a limited lifetime of 2 hours. But you can simple get a new ticket by passing the old ticket as password to the /access/ticket method.

Репликация виртуальных машин

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

Настройка ZFS

Репликация может выполняться только на тома ZFS. Подробная работа с данной файловой системой выходит за рамки данной инструкции, однако, мы разберем основные команды, с помощью которых можно создать необходимы том.

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

zpool create -f zpool1 /dev/sdc

* в данном примере мы создадим пул с названием zpool1 из диска /dev/sdc.

Теперь открываем панель управления Proxmox. Переходим в Датацентр — Хранилище — ZFS:

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

* в данном примере мы создаем хранилище из пула zpool1; название для хранилище задаем zfs-pool, также ставим галочку Дисковое резервирование. Остальные настройки оставляем по умолчанию.

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

Настройка репликации

Переходим к хосту, где находится виртуальная машина, для которой мы хотим настроить клонирование (она должна также находится на хранилище ZFS) — Репликация:

Задаем настройки для репликации виртуальной машины:

* в данном примере мы указываем системе проверять и реплицировать изменения каждые 15 минут для виртуальной машины с идентификатором 100. Репликация должна проводиться на сервер pve2.

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

Видео обновления кластера proxmox

Помогла статья? Подписывайся на telegram канал автора

Watch this video on YouTube

Онлайн курс Основы сетевых технологий

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

  • На каком уровне модели OSI могут работать коммутаторы;
  • Как лучше организовать работу сети организации с множеством отделов;
  • Для чего и как использовать технологию VLAN;
  • Для чего сервера стоит выносить в DMZ;
  • Как организовать объединение филиалов и удаленный доступ сотрудников по vpn;
  • и многое другое.

Уже знаете ответы на вопросы выше? Или сомневаетесь? Попробуйте пройти тест по основам сетевых технологий. Всего 53 вопроса, в один цикл теста входит 10 вопросов в случайном порядке. Поэтому тест можно проходить несколько раз без потери интереса. Бесплатно и без регистрации. Все подробности на странице .

Организация High Availability

Proxmox «из коробки» поддерживает функционал организации HA как для виртуальных машин, так и для LXC-контейнеров. Утилита ha-manager обнаруживает и отрабатывает ошибки и отказы, выполняя аварийное переключение с отказавшей ноды на рабочую. Чтобы механизм работал корректно необходимо, чтобы виртуальные машины и контейнеры имели общее файловое хранилище.

После активации функционала High Availability, программный стек ha-manager начнет непрерывно отслеживать состояние работы виртуальной машины или контейнера и асинхронно взаимодействовать с другими нодами кластера.

Присоединяем общее хранилище

Для примера мы развернули небольшое файловое хранилище NFS по адресу 192.168.88.18. Чтобы все ноды кластера могли его использовать нужно проделать следующие манипуляции.

Выбираем в меню веб-интерфейса Datacenter — Storage — Add — NFS.

Заполняем поля ID и Server. В выпадающем списке Export выбираем нужную директорию из доступных и в списке Content — необходимые типы данных. После нажатия кнопки Add хранилище будет подключено ко всем нодам кластера.

При создании виртуальных машин и контейнеров на любом из узлов указываем наш storage в качестве хранилища.

Настраиваем HA

Для примера создадим контейнер с Ubuntu 18.04 и настроим для него High Availability. После создания и запуска контейнера заходим в раздел Datacenter — HA — Add. В открывшемся поле указываем ID виртуальной машины/контейнера и максимальное количество попыток рестарта и перемещения между нодами.

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

После нажатия кнопки Add утилита ha-manager оповестит все ноды кластера о том, что теперь VM с указанным ID контролируется и в случае падения ее необходимо перезапустить на другой ноде.

Устроим сбой

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

Работа механизма HA не означает непрерывность работы VM. Как только нода «упала», работа VM временно останавливается до момента автоматического перезапуска на другой ноде.

И вот тут начинается «магия» — кластер автоматически переназначил ноду для выполнения нашей VM и в течение 120 секунд работа была автоматически восстановлена.

Гасим node2 по питанию. Посмотрим, выдержит ли кластер и вернется ли VM в рабочее состояние автоматически.

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

pvecm expected 1

Спустя 2 минуты механизм HA отработал корректно и не найдя node2 запустил нашу VM на node3.

Как только мы включили обратно node1 и node2, работа кластера была полностью восстановлена

Обратите внимание, что обратно на node1 VM самостоятельно не мигрирует, но это можно сделать вручную

Introduction


fig. 1


fig. 2


fig. 3

In addition to the full featured web interface, Proxmox VE Mobile (introduced in Proxmox VE 3.3 as technology preview) is designed specifically for the use on mobile devices (phones and tablets). Its not a complete replacement for the full admin web interface but it has already a lot of key functionality to manage Proxmox VE on the go, including the SPICE and HTML5 console.

Currently VM and CT handling and showing of their configuration (but not its changing) is supported.

Main features

  • Supports Two-Factor Authentication
  • Manage all nodes inside your cluster with one login
  • View status and config of host, containers and VM
  • Start/Stop/Shutdown/Migrate
  • HTML5 Console (works on all browsers)
  • SPICE Console, for best user experience (Android only, third party APP needed)
  • Task log

Install a standard Debian Stretch (amd64)

Add an /etc/hosts entry for your IP address

Please make sure that your hostname is resolvable via /etc/hosts, i.e you need an entry in /etc/hosts which assigns an IPv4 address to that hostname.

Note: Make sure that no IPv6 address for your hostname is specified in /etc/hosts

For instance if your IP address is 192.168.15.77, and your hostname prox4m1, then your /etc/hosts file should look like:

127.0.0.1       localhost.localdomain localhost
192.168.15.77   prox4m1.proxmox.com prox4m1

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

You can test if your setup is ok using the hostname command:

hostname --ip-address
192.168.15.77 # should return here your IP address

Proxmox VE Firewall

Die integrierte Proxmox VE Firewall schützt Ihre IT-Infrastruktur optimal. Die Firewall ist flexibel anpassbar und erlaubt es dem Administrator komplexe Konfigurationen via Web-Interface oder Kommandozeile einzurichten. Es können sowohl Firewall-Regeln für alle Gäste in einem Cluster erstellt werden oder auch nur Regeln für einzelne virtuelle Maschinen oder Container. Funktionen wie Firewall Makros, Sicherheitsgruppen, IP-Sets und Aliases machen die Ausführung einfach.

Verteilte (distributed) Firewall

Alle Konfigurationen werden zwar auf dem Cluster-Filesystem gespeichert, die iptables-basierte Proxmox VE Firewall läuft jedoch auf jedem Cluster-Knoten und bietet dadurch eine Vollisolierung der einzelnen VMs. Der verteilte Charakter dieses Systems bietet somit eine weitaus höhere Bandbreite als eine zentrale Firewall-Lösung.

IPv4 und IPv6

Die Proxmox VE Firewall bietet vollen Support für IPv4 und IPv6. Der IPv6-Support ist voll transparent. Proxmox VE filtert standardmäßig den Traffic für beide Protokolle, ein zusätzliches Regelset für IPv6 ist daher nicht notwendig.

Тюнинг сервера PVE

Внесем несколько изменений, которые сделают работу с Proxmox VE удобнее.

Отключение предупреждения об отсутствии подписки

Каждый раз при заходе в панель управления мы будем видеть такое предупреждение:

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

  1. Отключим платный репозиторий для получения пакетов proxmox.
  2. Отредактируем файл js для отключения данного сообщения.

И так, в SSH открываем на редактирование репозиторий proxmox:

nano /etc/apt/sources.list.d/pve-enterprise.list

Приводим его к виду:

#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 и создать новый — кому как будет удобнее.

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

apt-get update

Последнее — редактируем файл /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js:

sed -i «s/getNoSubKeyHtml:/getNoSubKeyHtml_:/» /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

* данной командой мы находим getNoSubKeyHtml в файле /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js и меняем на getNoSubKeyHtml_.

Закрываем окно браузера с Proxmox, если оно было открыто и запускаем его снова. Входим в систему — сообщение не должно появиться.

Сертификаты

Сервер PVE устанавливается с самоподписанным сертификатом. Это означает, что при подключении к панели управления мы будем видеть предупреждение от системы безопасности. Чтобы браузер принимал сертификат, он должен соответствовать следующим требованиям:

  • Быть выдан доверенным центром сертификации или зарегистрированным в вашей локальной сети, например, локальный AD CS.
  • Быть для доменного имени, по которому мы заходим в панель управления.
  • Иметь актуальные даты начала действия и окончания.

При этом, мы не должны заходить в панель управления по IP-адресу — в противном случае, независимо от сертификата, мы все-равно, получим предупреждение.

И так, сам сертификат можно купить, запросить бесплатно у Let’s Encrypt или создать с использованием локального центра сертификации, например, по данной инструкции. Получив сертификат, открываем панель управления PVE и переходим к серверу — Система — Сертификаты — кликаем по Загрузить пользовательский сертификат:

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

… и нажимаем Загрузить. Система предупредит, что загрузится с новым сертификатом — необходимо закрыть вкладку в браузере и открыть консоль управления снова. Если сертификат загружен правильный, мы не увидим предупреждения.

Проверка аппаратной поддержки виртуализации

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

egrep '(vmx|svm)' /proc/cpuinfo
=вывод команды=
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good nopl aperfmperf pni dtes64 monitor ds_cpl vmx tm2 ssse3 cx16 xtpr pdcm dca lahf_lm tpr_shadow dtherm

Если в выводе присутствует параметр svm (Secure Virtual Machines) — значит процессор с поддержкой аппаратной виртуализации от AMD, если vmx (Virtual Machine eXtension) — значит процессор Intel.

Если вывод пустой, то смотрите в bios на предмет включения виртуализации, в противном случае использовать Proxmox не получится.

Backup und Restore

Datensicherung (Backup) ist eine Grundsäule jeder zukunftsfähigen IT-Infrastruktur. Proxmox VE bietet dazu eine vollständig integrierte Backup-Lösung welche effizient die Möglichkeiten des jeweiligen Storage und des Gastsystemtyps nutzt.Proxmox VE führt Vollbackups aus, die die kompletten VM/CT-Konfigurationen sowie alle Daten enthalten. Backups können in Proxmox VE entweder über das Web-Interface gestartet werden oder man verwendet das vzdump-Backuptool über die Kommandozeile. vzdump ist das integrierte Backup-Tool das konsistente Snapshots von laufenden Containern und KVM-Maschinen erstellt. Es erzeugt ein Archiv mit den VM- oder Containerdaten inklusive der Konfigurationsdateien.

Automatische Datensicherung (Scheduled Backup)

Backup-Jobs können automatisch eingerichtet werden (scheduled backup) sodass sie zu einem bestimmten Zeitpunkt bzw. Wochentag und für ausgewählte Knoten oder Gastsysteme die Datensicherung ausführen .

Создание кластера

Важно! Нижеприведенная конфигурация является тестовой. Не забудьте свериться с официальной документацией Proxmox VE

Для того, чтобы запустить тестовый кластер, мы взяли три сервера с установленным гипервизором Proxmox одинаковой конфигурации (2 ядра, 2 Гб оперативной памяти).

Изначально, после установки ОС, единичный сервер работает в Standalone-mode.

Создадим кластер, нажав кнопку Create Cluster в соответствующем разделе.

Задаем имя будущему кластеру и выбираем активное сетевое соединение.

Нажимаем кнопку Create. Сервер сгенерирует 2048-битный ключ и запишет его вместе с параметрами нового кластера в конфигурационные файлы.

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

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

Базовая настройка закончена — можно опробовать наш гипервизор в деле. 

В правой верхней части панели управления кликаем по Создать VM:

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

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

* в данном примере мы задали имя FS. При желании, также можно изменить VM ID, но он проставляется автоматически и имеет правильное значение.

Выбираем загруженный нами ISO-образ, с которого будем ставить операционную систему, задаем тип гостевой операционной системы и ее версию:

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

На вкладке Система можно оставить все значения по умолчанию:

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

Задаем размер жесткого диска:

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

Мы можем задать количество процессоров и ядер:

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

Выделяем память:

* наша Ubuntu будет работать с 2 Гб оперативной памяти.

Выбираем созданный нами бридж — либо для получения прямого адреса из сети, либо для NAT:

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

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

… и нажимаем Готово. Ждем окончания процесса и переходим к консоли:

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

Server virtualization with support for KVM and LXC

Proxmox VE is based on Debian GNU/Linux and uses a customized Linux Kernel. The Proxmox VE source code is free, released under the GNU Affero General Public License, v3 (GNU AGPL, v3). This means that you are free to use the software, inspect the source code at any time or contribute to the project yourself. Using open-source software guarantees full access to all functionalities at any time as well as a high level of reliability and security. We encourage everybody to contribute to the Proxmox VE project while Proxmox, the company behind it, ensures that the product meets consistent and enterprise-class quality criteria.

Вывод

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *