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

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

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

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Введение

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

Онлайн курс "DevOps практики и инструменты"

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, научиться непрерывной поставке ПО, мониторингу и логированию web приложений, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужны базовые знания по сетям и установке Linux на виртуалку. Обучение длится 5 месяцев, после чего успешные выпускники курса смогут пройти собеседования у партнеров. Проверьте себя на вступительном тесте и смотрите программу детальнее по .

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

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

Автор Zerox

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

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

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

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

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

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

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

  5. Андрей

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

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

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

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

  9. Василий

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

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

  11. Максим

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

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

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

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

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

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

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

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

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

  15. Евгений

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

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

  16. Эдуард

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

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

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

  18. Станислав

    Добрый день!

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

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

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

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

  20. Александр

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

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

      • Александр

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

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

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

  23. Дмитрий

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

  24. Евгений

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

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

            • Евгений

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

  25. Александр

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

    • Аноним

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

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

  26. Дмитрий

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

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

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

  28. LESHIY_ODESSA

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

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

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

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

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

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

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

  31. Алексей

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

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

  32. Андрей

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

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

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

      • LESHIY_ODESSA

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

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

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

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

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

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

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

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

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

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

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

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

  36. Андрей

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

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

  38. Аноним

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

  39. Аноним

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

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

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

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

  41. Сергей

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

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

  43. Александр

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

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

      • Александр

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

      • Александр

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

      • Александр

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

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

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

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

  46. Евгений

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

  47. Виктор

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

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

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

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

  48. Александр

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

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

  49. Николай

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

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

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

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

  52. Андрей

    Доброго времени суток. Всю голову сломал, не могу понять - где мой косяк.
    Хецнер, Дебиан 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 ...

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

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

  54. Юзверь

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

  55. Николай