Подскажите, возможно ли сделать полный бэкап контроллера с установленным сторонним ПО? На контроллере установлен docker и Home Assistant в контейнере.
возможно ли забэкапить контроллер как образ дисковой системы, например при помощи Acronis True Image? Не возникнут ли потом какие-то проблемы с восстановлением из образа? с одной стороны это миниПК с установленным Linux, но переживаю, не превратится ли контроллер в кирпич или что-то уйдет в рассинхрон, когда будут восстанавливаться системные файлы.
если такой вариант бэкапа допустимый, не могли бы дать рекомендации каким методом лучше всего это сделать? предполагаю следующий сценарий: создаю загрузочный образ акрониса на флешку, вставляю загрузочную флешку в usb порт контроллера, далее каким-то образом нужно указать приоритет загрузки с флешки(???), делаю рестарт контроллера и подключившись через debug port получаю доступ к GUI Acronis (выполняю стандартный бэкап ОС с дисками на эту же флешку). Рабочий вариант или не взлетит?
P.S. очень хочется создать полный образ контроллера, на HA уже много настроек которые тоже хотелось бы сохранить. Бэкапить все это добро по отдельности и потом синхронизировать выглядит не очень рационально.
Поискал, да, похоже на то.
Ну, тут весьма-весьма амбициозный проект, я с трудом могу себе представить как вывести GUI в консоль.
Если загрузка с флешки, в принципе, вполне осуществима и используется - то остальное мне кажется усложнением.
Есть ощущение что если слепо следовать этой инструкции, то бэкап получится неконсистентным. Ну и про “несколько строчек” мне кажется тут немного упрощенно выглядит.
На мой взгляд полный бэкап для начала должен предполагать остановку процессов (в частности контейнера HA или его можно на ходу бэкапить?), потом бэкап отдельных директорий (в инструкции речь только про “/mnt/data/etc”, больше нигде данные/настройки не хранятся?
если конфиги самого HA не меняются (не редактируются) в момент бэкапа - вполне можно без остановки. Только БД потенциально может быть неконсистентной. Но - всегда можно выполнить бэкап штатными средствами самого HA и забрать файл.
То есть единственный потенциально опасный элемент - БД.
Для штатного ПО контроллера - больше нигде.
Ну и они не меняются автоматически, только путем редактирования и сохранения из веб-интерфейса.
У меня сложился такой алгоритм действий, не могли бы вы дать свою оценку:
Порядок создания полного бэкапа контроллера с docker контейнером HA
останавливаю контейнер:
docker ps -a
docker stop contatiner_id
выполняю бэкап директорий с конфигами и контейнером HA:
tar -zcvf /mnt/data/etc_full_bkp_`date '+%Y-%m-%d'`.tar /mnt/data/etc
tar -zcvf /mnt/data/HA_full_bkp_`date '+%Y-%m-%d'`.tar /mnt/data/.HA
tar -zcvf /mnt/data/docker_full_bkp_`date '+%Y-%m-%d'`.tar /mnt/data/.docker
Выполняю бэкап rootfs из web консоли WB
запускаю контейнер: docker start contatiner_id
выношу бэкапы с контроллера
Порядок восстановления:
останавливаю контейнер: docker stop contatiner_id
Выполняю восстановление rootfs из web консоли WB (на этом шаге ли после конфигов?)
выполняю восстановление директорий с конфигами и контейнером HA:
tar --overwrite -xvpf /mnt/data/etc_full_bkp_2024-12-12.tar -C /
tar --overwrite -xvpf /mnt/data/HA_full_bkp_2024-12-12.tar -C /
tar --overwrite -xvpf /mnt/data/docker_full_bkp_2024-12-12.tar -C /
docker start contatiner_id
Вопросы:
Алгоритм/команды верные? rootfs восстанавливается до конфигов и нужно ли его вообще бэкапить?
Что-то еще из директории /mnt/data бэкапить? или еще из каких-то директорий? состав директории следующий:
root@wirenboard:/mnt/data# ls -la
total 40
drwxr-xr-x 10 root root 4096 Jun 17 14:16 .
drwxr-sr-x 4 root root 4096 Jun 18 2023 ..
drwxr-xr-x 7 root root 4096 Dec 6 11:03 .HA
drwx--x--- 12 root root 4096 Oct 30 16:03 .docker
drwxr-xr-x 2 root root 4096 Jan 1 1970 .wb-restore
drwxr-xr-x 2 www-data www-data 4096 Jan 1 2020 .wb-update
drwxr-xr-x 12 root root 4096 Aug 6 15:44 etc
drwx--S--- 5 root root 4096 Dec 11 13:48 root
drwxr-xr-x 2 www-data www-data 4096 Dec 20 2023 uploads
drwxr-xr-x 5 root root 4096 Jan 1 2020 var
в инструкции https://wirenboard.com/wiki/Wiren_Board_Web_Interface#backup раздел “Резервная копия”, есть опция “скачать все”, в моей версии прошивки контроллера wb-2401 данную опцию не вижу (видимо устарела, буду обновлять после бэкапа). Подскажите, с какой версии доступна данная опция и заменяет ли она все описанные мною в виде команд действия? т.е могу ли я ее использовать как альтернативу (предварительно остановив контейнер HA)?
P.S. прошу прощения за дотошность, но с бэкапами лучше разобраться хорошо до того как они понадобятся))
А это по большей степени бесполезно (только место занимать), сам контейнер проще ведь поставить.
Да, за исключением того что для обычного бэкапа нет нужды сохранять образ раздела. Ну и сам контейнер (слои) HA - тоже.
С 2404 по-моему.
Нет, это именно образ системного раздела, с точки зрения восстановления он бесполезен, но может пригодиться если что-то устанавливалось именно в него.
Ну и - если стоит zigbee2mqtt - то его конфиг лежит в /root/zigbee2mqtt/
Я бы сохранил вообще все файлы из разделов, перед тем как обновляться.
Скачать всё — соберёт в архив всё, что есть на контроллере: файлы конфигурации, установленный софт и т.п. Самый большой архив, зато позволяет сохранить конфиги стороннего софта, который мы не включили в компактный архив с файлами конфигурации.
Есть понимание какие разделы бэкапит эта опция? или речь про то что он бэкапит тот же раздел (rootfs) просто большее количество файлов из этого раздела захватывает?
P.S. к сожалению не могу проверить у себя.
Контейнер - статичен и не меняется совсем, то есть никогда. Все что настроено - лежит в монтируемом в него каталоге, то еть идеология докера - данные отдельно от контейнера.
то есть данная функция в WB консоли позволяет как раз бэкапить все содержимое в разделе /mnt/data/ (включая стороннее ПО и нужные мне директории etc, .HA, .docker и т.д.), т.е. по факту является альтернативой моего скрипта, верно?
P.S. По поводу контейнера “услышал”, спасибо за пояснение
Кстати дополню, в консоли Home Assistant с 22ого года появился функционал, позволяющий делать бэкап конфигов HA работающего из контейнера через GUI/Web интерфейса (Раздел: Настройки->Система->Резервные Копии), создает бэкап и тарит его в домашнуюю директорию HA (в каталог backup), более подробно на видео (англ):