Відновлення¶
Будь-яке відновлення починається на сторінці Відновлення: виберіть розділ, знайдіть те, що хочете повернути, і виберіть копію. Одне вікно відновлює будь-які записи й питає покроково. Типово оригінал не змінюється, бо копія повертається поруч із ним.

Сторінка «Відновлення»¶
- Розділи показує розділи плитками, у кожній вказано, у скількох записів є знімки.
- Що хочете повернути? шукає серед записів вибраного розділу. У кожному рядку видно її найновіший знімок, а Відкрити запис веде на сторінку запису.
- Стеки перелічують проєкти Compose, у яких є щонайменше два контейнери з копіями, наприклад
immichз його базою даних і Redis. Пошук знаходить стек за його іменем або за будь-яким із його контейнерів. - Виконується зараз показує відновлення, поки воно триває, зокрема й після того, як ви закрили його вікно.
- Аварія запускає майстер аварійного відновлення для сервера, якого більше немає або який налаштували заново, див. Аварійний майстер.
- Інші джерела містить Зі старої папки резервних копій для копій іншого BombVault та Імпорт із плагіна Appdata.Backup.

Вікно відновлення¶
Клацання по запису відкриває Відновити з його назвою. Вікно питає покроково, і кожен крок можна змінити до запуску:
- Копія: рекомендований знімок вибрано наперед. Це найновіший, а після відкритої аномалії останній перед нею. Копія, зроблена перед попереднім відновленням, зберігає стан, який те відновлення замінило, тому її пропускають, якщо інших немає. Старіші є в списку, а Порівняти показує, чим відрізняються два з них.
- Джерело: звідки беруться файли, якщо знімок лежить у кількох місцях. Локально найшвидше.
- Що: Усі або Окремі файли, де ви позначаєте потрібні файли й папки.
-
Куди: ціль. Варіанти залежать від виду запису:
Ціль Що робить Поруч з оригіналом Типово. Контейнер повертається другим контейнером з іменем <name>-restoredі власними портами, диски та NVRAM віртуальної машини потрапляють у папку<folder>-restored, а набір папок повертається як<path>-restored. Оригінал не змінюється.Замінити оригінал Перезаписує те, що там зараз. З Спершу зробити копію поточного стану, що ввімкнено типово, BombVault спершу копіює сьогоднішній стан, щоб можна було повернутися. Якщо ця копія не вдалася, відновлення не починається. Це працює й для контейнера чи віртуальної машини, яких на сервері вже немає: папки, які відновлення перезаписує, копіюються окремо. До папки Лише файли, для перегляду. Завантажити як ZIP Флешка, для нової флешки. BombVault ніколи не пише на працюючу флешку. У новий набір даних і Відновити в сам набір даних Набори даних ZFS, див. Набори даних ZFS. -
Що станеться словами каже, що зробить відновлення, а сцена показує вибрану вами ціль.
Перш ніж Відновити розблокується, вікно перевіряє, що репозиторій відповідає, що ключ його відкриває, що знімок на місці й що в цілі вистачає місця. Поки перевірку не пройдено, кнопка лишається заблокованою, а (i) на ній каже, яка саме.
Вікно також показує, що відновлення змінює порівняно з тим, що є зараз: нові, замінені та незмінені файли зі списком на вимогу, а також файли в цілі, яких немає в копії й які лишаються на місці. restic обчислює це як пробний прогін за розміром і часом зміни, не читаючи файлів, а дуже велике дерево зупиняється за 30 секунд і повідомляє про це. Для контейнерів і віртуальних машин воно порівнює налаштування, які відновлення створює заново, з працюючими: образ і тег, порти, імена змінних і томи, або пам'ять, vCPU, диски й мережа.
Дещо може зупинити відновлення, перш ніж воно щось змінить. Статична IP контейнера й опубліковані порти мають бути вільні, а його мережа має існувати. В Unraid будь-яке відновлення на місці відмовляється від папки, яка не лежить на змонтованому пулі чи спільному ресурсі, бо файли потрапили б у пам'ять і зникли б після перезавантаження. Відновлення на місці називає кожен інший контейнер, чий bind mount заходить у папку, в яку воно пише, наприклад «цей шлях також використовує nextcloud-db», але це лише попередження.
Кілька параметрів з'являються там, де вони застосовні: Залишити зупиненим, щоб оглянути контейнер чи віртуальну машину, перш ніж вони знову запустяться, і Відновити без GPU та середовища виконання на хості, де немає GPU чи середовища виконання, з якими робилася копія.
Відновлення йде у фоні. Вікно можна закрити, а хід виконання видно й у розділі Виконується зараз. Довге відновлення показує відсоток і його можна скасувати, а скасоване відновлення записується як скасоване, а не як невдале. Відновлення, скасоване, поки контейнер зупиняється, або відновлення, яке не може видалити контейнер, ще нічого не відновило, тому контейнер запускається знову. Контейнер, який бере томи в іншого через --volumes-from, зберігає їх, а відновлення не почнеться, поки того іншого контейнера немає.

