Proxmox - Аварийные ситуации и пути решения проблем

Материал из support.qbpro.ru

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

СИСТЕМНЫЕ КАТАЛОГИ И ФАЙЛЫ PROXMOX
ТИП НАЗНАЧЕНИЕ ПУТЬ
Каталог Конфигурация Proxmox /etc/pve/
Каталог Конфигурации Файрволлов (firewoll) в том числе и хостовой Ноды Proxmox /etc/pve/firewall/
Каталог Конфигурации нод /etc/pve/nodes/nodename
Файл Конфигурации контейнеров LXC в ноде /etc/pve/nodes/nodename/lxc/id_lxc.conf
Файл Конфигурации виртуальных машин VM в ноде /etc/pve/nodes/nodename/qemu-server/id_vm.conf
Файл Конфигурация Нод в кластере (corosync) /etc/pve/corosync.conf
Файл Конфигурация НОСИТЕЛЕЙ зарегистрированных в НОДАХ в кластере (storage) /etc/pve/storage.cfg
Файл Конфигурация пользователей в Кластере или Ноде /etc/pve/user.cfg
База Sqlite Конфигурация Кластера с нодами или без них если не поднят HA /var/lib/pve-cluster/config.db
Каталог Конфигурации FireWoll текущей ноды /var/lib/pve-firewall

Удаление вышедшей из строя ноды из кластера

  • Для начала удалим ее из кластера, для этого с любой другой ноды в консоли выполняем команду:
pvecm delnode "Имя_Ноды"
  • Проверяем список нод:
pvecm nodes

Если в ответ получаем ошибку:

cluster not ready - no quorum?
  • Значит у вас в кластере всего меньше 3 нод осталось, в этом случае у вас не будет возможности выполнить бэкап, запустить или остановить виртуальные машины. Проблема решается следующей командой:
pvecm e 1
  • На оставшихся нодах кластера необходимо проверить и удалить папку с названием выбывшей ноды из /etc/pve/nodes:
rm /etc/pve/nodes/"Имя_Ноды"
  • Необходимо удалить строчку с ключом выбывшей ноды из файла /etc/pve/priv/authorized_keys:
nano /etc/pve/priv/authorized_keys

в самом конце строки вы увидите имя ноды, эту строчку и удаляйте. CTRL+O, CTRL+X - сохранить и выйти

  • Чтобы нода пропала из списка узлов кластера, перезагрузим службу:
systemctl restart pve-cluster

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

  • Для начала удалим ее из кластера, для этого с любой другой ноды в консоли выполняем команду:
pvecm delnode "Имя_Ноды"
  • На выбывающей ноде останавливаем службы:
systemctl stop pve-cluster
systemctl stop corosync
  • Из-за ошибок в кластере pmxcfs может становиться недоступной, при этом будут возникать ошибки при попытке доступа к каталогу /etc/pve.

Для получения доступа к /etc/pve выполним команду:

pmxcfs -l
  • Удаляем конфиг старого кластера и содержимое папки:
rm /etc/pve/corosync.conf
rm -r /etc/corosync/*
killall pmxcfs
  • Запускаем службу кластера:
systemctl start pve-cluster
  • Проверяем и убеждаемся, что от прежнего кластера не осталось и следа, виртуальные машины на месте.

Теперь, нужно удалить следы присутствия старой ноды в кластере.
Проверяем список нод:

pvecm nodes
  • Если в ответ получаем ошибку:
cluster not ready - no quorum?
  • Значит у вас в кластере всего 2 ноды осталось, в этом случае у вас не будет возможности выполнить бэкап, запустить или остановить виртуальные машины. Проблема решается следующей командой:
pvecm e 1
  • На оставшихся нодах кластера необходимо проверить и удалить папку с названием выбывшей ноды из /etc/pve/nodes:
rm /etc/pve/nodes/"Имя_Ноды"
  • Необходимо удалить строчку с ключом выбывшей ноды из файла /etc/pve/priv/authorized_keys:
nano /etc/pve/priv/authorized_keys

в самом конце строки вы увидите имя ноды, эту строчку и удаляйте.
CTRL+O, CTRL+X - сохранить и выйти
Чтобы нода пропала из списка узлов кластера, перезагрузим службу:

systemctl restart pve-cluster
  • На этом пока все, материал по мере возникновения проблем будет дописываться.

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

Делается всё быстро и на ходу.

  • Останавливаем службы:
systemctl stop pve-cluster
systemctl stop corosync
  • Удаляем конфиг старого кластера и содержимое папки:
rm /etc/pve/corosync.conf
rm -r /etc/corosync/*
killall pmxcfs
  • Запускаем службу кластера:
systemctl start pve-cluster

Обновляем web страничку и убеждаемся, что кластера как не бывало, машинки все на месте и работают.

При установке Proxmox из Debian с RAID1 не запускается Kernel-Pve

  • Проверяем в /etc/mdadm/mdadm.conf - что md0 только один и он root раздел!
    • Правим /etc/default/grub:
echo 'GRUB_PRELOAD_MODULES="raid dmraid"' >> /etc/default/grub
echo 'GRUB_TERMINAL=console' >> /etc/default/grub
    • Принудительно при загрузке GRUB грузим модули RAID
echo raid1 >> /etc/modules
echo raid1 >> /etc/initramfs-tools/modules
    • Обновляем настройки Grub:
update-grub
update-initramfs -u
    • Перегружаем сервер...

Источники