среда, 27 октября 2021 г.

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

Как уже писал ранее, я задумался об обновлении своих гипервизоров до следующей 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
Помогло!

Комментариев нет:

Отправить комментарий