Куди потрапляє відновлення в папку¶
Теки для відновлення в розділі Налаштування, Відновлення задають Стандартна папка відновлення, за бажання з Підтека для кожного розділу, і Виняток для одного розділу. Вибрані файли лягають прямо в цільову папку: один файл повертається просто як цей файл, папка як папка зі вмістом, а вибране з різних папок зберігає лише свій шлях нижче спільної для них папки. BombVault відмовляється від цілі, яка не лежить на змонтованому сховищі, бо в Unraid така папка живе в пам'яті й зникає після перезавантаження, і ніколи не відновлює у власну папку з даними.
Приклад: повернути один файл¶
Хтось учора ввечері відредагував config.php у Nextcloud, і Nextcloud більше не запускається. У нічній копії о 03:00 добрий файл ще є. Вам потрібен цей один файл, а не весь контейнер.
- Відкрийте Відновлення, виберіть плитку Контейнери і введіть
nextcloudу Що хочете повернути?. - Клацніть
nextcloud. Вікно відкриється з копією о 03:00, вибраною наперед як рекомендована. - Залиште Джерело на Локально.
- У Що виберіть Окремі файли. Розгорніть папки до
configі позначтеconfig.php. - У Куди виберіть До папки і вкажіть папку, наприклад
user/restore, тобто/mnt/user/restoreна хості. - Прочитайте Що станеться: файл ляже в цільову папку, а контейнер не зміниться. Натисніть Відновити.
Вікно закінчується словами Готово: файли лежать у /mnt/user/restore. Файл ви знайдете як /mnt/user/restore/config.php, без папок над ним. Порівняйте його зі зламаним, скопіюйте назад у папку appdata і перезапустіть Nextcloud.
Щоб повернути файл одразу на місце, виберіть на кроці 5 Замінити оригінал. Залиште Спершу зробити копію поточного стану ввімкненим, щоб BombVault зберіг зламаний стан перед записом, введіть nextcloud для підтвердження й натисніть Відновити. Nextcloud зупиняється, поки вибраний файл записується на своє місце, а потім запускається знову. Записуються лише позначені вами файли. Відновлення, яке зірвалося на півдорозі, лишає Nextcloud зупиненим, бо файл, який він читає, може бути записаний наполовину, і запуск повідомляє про це.

