Установка Proxmox в Debian на raid 1

На сегодняшний день существует несколько наиболее популярных гипервизоров для построения виртуальной информационной системы. В данной статье я рассмотрю установку и настройку бесплатной системы виртуализации proxmox 6 на базе ОС Debian 10, установленной на RAID 1. В качестве гипервизоров она использует опенсорсные KVM и LXC, позволяя виртуализировать наиболее популярные ОС.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Введение

Некоторое время назад я узнал про систему виртуализации proxmox на базе KVM. Ранее с этим гипервизором я был знаком, но он мне не понравился из-за отсутствия удобных инструментов управления под windows. Это было давно, лет 5 назад. Мне пришлось администрировать уже настроенный гипервизор и мне это не понравилось, слишком много действий приходилось делать в консоли. Не скажу, что мне это прям не нравится, но я не вижу смысла в консоли делать то, что в других гипервизорах мышкой ты делаешь в 5 раз быстрее в gui. Свое время стараюсь экономить и использовать рационально.

Все изменилось, когда я решил посмотреть на Proxmox. Простая установка и удобная панель управления через браузер привлекли сразу. Попробовал, потестировал, вроде все неплохо работает, управление удобное и понятное. Особенно понравились бэкапы из коробки. Не решался использовать в реальной работе, потому что не имею опыта работы c zfs, а ставить гипервизор на одиночные диски плохая идея. Раньше я использовал XenServer, установленный на mdadm raid1, пока он не перестал поддерживать такой режим работы. Proxmox почему-то не поддерживает установку на простой и понятный mdadm, но при этом есть zfs. Этот момент мне искренне не понятен, если учитывать, что proxmox работает на базе системы Debian, которая без проблем устанавливается на программный рейд.

В итоге я решил установить, настроить и протестировать proxmox, установленный на программный raid 1 mdadm. Диски отключал, вынимал, вставлял обратно. Все прекрасно работает. Отказоустойчивость на уровне дисков обеспечена, значит можно использовать в реальной работе. Я и использую последние пару лет. Отдельно упомяну, что меня сразу привлекло в KVM - возможность пробрасывать USB. До сих пор Hyper-V и XenServer не умеют это делать. Первый совсем не умеет, второй вроде как-то пробрасывает, но без гарантий и не все устройства работают. А в KVM без проблем получилось пробросить USB в виртуалку и воткнуть туда HASP ключ от 1С. Для малых и средних офисов это актуальная потребность.

Для того, чтобы установить proxmox на raid 1 пойдем окольным путем. Стандартный инсталлятор не дает нам необходимой возможности установки на рейд. У нас есть 2 варианта решения проблемы:

  1. Установка сначала голой системы Debian 10 на raid1, а затем на нее устанавливается proxmox. Конечный результат не будет отличаться от инсталляции со стандартного диска.
  2. Установить систему proxmox на одиночный диск, а потом перенести ее на raid1.

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

Установка proxmox на mdadm raid 1 в debian 10

Первым делом нам нужно установить чистую систему Debian. На данный момент это версия 10 Buster. У меня есть отдельная статья по установке Debian. Там подробно описан процесс установки системы на софтовый рейд mdadm. В конце я на примере показал, что делать, когда диск выходит из строя, как его менять. Я на практическом примере продемонстрировал отказоустойчивость такого решения, поэтому не буду здесь подробно на этом останавливаться.

Скачивайте дистрибутив последней версии Debian. Взять его можно, к примеру, на Yandex.Mirror, конкретно здесь. Для установки подойдет образ CD-1 либо netinst. Начинайте стандартную установку и доходите до пункта настройки жесткого диска. Я буду использовать консольное отображение, не графическое. Мне так удобнее. Принципиальных отличий нет, можете делать по аналогии, если начали установку в графическом режиме. Когда дело дойдет до настройки диска, выбирайте вариант ручной разметки.

Ручная разметка диска

Если вы делаете установку на чистые диски, то вас должна встретить такая картина состояния дисков:

Список дисков для установки

Если есть какие-то разделы, то удалите их все, чтобы были чистые диски. Для написания статьи я использую виртуальную тестовую среду, диски выделены небольшого объема. Для учебных целей этого достаточно. Я разобью диски следующим образом:

/boot Загрузочный раздел 500 мб
/ Корневой раздел будущей системы, 10 гб выделяю в тесте, в реальной работе рекомендую сделать 30-50 гб на всякий случай
Свободное место Все остальное пространство диска оставляю неразмеченным. Как его разделить и использовать будет зависеть от ваших потребностей. Позже покажу как его все задействовать под различные хранилища (виртуальных машин, образов или бэкапов)

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

Разбивка диска под proxmox

Параметры первого раздела на 500 Мб:

/boot раздел

Параметры второго раздела на 10 Гб:

/ корневой раздел

Оба раздела должны быть Primary.

Теперь создадим 2 отдельных raid массива на 500 мб и 10 гб. Выбираем раздел Configure Software RAID, дальше Create MD device, потом RAID1, 2 диска в массиве, и в завершении выбираем 2 наших раздела по 500 мб:

Создание рейд массива под boot

То же самое делаем с разделами по 10гб - объединяем их в рейд:

Создание рейд массива под корень

Как закончите, жмете Finish. У вас должна получиться такая картина:

Разбивка диска для proxmox на mdadm

Теперь нужно создать файловую систему на рейд массивах. Сделаем на первом раздел /boot ext2, а на втором корень системы - / и файловую систему ext4. В итоге должно получиться вот так:

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

Применяем изменения и продолжаем стандартную установку. У вас будет предупреждение о том, что не указан раздел для swap.

Пропускаем создание swap

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

Выбор пакетов для установки

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

После установки рекомендую выполнить базовую настройку Debian. Это не обязательно, посмотрите на мои рекомендации и делайте то, что посчитаете нужным. Если гипервизор будет внутри локальной сети, то фаервол можно выключить, порт ssh не трогать, а логин под root разрешить. Обновиться, настроить сеть, время и полезные утилиты. Так же на всякий случай создайте swap раздел хотя бы на 2-4 гигабайта.

Теперь установим grub на оба жестких диска. Подключаемся к серверу по ssh и выполняем команду:

# dpkg-reconfigure grub-pc

На все вопросы оставляете дефолтные значения, в конце выбираете оба жестких диска для установки загрузчика:

Установка grub на оба жестких диска

На всякий случай проверим как встала система на жесткие диски:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           798M   17M  782M   3% /run
/dev/md1        9.1G 1020M  7.7G  12% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/md0        460M   47M  390M  11% /boot
tmpfs           798M     0  798M   0% /run/user/0
# cat /proc/mdstat
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md0 : active raid1 sdb1[1] sda1[0]
      486400 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 sda2[0] sdb2[1]
      9756672 blocks super 1.2 [2/2] [UU]

Все в порядке, получилось так, как и задумывали. На данном этапе можно повынимать жесткие диски и проверить как система работает без одного из них, научиться заменять сбойный диск. Команды и рекомендации не буду приводить, чтобы не раздувать статью. Мануалов по работе с 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
proxmox6 Имя сервера, указанное во время установки
local Домен, указанный во время установки
192.168.155.104 IP адрес сервера

Проверить правильность настроек можно командой:

# hostname --ip-address
192.168.155.104

В ответ должны получить свой ip адрес.

Добавляем в список репозиториев репу proxmox и стандартные репозитории debian. Я буду использовать зеркало яндекса, все остальное можно закомментировать:

# mcedit /etc/apt/sources.list
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
Ошибка установки proxmox

Проверяйте файл hosts. У меня там лишние строки были, кроме тех, что я указал ранее. Когда исправил, установка прошла без ошибок. После окончания установки перезагрузите сервер, чтобы загрузилось новое ядро. Если все в порядке, то увидите окно приветствия на мониторе сервера:

Стандартное приветствие в консоли proxmox

Открывайте браузер по указанному адресу и заходите в web интерфейс. Напоминаю, что web порт proxmox по-умолчанию - 8006. Не забывайте его указывать в строке адреса в браузере. Вы должны увидеть предупреждение браузера насчет сертификата. Так и должно быть, по-умолчанию используется самоподписанный сертификат.

Если у вас нет своего железа для установки proxmox, можно арендовать недорогой сервер у Selectel. Линейка выделенных севреров Chipcore стартует с абонентки в 1500 р. в месяц. Через панель управления во время заказа сервера можно сразу выбрать proxmox, установленный на софтовый рейд mdadm. Самим ничего делать не нужно будет. Сразу получите отказоустойчивый настроенный гипервизор.

Аренда сервера с гипервизором proxmox

Базовая настройка proxmox

Заходим через браузер по указанному адресу. В окне логина вводите системный root и пароль от него. Нас сразу же встречает предупреждение:

You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.
Предупреждение о платной подписке

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

# mcedit /etc/apt/sources.list.d/pve-enterprise.list
#deb https://enterprise.proxmox.com/debian/pve buster pve-enterprise

Дальше видим главную страницу управления гипервизором proxmox 6.

Главная страница web интерфейса proxmox

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

Обычно для виртуальных машин достаточно 3 режима работы сети:

  1. Режим Bridge. В этом режиме виртуальные машины получают ip адрес из одной подсети с гипервизором и имеют в нее прямой доступ.
  2. Режим NAT. Виртуальные машины получают ip адреса в своей виртуальной подсети, во внешнюю сеть выходят через гипервизор и настроенный на нем NAT.
  3. Routed режим, когда шлюзом в интернет является одна из виртуальных машин.

Я использую все три режима работы сети, в зависимости от ситуации. Покажу это на примерах.

Как создать bridge в proxmox

Для создания сетевого интерфейса типа bridge в proxmox, в web интерфейсе перейдите в раздел Network и нажмите Create -> Linux Bridge.

Создание bridge в proxmox

Заполняете необходимые поля. Обязательными являются поле IP address, Gateway, Bridge Ports.

Настройки бриджа

С такими настройками вы сможете в качестве локального интерфейса оставить только vmbr0, а eth0 отключить. Это на ваше усмотрение. Если оставить оба интерфейса, то ваш proxmox будет доступен по двум разным ip адресам. Если получите ошибку:

Предупреждение о двух шлюзах

Удалите настройку шлюза на eth0, добавьте его на vmbr0.

Сразу обращаю внимание, что после создания бриджа, в системе создается новый файл с сетевыми настройками - /etc/network/interfaces.new. Там отражены сделанные нами изменения. Информация из него будет добавлена в основной файл interfaces после перезагрузки. Перезагрузите сервер и проверьте. Если все в порядке, то вы сможете подключаться и по ssh и по web доступу к обоим ip адресам - eth0 и vmbr0.

Очень внимательно отнеситесь к настройке сети в proxmox. Убедитесь, что у вас есть доступ к консоли гипервизора. Мне часто приходится настраивать выделенные серверы. Тем не менее, иногда теряю доступ к серверу из-за какой-то ошибки или невнимательности. Да и в самом proxmox могут быть проблемы.

У меня были ситуации, когда выполняешь описанные выше действия, перезагружаешь сервер - он недоступен. Захожу локально, открываю файл /etc/network/interfaces, и удаляю какую-то лишнюю закомментированную строку, из-за которой не поднималась сеть. Подробностей уже не помню, что именно было не так, но пару раз ловил такие ошибки.

