Серия «Кудахтеры: Proxmox GmbH»

19

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть пятая из многих

Для лиги лени: общеизвестное, душное, НЕ ПРОКАТИЛО.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.

Еще раз поздравляю всех с выходом Proxmox 9.0. Даже статья вышла – ждите сервис пака Upgrade from 8 to 9, читайте Known Issues & Breaking Changes и Known Upgrade Issues.

Скажу сразу.
Я доигрался, пришлось переставлять систему.
5.2 Гб до неправильного обновления и всяких непотребных игр превратились в 8.1 Гб.
Дельта обновления еще 5.3 Гб.
На выходе:
pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)

Что в наличии?

Было: pveversion: pve-manager/8.4.0/ec58e45e1bcdf2ac (running kernel: 6.8.12-9-pve)
стало: pve-manager/8.4.9/649acf70aab54798 (running kernel: 6.8.12-9-pve)
и, после удачного обновления, pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)

Он сказал поехали (и запил водой)
Выполняем по инструкции: pve8to9. Кстати, в pve-manager/8.4.0/ этого скрипта не было.
Получаем:
= SUMMARY =
TOTAL:  42
PASSED:  33
SKIPPED:  6
WARNINGS: 3
FAILURES: 0

Что там?
WARN: updates for the following packages are available: pve-cluster

Что я могу сказать, кроме того что удивительное рядом?
apt update
apt list --upgradable –a
pve-cluster/stable 8.1.2 amd64 [upgradable from: 8.1.0]
pve-cluster/stable,now 8.1.0 amd64 [installed,upgradable to: 8.1.2]

Что происходит, и почему вчера не обновился pve cluster, при отсутствии кластера?

Примечание. После того, как я уронил систему, переставил с ноля, и обновился еще раз, проблема ушла, обновился и стал предлагать обновиться:
pve-cluster/stable 9.0.6 amd64 [upgradable from: 8.1.2]

Следующее предупреждение: WARN: systemd-boot meta-package installed but the system does not seem to use it for booting. This can cause problems on upgrades of other boot-related packages . Consider removing 'systemd-boot'
Сомнительно, но окей.

Третье предупреждение: WARN: The matching CPU microcode package 'amd64-microcode' could not be found! Consider installing it to receive the latest security and bug fixes for your CPU.

и не предупреждение, а напоминание:
SKIP: NOTE: Expensive checks, like CT cgroupv2 compat, not performed  without '-- full' parameter

А ?? Почему свежий инсталлятор PVE сам не поставил amd64-microcode, если считает их необходимым?

Понятно, что статья:
New AMD Zen 6 Linux Patches Posted - Confirming Up To 16 Memory Channels со ссылкой на вчерашний патч вышла не просто так, но все же.
Примечание. Это не связанные вещи. Обновление вышло для ядра для 2.5 новых фич.

Что там дальше по инструкции?
меняем репозитории  локально
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
и, поскольку у меня сделан Nexus для проксирования репозиториев, не забываем добавить там новые данные
В инструкции, конечно, про это ни слова.