Що повертається, за видами¶
Контейнери створюються заново зі збереженого визначення через API Docker, з їхніми entrypoint, іменем хоста, налаштуваннями зупинки, томами й монтуваннями, обмеженнями ресурсів, драйвером журналів, налаштуваннями DNS і застарілими посиланнями. Контейнер повертається на тому образі, на якому працював у момент копіювання, а не на новішому, завантаженому пізніше, а відсутній образ спершу завантажується з обліковими даними з Реєстри контейнерів у розділі Налаштування, Відновлення. Його GPU чи середовище виконання (--gpus, --runtime=nvidia) теж повертаються. На хості без цього драйвера чи середовища виконання відновлення повідомляє про це й пропонує Відновити без GPU та середовища виконання. Посилання на контейнер, якого немає або який зупинений, коли відновлений запускається, пропускається, і історія запусків про це повідомляє. Відновлення, яке не вдалося після видалення контейнера, повертає його на місце зупиненим.
Копія може містити папки, які в контейнера більше не вибрані, наприклад старіша копія, зроблена до того, як папка зникла. Папка, якої немає або яка порожня, повертається. Папка, у якій зараз є файли, лишається як є, бо ви могли зняти з неї позначку навмисно, і перевірка перед відновленням та історія запусків її називають. Поверніть її через Окремі файли або До папки.
Віртуальні машини отримують XML заново через SSH, а їхні диски й UEFI NVRAM підключаються знову, навіть якщо віртуальну машину видалили. Про віртуальні машини зі знімками Unraid і дисками на zvol див. Копії віртуальних машин.
Набори папок повертаються з власником, правами й часовими мітками в тому вигляді, як їх зберігає restic. Якщо ціль відмовляє лише у зміні власника, як це робить /mnt/user, запуск закінчується приміткою про це. Потім BombVault порівнює файли з копією, і якщо якийсь файл не дійшов, відновлення не вдається.
Флешка ніколи не зачіпає працюючий /boot. Відновлення тут означає завантаження файла flash-<id>.zip, готового для Unraid USB Creator. ZIP містить APP_KEY, тому для його завантаження потрібні пароль для входу та вхід на самому екземплярі. Вікно також перелічує плагіни в кожній копії флешки з їхньою версією та розміром і може повернути один із них на працюючу флешку: його файл .plg, його папку в config/plugins і файли пакетів, які зберігає копія. Unraid встановить його під час наступного завантаження або одразу в Plugins, Install Plugin.
Набори даних ZFS мають власні цілі й зберігають свої властивості ZFS, див. Відновлення.
Автобекап повертається лише через майстер аварійного відновлення, який перезапускає BombVault, тож жива база даних ніколи не перезаписується під відкритим дескриптором.
Дампи баз даних ніколи не завантажуються назад самі. Рядок у розділі Дампи бази даних можна завантажити, зберегти в папку або імпортувати в щойно запущену базу даних. Див. Дампи баз даних.
Відновлення кількох записів одразу¶
На сторінці «Відновлення» вибирайте записи так само, як рядки в списку резервних копій: Ctrl+клацання, Shift+клацання, Ctrl+A, довге натискання або Вибрати. Потім Відновити відкриває одне вікно для всіх них.
- Яка резервна копія: Рекомендовано бере для кожного запису ту копію, яку порекомендувало б його власне вікно. Один момент для всіх бере для кожного запису його найновішу копію на вибраний вами Момент або раніше, наприклад на вечір перед тим, як щось пішло не так.
- Куди: Поруч з оригіналом або Замінити оригінал, з Спершу зробити копію поточного стану.
Кожен запис перевіряється так само, як при одиночному відновленні, а потім вони виконуються один за одним. Кожен рядок показує, як іде його власне: Очікування, Виконується, Відновлено, Помилка або Залишено осторонь. Зупинити після цього дозволяє поточному відновленню завершитися й більше нічого не запускає. Флешка приходить ZIP-файлом для завантаження, а набори даних ZFS та автобекап відновлюються по одному.

Відновлення стека¶
Клацання по стеку в картці Стеки відкриває Відновити стек. Він відновлює кожного учасника з його останньої копії одночасно, а з Запустити в порядку залежностей після відновлення запускає їх у порядку depends_on: спершу бази даних і кеші, потім застосунок. Якщо теки проєкту учасника немає в обраному вами місці, вікно пропонує натомість стан із Локально.
Спершу BombVault перевіряє учасників і теку проєкту, і відновлення, яке не могло б спрацювати, нічого не змінює. Інакше він зупиняє запущених учасників, застосунки раніше за їхні бази даних, потім записує теку проєкту, потім відновлює учасників. Якщо тека проєкту не повернулася, учасники все одно відновлюються, але лишаються зупиненими, бо тека може бути записана наполовину, а саме в ній зазвичай лежать bind mount учасників. Запуск кожного учасника повідомляє про це.
База даних, яка має лише дампи й не має копії файлів і чийого контейнера та іменованого тому вже немає, повертається без своїх даних. Перевірка повідомляє про це до відновлення. База лишається зупиненою, як і контейнери, що від неї залежать, щоб жоден застосунок не запустив своє початкове налаштування на порожній базі даних. Запустіть її, імпортуйте дамп і запустіть решту. Див. Дампи баз даних.
Інші джерела¶
- Зі старої папки резервних копій відкриває репозиторій іншого BombVault, який більше не працює, на диску або у зовнішньому місці призначення, з його набором для відновлення або введеним
APP_KEY. Сеанс лише для читання й живе лише в пам'яті. Див. Зі старої папки резервних копій. - Імпорт із плагіна Appdata.Backup читає папку копій плагіна. Кожен архів контейнера стає точкою відновлення цього контейнера з датою, коли його зробив плагін. Архіви, імпортовані раніше, пропускаються, а самі архіви лише читаються. Контейнеру спершу потрібна одна копія в BombVault, щоб у відновлення було його визначення. Зберігання не чіпає імпортовані точки відновлення, тож видаліть одну самі, коли вона більше не потрібна.
Після відновлення¶
Копія, відновлена поруч з оригіналом, показується в розділі Резервні копії як виключена, тож не вважається відкритим завданням. Додайте її до розкладу, якщо хочете її зберегти. Контейнер або віртуальна машина, які працювали в момент копіювання, повертаються працюючими, а зупинені залишаються зупиненими. В Unraid відновлений контейнер знову з'являється на вкладці Docker як звичайний змінюваний застосунок, а віртуальна машина у VM Manager з підключеними дисками й NVRAM.