Расскажу про еще один нюанс. Во время создания бриджа вас обязательно просят указать статические сетевые настройки. А иногда нужно использовать dhcp сервер. Через web интерфейс это сделать не получится, либо я не понял как. Поступаю другим образом. Пишу произвольные настройки через gui, а потом исправляю файл /etc/network/interfaces. Вот пример настройки сети, когда bridge получает сетевые настройки по dhcp.

source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug eth0
#iface eth0 inet dhcp
auto vmbr0
iface vmbr0 inet dhcp
	bridge-ports eth0
	bridge-stp off
	bridge-fd 0

Перезагружаю сервер и убеждаюсь, что все работает как надо.

dhcp настройки на bridge

При этом в web интерфейсе будет вот так.

Пустые параметры vmbr в gui

Настройка NAT для виртуальных машин

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

Добавление бриджа для сети виртуальных машин

Заходим по ssh на гипервизор и добавляем в файл с новыми сетевыми настройками несколько строк:

# mcedit /etc/network/interfaces.new
auto vmbr1
iface vmbr1 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o vmbr0 -j MASQUERADE

Объясняю, что мы сделали:

  1. Разрешили форвард пакетов между сетевыми интерфейсами. Без этого гипервизор не сможет работать в роли шлюза.
  2. Добавили правила iptables для настройки NAT.

Сохраняем файл и перезагружаем сервер. В настройках сети виртуальных машин указываете интерфейс vmbr1, а в самой системе виртуалки вручную прописываете сетевые настройки, где адрес шлюза равен адресу интерфейса vmbr1 - 10.10.10.1, а ip адрес самой машины будет в подсети 10.10.10.0/24. Все виртуальные машины, у которых установлен бридж vmbr1 будут видеть друг друга.

Если вам не хочется на каждой ВМ вручную прописывать IP, можно настроить dhcp сервер либо на одной из виртуалок, либо на самом гипервизоре. Главное назначить ему нужный интерфейс - vmbr1. Настройка dhcp сервера выходит за рамки этой статьи, не буду на этом останавливаться. Для общего использования достаточно того, что я уже указал.

Routed режим сети

Последний вариант, который я иногда использую. В качестве шлюза в интернет для локальных машин, а если необходимо и офиса, выступает виртуальная машина. Этот режим ничем особо не отличается от режима NAT, кроме того, что сам нат на гипервизоре не нужен, так как натить трафик будет шлюз на виртуальной машине. Нам нужны будут 2 бриджа: один для передачи сети провайдера в виртуальную машину-шлюз, второй для сети виртуальных машин. Настройка может немного отличаться, в зависимости от того, что вы хотите получить. Тут могут быть 2 варианта:

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

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

iface eth0 inet manual

auto vmbr0
iface vmbr0 inet manual
bridge_ports eth0
bridge_stp off
bridge_fd 0

auto vmbr1
iface vmbr1 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.2
bridge_ports none
bridge_stp off
bridge_fd 0

В eth0 входит провод от провайдера. Этот интерфейс включен в vmbr0 и ему не назначен ip адрес. Второй бридж vmbr1 имеет виртуальный ip адрес и создан для локальной сети виртуальных машин. Дальше вы создаете виртуальную машину для шлюза и добавляете ему оба бриджа - vmbr0 и vmbr1. На первом настраиваете ip в соответствии с настройками провайдера, на втором в данном случае указываете статический ip адрес 10.0.0.2, который будет являться шлюзом для всех виртуальных машин и самого гипервизора в том числе. Это отражено в параметре gateway в свойствах vmbr1. Потом настраиваете виртуальный шлюз и все будет работать.

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

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

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

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

Пример организации сети для виртуальных машин

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

Итак, вот настройки сети на гипервизоре.

Проброс реального ip в виртуальную машину

eth0 смотрит в интернет, vmbr0 бридж, в который включен интерфейс eth0. На обоих интерфейсах настроены внешние ip адреса провайдера, но это не обязательно. Их может и не быть. Тут просто у сервера 8 внешних ip, хватает для всех. vmbr1 полностью виртуальный бридж для организации сети виртуальных машин.

Далее создаем виртуальную машину под шлюз. Добавляем ей оба бриджа.

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

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

auto ens18
iface ens18 inet static
	address 5.79.111.222
	netmask 255.255.255.224
	gateway 5.79.111.1
	dns-nameservers 1.1.1.1 8.8.4.4
	post-up iptables-restore < /etc/iptables.rules

auto ens19
iface ens19 inet static
	address 10.10.11.1
	netmask 255.255.255.0

Ens18 соответствует vmbr0, а ens19 - vmbr1. На ens18 настроен внешний ip и шлюз провайдера, который выделил этот ip адрес и выдал сетевые настройки. Настраиваем на этой виртуальной машине шлюз так, как нам надо - iptables, dns, dhcp и т.д. Далее этот шлюз указываем в качестве default gateway для остальных виртуальных машин гипервизора.

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

auto eth0
iface eth0 inet static
	address 10.10.11.17
	netmask 255.255.255.0
	gateway 10.10.11.1

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

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

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

Хранилище для виртуальных машин

После чистой установки proxmox на debian, автоматически создается хранилище local, которое располагается на одном разделе с самой операционной системой по адресу /var/lib/vz. Оно уже предназначено для хранения образов дисков, виртуальных машин и контейнеров.

Локальное хранилище proxmox

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

Мы создадим еще один raid 1 mdadm из незанятого места на дисках. Для этого нам нужно будет там создать разделы и объединить их в программный рейд с помощью mdadm.

Обращаю сразу внимание, что это тестовая среда, в реальности так диски разбивать не надо. Оптимально сделать raid 1 из двух отдельных под систему, заняв 30-50 гигов, остальное место на этом рейде отдать под iso образы и возможно бэкапы. Для виртуальных машин подключить отдельные диски и собрать из них рейд. Его уровень будет зависеть от количества дисков. Оптимально 4 штуки для raid 10

Смотрим имена дисков в нашей системе:

# ls -l /dev | grep sd

brw-rw----  1 root disk      8,   0 Aug  9 15:26 sda
brw-rw----  1 root disk      8,   1 Aug  9 15:26 sda1
brw-rw----  1 root disk      8,   2 Aug  9 15:26 sda2
brw-rw----  1 root disk      8,  16 Aug  9 15:26 sdb
brw-rw----  1 root disk      8,  17 Aug  9 15:26 sdb1
brw-rw----  1 root disk      8,  18 Aug  9 15:26 sdb2

У меня 2 диска sda и sdb. На них уже есть по 2 раздела, которые мы сделали во время установки системы. Создадим на каждом из них еще по одному разделу из всего оставшегося свободного места.

# cfdisk /dev/sda
Разметка свободного места диска

Выбираем свободное пространство, создаем на нем раздел и указываем тип - Linux raid autodetect.

Создаем раздел под raid

То же самое делаем со вторым диском. После этих действий у вас должны появиться новые разделы /dev/sda3 и /dev/sdb3. Чтобы это произошло, нужно либо перезагрузить сервер, либо перечитать таблицу разделов командой:

# partprobe -s

Если команда не найдена, установите parted:

# apt install parted

Проверим новые разделы:

# ls -l /dev | grep sd

brw-rw----  1 root disk      8,   0 Aug  9 15:40 sda
brw-rw----  1 root disk      8,   1 Aug  9 15:40 sda1
brw-rw----  1 root disk      8,   2 Aug  9 15:40 sda2
brw-rw----  1 root disk      8,   3 Aug  9 15:40 sda3
brw-rw----  1 root disk      8,  16 Aug  9 15:40 sdb
brw-rw----  1 root disk      8,  17 Aug  9 15:40 sdb1
brw-rw----  1 root disk      8,  18 Aug  9 15:40 sdb2
brw-rw----  1 root disk      8,  19 Aug  9 15:40 sdb3

Теперь объединим только что созданные разделы в raid1:

# mdadm --create /dev/md2 --level=1 --raid-disks=2 /dev/sda3 /dev/sdb3
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md2 started.

Проверим информацию о mdadm:

# cat /proc/mdstat

Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb3[1] sda3[0]
      42140672 blocks super 1.2 [2/2] [UU]
      [=>...................]  resync =  9.4% (4001792/42140672) finish=3.0min speed=210620K/sec
      
md0 : active raid1 sdb1[1] sda1[0]
      486400 blocks super 1.2 [2/2] [UU]
      
md1 : active raid1 sdb2[1] sda2[0]
      9756672 blocks super 1.2 [2/2] [UU]

Все в порядке, массив синхронизируется. Дождитесь окончания синхронизации и продолжайте. Хотя это не обязательно, массив и сейчас уже готов к работе, он он будет сильно тормозить во время ребилда. Добавим информацию о новом массиве в конфигурационный файл /etc/mdadm/mdadm.conf, иначе после перезагрузки массив не будет виден в системе:

# mdadm --examine --scan | grep 'md/2' >> /etc/mdadm/mdadm.conf

Конфигурационный файл примет такой вид:

# cat /etc/mdadm/mdadm.conf
# mdadm.conf
# mdadm.conf
#
# !NB! Run update-initramfs -u after updating this file.
# !NB! This will ensure that initramfs has an uptodate copy.
#
# Please refer to mdadm.conf(5) for information about this file.
#

# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers

# automatically tag new arrays as belonging to the local system
HOMEHOST 

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
ARRAY /dev/md/0  metadata=1.2 UUID=a214eb8b:c3ff0ab2:13197140:25a25924 name=proxmox6:0
ARRAY /dev/md/1  metadata=1.2 UUID=1d5a52f3:7caa923c:b8f13836:8a7bcf54 name=proxmox6:1

# This configuration was auto-generated on Fri, 09 Aug 2019 13:59:40 +0300 by mkconf
ARRAY /dev/md/2  metadata=1.2 UUID=30be9c4e:6a351eca:6d66228d:ee695c19 name=proxmox6:2

Дальше у нас 2 пути:

  1. Создать файловую систему на md2, смонтировать раздел в систему и создать storage в виде обычной директории, такой же, как по-умолчанию.
  2. Создать том LVM и на его основе storage.

Традиционно используют второй способ, так как он позволяет потом использовать в качестве дисков виртуальных машин lvm разделы. С ними удобно работать, плюс, теоретически, блочное устройство типа lvm должно работать чуть быстрее. Так что пойдем по второму пути. Выполним инициализацию раздела для работы с LVM:

# pvcreate /dev/md2
File descriptor 7 (pipe:[31619]) leaked on pvcreate invocation. Parent PID 2856: bash
  Physical volume "/dev/md2" successfully created.

Создадим группу томов:

# vgcreate raid1-md2 /dev/md2
File descriptor 7 (pipe:[31619]) leaked on vgcreate invocation. Parent PID 2856: bash
  Volume group "raid1-md2" successfully created

Теперь идем в web интерфейс, выбираем Datacenter, вкладку Storage, жмем Add и выбираем LVM:

Добавление lvm storage в proxmox

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