Дальше все по инструкции - apt update, получаем (со второй попытки) 581 packages can be upgraded.
apt list --upgradable | grep 8.4
получаем (со второй попытки(
proxmox-ve/stable 9.0.0 all [upgradable from: 8.4.0]
pve-manager/stable 9.0.3 all [upgradable from: 8.4.9]
qemu-server/stable 9.0.16 amd64 [upgradable from: 8.4.1]

Вот что странно. Я Ceph не использую, не люблю, и репозиторий с ним отключил.
но не тут то было – и в инструкции написано, что
Note: At this point a hyper-converged Ceph cluster installed directly in Proxmox VE must run Ceph 19.2 Squid, otherwise you need to upgrade Ceph first before upgrading to Proxmox VE 9 on Debian 13 Trixie!

Но в выборке apt list --upgradable | grep ceph есть
ceph-common/stable 19.2.3-pve1 amd64 [upgradable from: 17.2.8-pve2]
ceph-fuse/stable 19.2.3-pve1 amd64 [upgradable from: 17.2.8-pve2]
Пропустим и идем дальше:
apt dist-upgrade
The following NEW packages will be installed:
proxmox-kernel-6.14
proxmox-kernel-6.14.8-2-pve-signed
After this operation, 637 MB of additional disk space will be used.

За пять минут первая попытка обновления свалилось в ошибки:
Job for pvedaemon.service failed.
See "systemctl status pvedaemon.service" and "journalctl -xeu pvedaemon.service" for details.

Job for pvestatd.service failed.
See "systemctl status pvestatd.service" and "journalctl -xeu pvestatd.service" for details.

Job for pveproxy.service failed.
See "systemctl status pveproxy.service" and "journalctl -xeu pveproxy.service" for details.

Job for pvescheduler.service failed.
See "systemctl status pvescheduler.service" and "journalctl -xeu pvescheduler.service" for details.

Пустая, неделю назад установленная, ничем не нагруженная нода не может обновиться на ровном месте.
НУ ОТЛИЧНО.
В журналах:
proxmox pvedaemon[]: Compilation failed in require at /usr/share/perl5/PVE/API2/Cluster.pm line 14.

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

Ребутнулся, и удивился еще больше.
Было pve-manager/8.4.9/() (running kernel: 6.8.12-9-pve)
Стало pve-manager/8.4.9/() (running kernel: 6.14.8-2-pve)

Ядро обновилось. PVE нет.
pve8to9 выдало ошибки:
Attempt to reload PVE/HA/Config.pm aborted.
Compilation failed in require at /usr/share/perl5/PVE/HA/Env/PVE2.pm line 20.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/HA/Env/PVE2.pm line 20.
Compilation failed in require at /usr/share/perl5/PVE/API2/LXC/Status.pm line 24.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/API2/LXC/Status.pm line 29.
Compilation failed in require at /usr/share/perl5/PVE/API2/LXC.pm line 28.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/API2/LXC.pm line 28.
Compilation failed in require at /usr/share/perl5/PVE/CLI/pve8to9.pm line 10.
BEGIN failed--compilation aborted at /usr/share/perl5/PVE/CLI/pve8to9.pm line 10.
Compilation failed in require at /usr/bin/pve8to9 line 6.
BEGIN failed--compilation aborted at /usr/bin/pve8to9 line 6.

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

Почему так?

Может потому, что я прописал только:
deb http://my.local.proxy:8081/repository/Debian3/ trixie pve-no-subscription

Но не прописал Nexus прокси для:
trixie main contrib
trixie-updates main contrib
trixie-security main contrib

Следите за тем, что у вас в проксях и в /etc/apt/sources.list
Вопрос «зачем так сделано» остается открыт. Странный подход, что обновления не идут из одного источника, и есть риск получить проблем с зависимостями, когда Debian обновится, а Proxmox еще нет.

Итого

Доигрался я на скрипке. Необходимо переставить 8.4 еще раз, проверить настройки в /etc/apt/sources.list , перепроверить Nexus, и сделать обновление еще раз.

Потому что по умолчанию в /etc/apt/sources.list стоит то, что выбрано при установке. Я выбрал US – получил
deb http://ftp.us.debian.org/debian bookworm main contrib
deb http://ftp.us.debian.org/debian bookworm-updates main contrib
# security updates
deb http://security.debian.org bookworm-security main contrib

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

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

Что дальше писать, я еще не решил.
Или про Proxmox VE API , или воспользоваться полезным советом из комментариев и обновить Ansible нормально.

@editors, как сюда тег Proxmox добавить? не идет у меня этот каменный цветок.

Показать полностью
22

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть седьмая из многих

Для лиги лени: общеизвестное и душное.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.
Часть 6. Возвращаемся к запуску Ansible

Разница концепций. Часть 7.1 Обновления компонентов и система информирования.

13 августа 2025 года вышло обновление Proxmox до 9.0.5
было  pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)
стало pve-manager/9.0.5/9c5600b249dbfd2f (running kernel: 6.14.8-2-pve)

Но искать «что там было обновлено», это тот еще процесс.
То есть:
Вот большая статья: вышла версия 9, Proxmox Virtual Environment 9.0 with Debian 13 released
Вот Git с фиксами.

После обновления до 9.0.5, внезапно появился
/etc/apt/sources.list.d/pve-enterprise.sources
да и ладно

У Broadcom VMware все проще – вот патч (сейчас официально только по подписке), вот компоненты в нем.
У Microsoft  все еще проще – вот MicrosoftUpdate Catalog. Если выходят бесплатные обновления (для 2012 и 2012R2 – только платные, нужна подписка Extended Security Updates (ESU) for Windows Server, для 2008 нужна подписка premium assurance. Но обновления выходят, например:
2025-08 Security Monthly Quality Rollup for Windows Server 2008 R2 for x64-based Systems (KB5063947)

Поэтому можно сходить на
http://download.proxmox.com/debian/pve/dists/bookworm/pve-no...
http://download.proxmox.com/debian/pve/dists/trixie/

Скачать там файл
http://download.proxmox.com/debian/pve/dists/trixie/pve-no-s...

И увидеть, цитата

Package: pve-manager
Maintainer: Proxmox Support Team support@proxmox.com
Installed-Size: 3573
Provides: vlan, vzdump
Depends: apt (>= 1.5~), ..
Recommends: proxmox-firewall, proxmox-offline-mirror-helper, pve-nvidia-vgpu-helper
Conflicts: vlan, vzdump
Breaks: libpve-network-perl (<< 0.5-1)
Replaces: vlan, vzdump
Filename: dists/trixie/pve-no-subscription/binary-amd64/pve-manager_9.0.5_all.deb
Size: 580388

Окей, а как-то поудобнее можно?

Конечно после обновления можно увидеть:
cat /var/log/apt/history.log
Но это после обновления.

Очень, очень не хватает решения типа Windows Server Update Services (WSUS), но для Linux и Proxmox. Foreman+Katello говорят «ок». RedHat Satellite ? SpaceWalk:Satellite ?

Разница концепций. Часть 7.2 Сети

В ESXi «из коробки» все просто. Есть стандартный свитч, vSphere Standard Switch, vSS. Он мало чего умеет «из коробки», но самое главное, что вы можете завести несколько коммутаторов, и распределять физические порты сетевых карт, и порты виртуальных сервисов – самого менеджмента, сервисов, итд, как вам нравится.
Вместе с некоторыми (их опять поменяли) лицензиями вы получали vSphere Distributed Switch (VDS), с дополнительными функциями.
Если хотите добавить в жизнь интима - Single Root I/O virtualization (SR-IOV).
Хотите чего-то большего – покупайте VMware NSX.
У Microsoft в чем-то схожий подход. Есть Hyper-V switch с массой настроек исключительно из powershell.
Хотите большего – добро пожаловать в увлекательный мир Network Controller Server Role.
Хотите того же самого, но иначе – вот вам Set up networking for Hyper-V hosts and clusters in the VMM fabric, вот вам Set up logical networks in the VMM fabric, и вперед.

У Proxmox все немного не так. То есть, так то так, архитектура та же, x86, но.
За уровень «стандартного коммутатора» отвечает стандартный функционал Linux. Проблема в том, что он (как, впрочем, и в Broadcom, и в Microsoft) читаемо и полноценно настраивается только из командной строки. Режима Switch Embedded Teaming (SET) в нем нет, есть active-active bond, но.
Red Hat пыталась сделать что-то такое же, и даже статья есть - 8.3. Comparison of Network Teaming to Bonding, но это Red Hat.
Чтобы в этом разбираться, все равно необходим  базовый уровень знания сети, в масштабе CCNA: Switching, Routing, and Wireless Essentials, он же CCNA Routing & Switching ICND1 100-105 Course. Иначе вопросов будет больше, чем ответов. У Broadcom есть best practice – собирайте actve-active, LACP не нужен. Если вы упрт нркмн, то вот вам beacon probe и shotgun mode, можете упртс. Если хотите совсем упртс, то вот вам air-gap storage fabric, только лучше бы вы так не делали.
У Microsoft есть best practice – просто ставьте SET, он сам разберется.
У proxmox, их-за наличия Bridge, который по сути L2 switch, и iptables, появляется L3 конфигурация с NAT, но планирование сети заставляет каждый раз думать «как лучше-то».

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

For the cluster network (Corosync) we recommend configuring it with multiple networks. Corosync does not need a bond for network redundancy as it can switch between networks by itself, if one becomes unusable. Some bond modes are known to be problematic for Corosync, see Corosync over Bonds.


Особенно мне понравилась строчка:
We recommend at least one dedicated physical NIC for the primary Corosync link

То есть, поскольку сетевые карты нынче идут, чаще всего, с двумя портами, то надо брать 2 карты по 2 порта, всего 4 порта, и один порт выделять под Corosync. Но если у меня конфигурация нормального человека, 2 порта по 25, это мне что, под кластер надо выделять целых 25G? А не жирновато?
При этом сценарии отказа описаны понятно и обоснованно, но как-то заставляют задуматься. Это же придется ставить на мониторинг не только состояние порта on\off\ CRC, но и, для оптики, уровень сигнала по SFP модулям с обеих сторон, RX power \ TX power.

Середины (типа vSphere Distributed Switch (VDS)) нет.
Зато есть SDN

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

К моему величайшему отвращению, Hyper-V Windows 11 'Default Switch' зачем-то снабжен никак нормально не настраиваемым DHCP сервером. В Server 2012\2016\2019\2022\2025 такого нет, если нет DHCP в сети, значит нет сети.

Конфигурация хоста Hyper-V:
Get-VMSwitch 'Default Switch' | fl – от этого виртуального свича все отключено.
Вот он мне и вредил, поскольку в нем и NAT и DHCP , и ничего в нем не настраивается, согласно Change Hyper-V (Default Switch) IP address range.

The Hyper-V Default Switch will randomly use one these IP address ranges based on the host system IP address:
Start IP: 192.168.0.0 – End IP: 192.168.255.255
Start IP: 172.17.0.0 – End IP: 172.31.255.255

Поэтому я новый виртуальный свитч и сделал, режим external. И все у него хорошо.
Конфигурация proxmox по умолчанию


auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 192.168.10.202/24
gateway 192.168.10.1
bridge-ports eth0
bridge-stp off
bridge-fd 0

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

auto lo
iface lo inet loopback
iface eno1 inet manual
iface eno2 inet manual

auto bond0

iface bond0 inet manual

bond-slaves eno1 eno2
bond-miimon 100
bond-mode active-backup
bond-xmit-hash-policy layer2+3

auto vmbr0

iface vmbr0 inet static
address  192.168.10.202/24
gateway  192.168.10.1
bridge-ports bond0
bridge-stp off
bridge-fd 0

Конфигурация с VLAN для рабочих сред описана в разделе Example: Use VLAN 5 for the Proxmox VE management IP with VLAN aware Linux bridge, конфигурация The next example is the same setup but a bond is used to make this network fail-safe.

Разница концепций. Часть 7.3 предисловие к теме «Дисковое пространство».

Чтобы понимать незначительные сложности, нужно немного отойти назад, в состояние «дисковых пространств» 15-20 лет назад, и огромный скачок для всего человечества за последние пять лет.

15 назад, в 2010 году, концепция дисковых пространств была достаточно проста.
Есть одиночные локальные диски, которые могут быть включены по IDE (уже крайне редко на тот момент), SATA, SCSI и SAS. Но интерфейс особого значения не имеет (то есть, еще как имеет, но это другая история), потому что глобально выбора конфигурации особо и нет.
Для домашней и офисной техники: 1 диск, без всяких массивов.
Для дисков с операционной системой: аппаратный RAID 1 (зеркало) из 2 дисков. Не надо забывать, что диски тогда были маленькими, как 72GB 2.5-inc SFF 3G Single Port SAS 10K, 146GB SCSI U320 или 146GB hot-plug Serial Attached SCSI (SAS).
Для дисков с данными для «быстрого» доступа: аппаратный RAID 10.
Для дисков с данными для «медленного» доступа: аппаратный RAID 5, если у вас диски меньше 1 терабайта, аппаратный RAID 6, если у вас диски больше 1 терабайта.
Потому что, запишите это уже большими буквами: RAID 5 на дисках бытового и начально-корпоративного сегмента, при размере одиночного диска больше 1 Тб, достаточно часто умирает при стандартном ребилде. Вероятности считайте сами.
Плюс локально включенные коробки с дисками.
И, для дисковых массивов, у вас есть FC 4g (c 2004), FC 8g (с 2008), и с 2007 года есть 10G Ethernet для iSCSI. 25G Ethernet появится только в 2018 году.
NFS поверх 1\10G, конечно, тоже уже есть. Apple File Service (AFS) еще не умер.
Современные технологии быстрого перестроения массивов уже почти есть в HPE Eva.
Еще есть  InfiniBand, но дорого.

Основная проблема – ребилд. Это долго, это дорого с точки зрения потери производительности, но это зачастую проще, чем переставлять ОС или поднимать данные из архивов. Поэтому везде RAID 1\10 и еще раз RAID. Альтернативы были, но все равно, RAID это было просто, понятно, наглядно, и не требует вмешательства администратора, особенно если есть запасной диск.

Сейчас все поменялось.
Окончательно ушли в историю диски на 15.000 и 10.000 оборотов, и та же судьба уже видна для дисков 7200 для массивов, и для дисков 5400 для ноутбуков. SSD с двумя оставшимися вариантами подключения, SAS и NVME, побеждают почти везде.
Появились технологии для гиперскейлеров, и не только – S2D, vSAN (StarWind дано был). И то, и другое, уже не redundant array of inexpensive disks, а Redundant Array of Independent Nodes (RAIN) .
Сети стали быстрее, диски быстрее, объемнее, и возникает другой вопрос – старые RAID контроллеры перестали справляться с производительностью новых дисков. Новые RAID контроллеры тоже не блещут при работе с NVME, но это уже другая история:
NVME Raid – We Need To Go Deeper, или что там на глубине. GPU over NVME, с водяным охлаждением

Проблема даже не в этом, а в том, что нет смысла держать разные диски на передней панели «под ОС и «под данные», с точки зрения работы, закупок, и в целом. Удобнее использовать один тип дисков, и никто не перепутает. В таком случае проще поставить или PCIe карту на 2 m.2 планки, или взять internal M.2 boot module или что-то типа Dell BOSS, собрать недоаппаратный или программный рейд на такой карте, и отдать остальные одинаковые диски, установленные в передние слоты, под данные, собрав тот или иной вид программного рейда.
НО.
Дальше начинаются «проблемы legacy 2.0».
В корпоративном варианте заказчику, за очень дорого, продадут и S2D и vSAN, со всеми их свистелками, типа быстрого перестроения при сбое, RAID 5+6, поддержке RDMA. Продадут со свичами Arista или Mellanox с их скоростями и cut-through (вместо Store-and-Forward), и lossless Ethernet, и так далее. Это все есть, это все работает, как и последние навороты в MPIO для IP в NVIDIA ConnectX-8 .
Это все есть, но это: 1) дорого 2) требует настройки 3)требует переписать драйвера 4)требует настроить сеть и следить за ней.
В то же время, существуют, как продукты, Ceph и drbd, то есть Linstor. И не только.
Они работают, но. Но настройка, скорость работы (задержки, и как следствие IOPS), проблемы связности, проблемы на ребилде, пожирание памяти как не в себя, и так далее.
В домашней лаборатории, где все работает, а отказ или split brain или остановка сервисов не важны – CEPH работает.
В масштабах VK – тоже работает, вопрос какой ценой.
Ceph вырос как проект 2007 года, времен медленных дисков небольшого объема, отсутствия на рынке «дешевого» варианта собрать хранилище на петабайт и больше, и даже работал, но в 2020 - 2021 году начал уходить с рынка. SUSE отказалась от развития, еще кто-то отказывался. FUJITSU Storage ETERNUS CD10000 S2 - The sale of this product was terminated in December 2019.
Причины понятны, сейчас петабайт хранения требует не двух стоек, а двух юнитов в одной стойке, а рынок опять меняется.
Поэтому Ceph для дома – пожалуйста, Ceph для VK облака или каких-то еще облаков – сколько угодно. Ceph для SMB или чуть выше – не знаю, зачем настолько жертвовать производительностью и иметь бонусом головную боль при обновлениях. И еще один не очевидный многим нюанс ниже.
Но люди верят, что он работает (это почти правда, если не рассматривать ребилд), быстрый  (нет), надежный (очень не всегда). Вопрос цены. Люди верят, что можно обмануть систему, взять бесплатное решение, дешевых людей, дешевое железо и получить производительность и надежность «как в облаке, но дешевле».
Кроме того, есть вопросы и к бекапу, и к восстановлению, и много к чему еще.
Но люди верят. Мерять производительность не хотят, тесты ребилда под нагрузкой делать не хотят, некоторые и бекапы не делают.

Сложность и нюансы в понимании (и отсутствии понимания) «зачем все это».
Для одного сервера все равно нужен какой-то RAID, в современных условиях, для одного сервера, с таким бизнесом, которому достаточно одного сервера, может быть аппаратный контроллер и будет неплохим решением. Для двух серверов уже может быть проще собрать отказоустойчивый кластер не на уровне железа и репликации средствами ОС, а через репликацию сервиса. Базы данных это умеют, для репликации файловых кластеров с низкой нагрузкой подойдет что угодно, остальные сервисы типа etcd тоже реплицируются без кластерной файловой системы.

Разница концепций. Часть 7.4 «Локальное дисковое пространство».

Для Hyper-V все проще некуда. Собрал диски – хочешь в soft raid, хочешь в storage space (не путать с S2D), хочешь на аппаратном рейде. Отформатировал, создал тонкие или толстые виртуальные тома ОС, создал на них тонкие (динамические) или толстые файлы (vhdx), отдал файлы виртуальным машинам, и все.
Есть проблемы с производительностью storage space в parity, если вдруг не читали вот это.
Новый ноутбук: скорость, плюсы-минусы, DiskSPD, Hyper-V и продолжение про методику тестирование скорости
Устроено все проще некуда, диск виртуальной машины == файл с заголовком.
Для Broadcom ESXi все еще проще. Создал «на чем есть» storage, создал виртуальные машины с нужными дисками.
Устроено все проще некуда, диск виртуальной машины == 2 файла. Файл с текстовым описанием, и файл с RAW данными.

