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

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

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

Если у вас есть желание научиться администрировать системы на базе Linux, рекомендую познакомиться с онлайн-курсом «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Подробная информация.

Введение

Некоторое время назад я узнал про систему виртуализации 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 не в счет.

Если у вас есть желание научиться администрировать системы на базе Linux, но вы с ними никогда не работали и не знакомы, то рекомендую начать с онлайн-курса «Linux для начинающих» в OTUS. Курс для новичков, для тех, кто с Linux не знаком. Цена за курс минимальная (символическая). Информация о курсе и цене.

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

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

Автор Zerox

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

393 комментария

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

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

  2. Владимир

    "Создаем в инсталляторе указанные разделы на обоих дисках. Не буду расписывать по шагам как их сделать, надеюсь сами разберетесь, это не сложно. Должна получиться такая картина"
    А вот у меня не получается такая же картина. Устанавливаю 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.

  3. У меня возник вопрос по настройке 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 в виртуалке никак не влияет на настройки на гипервизоре.

  4. Андрей

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

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

      • Андрей

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

      • Андрей

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

      • Андрей

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

        Спасибо

  5. Михаил

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

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

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

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

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

  7. Александр

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

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

  8. Николай

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

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

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

  10. Николай

    Приветствую! Поставил 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!".

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

  11. Виталий

    Добрый день. Проблема с входом в 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.

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

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

  13. Леонид

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

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

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

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

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

  14. Дмитрий

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

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

      • Дмитрий

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

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

  15. Сергей

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

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

  16. Александр

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

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

  17. Никита

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

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

  19. Валерий

    Вопрос по настройке сети.
    Установлен 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 от провайдера.

  20. Здравствуйте. Сталкиваюсь с ошибкой при сохранении разметки дисков и продолжении установки. Два 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 оставив неразмеченное пространство. Буду рад любому ответу!

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

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

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

  23. Добрый день, установил 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
            интерфейсе все копируется. Продолжаю настраивать систему.

  24. Добрый день. Периодически останавливается ВМ с 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

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

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

  26. Андрей

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

  27. А есть ли рабочий метод уменьшить размер диска виртуальной машины? В Сети несколько методов, но не один не работает в 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 указан способ, который привёл я.

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

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

  30. Василий

    Хорошая статья.
    Установил, разобрался, перенёс виртуалки из 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. Настройте как нужно.

  31. Поднял прокс через эту статью!
    Имею в наличии 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)

  32. Максим

    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-адрес может быть либо только у виртуального адаптера, либо у сетевой карты. В первом случае еще нужно и сетевую карту поставить в бридж к виртуальному адаптеру, иначе не будет связи с лоальной сетью. Это справедливо для любой сетевой карты, которая физически соединена с локалкой.

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

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

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

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

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

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

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

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

  36. Евгений

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

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

  37. Эдуард

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

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

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

  39. Станислав

    Добрый день!

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

  40. Если перезагружаю гипервизор - получаю ошибку
    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

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

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

  41. Александр

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

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

      • Александр

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

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

  43. Доброго дня!
    Подскажите пожалуйста такой момент.
    Настраиваю 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 адреса куда-то, достаточно просто сделать бридж на сетевом интерфейсе, через который подаются эти адреса. Потом этот бридж подключается к виртуальным машинам и там настраиваются адреса.

  44. Дмитрий

    Доброго времени суток
    Настроил 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)

  45. Евгений

    Установлен 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, всё тоже самое. Но бекап то создаётся нормально в итоге.

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

            • Евгений

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

  46. Александр

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

    • Аноним

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

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

  47. Дмитрий

    Владимир, здравствуйте.
    Прошу помочь мне советом или более подробной, чем в статье, инструкцией по настройке следующей схемы.
    Есть выделенный сервер у провайдера с установленным 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

  48. Здравствуйте. Прошу совета, как лучше организовать сеть:
    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?
        Спасибо за ответ =)

  49. LESHIY_ODESSA

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

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

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

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

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

  51. Автору спасибо, отличная статья! До этого пользовался виртуальбоксом. Но это намного круче)
    Сделал для дома минисервер на 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.

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

  52. Алексей

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

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

  53. Андрей

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

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

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

      • LESHIY_ODESSA

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

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

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

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

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

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

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

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

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

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

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

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

  57. Андрей

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

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

  59. Аноним

    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 и так далее.

  60. Аноним

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

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

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

    При подключении папки 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 папок,по папке на каждый сервер.У вас бэкапы всех серверов в одной папке хранятся?

  62. Сергей

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

  63. Респект Вашей компетенции!
    С Вашей легкой руки легко отказался от 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 проходят нормально.

  64. Александр

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

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

      • Александр

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

      • Александр

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

      • Александр

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

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

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

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

  67. Евгений

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

  68. Виктор

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

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

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

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

  69. Александр

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

    • Чтобы убрать окно с предупреждением введите в консоле
      sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

  70. Николай

    Zerox как с вами можно связаться?

  71. Добрый день. Если можно, подскажите пожалуйста. Несколько раз читал статью. Делал разные варианты. Не получается дать доступ виртуалкам и контейнерам наружу. Пробовал дать NAT через гипервизор, не сработало. Сделал отдельный контейнер с двумя мостами. не пошло. заказал еще один IP, сделал еще один мост и добавил в контейнер с двумя мостами. Наружу не идет. Внутри сеть бегает, наружу нет. Явно не хватает какой-то мелочи, потратил полдня, но так и не нашел куда копать.

    Конфиг Proxmox. Конфиг Контейнера, одна сетевуха с мостом с белым ip, вторая со вторым мостом с серым.

    auto lo
    iface lo inet loopback

    iface enp5s0 inet manual

    auto vmbr0
    iface vmbr0 inet static
    address White_ip 1
    netmask 255.255.255.192
    gateway Gateway
    bridge-ports enp5s0
    bridge-stp off
    bridge-fd 0

    auto vmbr1
    iface vmbr1 inet static
    address 10.10.10.1
    netmask 24
    bridge-ports none
    bridge-stp off
    bridge-fd 0

    auto vmbr2
    iface vmbr2 inet static
    address Whiteip_2
    netmask 26
    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

    • Для начала я бы убедился, что параметр /proc/sys/net/ipv4/ip_forward реально применился и работает. Без него NAT не будет работать. А так в целом не знаю, что посоветовать. Вы где-то ошибаетесь просто. Я регулярно настраиваю гипервизоры по такому принципу и все работает сразу, без нюансов. Сделайте отдельно тему на форуме и выложите все сетевые конфиги - гипервизора и виртуалки, будем смотреть, что там не так.

  72. Друзья, есть ли особенности установки zabbix-agent на 6 версию проксмокса? Были 4 и 5 версии, ставилось без проблем. На 6 упорно zabbix сервер не видит агента. Проверка телнетом порта от сервера до агента как то непонятно проходит - не то чтобы он не может подключится по таймауту на порт 10050, а коннект проходит, но агент/проксмокс почти сразу его закрывает. Файерволл в проксмоксе в веб-интерфейсе отключен.

    • Никаких особенностей я не видел. Это почти обычный Debian 10, zabbix-agent работает как обычно. Это у вас какая-то локальная проблема.

  73. Андрей

    Доброго времени суток. Всю голову сломал, не могу понять - где мой косяк.
    Хецнер, Дебиан 10.1, Проксмокс 6.0-7.

    /eta/network/interfaces

    auto enp2s0
    iface enp2s0 inet manual

    auto vmbr0
    iface vmbr0 inet static
    address 95.95.0.95
    netmask 29
    gateway 95.95.0.1
    bridge-ports enp2s0
    bridge-stp off
    bridge-fd 0

    Сеть снаружи есть, веб-морда работает, но мост не активен и при создании LXC отвал с ошибкой.

    Вывод ifconfig выдает:
    enp2s0: flags=4163 mtu 1500
    inet 95.95.0.95 netmask 255.255.255.255 broadcast 0.0.0.0

    ifconfig vmbr0
    vmbr0: error fetching interface information: Device not found

    Куда оно "съедает" мост то??

    • Ничего не понимаю. То есть по ip адресу 95.95.0.95 сервер доступен, но в списке сетевых интерфейсов vmbr0, на котором настроен этот адрес, отсутствует? А если смотреть через команду:

      # ip a

      Я полно подобных серверов настроил и ни разу такого не видел. Где-то вы явно накосячили. Сетевой конфиг верный, ошибки нет. Попробуйте ребутнуть сервер.

      • Андрей

        Сам спросил, сам отвечу ))
        При изменении через веб-морду Проксмокс добавляет новые записи в конец файла /etc/network/interfaces
        А так как перед этим я его предварительно правил, и мост у меня был "посередине" с прописыванием адресов из подсети "up route add ...." - вся конструкция "поплыла" и мост отказался стартовать. Всякие "up route add ...." должны быть "внутри" секции/конструкции своего интерфейса. А еще лучше (мне уже подсказали) - вынести их в /etc/network/if-up.d/script, например вот так:
        #!/bin/bash
        # Check for specific interface if desired
        [ "$IFACE" != "eth0" ] || exit 0
        # Adding additional routes on connection
        route add -net 31.135.208.0/21 gw 192.168.2.1 dev eth0
        route add ...
        route add ...

  74. Добрый вечер.
    Вот вы пишите "У меня есть отдельная статья по установке Debian. Там подробно описан процесс установки системы на софтовый рейд mdadm" (https://serveradmin.ru/kak-skachat-i-ustanovit-debian-10-buster/)
    Однако в данной статье делаете без LVM
    Я изучаю вопрос, у меня 4 диска по 2Тб, хочу поставить proxmox на raid10
    Сейчас сделал аналогично вышеуказанной статье, только raid10, что касается разбивки дисков
    Так как всё таки лучше, с LVM Или без?

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

  75. Юзверь

    Создаю виртуалку на debian, добавляю второй сетевой интерфейс (vmbr1), пытаюсь запустить, но выдаёт ошибку:

    bridge 'vmbr1' does not exist
    kvm: network script /var/lib/qemu-server/pve-bridge failed with status 512
    TASK ERROR: start failed: command '/usr/bin/kvm -id 100 -name router -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=924cd842-42e5-41b9-9252-5c6f153f2ee3' -smp '1,sockets=1,cores=1,maxcpus=1' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vnc unix:/var/run/qemu-server/100.vnc,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 512 -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'vmgenid,guid=b92e0341-e5b5-41d1-9d1e-8fd248c42588' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'VGA,id=vga,bus=pci.0,addr=0x2' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:7cbebb43444e' -drive 'file=/var/lib/vz/template/iso/debian-10.1.0-amd64-netinst.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/var/lib/vz/images/100/vm-100-disk-0.qcow2,if=none,id=drive-scsi0,format=qcow2,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=16:36:5C:CA:EE:5B,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -netdev 'type=tap,id=net1,ifname=tap100i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=6A:59:34:27:31:E2,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301' -machine 'type=pc'' failed: exit code 1

    • После создания vmbr1 гипервизор перезагружал?

      • Юзверь

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

        Ещё такой к вам вопрос. Почему при создании моста vmbr1 вы пишите, что указываете сеть 10.10.10.1/24 (которая, как я понимаю, частная, и будет для внутреннего транспорта виртуалок, вроде так правильно и по канону), но далее по тексту вы указываете править файл с настройками сети по ssh и прописываете IP-адрес 192.168.5.211

        auto vmbr1
        iface vmbr1 inet static
        address 192.168.5.211
        netmask 255.255.255.0

        Я из-за этого запутался. Получается, что всё же внутренняя виртуальная локалка будет в 5-й подсети? Или нет? Но далее по тексту вы опять упоминаете сеть 10.10.10.0/24. Заранее, спасибо за ответ.

        • Все верно. Сеть у виртуалок должна быть 10.10.10.1/24. В статье ошибка. Скопировал 192.168.5.211 с какого-то работающего сервера для примера и забыл изменить адрес.

  76. Николай

    столкнулся с тем что в Debian10 не работает команда dpkg-reconfigure . Лечится export PATH=$PATH:/usr/sbin

    • LESHIY_ODESSA

      У меня dpkg-reconfigure grub-pc работает без всяких дополнений.

      • У него просто что-то сломано в системе. Каталог /usr/sbin по дефолту есть в переменной PATH. Его не надо отдельно добавлять.

        • Странно , но нет. Я тоже столкнулся с тем, что по дефолту не прописано.

          • Странно, это стандартный системный путь.

            • Я тоже удивился, когда не нашло команду reboot

            • Дмитрий

              У меня dpkg-reconfigure не работала при поднятии привилегий пользователю до рута через su, консоль ругалась что команда не найдена, при этом если вместо su для получения рут прав использовать sudo все нормально. И так с половиной базовых команд, типа shutdown, reboot, ifconfig, и еще с несколькими. Почему так, так до конца и не понял

    • В последних версиях Дебиан, что бы рутовые переменные подхватить, делается так: su - (-, -l, --login make the shell a login shell).

  77. Константин

    Статья хорошая и полезная. Не раз ставил по ней и всё было хорошо.
    Недавно столкнулся с небольшой проблемой. Сервер супермикро, два винта с разметкой GPT. И тут началось... Ну если кратко, всё упёрлось в установку загрузчика. EFI не ставится загрузчик поверх raid. Причём я проверил как софтовый райд, так и два аппаратных, которые имелись на борту сервера.
    Были перепробованы все варианты. Гугл помог, нашёл информацию, что в таком случае нужен либо шаманский бубен, который помогает на очень небольшом количестве материнских плат, либо так делать просто нельзя и точка, подытожил автор той статьи.
    Решил сделать чуть хитрее, разделы для загрузчика не стал объединять в raid, а оставил на каждом диске без изменений. На один диск загрузчик поставил штатным способом при установке debian. Понимаю, что если вынуть первый диск, на котором есть загрузчик - система со второго не стартанёт.
    Если можно, осветите в статье такой вариант установки и может дадите какие то рекомендации, как лучше сделать если диск не MBR а GPT.

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

  78. Александр

    Ens18 соответствует vmbr0, а ens19 — vmbr1. На ens19 настроен внешний ip и шлюз провайдера, который выделил этот ip адрес и выдал сетевые настройки. Настраиваем на этой виртуальной машине шлюз так, как нам надо — iptables, dns, dhcp и т.д.

    "На ens19 настроен внешний ip и шлюз провайдера" ? Может быть на ens18 ?

  79. LESHIY_ODESSA

    Вы пишете - Если оставить оба интерфейса, то ваш proxmox будет доступен по двум разным ip адресам.

    Но каким образом он будет доступен если в /etc/hosts одна единственная запись — 10.1.2.101 server.lan server pvelocalhost

    У меня следующая ситуация. Ваш вариант с роутером из Микротик очень хорош, но всё же я столкнулся с ситуацией когда мне нужен доступ снаружи. А снаружи у меня домашний роутер.

    В общем опишите как предоставить доступ с внешнего IP. ТО есть по двум IP сразу.

    • /etc/hosts к ip адресам и доступу не имеет никакого отношения. По сути это статическая dns запись и больше ничего. С внешнего ip нужно пробрасывать порты к ресурсам proxmox, если нужен к ним доступ.

      • LESHIY_ODESSA

        Я нашел у себя ошибку и всё заработало. Я не подумал что если eno1 не включен, то есть он не auto eno1, то vmbr0 тоже отключен.

        auto eno1
        iface eno1 inet manual

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

  80. ZFS policy-driven snapshot management and replication tools - github.com/jimsalterjrs/sanoid/
    Умеет incremental

    Зы. Короче, с mdadm + LVM вы пока что в пролете с incremental (

  81. "От zfs в любой момент можно получить сюрприз. Я его использовал еще лет 10 назад на freebsd."
    10 лет в IT - это как от каменного топора да АЭС.

    Тормоза с ZFS? Настройте L2ARC на ZFS, включите Zswap с z3fold + lz4-компрессией , задайте vm.swappiness=10 (внезапно)
    Подумайте, разберитесь.

    ЗЫ. CRC на современных CPU вычисляется почти мгновенно.

    ЗЫ2. Не думаю, что автор сего сайта опытнее целой КОМАНДЫ разрабов PVE, к-ые софт-рейд с mdadm не завезли.

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

      Mdadm много куда не завезли, причем не из-за проблем с удобством и эксплуатацией. Думать надо своей головой, а не надеяться на разработчиков, считая, что они уже все сделали за тебя. Их цели и ваши скорее всего не совпадают. Если уже так рассуждать, то zfs еще больше куда не завезли. О чем это должно говорить?

      • У меня два сервера ProxMox -- один с mdadm/RAID10 + LVM, другой ZFS/RAID5 + L2ARC на SSD диске. ZFS был выбран на втором сервере для ускорения работы операций чтения/записи. С mdadm/RAID10 + LVM -- очень долго стартовали виртуальные машины с Win. ZFS очевидно быстрее, особенно с L2ARC + SSD. Плюсы и минусы:

        +++
        ZFS -- полностью заменяет mdadm и LVM, поскольку и рейды может и тома ресайзить как хочешь, также умеет ускорятьcя за счет кэша, в том числе дискового на SSD. Умеет снапшоты на лету и пр. Виртуалки на нем не qcow2 файл, а полноценный раздел диска. Именно поэтому и пал выбор у разрабов, наверное, на него.

        ---
        ZFS потребовал в разы больше оперативной памяти. Раза в два, если не три.
        Недавно Торвальдс разрушл ZFS в том ключе, что он не скоро попадет в ядро, если вообще попадет, но больше из-за лицении (https://www.opennet.ru/opennews/art.shtml?num=52164)

        Тут неплохая таблица ZFS vs MDADM vs LVM:
        http://xgu.ru/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_ZFS_%D0%B8_Linux_LVM_%2B_RAID

        Тесты производильности ZFS RAID vs Linux RAID:
        https://habr.com/ru/post/344204/

        • Буквально на днях знакомый писал:

          ты работал с ZFS ?
          я попал в почти патовую ситуацию ))
          внезапно закончилось место .... (ну мой косяк, недоглядел мониторингом)
          пытаюсь удалить файлы, а места больше не становится
          там какая-то хитрая система
          уже полчаса крутится утилита ncdu и показывает 12 ТБ
          .zfs/snapshot не могу там ничего удалить, пишет "read-only file system"

          Я в том числе из-за таких сюрпризов не хочу ставить zfs в продакшн. Нет времени разбираться в его нюансах. Хочу спать спокойно и быть уверенным в файловой системе, даже если забьется 100% объема или кончится оперативная память.

  82. Fast & frequent incremental ZFS backups with zrep - grendelman.net/wp/fast-frequent-incremental-zfs-backups-with-zrep , github.com/bolthole/zrep

  83. ZFS incremental backup пока не завезли, но есть differential - github.com/ayufan/pve-patches
    Минус один - после обновления ядра PVE нужно ждать новый пачт от автора (

  84. И это. Не надо linux bridge. Пользуйте open vswitch. Гораздо гибче.

  85. github.com/extremeshok/xshok-proxmox
    Пользовать думаючи.

  86. Добрый.

    Сколько можно велосипедить с PVE? Если уж сами разрабы zfs из коробки предлагают? Смогете copy-on-write, мгновенные снэпы и т.д. на mdadm соорудить?

    "... я не работал, у меня нет опыта c zfs" . У-у-у-у, Так вы раньше и с никсами не работали, а теперь вот пользуете вовсю.
    Не надо других на ложный путь наводить.

    Внимание, граждане! Пользуйте ZFS с PVE! Не любите себе моСк.

    • Ниже я уже написал, почему не zfs. Вот свежий пример из практики от знакомого. Гипервизор стал сильно тормозить, он начал разбираться, из-за чего это. Мне просто не нужен такой головняк на ровном месте.

      "Вычислил. Смотри что было. Решил я поставить с образа на zfs. Сразу после установки пошли жуткие тормоза и я убавил память на некоторых виртуальных машинах. Результат не улучшился.

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

      Не думал что виртуалка может давать такие проблемы на весь гипервизор."

      От zfs в любой момент можно получить сюрприз. Я его использовал еще лет 10 назад на freebsd. И нужно понимать, что zfs это copy-on-write с проверкой CRC, она работает заметно медленнее обычной ext4. За все ее плюшки приходится платить скоростью и оперативной памятью, которую до трети всего объема придется отдать под zfs. При нехватки памяти начнутся больше проблемы - фризы, непонятные тормоза.

      В общем, я считаю, что zfs нишевая тема и в общем случае, лучше использовать mdadm.

      • В Proxmox для оценки производительности есть специальная команда - pveperf. Если параметр FSYNC\SECOND имеет значение меньше 200 - на лицо будут фризы и непонятные тормоза. В документации на Proxmox все описано. Проблема решается установкой SSD диска под логи zfs.

        • Да, я знаю про этот мониторинг. Об этом вот здесь отдельно рассказано - https://sevo44.ru/zfs-monitoring-v-zabbix/

          • pveperf - это не про мониторинг. Еще раз - это программа оценки производительности машины на которой установлен Proxmox. Вне зависимости от типа файловой системы. С NVMe или SSD проблем обычно нет. Но в случае установки Proxmox на zfs на обычные, даже быстрые HDD, очень часто производительность I/O падает катастрофически. Чтобы исправить ситуацию необходимо перенести логи zfs на SSD. Диска на 64Gb вполне достаточно.

  87. Ротацию бекапов с давних времен можно настроить через web- интерфейс. Datacenter -> Storage -> выбираем место хранения - > Edit -> Max Backups. Ставим, к примеру, 30 и все!

  88. А почему не ZFS? Там и рейд из коробки и не надо столько танцев с бубном для настройки mdadm. Это нисколько не критика. Интересна ваша аргументация в пользу вашего решения. Заранее спасибо.

    • Отвечаю как есть. У меня нет опыта работы с zfs. Плюс, я не хочу тратить память сервера на файловую систему. Вариант с mdadm мне не кажется сложным. Это дефолтный рейд в линуксе с незапамятных времен. Он работает надежно и предсказуемо. Его не надо настраивать и искать какие-то оптимальные параметры. Поставил и забыл - работает на уровне возможностей жестких дисков. Мне для прода такой вариант подходит. Я его постоянно использую, он мне понятен, там нет подводных камней. С zfs я видел кучу статей с оптимизацией, подбором параметров, исправлением ошибок и т.д. Мне все это не нужно.

    • Николай

      Я года три назад попытался использовать ZFS для гипервизора Proxmox и гостевых виртуальных машин. Благо, инсталлятор Proxmox сам предлагает использовать ZFS и сам находит диски. В итоге, переустанавливал потом Proxmox на другой раздел FS и переносил виртуальные машины. Проблема всплыла при создании снапшотов (снимков) виртуальных машин. Нерегулярно, примерно 1 раз из 5 создание снимка завершалось ошибкой, при этом в процессе создания снимка отваливался ZFS-раздел, на котором размещались диски виртуальных машин, и все виртуальные машины в связи с отсутствием виртуальных дисков одновременно останавливались.

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

    Я сколкнулся с такой же проблемой. Из теста, я понял, что просто диск маленький. На корневом разделе стоит система, туда пиштся образ, но еще фишка такая, что при загрузке образа на локальные хранилища, он сначала пишется кешем в корневой раздел и поэтому нужно удвоенное пространство. У меня тоже было 20 Гб и образ 3.5 Гб забивал диск при загрузке, потом ошибка и удалялся.

    • Хм, надо будет проверить. Я обычно корневые разделы делаю достаточного размера. Вряд ли дело было в этом. Я давно не проверял, так как загружаю образы через wget в консоли сразу в хранилище.

  90. Алексей

    Сейчас стоит версия 4.4. Появилась надпись, что прекращена поддержка. Реально обновить до 5.3 или легче все снести и установить 5.3? Если все ставить заново, виртуальные машины, сохраненные в 4.4 восстановятся в 5.3?

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

      В любом случае, prod сервер я бы не стал наобум обновлять со старой версии на новую. Шанс, что не заведется после обновления, не нулевой.

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

  91. Александр

    А установить proxmox сразу без debian возможно? или обязательно ос иметь?

    • Можно. Установка на Debian затеяна для использования рейда mdadm. Установщик proxmox не позволяет установить систему на mdadm. Он ставит либо на одиночные диски, либо на zfs.

  92. "А в KVM без проблем получилось пробросить USB в виртуалку и воткнуть туда HASP ключ от 1С"
    Подскажите, а есть шанс увеличить количество "прокинутых" usb ? Оказалось из можно только usb0-usb4 подключить к 1 VM
    А франчам 1С надо штук 18 - все чуть разные

    На железе (2CPU 64GB RAM) WinServ2016 работает нестабильно, повисает постоянно (убираю 2*4Гб планки - полет нормальный) - пришлось на железо Proxmox, а под ним уже WinServ с ресурсами по максимуму - вроде стабильно. Но вот с количеством usb косяк... и главное нигде не встречал упоминания про ограничение количества

  93. Большое СПАСИБО и РЕСПЕКТ автору за хороший материал, изложенный в простой и доступной для понимания форме!
    Прошу автора немного дополнить текст данной статьи, т.к. для отключения надоедливого окошка при входе в последних версиях (начиная с 5.1) будет совсем другая команда:
    # sed -i "s/getNoSubKeyHtml:/getNoSubKeyHtml_:/" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

    После чего нужно очистить куки в браузере и перезапустить его! Далее нужно перелогиниться.
    И сообщение уже не будет Вас беспокоить :)

    • Спасибо за информацию, планирую новую статью после выхода debian10, так что тут уже не буду ничего менять. Тут и сама версия proxmox уже устарела. Надо новый тестовый стенд поднимать, чтобы статью обновлять. Это хлопотно делать часто. Я обычно жду новых версия ОС и тогда пишу новую статью.

  94. Dmitry Nadein

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

    Для ветки proxmox 5.х и debian 9.6.x

    /etc/hosts надо привести к виду:

    127.0.0.1 localhost.localdomain localhost
    "IP" "hostname".local "hostname" pvelocalhost

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

    Раздел с точкой монтирования /boot строго болле 100mb имперически выяснилось, что 500mb с большим запасом.

    Автору в любом случае низкий поклон и спасибо за проделанную работу. Статьи для народа а не пафосный хабр однако :)

  95. LESHIY_ODESSA

    Так как в гугле эта инструкция на первых местах, позволю себе добавить как сделать всё тоже самое, но для дисков более 2ТБ (GPT).

    Для этого при разметке диска понадобится создать раздел(ы) biosgrub — 1MB.
    https://i.imgur.com/dgfH4nW.jpg
    И только уже после них разделы для /boot и root /
    Само собою biosgrub в raid раздел не добавляется.

    Вот общая картинка — https://i.imgur.com/OBNVyLc.jpg

    Если автор статьи посчитает нужным, то пусть вставить данную инструкцию в свою (и debian 9 тоже), чтобы люди не мучались. Гугл приводит сюда и в принципе больше никуда.

    Так же мне показалось, что при установке Proxmox он ставить свой GRUB. Поэтому копирование GRUB на второй диск я бы начал после его установки. А то непонятно, что получится когда GRUB DEBIAN в двух разделах, а потом накатывается GRUB2 от Promox. Устанавливается ли он на второй диск???

    • LESHIY_ODESSA

      На вором скриншоте ошибка. Внимательный читатель заметит, что на втором диске sdb раздел под biosgrub (#1) не определен как biosgrub. ЭТО ОШИБКА.

  96. Евгений

    Дебиан 9.4. На чистую систему ставил с raid1
    Проблема такая. Все поставилось, но при перезагрузке загружается дебиан.
    root@srv /etc/apt # apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    ntp is already the newest version (1:4.2.8p10+dfsg-3+deb9u2).
    open-iscsi is already the newest version (2.0.874-3~deb9u1).
    ssh is already the newest version (1:7.4p1-10+deb9u3).
    postfix is already the newest version (3.1.8-0+deb9u1).
    systemd-sysv is already the newest version (232-25+deb9u3).
    proxmox-ve is already the newest version (5.1-42).
    ksm-control-daemon is already the newest version (1.2-2).
    The following package was automatically installed and is no longer required:
    libpng12-0
    Use 'apt autoremove' to remove it.
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

  97. Добрый день.
    Все сделал как описано в Routed режим сети. Сетевая одна. Шлюз прекрасно работает. А как теперь подключиться к proxmox если его iP занят шлюзом?
    Спасибо.

    • На шлюзе нужно делать проброс портов на сам proxmox, если нужен доступ из вне. Гипервизор должен иметь какой-то локальный адрес.

      • Изменить на стройки eth0 на локальные?

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

  98. Виталий

    Подскажите, может есть конфиг, как сделать мост на проксмоксе между сетевыми картами двух виртуальных машин, спасибо. Такое вообще возможно?

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

      • Виталий

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

  99. А если создать в начале сразу 3 раздела с редом, и не оставлять свободного места, чтото поменяется в дальнейшем при установке?

  100. Алексей

    После установки на чистый debian 810 jessie minimal 64
    apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv
    и перезагрузки похоже не стартует новое ядро, не запускается proxmox, окно приветствия такое же как и раньше. в чем проблема ?

  101. Аноним

    ДОшел до установки
    apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv

    ответ:
    Пакеты, имеющие неудовлетворённые зависимости:
    proxmox-ve : Зависит: pve-manager но он не будет установлен
    Зависит: qemu-server но он не будет установлен
    E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

    Как исправить? Спасибо.

  102. Доброго времени суток, люди добрые подскажите пожалуйста, на proxmox (ставили ее давно) висит win srv 08, и последнее время начались жуткие лаги на серваке (вин срв 8), и отвалился RPD, через вебку вм нельзя отключить или отправить в ребут, консоль тож выдает ошибку, даже ребутнуть не могу, приходится питание отключать. Как залезть на сервак?

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

  103. В статье ошибок много, а так ничо, сгодится.

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

  104. Спасибо за отклик!

    >>Только VDS это уже виртуальная машина.

    Имелся ввиду HP Proliant сервер отсюда http://zomro.com/dedicated.html

    с Intel E3-1240v3 32 GB RAM.

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

  105. Т.е. интерфейс "железного" сервера и интерфейс ВМ-шлюза мы объединяем в мост.
    Это первое.

    Второе — на один из мостов внутри ВМ-шлюза мы прописываем параметры того интерфейса, на который приходит Интернет на "железном" сервере. Второй же мост внутри ВМ-шлюза смотрит в локальную сеть виртуальных машин.

    Я правильно понял или что-то упустил? Имеется ввиду случай с арендованным VDS у которого 1 IP на интерфейсе смотрит в Мир.

    • Вроде все правильно. Готового конфига у меня нет. Да он вряд ли поможет. В таких вещах нужно самому разобраться, чтобы настроить. Много нюансов может быть.

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

  106. Хотя думаю, что разберусь.
    Сижу вникаю, отвечать необязательно :-)

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

    Добрый день!

    Можете поделиться конфигом ВМ-шлюза для случая выше?

    На почту Twissell@fex.net

    Заранее спасибо!

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

    устанавливаю на debian9.1. Установил с графикой.
    сделал полное обновление.
    добавил репы и ключи.
    единственный нюанс - на сетевые интерфейсы поданы vLAN

    дошел до

    apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv

    получаю ошибки

    Пакеты, имеющие неудовлетворённые зависимости:
    proxmox-ve : Зависит: pve-manager но он не будет установлен
    Зависит: qemu-server но он не будет установлен
    Зависит: pve-qemu-kvm но он не будет установлен
    Зависит: spiceterm но он не будет установлен
    E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

    видел что надо править файл etc/hosts
    правил как по мануалу один в один
    ошибка остается.

  109. Добрый день. Возникла ситуация, когда нужно перенести(экспортировать) виртуальную машину из под windows server 2012(hyper-v) в centos(kvm proxmox). Это вообще возможно что пройдёт отлично и без проблем? Экспортирую linux'овую виртуалку с большим количеством надстроек и данных.

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

  110. Максим

    Есть выделенный сервер, на него установлен Proxmox. Свой статик IP.
    На нём крутится несколько виртуалок с IP из совершенно разных сетей с маской 32. Эти сети с ip Proxmox не пересекаются.
    В качестве шлюза для виртуалок указывается шлюз для самого Proxmox. Винда ругается на то, что шлюз принадлежит другой сети, но сеть работает, инет есть. Появилась задача поднять виртуалкой микротик для организации туннелей, дабы не гонять трафик между офисом и сервером в открытом виде. И вот на микротике при такой схеме инет не взлетает никак.
    Для примера
    IP Proxmox 154.56.67.43/24
    GW Proxmox 154.56.67.254

    IP Mikrorik 217.12.13.78
    GW Mikrotik 154.56.67.254

    Ещё раз повторюсь, что при аналогичной настройке винда ругается, но работает. На Mikrotik дальше 154.56.67.254 ничего не пингуется и не трассируется. Все виртуалки включены в vmbr0 на Proxmox, на котором висит внешний IP.
    В чём может быть проблема?

  111. А есть инструкция как установить proxmox на mdadm+LVM, что бы можно было использовать снапшоты?

    • Использование lvm для дисков виртуальных машин никак не связано с процессом установки самого proxmox. Установив по этой статье, без проблем можно создать хранилище виртуальных машин на lvm томе и пользоваться снапшотами.

      • Это понятно, просто как накатить LVM, я так сказать только начинаю этот путь))

  112. Леонид

    Лечение описанной проблемы:
    https://forum.proxmox.com/threads/solved-pve-4-0-dns-settings-disapearing.24007/

    # apt-get remove rdnssd resolvconf network-manager
    # echo "nameserver 8.8.4.4" > /etc/resolv.conf

    или
    # nano /etc/resolv.conf
    nameserver 8.8.4.4
    Сохранить.

  113. Леонид

    Замечательная статья, но после установки
    Но на хосте не видит dns
    # echo "nameserver 8.8.4.4" > /etc/resolv.conf
    или
    # nano /etc/resolv.conf
    nameserver 8.8.4.4
    работает
    только до перезагрузки
    Как все таки настроить?

  114. Леонид

    Скажите pls в promox в контейнер lxc hasp пробрасывается?

  115. Алексей

    >> Последнее время стараюсь под шлюз использовать Mikrotik там, где это возможно и оправданно.
    Используете RouterOS или Cloud Hosted Router (CHR)? Для использования вне RouterBOARD ос от Mikrotik вроде как требуют лицензии. Интересно какой лицензии хватает для такого шлюза.
    Спасибо.

    • Я железные решения использую. Имел ввиду именно это. Отдельно на виртуалках не пробовал использовать RouterOS.

  116. Все сделал по статье, замечательно написано, спасибо!
    Но столкнулся с проблемой ЖЕСТОЧАЙШИХ тормозов гостевой машины с Windows 2016 Server при работе с жесткими дисками!
    У меня одного такая проблема или это Proxmox так с дисками работает?

    • Николай

      Антологичная проблема. Если запустить 2 vm начинаются дичайшие тормоза. 2 машина запускается час. НА SSD.
      Кто нибудь решил эту проблему ? Машины ставились по данной статье : https://forum.proxmox.com/threads/install-windows-2016-server-on-proxmox-ve-video-tutorial.31344/

      • Странно, что возникают такие проблемы с Winsrv2016. Конкретно на proxmox я его не ставил, а вот на обычном kvm практически с самого выхода системы крутятся пару серверов. Каких-то особых тормозов там не увидел.

        • Николай

          Пока что вопрос снят. Система перезапустилась стала вести себя стабильно. Что было непонятно. Пока переставлю гипервизор и буду наблюдать .

  117. Спасибо за быстрый ответ! А если в теории будет 2 интерфейса на физической машине, с двумя внешними IP адресами. Тогда один можно будет оставить для доступа к гипервизору, а второй привязать к ВМ с nginx и настроить проксирование. В этом случаи шлюз использовать не нужно?

    • В этом случае можно обойтись без шлюза. Один внешний ip будет для управления гипервизором, второй ip прокинуть в виртуалку с nginx. Все виртуальные машины будут объединены в единую локальную сеть в виде виртуальной сети гипервизора. Но нужно будет на самом proxmox настраивать NAT, чтобы виртульные машины, которые будут без внешнего ip имели доступ в интернет, например, для установки и обновления пакетов.

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

  118. Здравствуйте не подскажете, как можно реализовать следующую схему:
    Есть выделенный сервер с одним сетевым интерфейсом и выделенным IP адресом.
    Нужно под ProxMox поднять несколько виртуальных машин на которых должны работать веб-сервисы под nginx на разных доменных именах + к самому web интерфейсу proxmox должен быть доступ из вне.

    Возможно ли выделить одну из виртуальных машин с nginx во внешнюю сеть и затем настроить проксирование? Удачный ли это вариант или есть решение проще?

    Заранее спасибо!

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

      • Да, шлюзовая виртуалка решает в таком случае.
        В качестве шлюза что кому привычнее, но по опыту очень удобно сделать Микротик, т.е. виртуалку с RouterOS.
        У нас есть реализованные много схем с этим. Например, два физических сервера с гипервизорами. На каждом трафик завернут через виртуальный микротик. А между микротиками тунель построен.
        Так виртуалки между физическими серверами ходят по внутренней локалке.

  119. Подскажите где нужно прописать репозиторий с turnkey шаблонами для контейнеров?

  120. Я все хотел спросить, вот вы добавили раздел LVM, но как вы будете снапшоты делать у виртуальных машин? Ведь на LVM только RAW контейнеры создаются, а с них снапшоты делать нельзя

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

      • Андрей

        Если виртуалки создаются поверх LVM то снапшоты из панели управления прокса не работают.

  121. Для всех. Рекомендую заменить gzip на https://memo-linux.com/proxmox-booster-vzdump-avec-pigz/
    Он многопоточен в отличие от gzip.

  122. Доброе время суток.
    Образумились, смотрю, в плане использования KVM. А то все xen да xen :)
    Только велосипедить не надо. Не зря его разрабы добавили возможность использовать zfs из коробки. А это и snapshot-ы мгновенные и copy-on-write.
    Поднимайте Proxmox на zfs software raid. И лучше на 4-ех дисках (zfs raid 10).

    • Какой уж тут велосипед. Mdadm проверенный временем и практически незаменимый софтовый рейд на линуксе. Мне искренне не понятно, почему разработчики proxmox или xen не дают возможности штатно установить на него систему. Приходится потом после установки изворачиваться.

  123. Почему-то при создании VM файл образа создается не в LVM разделе а в Locla на 50GB который. И не дает нигде выбрать.

  124. Что бы сконвертировать файл esxi (vmdk) в формат kvm. Может не так надо?

  125. Коллеги, помогите перенести данные с ESXI на RroxMox. Последний установлен. Подключаю 1 из дисков аппаратного Raid 1 (на нем работал esxi) к системе. Вижу его как /dev/sda . Делаю:
    #mount /dev/sda /mnt/
    mount: unknown filesystem type 'isw_raid_member'
    #blkid
    /dev/sda: TYPE="isw_raid_member"
    Т.е. Intel Software Raid. Как достучаться до ФС на этом диске что бы перенести с него виртуальные машины?

    • А зачем подключать диск от ESXI к proxmox? Какой ожидается результат? Необходимо использовать средства экспорта-импорта виртуальных машин в гипервизорах.

  126. Николай

    После удаление ноды не могу удалить папку удалённой ноды
    root@pve:/etc/pve/nodes# rm -rf pve2
    rm: cannot remove ‘pve2/lrm_status’: Permission denied
    rm: cannot remove ‘pve2/openvz’: Permission denied
    rm: cannot remove ‘pve2/pve-ssl.pem’: Permission denied
    rm: cannot remove ‘pve2/qemu-server’: Permission denied
    rm: cannot remove ‘pve2/lxc’: Permission denied
    rm: cannot remove ‘pve2/priv’: Permission denied
    Не подскажете причину?

  127. Николай

    Теперь убираем окно с предупреждением:
    # sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/pve-manager/ext6/pvemanagerlib.js
    При входе больше не будет выскакивать безполезное предупреждение.
    Не проходит команда. Прошёлся по пути /usr/share/pve-manager/ext6/pvemanagerlib.js - папки ext6 там просто нет

    • В последней версии видимо исправили. Попробуй эту команду:
      sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/pve-manager/js/pvemanagerlib.js

      • Николай

        Тоже не проходит. В папке js есть файл pvemanagerlib.js, но думаю это другой. В его тексте нет ничего похожего, что всплывает при входе в Proxmox

    • Похоже, изменился путь в новой версии. Надо будет проверить и исправить статью.

  128. Мои диски 2 по 3Тб! Чего только с ними не делал - не помогало. Взял старенькие 2 по 500Гб - и все как по маслу! Получается Debian не поддерживает установку Grub на диски большых объемов?

  129. А кто-нибудь сталкивался с ситуацией когда при установке debian не ставится grub: unable to install grub in /dev/sda. Executing 'grub-install /dev/sda' failed. This is a gatal error.
    И все. В чем дело - непонятно и негде посмотреть

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

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

      Можно еще попробовать ключ --force использовать.

  130. Константин

    Здравствуйте! При добавлении диска как указано в пункте "Добавление и подключение диска" при старте и проверки # cat /proc/mdstat
    выдает что изменился порядок - рейд масcив стал sda+sdc, а новый винт получил имя sdb.
    Где и как нужно изменить чтобы не нарушался порядок? Заранее спасибо

    • С таким явлением я как-то сталкивался, но готового решения у меня нет. Я не знаю, отчего появляется такой глюк. Сам давно такого не видел, поэтому не могу ничего посоветовать. Тут надо разбираться, почему диски меняют имена. Это не нормальная ситуация. Возможно, выходом будет назначить дискам метки и работать уже с метками.

  131. Не получается установить proxmox. Дошел до этапа:
    apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv
    и получаю ошибку:
    proxmox-ve : Depends: pve-manager but it is not going to be installed
    Depends: qemu-server but it is not going to be installed
    Depends: pve-qemu-kvm but it is not going to be installed
    Depends: spiceterm but it is not going to be installed
    Если меняю репозитарии на другие, то вообще выдает:
    Unable to locate package proxmox-ve
    содержимое /etc/apt/sources.list:
    deb http://ftp.debian.org/debian jessie main contrib
    # PVE pve-no-subscription repository provided by proxmox.com,
    # NOT recommended for production use
    deb http://download.proxmox.com/debian jessie pve-no-subscription
    # security updates
    deb http://security.debian.org jessie/updates main contrib

    • Вообщем все проблемы при установке с такими засадами типа:
      E: unable to locate package proxmox-ve
      или
      Package ssh is not available, but is referred to by another package.
      Делаем так:
      В репозитарии (/etc/apt/sources.list) добавляем:
      deb http://mirror2.corbina.ru/debian/ jessie main
      deb-src http://mirror2.corbina.ru/debian/ jessie main
      deb http://mirror2.corbina.ru/debian/ jessie-updates main
      deb-src http://mirror2.corbina.ru/debian/ jessie-updates main
      Добавляем цифровую подпись proxmox репозитория:
      # wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -
      и обновляем порты и систему:
      # apt-get update && apt-get dist-upgrade
      # reboot
      Далее:
      # echo "deb http://download.proxmox.com/debian jessie pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
      снова:
      apt-get update && apt-get dist-upgrade
      И только после этого ставим proxmox:
      #apt-get install proxmox-ve ntp ssh postfix ksm-control-daemon open-iscsi systemd-sysv

  132. После обновлений, перестали автоматом стартовать виртуальные машины, где рыть? автозагрузка их стоит, если сервак ребутишь, то proxmox стартует, виртуалки нет(

  133. Николай

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

    Как для меня это тупик. Подскажите, хотя бы 1 альтернативный понятный способ, как это сделать?

    • Николай

      Нашёл самый простой способ: WinSCP

      • Сразу не заметил первый коммент. Я тоже чаще всего гружу через WinSCP. Удобно.

        • Сергей

          Да вы изысканные извращенцы господа!
          Что мешает вам зайти в каталог /var/lib/vz/template/iso/ и выполнить wget http(s)://link_to_image.com/blabla.iso
          Зачем вы выполняете лишние действия, скачивая локально образ, а лишь потом загружая на сервер?

          • Часто бывает, что локально они уже где-то лежат. Так что тут вопрос удобства. У меня чаще всего sftp подключения к серверам уже настроены для различных действий. Так что бывает проще зайти так, чем консоль открывать.

  134. выделить под /boot - 100 Мб на данный момент не достаточно, текущее ядро весит 47 Мб. при обновлении будут сложности.. после того как размер ядра перевалит за 50 Мб, новые ядра перестанут устанавливаться за нехваткой свободно места в разделе

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

  135. Автор - МОЛОДЕЦ!
    Но моя практика показала следующее:
    1. Обязательно настройте статический IP адрес через:
    # iface eth0 inet static
    # address 192.168.1.35
    # gateway 192.168.1.1
    # netmask 255.255.255.0
    иначе просто proxmox не установится!
    2. Только после закомментирования протокола IPv6 в файле и всех записей кроме
    # 192.168.1.113 proxmox.local proxmox
    в файле hosts, удалась установка proxmox
    3. В случае неоднократных фейлов при установке proxmox, boot раздел забивается и установить не представляется возможным, выход - или чистить boot раздел или (что проще) начать с 0.
    4. В моём случае, удалить предупреждение удалось не через
    # sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/pve-manager/ext6/pvemanagerlib.js
    а через
    # # sed -i.bak "s/data.status !== 'Active'/false/g" /usr/share/pve-manager/js/pvemanagerlib.js

  136. Здравствуйте! Возможно ли из одного веб-интерфейса управлять несколькими хостами proxmox ?Или же у каждого хоста свой веб-интерфейс ?

    • По-моему там можно подключить любой другой сервер. Но точно не могу сказать, не пробовал, а сейчас проверить негде.

      • А вы каким основным гипервизором пользуетесь ?

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

  137. Здравствуйте! А если я к компьютеру с установленным Proxmox добавлю пару hdd в зеркале, подключу как здесь написано LVM и отрежу на нем виртуальной машине диск для хранения данных, то, если я сниму один из hdd, то на нем будут не читаемые с другого компьютера данные? Я к тому, что если что-то случится с виртуальной машиной и она хранила на том разделе данные, то их уже не восстановить?

  138. Как корректно настроить сеть?

    У ноды сеть настроена так: http://polariton.ad-l.ink/private/6WjvwqfL2/ed4037ca651bcfdce3416a04d654e12c/...

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

    p.s. Настройки сети в ВМ выглядят так:

    http://meson.ad-l.ink/7jMpJT77N/thumb.png

    Увы, но в работе с сетью нет должного опыта.

    1) У нас нет DHCP, всё прописывается вручную. В «моём видении» сеть в вирутальных машинах должна иметь аналогичные настройки, как на этом скриншоте и прописываться так же вручную http://polariton.ad-l.ink/8S7vxTbts/thumb.png

    2) Судя по тому, что мне нужно, это должен быть Routed. Верно ли? Пример конфигруации нашёл тут https://serveradmin.ru/ustanovka-i-nastroyka-proxmox

  139. Андрей

    Здравствуйте!
    Есть физический интерфейс eth0 с адресом 192.168.1.10, создаю виртуальный интерфейс vmbr0 с адресом 192.168.1.11, в котором Bridge Ports указан eth0. После этого не пингуется ни 10 ни 11, сервер отваливается от сети. Если очиcтить BridgePorts или прописать второй физический интерфейс eth1, то все ок. Подскажите, пожалуйста, что здесь может быть не так?

    • Не знаю даже, вроде все верно. Где-то ошибка. Сделать бридж в линуксе очень просто, в инете куча примеров. Можно проверить на всякий случай.

      • Та же проблема, либо вообще не пингуется ничего и сеть просто лежит. Либо, если прописать оба интерфейса (eth0 и VMBR0), интернет на Debian работает, но не работает локалка, парадокс. Т.е. инет есть, трейсы, например, через роутер проходят, но ни сам роутер, ни компы в локалке не пингуются и, соответственно, не видят ProxMox

        • Что-то конкретное мне трудно подсказать, не видя всей картины. Но я просто скажу, что в данном случае настройка бриджа прямого отношения к proxmox не имеет. Нужно настроить стандартный bridge в debian. Можно использовать любой материал из интернета для этого. Проксмокс просто использует готовый системный бридж, если он уже есть.

          • Андрей

            В моем случае источником проблемы были кривые руки - в сети была машина, которой сто лет назад был назначен статический адрес =))
            Инструкция 100% рабочая.

  140. Добрый день!
    Подскажите, если домен не используется, он есть но для теста заводить нет желания.
    Файл /etc/host/ - выглядит следующим образом

    127.0.0.1 localhost
    192.168.1.110 kvm

    Получаю ошибки:
    Пакеты, имеющие неудовлетворённые зависимости:
    proxmox-ve : Зависит: pve-manager но он не будет установлен
    Зависит: qemu-server но он не будет установлен
    Зависит: pve-qemu-kvm но он не будет установлен
    Зависит: vncterm но он не будет установлен
    Зависит: spiceterm но он не будет установлен
    E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

    хост Ubuntu 16.04

    Вопросы, чтобы разъяснить для себя:

    1) локальный домен(тестовый) можно использовать, если есть работающий ? И можно ли вообще без домена ?
    2) В чем может быть ошибка ? Куда копать ?

    • О каком домене идет речь, я не совсем понимаю. Самому proxmox фиолетово, какой будет домен.
      Ошибки могут быть где угодно, надо смотреть логи, что конкретно и почему не запускается/устанавливается.

      • Преимущественно устанавливать на дистрибутив Debian, т.к proxmox на нём основан ?

    • Верно ли понятие, что proxmox работает на Debian ? Вся документация для debian.

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

  141. На счет ошибки при установке. nano /etc/hosts
    Было так:
    127.0.0.1 localhost
    127.0.1.1 proxmox

    Стало так:
    127.0.0.1 localhost
    192.168.100.101 proxmox

  142. 3. Что даёт поддержка аппаратного рейд контроллера?

    Судя по вики - mdadm proxmox не умеет http://pve.proxmox.com/wiki/Raid_controller.

    4. Как корректно добавить ещё одну ноду? Что для этого требуется?

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

    В документации предлагают добавить ноду в кластер (https://pve.proxmox.com/wiki/Proxmox_VE_4.x_Cluster) - отсюда вопрос: каковы перспективы кластера?

    • p.s. Вопрос под пунктом 2 остаётся актуальным:

      2. Есть ли смысл в enterprise репозитории?

      Вопрос основывается на ошибке во время выполнения apt-get update && apt-get -y dist-upgrade:

      W: Failed to fetch https://enterprise.proxmox.com/debian/dists/jessie/pve-enterprise/binary-amd6… HttpError401

      E: Some index files failed to download. They have been ignored, or old ones used instead.

    • Как это не умеет, если у меня в статье наглядно показано, как установить proxmox на массив mdadm?

      • "Завести", "заведётся", но не просто же так указана информация о том, что поддерживается только hw raid.
        Вероятно smart просмотреть не получится или ещё что-то.

    • > Как корректно добавить ещё одну ноду? Что для этого требуется?
      По пункту 4 есть некоторые разъяснения, https://www.youtube.com/watch?v=tTy9axM1jT0.

      А теперь дополнительный вопрос - на каждой физической машине нужен proxmox?

      • Перефразирую вопрос...

        > Как корректно добавить ещё одну ноду? Что для этого требуется?

        По пункту 4 есть некоторые разъяснения, https://www.youtube.com/watch?v=tTy9axM1jT0.

        А теперь дополнительный вопрос - раз на каждой физической машине нужен proxmox, то есть ли минимальное решение (чтобы не тащить кучу мусора в подарок)?

  143. Некоторые вопросы...
    Хост: debian 8.6, proxmox 4.4.

    1) LVM по инструкции не настроено. Вместо LVM всё в одном каталоге. Не вижу смысла в LVM на хостовой системе, когда ноды планируются удалённые (располагаться на другой машине, на которой proxmox будет отсутствовать).

    2) Postfix не установлен, тк планируется отдельная виртуалка под postfix, который будет гонять почту между всеми сервисами.

    [quote]1. Как лечить?[/quote]

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

    update failed - see /var/log/pveam.log for details

    > Лог:

    Jan 14 00:43:42 start download [url]https://releases.turnkeylinux.org/pve/aplinfo.dat.asc[/url]

    Jan 14 00:43:42 download failed: 500 SSL_ca_file /etc/ssl/certs/ca-certificates.crt does not exist

    Jan 14 00:43:42 update failed - no signature file '/var/lib/pve-manager/apl-info/pveam-releases.turnkeylinux.org.tmp.21775.asc'

    > Выхлоп с pveversion: pve-manager/4.4-5/c43015a5 (running kernel: 4.4.35-2-pve)

    > Скриншот: [url]http://polariton.ad-l.ink/8NHSqncHN/image.png[/url]

    С сервисом в целом понятно, фиксится ребутом.

    > Как выполнялась установка (по инструкции [url]https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_Jessie):[/url]

    в hosts 192.168.1.2 TestDay pvelocalhost (айпи, имя сервера, что-то проксовское - домен во время установки системы не был указан).

    echo «deb [url]http://download.proxmox.com/debian[/url] jessie pve-no-subscription» > /etc/apt/sources.list.d/pve-install-repo.list

    wget -O- "[url]http://download.proxmox.com/debian/key.asc[/url]" | apt-key add -

    apt-get update && apt-get -y dist-upgrade

    apt-get -y install proxmox-ve ksm-control-daemon open-iscsi systemd-sysv

    apt-get remove os-prober

    reboot

    apt-get -y remove linux-image-amd64 linux-image-3.16.0-4-amd64 linux-base

    update-grub

    [quote]2. Есть ли смысл в enterprise репозитории?[/quote]

    Вопрос основывается на ошибке во время выполнения apt-get update && apt-get -y dist-upgrade:

    W: Failed to fetch [url]https://enterprise.proxmox.com/debian/dists/jessie/pve-enterprise/binary-amd6...[/url] HttpError401

    E: Some index files failed to download. They have been ignored, or old ones used instead.

  144. Андрей

    Здравствуйте!
    Попробовал все это провернуть на машине с серверной материнкой с UEFI, с той разницей, что вместо раздела /boot - EFI. Установка проходит успешно, но после перезагрузки или нет устройства для загрузки или grub выдает ошибку "disk 'lvmid/тут какой-то идентификатор' not found".
    Вы бы не могли подсказать особенности установки на UEFI? Такое впечатление, что в загрузчике неправильно прописывается идентификатор раздела для загрузки. Уже третий вечер бьюсь, но найти решение ума не хватает.

    • Андрей

      P.S. При отключенном UEFI, то есть в LEGACY, по описанному выше сценарию установка прекращается ошибкой при установке GRUB в MBR, пишет, что unable to install.

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

        • АНдрей

          Разметил оба диска в GPT. Если устанавливать систему на один диск без рэйда, то все отлично. Разметка: 100 МБ fat32 с меткой boot esp и раздел ext4 /. В boot-меню в списке устройств появлется новый пункт UEFI:P0xxxxxx. Система загружается, все ок.
          Когда пробую собрать такую же схему с рэйдом, то есть первый md - 100 МБ uefi file system, второй md 50 ГБ с рут-разделом, то установка проходит без проблем, но после перезагрузки система не загружается. В итоге объединил в рэйд только рутовый раздел, а EFI оставил самостоятельными разделами на каждом из дисков. В таком варианте система встала и загружается. Возможен ли такой вариант? Только после попытки установить GRUB на оба диска система перестала грузиться =)

          • АНдрей

            P.S. Нашел описание какую-надо устроить свистопляску, чтобы в рейде прописать загрузочный раздел под UEFI и решил оставить эту затею пока не появится лишнее свободное время для экспериментов. Перебил диски в MBR и сделал как у Вас еаписано, только добавил swap для красоты.
            Спасибо! Материал отличный!

            • из 100 мб раздела не нужно делать md , и все будет хорошо!
              так должно быть:

              выбираем gpt
              создаем 1 мб пустой - не использовать
              создаем 100 мб - сис. раздел EFI
              остальное под рэйды / LVM

  145. Подскажите насчет момента лицензирования. У нас муниципальная больница и можем ли мы пользоваться данным гипервизором? Спасибо.

  146. Алексей

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

  147. Алексей

    Есть проблема.
    Установил все по этой статье.
    Если работать с сервером через ssh или физический на нем - переключение раскладки работает. Печатает и на русском и на англ.
    Но если я работаю через браузер (пробовал firefox, opera, ie), то при переключении раскладки текст вообще не печатается. Можете подсказать, в каком месте искать глюк?

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

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

  148. Отличное описание, большое спасибо.

  149. Аноним

    Годная статья!

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar