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