Параметры lvm хранилища
ID Любое название нового сторейджа. Я обычно называю так, чтобы потом можно было легко сопоставить с именем системного раздела. Так удобно.
Volume group Имя группы томов LVM, которое вы указали при создании командой vgcreate

Все готово. Новый storage добавили. Его можно использовать для хранения дисков виртуальных машин.

Добавление и подключение диска

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

Я подключил новый жесткий диск, проверим его имя в системе:

# ls -l /dev | grep sd
brw-rw---- 1 root disk 8, 0 Aug  9 15:40 sda
brw-rw---- 1 root disk 8, 1 Aug  9 15:40 sda1
brw-rw---- 1 root disk 8, 2 Aug  9 15:40 sda2
brw-rw---- 1 root disk 8, 3 Aug  9 15:40 sda3
brw-rw---- 1 root disk 8, 16 Aug  9 15:40 sdb
brw-rw---- 1 root disk 8, 17 Aug  9 15:40 sdb1
brw-rw---- 1 root disk 8, 18 Aug  9 15:40 sdb2
brw-rw---- 1 root disk 8, 19 Aug  9 15:40 sdb3
brw-rw---- 1 root disk 8, 32 Aug  9 15:40 sdc

Можно не создавать на диске раздел, а сразу его инициализировать для работы в lvm и создать группу томов:

# pvcreate /dev/sdc
# vgcreate disk-sdc /dev/sdc

Идем в веб интерфейс и создаем новый storage:

Добавление нового жесткого диска в proxmox

Если у вас будет не одиночный диск, а несколько, то перед этим создайте рейд массив из них и так же поверх накатывайте lvm и добавляйте новый storage. На этом настройку локальных хранилищ завершаем. Все основные действия мы выполнили, можно начинать работать с системой - создавать виртуальные машины.

 Хранилище по NFS

Приведу простой пример подключения хранилища по NFS. Мне оно в будущем понадобится для организации бэкапа виртуальных машин. Об этом я расскажу позже. Сейчас только добавим новое хранилище. Сделать это очень просто. У меня уже есть настроенный сервер NFS. Описание его настройки выходит за рамки материала, поэтому будем считать, что сервер у вас есть. Идем в раздел Storage и добавляем новое хранилище NFS:

Я это хранилище буду использовать только для iso образов и backup'ов, поэтому выставляю соответствующие настройки.

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

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

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

Чтобы установить виртуальную машину, нужно использовать iso образ. Его надо как-то загрузить на proxmox. Сделать это не сложно, нужно только понимать, что загрузить образ можно только на тот storage, который поддерживает такую возможность. Сторейджи LVM не позволяют загружать образы, для этого нужно использовать, например, storage в виде локальной директории. По умолчанию, один такой есть в системе. В него и загрузим образ виртуальной машины. Для этого открываем нужный storage и выбираем вкладку Content. Жмем на Upload и выбираем нужный образ.

Загрузка iso образа
На этапе загрузки iso образа я иногда сталкиваюсь с проблемой. Образ больше 4Гб не загружается. Проверял несколько раз, в том числе в различных инсталляциях на разное железо. Ошибка время от времени проявляется. Если у вас образы больше, чем 4 Гб, ищите альтернативные способы загрузки в хранилище, благо это не составляет большого труда.

Альтернативный способ загрузки iso образа в proxmox - использовать scp или напрямую через wget качать образ из интернета. Положить его нужно в директорию /var/lib/vz/template/iso, если используете дефолтный storage, добавленный по-умолчанию после установки.

Дожидаемся окончания загрузки. Теперь этот образ можно использовать для установки ОС на виртуальную машину. Создание виртуальной машины выглядит следующим образом. Нажимаем на кнопку Create VM

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

Заполняем все необходимые поля и стартуем машину. Некоторое время уйдет на создание машины (от нескольких секунд до 1-2 минут). В нижней части экрана ведется лог событий, там увидите информацию об окончании создания:

Лог событий

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

Консоль виртуальной машины

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

Автозапуск виртуальной машины

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

Start at boot Принимает значение Yes или No, соответственно, загружаемся автоматически или нет.
Start/Shutdown order Порядок загрузки и выключения виртуальных машин, принимает целые цифровые значения (1, 2, и т.д.).
Startup delay Задержка запуска остальных ВМ после запуска этой, принимает значения в секундах.
Shutdown timeout Задержка в выключении ВМ. Сначала будет отдана команда на завершение работы. Если ВМ не завершит работу корректно, ей будет послан сигнал на принудительное выключение.

Рассмотрим простой пример. У нас есть виртуальная машина, к примеру Windows Server с ролью Active Directory на борту. Все остальные серверы завязаны на корректную работу службы каталогов. Нам надо сначала запустить контроллер домена, а затем все остальные серверы за ним. Установите параметр Start at boot в положение Yes для всех виртуальных машин, которые хотите запускать автоматически. Укажите Start/Shutdown order на контроллере домена 1, Startup delay 240, Shutdown timeout 120. С такими настройками при запуске гипервизора первой стартует виртуальная машина с КД, через 240 секунд все остальные в соответствии с их настройками.

Параметры автозапуска виртуальной машины

Backup виртуальных машин

Подошли к очень важному этапу настройки proxmox - организация бэкапа виртуальных машин. На этот момент нужно обратить особенное внимание, и все хорошенько проверить. Настраивается backup так же просто, как и все остальное в proxmox. Идем в раздел Backup и создаем задание:

Backup виртуальных машин в proxmox

Выставляем необходимые параметры, например такие:

Параметры бэкапа

Ждем назначенного часа и проверяем исполнение задания.

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

Бэкап виртуальной машины

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

Лог создания резервной копии

Тут сразу встает следующий вопрос - как автоматически удалять старые бэкапы? Однозначно ответить не получится, все будет зависеть от того, где будут храниться бэкапы. Если это обычный linux сервер с доступом к консоли, то можно воспользоваться программой find:

# /usr/bin/find /mnt/backups-vm -type f -mtime +30 -exec rm {} \;

После выполнения этой команды, все файлы в папке /mnt/backups-vm старше 30 дней будут удалены. Для автоматизации процесса команду можно поместить в cron. С помощью zabbix вы можете мониторить актуальность бэкапов и следить за их размерами.

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

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