Для Proxmox начинается проблема выбора: что взять. Есть Ext4, есть ZFS, есть BTRFS. Есть XFS.
Был GlusterFS, но он все, цитата

As GlusterFS is no longer maintained upstream, Proxmox VE 9 drops support for GlusterFS storages. Setups using GlusterFS storage either need to move all GlusterFS to a different storage, or manually mount the GlusterFS instance and use it as a Directory storage. Roadmap

ПОМЕР.


Development has effectively ended. For years Red Hat drove development for its RHGS product, but with the EOL of RHGS at the end of 2024. Date: 2024-06-25

Само разбиение дисков сделано странно.
ISO images в GUI это /var/lib/vz/template/iso
CT templates в GUI это  /var/lib/vz/template/cache
Конфигурация контейнеров /etc/pve/lxc
Конфигурация виртуальных машин /etc/pve/qemu-server

Диски виртуальных машин – о, тут все странно. В конфиге диск прописан как
scsi0: local-lvm:vm-100-disk-0,iothread=1,size=5G
но это блочный lvs том, который виден по команде lvs , или
find /dev | grep vm
И получаем /dev/pve/vm-100-disk-0
или команда
lvdisplay
покажет что где и как.
Неприятно с точки зрения операций с локальными томами. С ZFS та же история.

