Proxmox VE, восстановление одиночной ноды

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

Как уже писал ранее, я задумался об обновлении своих гипервизоров до следующей 7-й версии и во избежание неожиданностей тестирую переход на одиночных нодах, которые больше выступают в роли отладочных стендов, чем реально рабочими гипервизорами, тем не менее на них есть виртуальные машины, тоже с разными экспериментами, которые хотелось бы сохранить, хотя я и могу большинство из них восстановить из резервных копий. Сегодня я рассмотрю вариант восстановления полноценной работоспособности гипервизора с ZFS root разделом и ZFS хранилищем.

  • Цель

Хочу выяснить и подтвердить на практике какие данные необходимо резервировать для дальнейшего восстановления работоспособности гипервизора при выходе из строя диска, на котором находится root раздел (в моем случае SSD накопитель)

  • В руководстве администратора написано, что мне потребуется файл базы данных pmxcfs /var/lib/pve-cluster/config.db, еще мне возможно потребуются файлы конфигурации виртуальных машин и контейнеров(не потребовались) /etc/pve/qemu-server, /etc/pve/lxc, думаю еще будут крайне полезными название ноды (желательно знать, но не смертельно) и ее сетевые настройки.
  • Эксперимент

Имея на руках все вышеперечисленное приступаю


Заменил загрузочный диск Подкинув SSD на место загрузочного диска, устанавливаю Proxmox VE с прежним названием ноды и прежними сетевыми настройками, перегружаю, провожу пост установочные настройки (openvswitch, mc)

Подключившись по SSH(можно и в "оболочке" веб интерфейса), смотрю доступные для импорта ZFS pools

# zpool import
   pool: SA**
     id: 90****************97
  state: ONLINE
status: The pool was last accessed by another system.
 action: The pool can be imported using its name or numeric identifier and
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

        SA**                                      ONLINE
          wwn-0x6*****************************8b  ONLINE  
   pool: SA*****l
     id: 10****************12
  state: ONLINE
status: The pool was last accessed by another system.
 action: The pool can be imported using its name or numeric identifier and
        the '-f' flag.
   see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
 config:

        SA*****l                                    ONLINE
          mirror-0                                  ONLINE
            wwn-0x6*****************************11  ONLINE
            scsi-360****************************50  ONLINE
  • произвожу импорт файловых систем ZFS
 zpool import -f <MyPoolName>
  • Теперь необходимо положить на место конфиги виртуальных машин(не обязательно - они есть в базе /var/lib/pve-cluster/config.db), что можно сделать по SFTP или используя флешку. Я для разнообразия воспользуюсь флешкой
mount -t vfat /dev/sdf1 /media/
  • С помощью установленного ранее mc копирую конфигурации виртуальных машин и контейнеров в соответствующие папки (см. выше)


  • Проверяем владельца/права

Теперь нам нужно остановить службу pve-cluster

# service pve-cluster stop
  • Замещаем сохраненным ранее файлом /var/lib/pve-cluster/config.db и проверяем права на него (root:root 600)

запускаем службу pve-cluster

# service pve-cluster start
  • Смотрим что получилось в итоге


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

P.S. На момент публикации прошла одна неделя - пока полет нормальный! P.P.S. Если при восстановлении ноды мы не помним ее точного названия и ошибемся то получим что то похожее на картинку ниже:

правим /etc/hostname, /etc/hosts