Часто задаваемые вопросы по теме статьи (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 портов в виртуальные машины.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Подведем итог тому, что сделали:

  • Установили гипервизор proxmox на сервер под управлением Debian на программный raid1, обеспечив отказоустойчивость системы на уровне дисков.
  • Настроили виртуальную сеть для виртуальных машин.
  • Подключили различные storage для выполнения задач размещения и бэкапа виртуальных машин.
  • Добавили и настроили виртуальные машины.
  • Организовали автоматический бэкап всех ВМ.

Я постарался выбрать наиболее востребованные функции и описать их, чтобы систему можно было использовать в реальной работе и не бояться за надежность решения. Собрал необходимый минимум, но статься все равно получилась очень большая, объемная. Я не стал ее разделять на части, чтобы была целостная картина всего того, что сделали. Тут есть еще над чем поработать, особенно актуален вопрос бэкапа. Без инкрементного бэкапа неудобно хранить резервные копии на удаленном сервере, очень большой объем передаваемых данных получается. Мне не известен способ инкрементного бэкапа виртуальных машин в proxmox, буду рад, если кто-то посоветует хорошее решение для KVM. Снэпшоты zfs не в счет.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

395 комментариев

  1. Здравствуйте Владимир, я установил Proxmox на Debian по вашей инструкции на raid1 на 2 HDD, также на двух отдельных SSD развернул Raid 1 mdadm и по вашей инструкции сделал на нём LVM для VM. Всё работает, но если выключить Proxmox host и вытащить sata из одного из двух SSD, а потом включить host, то LVM на ssd не поднимается сам. Пишет
    md2: inslactive sdc1[1] (S)

    То есть массив сам не поднимается на одном SSD
    При том массив с хостом сам поднимается без проблем на mdadm Raid1 на двух HDD если один HDD вытащить в выключенном состоянии.
    Самое интересное, что если вытащить второй SSD из рабочего hosts и вставить его же . То md2 поднимается и превращается в
    md2: active raid1 [_U] чего собственно я от него и ждал при загрузке Proxmox
    Можете подсказать, что делать?

    Всё перерыл пока мыслей нет. Мне нужно чтобы при выходе из строя одного SSD raid1 mdadm продолжал работать на одном SSD без моих телодвижений?

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

    • md2: inslactive sdc1[1] (S)
      Статус S судя по всему означает, что массив остановлен. Думаю, если его активировать, то он продолжит работу на одном диске. Почему так происходит мне заочно трудно сказать. Я обычно все проблемы с дисками в ручном режиме исправляю. Даже если сталкивался с ней, то мог просто запустить массив и не обратить внимания. Если диск выходит их строя, я его сразу же меняю, без внимания хост не остаётся. У меня регулярно выходят из строя диски в рейдах, замена проходит штатно и проблем обычно нет. Так что это вполне надёжное решение, которому можно доверять.

      У меня это выглядит на практике так. Диск ломается и вылетает из массива. Об этом сообщает мониторинг. Я планирую замену диска. Выключаю хост, меняю диск, включаю и запускаю перестройку массива. С неработающим диском перезагрузок обычно не делаю.

  2. Добрый день!
    И все-таки еще не могли бы вы еще раз рассказать про свой выбор относительно рейд,
    плюс прошло немного времени, ос обновилась и не один раз,
    что бы выбрали на сегодня?
    Попробовал и как в статье ,
    и средствами zfs в самом proxmox.
    надо бы еще и кластер попробовать...
    Вопрос бюджета пока не стоит, стоит вопрос удобства обслуживания на непредвиденный случай.

    • Выбирать особо не из чего. Либо mdadm, либо zfs. С момента написания статьи ничего не изменилось. Описаний в интернете обоих технологий очень много. Каждый может выбрать то, что ему больше подходит. Я для сервера общего назначения выбираю mdadm, как наиболее простое и неприхотливое решение, которое не требует настройки и обслуживания. Просто устанавливаешь один раз и пользуешься.

  3. Владимир

    "Создаем в инсталляторе указанные разделы на обоих дисках. Не буду расписывать по шагам как их сделать, надеюсь сами разберетесь, это не сложно. Должна получиться такая картина"
    А вот у меня не получается такая же картина. Устанавливаю Debian 12, у меня 2 физических hdd на 500 ГБ. Один также как на картинке размечаю и получается 2 раздела primary, третий pri/log. Это при разметки этого диска имеется возможность выбрать primary (Type for the new partition: Primary/Logical)
    А вот для второго диска я не могу выбрать primary. При создании раздела установщик мне не даёт возможность создать раздел с пометкой primary, сразу показывает место размещения раздела (Beginning/End). Соответственно вместо надписи рrimary пустое поле. Не понимаю почему так.

    • Мне так трудно что-то посоветовать заочно, не видя всей картины. Я совсем недавно, меньше месяца назад, устанавливал Proxmox 8 на Debian 12. Без проблем во время установки создал mdadm raid1 примерно как показано в статье и накатил на него систему. Через стандартный установщик Debian это сделать не трудно. К тому же он не менялся уже лет 10.

      • Владимир

        Отвечаю сам на свой же вопрос: Жёсткий диск должен быть размечен в MBR. У меня диск был в GPT.

  4. У меня возник вопрос по настройке firewall для "Routed режима сети"
    Если допустим у меня 2 IP белых, то 1 я вешаю на сам vmbr0 а второй уже в самой виртуалке это понятно.
    Настраиваю NAT и включаю IP forwarding в самой виртуалке это тоже вроде понятно.
    А как быть с 1-м IP который висит на самом "Гипервизоре"?
    Как я понимаю необходимо в фаерволе для защиты самого гипервизора настроить цепочку Input с привязкой к 1-му IP, трафик на 2-ой IP будет проходить насквозь спокойно.
    Минимально вот так:
    -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    -A INPUT -m conntrack --ctstate INVALID -j DROP
    -A INPUT -d 111.222.333.444/32 -i vmbr0 -p tcp --dport 22 -j ACCEPT
    -A INPUT -i vmbr0 -j DROP

    Или я не правильно понимаю и надо делать по другому?
    В таком варианте нужно ли включать IP forwarding на самом гипервизоре?(думаю что нет)

    • Я не совсем понял из вопроса, какую задачу вы пытаетесь решить с помощью iptables? Запретить входящие соединения к гипервизору? В таком случае всё делается стандартно. Второй IP в виртуалке никак не влияет на настройки на гипервизоре.

  5. Андрей

    Здравствуйте, спасибо за статью.
    Подскажите. Как скрыть proxmox за виртуальный шлюз?
    Две сетевые карты, одна в интернет, другая в локальную сеть. Vmbr0 - eth0, vmbr1 -eth1. Адрес на vmbr0 в шлюзе как у проксиокса или как? В данный момент получает по dhcp.

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

      • Андрей

        Вот в этом моменте я и запутался, слишком много глюзов

      • Андрей

        Я создал на centos шлюз, в оборудовании указал vmbr0 и vmbr1, vmdr0 получил по dhcp адрес, а vmdr1 присвоил статику. Локальная сеть работает и в виртуальной машине и в физической. В гипервизоре надо менять настройки сети (адрес на бридже менять или я не туда пошел?) Спасибо

      • Андрей

        Т.е. в гипервизоре я должен бриджу присвоить локальный адрес из шлюза. Т.е. vmbr1 192.168.1.1 а у vmbr0 убрать его?

        Спасибо

  6. Михаил

    Добрый день! на новом месте работы был сервер с установленным proxmox, сервер до этого два года стоял и не использовался (новый только из коробки) Попытался его запустить, но выдает надпись:
    "booting embedded LOM 1 port 1 HPE ethernet 1gb 2-port 368i adapter - NIC ( HTTPS ipv4)"
    Далее перебирает все адаптеры после чего перезапускается.
    В настройка стоит первой загрузка proxmax
    Подскажите чего я не понимаю?

    • Кажись, он у вас пытается загрузиться по сети. Проверьте что у него с порядком загрузочных устройств в BIOS.

  7. Привет!
    Искал инфу по добавлению дисков с данными в proxmox, поиск выдал ссылку на эту статью.
    А еще он выдал ссылку на эту статью))) https://hserv.su/virtual/proxmox/proxmox-podklyuchenie-diskov-v-hranilishhe/
    Схожесть до степени смешения))) Разве что даты немного разные)))

    • Мои статьи часто копируют или используют для написания своих материалов. Я все свои статьи пишу сам, без исключения.

      • Ну так о чем и речь!
        Поперли статью, только порезали и немного подрихтовали!
        Могли бы и авторство указать!

  8. Александр

    Раздел: "Добавление и подключение диска"
    А вы уверены, что нужно использовать в этом случае LVM? Ведь в таком случае невозможно будет делать снапшоты. Сам с этим столкнулся.

    • Это уже на усмотрение администратора. Разные варианты хранилищ и виртуальных дисков виртуальных машин обеспечивают разные возможности по управлению снепшотами. Я, к примеру, в проде их вообще не использую.

  9. Николай

    Спасибо за статью.
    Вопрос такой, если я после установки proxmox настраиваю сеть в режиме бридж и оставляю только интерфейс vmbr0, отключая при этом eth0, нужно ли править файл hosts и прописывать туда IP который дал vmbr0? Сейчас там IP который был получен по динамике, и который я по сути отключил вместе с eth0

    • Да, имеет смысл это сделать. Но даже если не сделаете, ничего страшного не будет.

  10. Отличная статья!!!
    Для поднятия сети по третьему способу подойдёт виртульная машина с pfSense? Можете что-то посоветовать практическое по такой настройке?
    Спасибо!

  11. Николай

    Приветствую! Поставил Debian по вашей инструкции на mdamn, поставил по данной инструкции Proxmox, всё прошло без ошибок, но после перезагрузки система не поднимается:

    GRUB loading.
    Welcome to GRUB!

    error: file `/grub/i386-pc/verifiers.mod` not found.
    grub rescue>

    Есть идеи как побороть или все заново ставить?

    • Владимир

      В не установили GRAB на все диски. На одном из дисков GRAB должен быть. Поочередно загрузитесь с каждого диска.
      После входа в систему выполните следующую команду «dpkg-reconfigure grub-pc» и выберете все диски на которые необходимо установить загрузчик.

      • Нет, тут другая проблема. Grub установлен. Он же загрузился: "GRUB loading. Welcome to GRUB!".

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

  12. Виталий

    Добрый день. Проблема с входом в gui, при этом VM работают. Сразу после загрузки гипервизора захожу в gui через короткое время вижу ошибку - Error Connection error 500: RPCEnvironment init request failed: Unable to load access control list: Connection refused. После этого не получается зайти ни в gui ни по ssh. Владимир, подскажите пожалуйста как можно исправить?

    • А по ssh какая ошибка? Что потом в системных логах, после того как удастся зайти. Сам такую ошибку никогда не видел.

      • Виталий

        Добрый вечер. Спасибо за участие. Победил. Может кому пригодится - очистил историю браузера. Обновил proxmox, исправил все зависимосит пакетов, /etc/apt/sources.list добавил deb http://download.proxmox.com/debian/pve stretch pve-no-subscription
        (было только deb http://security.debian.org stretch/updates main contrib). Ошибка пропала не сразу, а через 12 часов uptime.

  13. Добрый день, не нашел возможности прокинуть раздел ntfs в гостевую ОС windows. Замонитровал раздел(содержимое проверил на доступ) и добавил через "qm set 100 -virtio2 /mnt..." в конфиг ВМ, в гостевой ОС установил драйвер VirtIO. В итоге диск и объем видит, а содержимое не размечено. Возможно есть варианты по другому подключить ntfs раздел в гостевую или что то еще необходимо сделать чтобы увидеть ntfs раздел?

    • Оказывается в диспетчере дисков этот винт был вне сети, надо было просто нажать правой кнопкой и выбрать в сети

  14. Леонид

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

    Проблема банальна - перевез виртуалки из европы в селектел (выкупленный клиентом). У него доступен только 1 ipv4 адрес.
    Требуется регулярное "выкачивание" сделанных дампов для чего использовался openssh и скрипт на бекап-сервере.
    Естественно, что ни на гипервизоре, ни на "виртуалках" внутри нет кредов для доступа к серверу бекапов - используем "pull" схему - т.е. бекап-сервер сам подключается к гипервизору для скачивания образов.

    Возможно, у Вас есть какие-то отработанные схемы для подобных случаев?
    Мне пока ничего кроме проброса на "виртуальном-роутере" нестандартного порта к ssh гипервизора не придумалось.

    • А что тут придумывать, если вы хотите забирать дампы VM? Я точно так же делаю. Разрешаю доступ к гипервизору по ssh по белым спискам ip и забираю дампы через rsync.

      • Неплохо было бы про сертификаты пользовательские почитать, как их получить, что такое acme и т.д.

  15. Дмитрий

    А автоматизацию развертывания и управления кластером на базе связки Jenkins + gitlab/bitbacket + ansible не делаете?
    Очень упрощает жизнь и ускоряет процесс, когда много серверов.
    Таким же образом и на Openstack работает, удобно таски в гите хранить, пароли в vault и инсталлировать, готовые playbook облегчают жизнь, исключают ошибки.

    • Это всё актуально для больших инфраструктур. Там обычно и proxmox не используют. По моим наблюдениям, он занимает нишу малого и среднего бизнеса.

      • Дмитрий

        Вы абсолютно неправы, если учесть наш интернет-магазин с посещаемостью 100-120 тыс в сутки
        У нас Proxmox VE 6, кластер на 9 серверах в одном ДЦ, аналогичный кластер во втором + облако
        И развертывание таким образом организовано, я описал свою архитектуру в двух словах.

        • При чём тут ваш магазин и моё утверждение? Посмотрите вакансии на обслуживание инфраструктуры в крупные компании. Proxmox там если и увидишь, то очень редко. Я же не говорил, что на нём нельзя построить кластер на 9 серверах.

  16. Сергей

    Здравствуйте, все делал по вашей инструкции.
    При попытке сделать резервную копию выдает ошибку:
    https://dropmefiles.com/7H4yP
    Гуглил, но не помогло

    • Похоже какая-то проблема с названием storage. Ни разу такой ошибки не видел. Попробуйте его переименовать и сделать название только на латинице, без пробелов и каких-то спец символов.

  17. Александр

    Настроил по инструкции, все работает с nat. Стал пробовать включать firewall в dacacenter тоже проблем нет. Но когда включаю firewall на самой виртуальной машине, но с виртуальной машины доступа никуда нет. Прописывал для вируалке accept на входящий и исходящий трафик, не работает, подскажиие как вы настраиваете firewall, через Gui Proxmox или отдельно скриптом iptabales на самом сервере, в статье этот момент не освещен?

    • Iptables я настраиваю уже в самой виртуалке. Firewall от proxmox вообще не использую, всегда отключаю.

  18. Никита

    Здравствуйте, А есть возможность более подробно разобрать установку и настройку proxmox в удаленный ДЦ. В роли Шлюза Mikrotik на ВМ. С Одним внешним IP.

  19. А в "Пример организации сети для виртуальных машин" внутренний адрес самого гипервизора вешается на vmbr1?

  20. Валерий

    Вопрос по настройке сети.
    Установлен proxmox 7 в локальной сети, vmbr0 по DHCP получил адрес 192.168.4.15/24, шлюз 192.168.4.1
    Можно ли в такой конфигурации сети для виртуальной машины использовать белый статический IP адрес, например,
    158.44.55.77 или же бридж vmbr0 должен иметь также иметь белый статический IP адрес?

    • Адрес вы использовать можете любой. Но что-то я сомневаюсь, что при такой конфигурации он будет работать. Каким образом на одном и том же интерфейсе может быть внешний ip адрес и локальный по dhcp? Мне кажется, вы что-то путаете.

    • LESHIY_ODESSA

      Создайте второй сетевой интерфейс и повесте на него внешний IP. С помощью маршрутов и метрик задайте через что кому куда ходить.

      Или второй способ сделать тоже самое, но за 30-40$ с помощью Mikrotik CHR.

    • LESHIY_ODESSA

      Повесить второй IP и DNS на сетевую карточку можно, но вроде только «серый список».

      Mikrotik умеет получать на один интерфейс два «белых» IP от провайдера.

  21. Здравствуйте. Сталкиваюсь с ошибкой при сохранении разметки дисков и продолжении установки. Два SSD диска по 480гб, разметкав точности повторена как Вашей статье, но после этапа отмены создания СВАП пишет - "The target file system contains files from a past installation. (Продолжение ошибки) и дальше выбор - "Proceed with instalation to unclean target?". После выбора "Да" ошибка "The debootstrap program exited with an error.

    Все разделы перед установкой удалил через Live версию Kali Linux оставив неразмеченное пространство. Буду рад любому ответу!

  22. Есть ли опыт построения отказоустойчивой системы на PROXMOX? Имеется 2 физических сервера, как реализовать их одновременную работу что бы в случае удара топором по 1му серверу, пользователи не заметили аварию.

    • На двух серверах это невозможно сделать. Для работы функционала High Availability нужно минимум 3 ноды и общее файловое хранилище. Так что двумя серверами не отделаться. Оно и понятно. Должен быть кворум, а это минимум 3 участника. Иначе в случае сетевых проблем две ноды не смогут понять, у кого из них актуальная информация, а кто отстал.

  23. Добрый день, можно ли настроить Routed режим сети так, чтобы одна виртуальная машина (Ubutnu/Debian server) выступала в роли dhcp сервера с несколькими vlan'ами и маршрутизацией внутренней локальной сети?
    Я правильно понимаю, что я могу назначить две сетевые карты виртуальной машите, на 1 из них будет статический адрес для выхода в интернет (средствами proxmox), а вторая сетевая карта должна быть настроена на самом сервере со все маршрутизацией?

  24. Добрый день, установил Proxmox 7 при копировании iso файла в web интерфейсе появляется ошибка
    и процесс прерывается. На 6 версии все работало.

    • Ошибка какая?

      • Аноним

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

      • Александр

        Добрый день, при установки Proxmox 7 выбрал Btrfs RAID 1 отдал 2 диска и все.
        Теперь при загрузке через web (любой браузер) iso файла получаю ошибку.
        error 0 occurred while receiving the document.
        Попробую загрузить через консоль.

      • Александр

        Нашел вот это https://bugzilla.proxmox.com/show_bug.cgi?id=66
        и да iso размером менее dvd грузится.
        Спасибо.

        • Странно, что эта ошибка до сих пор жива. Я регулярно с ней сталкивался, но очень давно. Может быть в 4 или 5 версиях. А потом она пропала, и я думал, что её решили окончательно. Оказывается нет.

          • Александр

            Добрый день, переставил Proxmox и выбрал ставить на zfs raid 1 теперь все работает, и в web
            интерфейсе все копируется. Продолжаю настраивать систему.

  25. Добрый день. Периодически останавливается ВМ с Windows Server 2019. Нода работает. Приходится запускать эту ВМ вручную. В параметрах питания жесткие диски не отключаются, ВМ в спящий режим не уходит. В логах ничего нет. Как решить проблему?

    • Какая версия Proxmox?

      • Virtual Environment 6.3-2

        Proxmox VM Options:
        OS Type Microsoft Windows 10/2016/2019

        Systeminfo:

        Название ОС: Майкрософт Windows Server 2019 Essentials
        Версия ОС: 10.0.17763 Н/Д построение 17763
        Изготовитель ОС: Microsoft Corporation
        Параметры ОС: Рядовой сервер
        Сборка ОС: Multiprocessor Free
        Зарегистрированный владелец: Пользователь Windows
        Зарегистрированная организация:
        Код продукта: 00433-20000-00000-AA366
        Дата установки: 07.04.2021, 12:39:04
        Время загрузки системы: 18.08.2021, 12:01:58
        Изготовитель системы: QEMU
        Модель системы: Standard PC (i440FX + PIIX, 1996)
        Тип системы: x64-based PC
        Процессор(ы): Число процессоров - 2.
        [01]: Intel64 Family 15 Model 6 Stepping 1 GenuineIntel ~3600 МГц
        [02]: Intel64 Family 15 Model 6 Stepping 1 GenuineIntel ~3600 МГц
        Версия BIOS: SeaBIOS rel-1.13.0-48-gd9c812dda519-prebuilt.qemu.org, 01.04.2014
        Папка Windows: C:\Windows
        Системная папка: C:\Windows\system32
        Устройство загрузки: \Device\HarddiskVolume1
        Язык системы: ru;Русский
        Язык ввода: ru;Русский
        Полный объем физической памяти: 8 191 МБ
        Доступная физическая память: 5 124 МБ
        Виртуальная память: Макс. размер: 9 471 МБ
        Виртуальная память: Доступна: 6 560 МБ
        Виртуальная память: Используется: 2 911 МБ
        Расположение файла подкачки: C:\pagefile.sys
        Исправление(я): Число установленных исправлений - 6.
        [01]: KB4601558
        [02]: KB4535680
        [03]: KB4589208
        [04]: KB5000859
        [05]: KB5001404
        [06]: KB5001342
        Сетевые адаптеры: Число сетевых адаптеров - 1.
        [01]: Intel(R) PRO/1000 MT Network Connection
        Имя подключения: Ethernet
        DHCP включен: Нет
        IP-адрес
        Требования Hyper-V: Обнаружена низкоуровневая оболочка. Функции, необходимые для Hyper-V, отображены не будут.

      • dmesg -l crit,err:

        [1153591.765771] kvm [28326]: vcpu5, guest rIP: 0xfffff805633d39e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1153591.766139] kvm [28326]: vcpu5, guest rIP: 0xfffff805633d39e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1155383.422762] kvm [29246]: vcpu0, guest rIP: 0xfffff804349b8352 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1155383.423473] kvm [29246]: vcpu0, guest rIP: 0xfffff804349b8352 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1155383.424126] kvm [29246]: vcpu0, guest rIP: 0xfffff804349b8352 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.417445] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.417819] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.418173] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.418518] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.418897] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.419231] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.419559] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.419884] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.420197] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop
        [1177683.420512] kvm [28824]: vcpu1, guest rIP: 0xfffff80344e579e2 kvm_set_msr_common: MSR_IA32_DEBUGCTLMSR 0x1, nop

  26. Доброго времени суток.
    Как из тома LVM (собран по данной инструкции) перенести виртуальную машину на обычную директорию?

    • Обычной конвертацией:
      qemu-img convert -O qcow2 /dev/vg_name/lv_name/ /var/lib/vz/images/100/vm-100-disk-0.qcow2
      Затем в конфиге виртуалки надо заменить диск.

  27. Андрей

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

  28. А есть ли рабочий метод уменьшить размер диска виртуальной машины? В Сети несколько методов, но не один не работает в ProxMox 6

    • По-моему, это практически невозможно сделать. Проблемы будут не только с уменьшением размера диска VM, но и уменьшением размера файловой системы внутри VM. Например, xfs вообще не поддерживает уменьшение файловой системы.

      • Я находил методы примерно такой последовательности:
        - уменьшить размер файловой системы (естественно, если не ZFS) внутри ВМ
        - отключить swap внутри ВМ
        - с помощью qmresize (в разных вариантах указаны разные способы и утилиты для этго действия) уменьшить размер ВМ из-под самого проксмокса
        - переподключить диск для ВМ
        Но по факту, столкнулся с двумя проблемой: ProxMox не дает смонтировать в папку раздел с образами ВМ или даже сам образ отдельно, начиная с версии 5

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

    • LESHIY_ODESSA

      Если вам для уменьшения бекапов (Discard), то я забиваю нулями под Windows — SDelete, под Linux — dd if=/dev/zero of=/mytempfile && rm -f /mytempfile

      • К сожалению, мне нужно именно уменьшить размер диска, то есть не для уменьшения бекапа размера. У меня по ошибке был создан слишком большого размера диск для одной ВМ и теперь в массиве не осталось места для других ВМ

        • Василий

          Как уже ответили выше, нужно забить пространство нулями.
          В моём случае я уменьшал размер диска QCOW2 виртуальной машины с виндой.
          Нужна утилита sdelete от sysinternals.
          sdelete64 -z C:
          -z - забивает нулями свободное пространство;
          C - в данном случае буква диска.

          Потом нужно запустить процесс конвертации.
          qemu-img convert -O qcow2 /path/to/vm.qcow2 /path/to/vm-convert.qcow2

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

          • А без остановки системы и замены диска это как-то можно сделать?

            • Василий

              Не знаю. Вряд-ли такое возможно.
              В документации Proxmox указан способ, который привёл я.

  29. УРаура!!!!!!!11111

  30. Вот только пробросить USB на вирт Win7 так и не вышло. С win10 проблем вообще не возникло.

  31. Василий

    Хорошая статья.
    Установил, разобрался, перенёс виртуалки из Hyper-V в Proxmox.

    Вдруг кому-то понадобится, опишу процесс.

    После установки Proxmox, я сконвертировал образы VHDX.

    Команда для этого:
    qemu-img convert -O qcow2 /path/to/vhdx/VM.vhdx /path/to/qcow2/vm.qcow2

    Если образ большой, то ждать придётся относительно долго.

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

    Скопировал диск qcow2 в каталог с виртуалкой /var/lib/vz/images/100/

    Отредактировал конфигурационный файл виртуалки /etc/pve/qemu-server/100.conf

    Добавил сконвертированный диск как ide3:
    ide3: local:100/vm.qcow2

    Установил его загрузочным:
    boot: order=ide3

    Диск на 1 мегабайт прописал как virtio1.
    Он пока нужен.

    Скачал образ с виртуальными драйверами.

    Для старых систем (7, 2008 R2): https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.173-1/virtio-win-0.1.173.iso
    Для новых: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso

    Подключил к виртуальному cdrom.

    Запустил машину и получил облом. Нет загрузочного устройства.
    Проблема в UEFI. В настройках виртуальной машины в вебке сменил биос с SeaBIOS на OVMF.
    Hardware - BIOS.

    Если не можете остановить виртуалку, задание висит, то посмотрите в лог внизу веб-интерфейса.
    Он ругается на файл типа /var/lock/qemu-server/lock-100.conf
    Файл надо удалить и можно будет остановить виртуалку.

    Итак, виртуалка загрузилась. С виртуального cdrom установил драйвера. Поскольку был подключен как устройство virtio1 диск на 1 мегабайт, на него тоже установились соответствующие драйвера. Именно для этого он и был нужен.
    Установил qemu-agent.

    Выключил виртуалку.

    Если какой-то из Windows Server не хочет выключаться из веб интерфейса по кнопке Shutdown, значит Proxmox не сможет завершить работу. Нужно поменять политику:

    gpedit.msc -> Локальный компьютер -> Административные шаблоны -> Система -> Отображать средство регистрации событий завершения работы -> Отключено
    gpedit.msc -> Computer Configuration -> Administrative Templates -> System -> Display Shutdown Event Tracker -> Disable

    В "Дополнительных параметрах питания" должно быть значение "Завершение работы" в "Действие кнопки питания". А так же "Отключать дисплей -> Никогда".

    В конфиге надо удалить строчку с диском на 1 мегабайт, а вместо контроллера основного диска ide3 прописать virtio1. Не забыть установить его же в качестве загрузочного.

    На этом всё. Поскольку сетевая карта в виртуалке сменилась, настройки сети сбросились до DHCP. Настройте как нужно.

  32. Поднял прокс через эту статью!
    Имею в наличии 2 сетевые карты. Хочу сделать WAN от провайдера(192.168.1.24) и LAN внутрення локальная сеть (10,10,10,80)

    WAN-static настроил 192.168.1.24
    LAN - static настроил 10,10,10,80
    Теперь создаю vmbr0 и указал 10,10,10,80 а порт LAN
    выходит ошибка
    iface eno1 - ip address can't be set on interface if bridged in vmbr0 (500)

  33. Максим

    1. Убрать сообщение о платной подписке комментированием не удается. Сработало решение отсюда (https://johnscs.com/remove-proxmox51-subscription-notice/)
    sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service (в этой строке есть все: бэкап файла, замена текста по файлу, перезагрузка службы вэбморды).
    2. При настройке сети IP-адрес может быть либо только у виртуального адаптера, либо у сетевой карты. В первом случае еще нужно и сетевую карту поставить в бридж к виртуальному адаптеру, иначе не будет связи с лоальной сетью. Это справедливо для любой сетевой карты, которая физически соединена с локалкой.

  34. Здравствуйте! Подскажите пожалуйста, на ВМ периодически подвисает сеть, приходится вручную перезапускать сетевой интерфейс, как можно избавиться от этой проблемы. Network Device - Intel E1000, Virtual Environment 6.2-12

  35. Владимир, подскажите пожалуйста, нет ли проблем со временем (время на часах) на Windows виртуальных машинах, установлен Proxmox 5 на Debian 9
    Вроде проблема известная, гуглится как "proxmox windows guest time drift", но я решения не нашел как синхронизировать время на VM Windows и VM Linux.
    В Linux машинах все хорошо, время правильное, в Windows все время не то время, даже если синхронизацию сделать через ntp сервисы

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

  36. А как получить доступ к файлам ВМ при использовании LVM?
    В системе ведь нет точки монтирования.

    • Точки монтирования диска виртуальной машине к хосту нет ни в одном из типов диска для vm. Это может привести к проблемам в работе vm, поэтому в общем случае лучше и не монтировать, особенно если это системный диск виртуалки. Передавать файлы лучше через scp или nfs. Обычно делают так.

      • Это плохо. Я сейчас использую бесплатный esxi без vmsphere и пр плюшек. Допустим мне нужно перенести машину на другой гипервизор. Я подключаюсь через ssh, захожу в каталог с ВМ и копирую по scp файлы на новый хост. Как я подобное могу сделать в proxmox в случае необходимости?

        • Чтобы перенести машину на другой гипервизор, достаточно скопировать ее диск. Если вам надо таким образом переносить машины, то зачем используете lvm? Можно диск сделать в виде raw или qcow2 файлов и спокойно переносить куда угодно. Но даже если у вас lvm, то нет проблем его конвертировать в обычный raw файл и перенести на другой хост.

          • Просто в esxi с этим были проблемы - через веб интерфейс постоянно обрывалась выгрузка файла. Поэтому я переносил по ssh. Если тут проблем с вебом нет, то может это и выход

  37. Евгений

    Здравствуйте! Хочу попробовать данный сервис, но не могу найти ответ на свой вопрос) Могу ли я добавлять ресурсы (озу, объем диску и т.д) для ВМ без ее выключения используя proxcom?

    • Нет, не сможете. Нужно останавливать машину для того, чтобы изменить ее ресурсы. Без выключения можно только диски добавлять или изменять. А cpu и ram нет.

  38. Эдуард

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

    • Тут 2 варианта. Либо фаервол блокирует подключение, пробуйте его отключить и проверить доступ с гипервизора. Либо проблемы с сетевым интерфейсом, на котором отвечает сам proxmox. У виртуальны машин может быть отдельный сетевой интерфейс для связи с внешним миром.

  39. Hi! Всем прювэт)
    Есть Proxmox - >Routeros CHR + Woobm-USB
    на виртуалке не поднимается wifi interfaсе
    Кто сталкивался с такой траблой?

  40. Станислав

    Добрый день!

    Верно-ли я понял, что при создании виртуальной машины (linux) в Proxmox, которая планируется под роутер для локальной сети в интернет, форвардинг пакетов (/proc/sys/net/ipv4/ip_forward) включается ТОЛЬКО на роутере? На хост машине с Proxmox это делать не нужно?

  41. Если перезагружаю гипервизор - получаю ошибку
    Volume group "raid10-md0" not found
    TASK ERROR: can't activate LV '/dev/raid10-md0/vm-107-disk-0': Cannot process volume group raid10-md0
    Запись в mdadm.conf есть. Чтобы запустить виртуалки приходится вручную собирать raid.
    sudo update-initramfs -u делал, не помогло
    Помогите плиз советом

    • У вас по какой-то причине не стартует рейд после перезагрузки. Вы как его пересобираете? Попробуйте после перезагрузки поискать уже созданный рейд:

      # mdadm --assemble --scan

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

      И еще, после того, как все настроите, запишите изменения в конфиг mdamd.conf:

      # mdadm --detail --scan --verbose > /etc/mdadm/mdadm.conf
      • Как оказалось, я использовал ошибочную команду для формирования RAID:
        sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

        На иностранном ресурсе вычитал:
        DO NOT USE THE FULL VOLUME FOR MDRAID!
        There are some BIOS versions that white some information to the start of the disk, overwriting the metadata. You must create a partition on every disk first, then create the array!

        Забекапил виртуалки, почистил диски:
        wipefs --all --force /dev/sd{a,b,c,d}
        Заново создал raid командой:
        mdadm --create --verbose /dev/md0 --auto=yes --level=10 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
        Теперь мне не нужно после перезагрузки хоста вручную пересобирать RAID

        Огромное спасибо за ценный гайд и за помощь!

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

  42. Александр

    Здравствуйте!
    Пытаюсь перейти от VMmanager на Proxmox.
    Провайдер выделил мне несколько подсетей, и мне нужно создать виртуалки, доступные извне по адресам из этих подсетей.
    Хотелось бы, чтобы на виртуалках были подняты адреса из выделенных подсетей, и чтобы они были доступны извне.
    Не очень понял, можно ли такое реализовать в Proxmox и как именно?
    Буду благодарен за помощь!

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

      • Александр

        Сделал так, запустил установку Debian 10, но уже на этапе установки не видит сеть и не может настроить apt.
        При установке прописал IP из подсети, выделенной провайдером, для которой я добавил бридж. Добавленный бридж подключил на этапе создания виртуалки.
        Что бы такого мне посмотреть?

  43. Странно, после установки proxmox, никакого Welcome окна не было. Но морда доступна:)

  44. Доброго дня!
    Подскажите пожалуйста такой момент.
    Настраиваю proxmox на VDS, сеть в режиме routed: интерфейсы bridge настроил все ок, но у меня помимо основного адреса, предоставляется еще пул внешних адресов которые надо прокинуть в ВМ, которая будет шлюзом для инфраструктуры.
    для понимания, пример: 180.0.0.10/32 - основной адрес, по нему доступен сам хост, а также он прокинут в ВМ (шлюз)
    и есть пул адресов 62.1.1.13/32, 62.1.1.15 ... 62.1.1.20/32 (адреса не подряд, т.е. выделены именно как одиночные, а не как сеть) - данный пул подается через тот же интерфейс, что и основной IP.
    Собственно вопрос как прокинуть этот пул адресов, чтобы их можно прописать на шлюзе?
    P.s. подобную схему только с дополнительно выделенной подсетью организовывал на Hetzner`е и там запустилось, а с единичными небольшой затык вышел.
    Заранее спасибо)

    • Не очень понимаю, как вы настраиваете proxmox на vds. Виртуализация в виртуализации? Это все очень медленно работать будет. Я бы не советовал такие штуки делать. К тому же у hetzner есть облако. Лучше виртуалки сразу на нем нарезать. Для того, чтобы прокинуть ip адреса куда-то, достаточно просто сделать бридж на сетевом интерфейсе, через который подаются эти адреса. Потом этот бридж подключается к виртуальным машинам и там настраиваются адреса.

  45. Дмитрий

    Доброго времени суток
    Настроил proxmox согласно статьи, но столкнулся с такой проблемой, не удается сделать Snapshots моих виртуалок
    "The current guest configuration does not support taking new snapshots"

    • Возможность создавать снепшоты зависит от типа файлового хранилища. Если у вас raw диски, то снепшоты не будут работать. Точно работают в lvm и в qcow2 (не точно, надо проверять).

      • Дмитрий

        Да в том то и дело что LVM том, все как по инструкции

      • Дмитрий

        Я так понял у меня виртуалки создаются в формате raw, а для поддержки snapshot необходимо qemu, но в LVM я не могу создать виртуалку в формате qemu
        В Hardware -> Move disk я не могу установить format qemu, данная опция недоступна (если выбрано хранилище LVM)

  46. Евгений

    Установлен Proxmox последней версии по статье, есть несколько виртуалок на Ubuntu server, бекапил их периодически состоянием stop, теперь вот пару дней бекаплю ночью в состоянии suspend, заметил в логах строку:

    backup mode: suspend
    ....
    INFO: skipping guest-agent 'fs-freeze', agent configured but not running?

    qemu-агент в виртуалке установлен, с хоста "qm agent 100 ping" отрабатывает.
    Бекап создаётся.
    Нужно ли беспокоиться?
    Гугл ничего толкового не нашёл по данной строке.

    • А на самой виртуалке служба qemu-guest-agent запущена? По идее, не должно быть таких сообщений. У меня их нет.

      • Евгений

        Да, первым делом проверял: systemctl status qemu-guest-agent

        Loaded: loaded (/lib/systemd/system/qemu-guest-agent.service; static; vendor preset: enabled)
        Active: active (running) since Sun 2020-08-09 10:11:31 MSK; 22h ago

        Мало того, всё это происходит на всех трёх виртуалках которые бекапятся с позавчера suspend'ом.
        А может такое быть что на всех трёх оттюнен sysctl.conf?

        • Евгений

          Нет, дело не в sysctl.conf, сейчас пробовал на голой Ubuntu 20.04.1, всё тоже самое. Но бекап то создаётся нормально в итоге.

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

            • Евгений

              Попробовал восстановить из бекапа, да, всё восстанавливается корректно и без ошибок.
              Спасибо.

  47. Александр

    При загрузке два сообщения "Volume group "vg00" not found" и
    "Cannot process volume group vg00" "
    дальше все грузиться и работает. Что это за ошибки?

    • Аноним

      Помогло rootdelay=5 в /etc/default/grub и update-grub

    • lvm том по какой-то причине не доступен. Раз помогла задержка, значит просто инициализироваться служба не успевала. Хотя это все равно не нормально. Ни разу с таким не сталкивался.

  48. Дмитрий

    Владимир, здравствуйте.
    Прошу помочь мне советом или более подробной, чем в статье, инструкцией по настройке следующей схемы.
    Есть выделенный сервер у провайдера с установленным Proxmox и одним ip-адресом.
    На нем будет размещена виртуалка с терминальным сервером.
    Доступ к терминальному серверу хочу реализовать в Routed режиме, в качестве шлюза хочу использовать виртуалку Mikrotik CHR на базе RouterOS (он же будет использоваться как сервер VPN для организации доступа пользователей уже в терминалку).
    Уже создал виртуалки, одну с Debian 9 - на неё хочу развернуть RouterOS и вторую с Windows Server 2016.
    Возникла сложность с настройкой сетевых параметров таким образом, чтобы снаружи по этому единственному ip-адресу был доступен и шлюз Ьшлкщешл СРК и сам гипервизор Proxmox.

    • В чем именно сложность? Делайте в отдельной виртуалке RouterOS. Пробрасывайте к ней порт winbox, чтобы подключаться и управлять. Настраивайте там l2tp, пробрасываете на Микротик порт для подключения по l2tp. И все. Через vpn доступ к Терминальному серверу.

      Никакой особенной настройки сети при вашей схеме не надо. Просто на гипервизоре настраиваете iptables и пробрасываете нужные порты на виртуалки.

      • Дмитрий

        Владимир, спасибо за совет.
        На самом деле - всё проще, чем я себе "придумал".
        К концу дня что-то совсем не мог сконцентрироваться на задаче.

    • LESHIY_ODESSA

      > Уже создал виртуалки, одну с Debian 9 - на неё хочу развернуть RouterOS

      Это вы какую то ерунду написали, зачем там Debian? Вам нужно читать ОФИЦИАЛЬНУЮ документации и всё делать по ней.

      https://wiki.mikrotik.com/wiki/Manual:CHR_ProxMox_installation

      > Возникла сложность с настройкой сетевых параметров таким образом, чтобы снаружи по этому единственному ip-адресу был доступен и шлюз Mikrotik CHR и сам гипервизор Proxmox.

      Попробую вам выложить реальный конфиг.

      /etc/pve/nodes/SERVER/qemu-server/100.conf

      agent: 1
      balloon: 0
      boot: c
      bootdisk: virtio0
      cores: 1
      hotplug: 0
      memory: 512
      name: MikroTik-CHR
      net0: virtio=XX:4D:28:EC:8B:37,bridge=vmbr0
      net1: virtio=XX:9A:52:XX:C7:D8,bridge=vmbr1
      net2: virtio=XX:CC:06:XX:68:AA,bridge=vmbr2
      net3: virtio=XX:DE:E2:XX:9D:38,bridge=vmbr105
      net4: virtio=XX:A2:AE:XX:46:8A,bridge=vmbr110
      net5: virtio=XX:7C:FD:XX:98:93,bridge=vmbr150
      numa: 0
      onboot: 1
      ostype: l26
      scsihw: virtio-scsi-single
      smbios1: uuid=aXXea844-3fa1-41Xx-9432-effbXX72d345
      sockets: 1
      startup: order=1,up=15
      virtio0: local:100/vm-100-disk-0.raw,size=1G
      vmgenid: 7xx2473f-37a9-41d5-9536-cxxc9d0380e8
      startup: order=1,up=15
      virtio0: local:100/vm-100-disk-0.raw,size=1G
      vmgenid: 7022473f-37xx-41d5-XXXX-c00c9d0380e8

      /etc/network/interfaces

      # network interface settings; autogenerated
      # Please do NOT modify this file directly, unless you know what
      # you're doing.
      #
      # If you want to manage parts of the network configuration manually,
      # please utilize the 'source' or 'source-directory' directives to do
      # so.
      # PVE will preserve these directives, but will NOT read its network
      # configuration from sourced files, so do not attempt to move any of
      # the PVE managed interfaces into external files!

      source /etc/network/interfaces.d/*

      auto lo
      iface lo inet loopback

      allow-hotplug eno1
      allow-hotplug eno2
      allow-hotplug enp2s0

      auto eno1
      iface eno1 inet manual

      auto eno2
      iface eno2 inet manual

      auto enp2s0
      iface enp2s0 inet manual

      auto vmbr0
      iface vmbr0 inet dhcp
      bridge-ports eno1
      bridge-stp off
      bridge-fd 0
      #WAN

      auto vmbr1
      iface vmbr1 inet static
      address 10.1.3.101
      netmask 24
      bridge-ports eno2
      bridge-stp off
      bridge-fd 0
      #LAN1

      auto vmbr2
      iface vmbr2 inet manual
      bridge-ports enp2s0
      bridge-stp off
      bridge-fd 0
      #LAN2

      auto vmbr105
      iface vmbr105 inet manual
      bridge-ports none
      bridge-stp off
      bridge-fd 0
      #Windows-Server-2008-R2

  49. Здравствуйте. Прошу совета, как лучше организовать сеть:
    1. Есть 1(ОДИН) статический адрес от провайдера.
    2. Есть Mikrotik rb2011uas-2hnd-in, который сейчас используется в качестве роутера для 4шт ПК и двух принтеров (все подключены по "проводам" к микротику) и порядка 7-8 планшетов и телефонов (подключены по WiFi к микротику)
    3. Сейчас приобрели сервер DL380G8, который планируем использовать для нарезки нескольких VPS с сайтами. На сервере 4 физических сетевых карты 1гбит. На сервере ProxMox VE 6.2. Сервер: 2 x Xeon E5-2697 V2, память 128gb 1866ghz, RAID 1 из 2 x SAS 900GB 10k (для гипервизора и бэкапов). Планируем добавить 2 х SSD 240gb для виртуальных машин.

    Подскажите, пожалуйста: как лучше организовать сеть:
    1. Кабель от провайдера воткнуть в Микротик, а офисные ПК и сервер подключить к роутеру и создать две подсети: одну - для всех VPS на сервере, а другую - для нескольких ПК и других устройств.
    2. Кабель от провайдера воткнуть в одну из четырех сетевых карт сервера, роутер воткнуть во вторую сетевую карту, а все ПК и телефоны/планшеты оставить подключенными через роутер
    3. Какой-то третий, более правильный с Вашей точки зрения, вариант подключения.

    Соответственно, и в каком режиме использовать Prox Mox: linux bridge, nat или комбинированном.
    p.s. нагрузка на сайте не супер-высокая, но у меня нет представления об производительности роутера Mikrotik rb2011uas-2hnd-in, если через него будут не только ПК и гаджеты в сеть выходить, но еще и пойдет трафик нескольких VPS. Поэтому и вопрос: поставить его "до" сервера или "после сервера".
    Провайдер дает 200мбит, но статический IP есть только один и не факт, что дадут еще IP-адреса.
    На VPS пока в основном свои сайты, но планируем предложить лишние мощности сервера коллегам и соседям по работе, поэтому есть риск, что на VPS будут "чужие люди" и хотелось бы как-то разделить и защитить офисные ПК и гаджеты, сам гипервизор и VPS друг от друга и от внешних вторжений.

    Заранее спасибо огромное за советы!

    • В самом простом случае я бы сделал так:
      1. Роутером для всей сети оставил микротик. Соответственно, кабель провайдера приходит в него.
      2. Один провод от роутера воткнул в сервер и сделал на нем бридж.
      3. Этот же бридж я бы подключал виртуальным машинам.
      Таким образом у вас виртуалки и все, кто подключены к микротику оказываются в одной локальной сети. Так проще управлять всем этим. Не нужно настраивать дополнительный шлюз. Все работают через микротик, на котором настроен dns и dhcp. С микротика делаем проброс портов на нужные виртуалки.

      Если хочется изолировать виртуальные машины, или настроить все более грамотно и безопасно, то можно использовать более сложную схему. Сервер так же подключаем к микротику и делаем бридж. Далее создаем одну виртуальную машину для nginx, который будет проксировать все запросы к сайтам на нужные vps. На этот nginx пробрасываем 80 и 443 порт с микротика. На гипервизоре делается еще один бридж без физического интерфейса. Это будет виртуальная сеть только для VPS. Этот бридж подключаете для всех виртуальных машин, в том числе с nginx. По этой сети nginx будет передавать запросы на VPS с сайтами. Для работы интернета на VPS, которые подключены только к виртуальной сети, нужно будет либо на самом гипервизоре, либо на vps с nginx настроить NAT и сделать эту виртуалку шлюзом для всех остальных vps.

      Это навскидку 2 самых простых и очевидных решения.

      • Спасибо Вам большое за подробный ответ!

      • Еще можно уточнение: если на микротике создать ДВЕ подсети (одна - для гипервизора и его локальных машин, вторая - для локальных машин). Это повысит безопасность или по факту не повысит?

        И правильно я понимаю, что микротик ничуть не хуже справится с нагрузкой в качестве шлюза, чем виртуальная машина и смысл делать отдельную виртуальную машину в качестве шлюза имеет смысл только если будет несколько VPS, а для них всего один статический адрес? И тогда виртуальная машина будет необходима для проксирования запросов к нужному VPS в зависимости от имени домена?
        Кстати: эту же задача (проксирование по имени домена) может эффективно выполнять микротик? Или для такой задачи уже удобнее или быстрее использовать nginx на отдельной виртуальной машине?

        Заранее спасибо за ответ.

        • 1. Вряд ли тут стоит говорить о безопасности. Это просто может оказаться удобнее. Если в общую сеть кто-то воткнет свое устройства и назначит ему ip адрес, который уже принадлежит VPS, то он нарушит ее работу. Когда вы разнесли по подсетям разные категории абонентов, вам удобнее управлять адресами. Меньше шансов кому-то помешать.
          2. Микротик не только не хуже, он лучше справится с ролью шлюза. Я всем рекомендую использовать именно микротики. С ними удобнее, они функциональнее. Если есть микротик, шлюзом лучше делать его. Даже если у вас один внешний ip адрес, вы назначаете его микротику, а с него уже делаете проброс нужных портов на VPS.
          3. Mikrotik проксировать не умеет. Он может только пробросить порты 80 и 443 на одну VPS. Поэтому и нужен nginx, чтобы уже он в зависимости от имени домена раскидывал подключения на разные VPS.

        • Спасибо огромное!

      • Добрый день! Искал рецепт создания изолированных контейнеров, с доступом к ним через nginx, сделал вот как:
        nginx - назначен ip адрес из локальной сети, 192.168.1.10 (vmbr0)
        для изолированных контейнеров добавил nat бридж (vmbr1) с адресацией 10.10.0.1/24 и прописал masquerade.
        добавил изолированный контейнер (vmbr1) с адресом 10.10.0.2
        Для того что бы изолированные контейнеры были доступны серверу nginx - добавил внутри nginx контейнера еще одну сетевую карту с привязкой к vmbr1, после прописал в конфигурации nginx "proxy_pass http://10.10.0.2:80"

        Начал искать - правильно ли сделал, наткнулся на статью и нашел этот комментарий. Вопрос - правильно ли я сделал, так как он совпадает с вашей рекомендацией, или есть более правильный способ без создания второго сетевого интерфейса в контейнере nginx?
        Спасибо за ответ =)

  50. LESHIY_ODESSA

    Новый архиватор (или я только что заметил) zstd для бэкапов сказочно быстр. Приблизительно в 6 раз. А размер архива по сравнения с .gz тот же или даже меньше.

    • Так proxmox по-умолчанию использует Lzop. Он достаточно быстр. Тоже в разы быстрее gzip. Последний однопоточный, использует только одно ядро. Есть еще pigz, тоже очень быстро жмет всеми ядрами процессора.

  51. Здравствуйте,
    еще вопросы появилось

    1. ifconfig или ip a показывает куча интерфейсов теперь, штук 30))) откуда они появилось?

    2. не получается установит загруженные шаблоны, ошибка Cannot mknod: Operation not permitted. Google не помог.

  52. Автору спасибо, отличная статья! До этого пользовался виртуальбоксом. Но это намного круче)
    Сделал для дома минисервер на debian+proxmox (IP 10.10.10.2), сделано по этой статьи 1к1
    Поднял две виртуальки:
    100 - Kerio Control on debian (HDD 15Gb, RAM 2Gb, IP 10.10.10.1) это мой фаерволл, маршрузатор, антивирус и всякие фильтры.
    101 - Debian 10.4 (HDD 8Gb, RAM 2Gb, IP 10.10.10.3) - тут медиафайлы, торренты, samba, бэкапы.

    Есть raid1 диск и он подключен к машине 101, минуя основной мой минисервер. Часть fstab:

    10.10.10.2:/mnt/4torrent /mnt/4torrent nfs defaults 0 0
    10.10.10.2:/mnt/backups /mnt/backups nfs defaults 0 0
    #raid1 диск LVM 1TB
    UUID=19721503-2017-cda0-0001-202010092134 /mnt/750GB_DATA ext4 noatime,rw 0 0
    UUID=19721503-2017-cda0-0002-202010092138 /mnt/181GB_DATA ext4 noatime,rw 0 0

    Здесь /mnt/181GB_DATA экспортирую на nfs и подключен в хранилище proxmox.

    /etc/exports:
    /mnt/181GB_DATA 10.10.10.0/24(rw,sync,no_root_squash,no_subtree_check)

    Когда делаю backup машины 101, размер образа превышает самога размера хард диска машины. Думаю backup берет и монтированные разделы тоже. Прервал backup после 21 Gb!

    Вопрос: как сделать backup виртуальки, минуя некоторые папки, типа /mnt? Или есть альтернатива просто копировать логический том LVM на другой LVM.

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

  53. Алексей

    "Игнорируйте его, потом подключим swap отдельно в виде файла." -а по какой причине нельзя сразу установить swap во время установки Debian?
    Чем это грозит?

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

  54. Андрей

    Спасибо за статью, но она как и все остальные не объясняет полностью некоторые моменты, поэтому новичку она не поможет, или придется потратить в разы больше времени для осуществления указанного в ней. Например из простого: 1) откуда взялся mcedit в чистой системе? 2) Команда определения IP-адреса из статьи показывает 127.0.0.1 (нужно hostname --all-ip-address). И так во всех статьях. Их нельзя использовать как руководство для новичков, которые начинают с нуля.

    • Удивительно. Вы считаете, что человек, не знающий ничего про linux, должен после прочтения одной статьи без проблем развернуть гипервизор с виртуальными машинами? Нужна база, чтобы это сделать. И это очевидно. Поэтому и нет таких статей. Нужно потрудиться сначала и приобрести некоторые знания и навыки, чтобы все получилось. Так не будет, что вам одной статьей кто-то расскажет, как построить готовую инфраструктуру на базе неизвестной вам системы.

      Так можно придраться и сказать, что не рассказано, что такое NAT, не описано как работает сетевой бридж и т.д.

      • LESHIY_ODESSA

        >> не знающий ничего про linux

        Я бы всё же добавил еще знания сетевых технологий. Без знания DHCP, TCP и так далее, толку от Proxmox мало.

  55. Оставлю для себя ссылку в копилку темы, почему не надо использовать zfs - https://qna.habr.com/q/746281

  56. Не планируете ли переход на freebsd + BHyVe как замену debian + proxmox? Говорят, производительность сильно выше.

    • Кто говорит? Я вообще ни разу не слышал о BHyVe. Если есть реальные тесты, дайте ссылку. Freebsd я знаю хорошо и с нее начинал свою работу с unix. Но на текущий момент она почти мертва. Ее почти никто не использует и вакансий со знанием freebsd нет.

  57. Здравствуйте!

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

    • Не понял, при какой такой конфигурации?

      • RAID1+ LVM только не "демо", а на продакшене.

        • О каком конкретно объеме идет речь? Он же зависит от использования места в самой виртуалке. Сколько там данных, таков и бэкап будет.

          • Ну, собственно, я про это и спрашиваю: на каких объёмах данных (примерно) Вы пользуетесь такой конфигурацией Proxmox?

            • Так по разному. От задач зависит. Вот только что вышел с виртуалки с диском на 5Tb. Больше вроде не было. Обычно стараюсь дробить на небольшие виртуалки, чтобы проще было с ними обращаться - переносить, бэкапить и т.д.

  58. Андрей

    Если ничего не помогает читаем Руководство Администратор 6.0 на русском
    ... перевел немножно
    https://drive.google.com/file/d/1i91Aih0fYM0VhEelUqjlK_U3vxRdK9A1/view?usp=sharing

  59. Настраивал по вашей статье, т.к. так и хотел - на raid1 поставить proxmox. Всё отлично завелось. Но столкнулся с интересной особенностью. Решил уменьшить размер виртуальной машины с openmediavault. При установке задал слишком большой размер и системы и swap-раздела. По умолчанию OMV установил систему на sda1, а swap на sda5. Так вот что странно, даже просто при удалении раздела swap после выключения виртуальной машины раздел системы стал уходить в inactive (проверяю командой lvsscan). При этом в proxmox образ отображается. И при загрузке виртуальной машины довольно долго сыпятся в терминал сообщения:
    mdadm: no arrays found in config file or automatically
    Но в итоге система загружается. Так и не разобрался с чем это связано.

  60. Аноним

    allow-hotplug eth0
    #iface eth0 inet dhcp
    auto vmbr0
    iface vmbr0 inet dhcp
    bridge-ports eth0
    bridge-stp off
    bridge-fd 0
    Падает сеть (меняется ip у сервера к которому нельзя подключиться - приходится просто переустанавливать)

    • LESHIY_ODESSA

      Там же выше должно быть :

      allow-hotplug eth0
      auto eth0
      iface eth0 inet manual

      И только потом

      auto vmbr0
      iface vmbr0 inet dhcp
      bridge-ports eth0
      bridge-stp off
      bridge-fd 0

      Вы уверенны что интерфейс eth0 существует? В последних Linux сетевые интерфейсы поменяли названия на eno1/eno2 или enp2s0 и так далее.

  61. Аноним

    Настраивал по инструкции сеть после добавления NAT я каждый раз теряю доступ... С чем это связано... Мне только приходится ждать переустановки сервера

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

  62. Спасибо за статью.
    Вы писали "Тут сразу встает следующий вопрос — как автоматически удалять старые бэкапы?"

    При подключении папки NFS есть пункт Max Backups,у вас он есть на скрине
    https://serveradmin.ru/wp-content/uploads/2016/09/proxmox-install-31.png
    Чтоб не заморачиваться с find и cron ставите там к примеру 10,будут храниться последние 10 бэкапов всё остальное автоматически будет удаляться.

    p.s. Вы обещали статью Mail сервер на Centos 8)

    • Да, спасибо, я знаю об этой возможности. Но это не гибко и разом для всех бэкапов. Часто приходится для разных архивов иметь разное время хранения.

      • В таком случае я добавляю несколько nfs папок,по папке на каждый сервер.У вас бэкапы всех серверов в одной папке хранятся?

  63. Сергей

    Создают ли нагрузку виртуалки на отдельном ssd диске на дисковую подсистему самого Proxmox на hdd ?

  64. Респект Вашей компетенции!
    С Вашей легкой руки легко отказался от Virtual box, думаю соскочить с VMware ESXi.
    Но вот на какую проблему наткнулся с proxmox (debian + mdadm +proxmox):
    windows гостевая машина (win7 или win 10, не важно) не backup-иться в stop mode
    сообщает:
    TASK ERROR: VM quit/powerdown failed - got timeout

    suspend и snapshot mode проходят нормально.

  65. Александр

    Добрый день, подскажите плз, есть основной внешний ip, купил еще 5 белых айпи, мне нужно поднять в proxmox 5 виртуалок, каждая со своим белым ip, как это правильно сделать?

    • Делается бридж на внешнем интерфейсе, куда приходят 5 IP. Этот бридж выдается виртуалкам как сетевой интерфейс. В виртуалках натсраивается внешний ip. Проблем никаких быть не должно, это обычный кейс, я так часто настраиваю.

      • Александр

        Я так и делаю, не получается, вам можно прислать скрины ?

      • Александр

        Один внешний интерфейс На самом проксмокс eno1, создаю просто бридж без настроек пустой vmbr0, создаю виртуалку добавляю vmbr0 и вбиваю другой внешний айпишник и шлюз айпи интерфейса eno1. Так я правильно делаю или нет?

      • Александр

        Когда делаешь бридж в нем нужно указывать внешний айпи или нет?

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

    Мне кажется в этом пункте можно выбрать "Указать вручную" И прописать ручками диски, на которые ставить загрузчик, например /dev/sda /dev/sdb /dev/sdc /dev/sdd пример для 10 raid'а.

  67. Спасибо большое за статью. Всё доходчиво и понятно.
    У меня один вопрос?
    1. Я создал R10 на mdadm и создал поверх этого массива LVM (всё как по статье), Далее подключил эту LG через вебморду Proxmox'a.
    Создал ВМ и указал место хранения диска данную LVM группу. Вопрос, а диски пощупать получается нельзя от ВМ?
    Ну если бы я ещё создал на этой LVM группе LV (логический том) и примантировал допустим к директории /VMdisk, то тут бы я мог видеть эти диски, перемещать как и куда хочу.
    А по логической группе виртуальные диски искал, и не нашел, где они хранятся.

  68. Евгений

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

  69. Виктор

    Спасибо за подробную статью. В данном случае zabbix устанавливать лучше перед установкой proxmox? Еще можно было бы в статье пару строк написать что нужно будет сконфигурировать postfix, т.к. при установке это требуется. Еще вопрос по мониторингу mdadm, зачем этот огород с zabbix, если mdadm поддерживает уведомления на мыло из коробки? http://adminunix.ru/nastrojka-uvedomleniya-o-sostoyanii-raid-m/

    • Zabbix можно ставить в любой момент, не принципиально. Мониторинг mdadm нужен, чтобы было все в одном месте, в единой системе мониторинга. Я всегда все замыкаю на нее. Это удобно. Postfix конфигурировать не обязательно. Я обычно не делаю, если не собираюсь настраивать отправку локальной почты на реальные ящики.

      • Добрый день,
        а нам поможете настроить Proxmox очень старой версии proxmox-ve-2.6.32 на последнюю?

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

  70. Александр

    Хорошая статья! Спасибо!
    Настроил, все работает.
    Но почему-то окошко с предупреждением всеравно вылазит.