Разница концепций. Часть 7.5 «Локальное дисковое пространство - добавление».

Окей, создам отдельный том
New-VHD -Path C:\test\Proxmox\ data.vhdx -LogicalSectorSize 4KB -PhysicalSectorSizeByte 4KB -SizeBytes 105GB -Dynamic
добавлю его через GUI к Proxmox, но это уже будет другая история

Литература

Single Root I/O virtualization (SR-IOV)
Set up networking for Hyper-V hosts and clusters in the VMM fabric
Set up logical networks in the VMM fabric
How to configure System Center VMM Part 1 – Basic Design
8.3. Comparison of Network Teaming to Bonding
3.18. Bridge and Bond Configuration
Proxmox Network Configuration
How to enable DHCP on Hyper-V switch
Hyper-V - Default Switch & DHCP Server
Configuring VM Networking on a Hyper-V NAT Switch
A Practical Guide to Hyper-V Virtual Switch Configuration
Change Hyper-V (Default Switch) IP address range

Proxmox Ebook Free Download for Home Labs – тут почему-то удалили pdf, но он есть тут, хотя он и для 7.1

Proxmox for Everyone: Your Complete Guide to Virtualization, Kubernetes, and Homelab Automation (Next-Gen Infrastructure Strategies Book 2) Kindle Edition by da li (Author), PlanB Mr (Author)

