9.5 KiB
title | linkTitle | date | weight | description |
---|---|---|---|---|
Backups | Backups | 2023-07-31T | 2 | Backing up your services so that they are not lost |
Зачем нужно резервное копирование (backups)
Когда ваш сервис сломался, но еще вчера он работал, у вас есть два варианта действия:
- Потратить некоторое время на чтение журналов и отладку того, что пошло не так. Но сервис становится не рабочим и, возможно, некоторые данные безвозвратно будут потеряны.
- Восстановить сервис до рабочего состояния и затем отлаживать в более спокойном темпе. Надеясь, что это была просто солнечная вспышка или сбой в Матрице.
Второй вариант, экономящее нервы, регулярное, а еще лучше - автоматическое резервное копирование.
Дополнительным преимуществом резервного копирования является возможность переноса сервиса с одной машины на другую с минимальными трудностями. Это полезно, к примеру, в случае пожара в центре обработки данных, если ваш серверный провайдер выкуплен другой корпорацией или если акционеры решили, что наконец-то пришло время получать больше прибыли.
В данном документе рассмотрены основные условия и порядок использования подсистемы резервного копирования SelfPrivacy.
Что такое моментальный снимок (snapshot)?
SelfPrivacy не создает резервных копий всей машины. Вместо этого сохраняется состояние каждого сервиса. Снимком называется состояние файлов сервиса, сделанное в определенный момент времени. В интерфейсе можно увидеть, что снимок имеет идентификатор, службу, которую он резервирует, и дату создания.
Когда происходит резервное копирование?
Снимок создается в трех случаях:
- По ручной команде пользователя
- Автоматически через определенные промежутки времени, если включена функция автоматического резервного копирования
- В качестве меры предосторожности, перед восстановлением сервиса
Как хранятся данные?
Файлы сервиса хранятся у провайдера в облаке на выбор пользователя. В настоящий момент мы поддерживаем Backblaze, но в дальнейшем планируется добавить и других провайдеров.
Все данные сервиса шифруются локальным секретным ключом, который облако никогда не получит. Для передачи зашифрованных данных мы используем Restic.
В таких облаках, как Backblaze, есть возможность запретить немедленное удаление данных. Приложение SelfPrivacy использует эту опцию, чтобы в случае взлома сервера данные не могли быть удалены.
Список моментальных снимков
При просмотре списка следует учитывать два фактора:
- В целях повышения производительности список кэшируется. Если в нем отсутствуют некоторые снимки, которые, по вашему мнению, должны там быть, перезагрузите список, чтобы он обновился.
- Если вы удалите некоторые снимки, они исчезнут из списка, но в течение некоторого ограниченного времени их можно будет восстановить с помощью облака.
Восстановление моментального снимка
При восстановлении моментального снимка сервис останавливается, а все его файлы восстанавливаются до состояния, в котором они находились на момент создания снимка. Это можно сделать двумя способами.
Самый безопасный и используемый по умолчанию - загрузить снимок полностью, убедиться, что данные не повреждены, и заменить служебные файлы файлами из снимка. Недостатком этого способа является то, что для хранения снимка необходимо дополнительное место.
Несколько более рискованный способ - перезаписать служебные файлы напрямую, без промежуточного хранения. В этом случае требуется меньше места, но если перенос пройдет неправильно, то в результате вы получите неработающий сервис. Чтобы несколько смягчить эту проблему, непосредственно перед восстановлением делается еще один снимок.
Перед попыткой восстановления приложение проверяет наличие свободного места.
Забывание моментального снимка
Забывание делает снимок недоступным с сервера, но само удаление можно восстановить из облачного пользовательского интерфейса в течение некоторого времени (по умолчанию 30 дней для Backblaze).
Автоматическое резервное копирование
Если задать период автоматического резервного копирования, то резервное копирование всех сервисов будет производиться регулярно в соответствии с заданным периодом.
Обратите внимание, что резервное копирование для каждого сервиса происходит независимо. Если резервное копирование сервисов A и B выполняется автоматически каждый день утром, а затем в полдень выполняется резервное копирование сервиса B вручную, то следующее резервное копирование сервиса A будет выполняться утром, как обычно, а резервное копирование сервиса B будет выполняться в полдень.
Если значение равно нулю, то автоматическое резервное копирование будет отключено.
Восстановление после удаления всех снимков
- Перейдите непосредственно в интерфейс Backblaze/другого облака.
- Отмотайте состояние ведра до события, предшествовавшего удалению.
- Откройте приложение SelfPrivacy.
- Аннулируйте кэш моментальных снимков.
- Пролистайте снимки
- Восстановите моментальный снимок обычным способом.
Устранение неполадок при резервном копировании
- Если вы подозреваете, что список моментальных снимков неточен, попробуйте удалить кэш.
- Если восстановление на месте не удалось, убедитесь, что облако доступно и контракт активен, а затем попробуйте восстановить либо снимок, который вы пытались восстановить, либо снимок, сгенерированный автоматически перед восстановлением.
- Если на диске не хватает места для безопасного восстановления, попробуйте второй вариант восстановления — восстановить на месте