Blockbridge : Ultra low latency all-NVME shared storage for Proxmox
Filesystem Features XFS vs BTRFS vs ZFS
VM Disk location (Can't find the VM disk)
How to move VM to another storage

Показать полностью
15

Переход на Proxmox (Proxmox GmbH, Vienna, Austria) с Hyper-V by Microsoft и VMware by Broadcom. Часть восьмая. Продолжение про хранение

Для лиги лени: общеизвестное и душное.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно (и потом удачно)
Часть 6. Возвращаемся к запуску Ansible. Тоже не запланированная статья.
Разница концепций. Часть 7.1 Обновления компонентов и система информирования.
Разница концепций. Часть 7.2 Сети
Разница концепций. Часть 7.3 предисловие к теме «Дисковое пространство».
Разница концепций. Часть 7.4 «Локальное дисковое пространство».

Не успел дописать еще одну часть, как опять вышло обновление:
qemu-server/stable,now 9.0.17 amd64 [installed,upgradable to: 9.0.18]
libxslt1.1/stable-security 1.1.35-1.2+deb13u1 amd64 [upgradable from: 1.1.35-1.2]
libxslt1.1/stable,now 1.1.35-1.2 amd64 [installed,upgradable to: 1.1.35-1.2+deb13u1]

xsltproc/stable-security 1.1.35-1.2+deb13u1 amd64 [upgradable from: 1.1.35-1.2]
xsltproc/stable,now 1.1.35-1.2 amd64 [installed,upgradable to: 1.1.35-1.2+deb13u1]
Сколько можно!
Это мне придется не только смотреть в pveversion, но и смотреть в pveversion -v и даже в kvm --version
Это никуда не годится.

Часть восьмая.
8.1 Продолжение про хранение – расположение дисков VM

Итак, если у вас локальный сервер с одним диском, он как-то размечен при запуске, и на первый взгляд все хорошо. Кроме того факта, что виртуальная машина лежит не как файл, а как том в LVM.
В конфигурации виртуальной машины диск прописан как
scsi0: local-lvm:vm-100-disk-0,iothread=1,size=5G

но это блочный lvs том, который виден по команде lvs , или его можно поискать через
find /dev | grep vm
И получить путь /dev/pve/vm-100-disk-0
или выполнить
lvdisplay

в GUI это тоже выглядит странно

картинка 1 жпг

картинка 1 жпг

В управлении хостом \ дисками, я вижу именно диски, но не могу уйти ниже, в структуру данных на дисках.

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

8.2 Продолжение про хранение – добавление дисков к хосту
Добавляю еще один, в моем случае виртуальный, диск и в GUI видим появление /dev/sdb

И к нему ровно две кнопки: Initialize и Wipe. Первая делает Initialize и ничего кроме.

Потом, конечно, можно создать хоть Volume group, хоть thinpool, но логика кардинально другая. То есть, если не рассматривать дисковую подсистему, например, для ESXi, отдаваемую как тонкий том, или для Hyper-V отдаваемую как тонкий том из storage space \ storage space direct, то тип диска тонкий (динамический) \ толстый (статический) для VM задается при создании диска.

8.3 Продолжение про хранение – настройка нескольких дисков

Сборка зеркала из LVM из вновь добавленных дисков из GUI тоже ничуть не очевидна. Если она там вообще есть.

Со сборкой хоть зеркала, хоть чего, в ZFS – из GUI проблем нет

Точно так же можно добавить диски как Directory , но тоже без каких-то настроек. Ext4 и xfs. И все.

Что очень меня порадовало, так это то, что удалить Volume group с дисками виртуальных машин можно вообще без проблем. Раз – и удалено, никаких предупреждений «знаете, там у вас диски виртуальных машин, вы точно уверены».

8.4 Управление диском виртуальной машины.
При создании диска VM нельзя указать, что он толстый или тонкий. Зато его можно разместить на толстом или тонком томе, и задать настройки backup.
Изменение размера диска VM делается из меню управления виртуальной машиной, но тут хоть логика есть.

Особое изумление в управлении вызывает одна кнопка Move, но при этом со специальной пометкой delete source. Я же и так заказал move!
Но вместо этого делается copy.

При этом, если удалить сразу весь VG, и удалить диски из конфигурации VM, то добавить исходный диск, который не был удален при перемещении, нельзя. Ни через add hard drive, ни через add-import hard drive.
И переместить такой диск из управления дисками нельзя. Только удалить.
Зато он лежит в управлении дисками VM, как Unused disk. И ему можно еще раз сделать Move storage.
И добавление этого диска из управления VM доступно через кнопку Edit.
Очень, очень логично!

Итого.

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

В следующих частях: скорость локальных дисков, сетевые диски. Может что-то еще из базовых вопросов.

Литература
Quick n’ Dirty – Adding disks to Proxmox with LVM
Why there is a difference between LVM and LVM-Thin? – reddit
LVM и LVM-thin в Proxmox: Глубокое погружение
Home Lab With Proxmox
Proxmox to Vmware: How to migrate a Proxmox VM to Vmware ESXi
How to create and add a new virtual disk to a VM using command line.

Примечание.
На 21.08.2025 версии:
pve-manager/9.0.5/9c5600b249dbfd2f (running kernel: 6.14.8-2-pve)

kvm --version
QEMU emulator version 10.0.2 (pve-qemu-kvm_10.0.2-4)


proxmox-ve: 9.0.0 (running kernel: 6.14.8-2-pve)
pve-manager: 9.0.5 (running version: 9.0.5/9c5600b249dbfd2f)
proxmox-kernel-helper: 9.0.3
proxmox-kernel-6.14.8-2-pve-signed: 6.14.8-2
proxmox-kernel-6.14: 6.14.8-2
proxmox-kernel-6.8.12-13-pve-signed: 6.8.12-13
proxmox-kernel-6.8: 6.8.12-13
proxmox-kernel-6.8.12-9-pve-signed: 6.8.12-9
ceph-fuse: 19.2.3-pve1 (не уверен насчет этого компонента, отключил его обновления)
corosync: 3.1.9-pve2
criu: 4.1.1-1
frr-pythontools: 10.3.1-1+pve4
ifupdown2: 3.3.0-1+pmx9
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libproxmox-acme-perl: 1.7.0
libproxmox-backup-qemu0: 2.0.1
libproxmox-rs-perl: 0.4.1
libpve-access-control: 9.0.3
libpve-apiclient-perl: 3.4.0
libpve-cluster-api-perl: 9.0.6
libpve-cluster-perl: 9.0.6
libpve-common-perl: 9.0.9
libpve-guest-common-perl: 6.0.2
libpve-http-server-perl: 6.0.4
libpve-network-perl: 1.1.6
libpve-rs-perl: 0.10.10
libpve-storage-perl: 9.0.13
libspice-server1: 0.15.2-1+b1
lvm2: 2.03.31-2+pmx1
lxc-pve: 6.0.4-2
lxcfs: 6.0.4-pve1
novnc-pve: 1.6.0-3
proxmox-backup-client: 4.0.14-1
proxmox-backup-file-restore: 4.0.14-1
proxmox-backup-restore-image: 1.0.0
proxmox-firewall: 1.1.1
proxmox-kernel-helper: 9.0.3
proxmox-mail-forward: 1.0.2
proxmox-mini-journalreader: 1.6
proxmox-offline-mirror-helper: 0.7.0
proxmox-widget-toolkit: 5.0.5
pve-cluster: 9.0.6
pve-container: 6.0.9
pve-docs: 9.0.8
pve-edk2-firmware: 4.2025.02-4
pve-esxi-import-tools: 1.0.1
pve-firewall: 6.0.3
pve-firmware: 3.16-3
pve-ha-manager: 5.0.4
pve-i18n: 3.5.2
pve-qemu-kvm: 10.0.2-4
pve-xtermjs: 5.5.0-2
qemu-server: 9.0.18
smartmontools: 7.4-pve1
spiceterm: 3.4.0
swtpm: 0.8.0+pve2
vncterm: 1.9.0
zfsutils-linux: 2.3.3-pve1

Показать полностью 6
16

Переход на Proxmox часть 6. Возвращаемся к запуску Ansible

Для лиги лени: общеизвестное и душное.

Часть 1. Общая
Часть 2. Gitlab и Nexus
Часть 3. Ansible и Ansible AWS
Часть 4. Наконец переходим к Proxmox
Часть 5, не запланированная. Обновляем Proxmox с 8.4 до 9.0. Неудачно.

Часть 6. Возвращаемся к запуску Ansible. Тоже не запланированная статья.

Как мне верно сказали в комментариях к статье, не надо ставить  Ansible из репозитория Trixie, а если поставил, то надо удалить и переставить.
sudo apt remove --purge ansible
sudo apt autoremove –purge
sudo ln -s /usr/bin/python3 /usr/local/bin/python
sudo ln -s /usr/bin/pip3/usr/local/bin/pip
sudo ln -s /usr/bin/python3-venv /usr/bin/venv
pip install --user ansible

Естественно, так просто оно не заработало, выдав ошибку «error: externally-managed-environment»

Пришлось сделать
apt install python3.11-venv
apt install python3-pip
python3 -m pip install --user ansible

Было: ansible [core 2.14.18]
Стало: ansible [core 2.18.7] (пока писал заметку, вышло обновление до 2.18.8)

При том, что latest - v2.19.0

Заодно обновил Proxmox. Pveversion:
было  сразу после установки pve-manager/9.0.3/025864202ebb6109 (running kernel: 6.14.8-2-pve)
стало на 14.08.2025: pve-manager/9.0.5/9c5600b249dbfd2f (running kernel: 6.14.8-2-pve)

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

Проверяем SSH от ансибл хоста до целевого.
Добавляем хост в /etc/ansible/hosts, или куда вам надо,
И проверяем, как по инструкции How To Install and Configure Ansible on Ubuntu 20.04 от digitalocean
ansible-inventory --list -y

Правим все ошибки, в моем случае прописываем в конфигурации хостов ansible_port, если вы (как я) сменили порт для SSH на одном из серверов:

[servers:vars]
ansible_port=2425

И делаем не как в инструкции (потому что я поленился прописать SSH ключи), а по народно-колхозному
ansible proxmox -m ping --ask-pass
получая ..
"msg": "to use the 'ssh' connection type with passwords or pkcs11_provider, you must install the sshpass program"

Что ж. В колхоз так в колхоз, потом пропишу ssh ключи «как надо», хотя правильно через Vault все делать, это прямо в руководстве прописано. Но, пока что
apt install sshpass
и система заработала.
В /etc/ansible/hosts прописано:

[servers]
server001 ansible_host=192.168.10.201

[servers:vars]
ansible_port=2425

[proxmox]
192.168.10.202

[all:vars]
ansible_python_interpreter=/usr/bin/python3

Теперь проверим, что там по фактам:
ansible proxmox -m setup --ask-pass
ansible proxmox -m command -a "uptime" --ask-pass
ansible proxmox -m command -a "pveversion" --ask-pass
ansible proxmox -m command -a "echo ' Hello World '" --ask-pass

И можно переходить к чтению сайта Proxmox VE Helper-Scripts, и даже к чтению скрипта Proxmox VE Post Install

Литература
If you boot Proxmox from an SSD, disable these two services to prevent wearing out your drive
Installing Ansible on specific operating systems
Installing and upgrading Ansible with pip
How to solve "error: externally-managed-environment" when installing via pip3
Run Your First Command and Playbook
Creating and Running your First Ansible Playbook
How to Use Ansible: A Reference Guide
How To Install and Configure Ansible on Ubuntu 20.04
The Essential Ansible Tutorial: A Step by Step Guide
Connecting to hosts: behavioral inventory parameters
Connection methods and details
Discovering variables: facts and magic variables
An introduction to Ansible facts
Proxmox VE Helper-Scripts

В следующей части:
Что-то будет, но пока не знаю чего.
Наверное, про то, что все снести и переделать. Но это не точно.
Наверное, для начала вернусь к разнице концепций дисков.

Показать полностью
Отличная работа, все прочитано!