--- title: "Резервное копирование" linkTitle: "Резервное копирование" date: 2023-07-31T weight: 2 description: > Резервное копирование сервисов, чтобы они не были потеряны --- ## Зачем нужно резервное копирование (backups) Когда ваш сервис сломался, но еще вчера он работал, у вас есть два варианта действия: * Потратить некоторое время на чтение журналов и отладку того, что пошло не так. Но сервис становится не рабочим и, возможно, некоторые данные безвозвратно будут потеряны. * Восстановить сервис до рабочего состояния и затем отлаживать в более спокойном темпе. Надеясь, что это была просто солнечная вспышка или сбой в Матрице. Второй вариант, экономящее нервы, регулярное, а еще лучше - автоматическое резервное копирование. Дополнительным преимуществом резервного копирования является возможность переноса сервиса с одной машины на другую с минимальными трудностями. Это полезно, к примеру, в случае пожара в центре обработки данных, если ваш серверный провайдер выкуплен другой корпорацией или если акционеры решили, что наконец-то пришло время получать больше прибыли. В данном документе рассмотрены основные условия и порядок использования подсистемы резервного копирования SelfPrivacy. ## Что такое моментальный снимок (snapshot)? SelfPrivacy не создает резервных копий всей машины. Вместо этого сохраняется состояние каждого сервиса. Снимком называется состояние файлов сервиса, сделанное в определенный момент времени. В интерфейсе можно увидеть, что снимок имеет идентификатор, службу, которую он резервирует, и дату создания. ## Когда происходит резервное копирование? Снимок создается в трех случаях: * По ручной команде пользователя * Автоматически через определенные промежутки времени, если включена функция автоматического резервного копирования * В качестве меры предосторожности, перед восстановлением сервиса ## Как хранятся данные? Файлы сервиса хранятся у провайдера в облаке на выбор пользователя. В настоящий момент мы поддерживаем Backblaze, но в дальнейшем планируется добавить и других провайдеров. Все данные сервиса шифруются локальным секретным ключом, который облако никогда не получит. Для передачи зашифрованных данных мы используем Restic. В таких облаках, как Backblaze, есть возможность запретить немедленное удаление данных. Приложение SelfPrivacy использует эту опцию, чтобы в случае взлома сервера данные не могли быть удалены. ## Список моментальных снимков При просмотре списка следует учитывать два фактора: * В целях повышения производительности список кэшируется. Если в нем отсутствуют некоторые снимки, которые, по вашему мнению, должны там быть, перезагрузите список, чтобы он обновился. * Если вы удалите некоторые снимки, они исчезнут из списка, но в течение некоторого ограниченного времени их можно будет восстановить с помощью облака. ## Восстановление моментального снимка При восстановлении моментального снимка сервис останавливается, а все его файлы восстанавливаются до состояния, в котором они находились на момент создания снимка. Это можно сделать двумя способами. Самый безопасный и используемый по умолчанию - загрузить снимок полностью, убедиться, что данные не повреждены, и заменить служебные файлы файлами из снимка. Недостатком этого способа является то, что для хранения снимка необходимо дополнительное место. Несколько более рискованный способ - перезаписать служебные файлы напрямую, без промежуточного хранения. В этом случае требуется меньше места, но если перенос пройдет неправильно, то в результате вы получите неработающий сервис. Чтобы несколько смягчить эту проблему, непосредственно перед восстановлением делается еще один снимок. Перед попыткой восстановления приложение проверяет наличие свободного места. ## Забывание моментального снимка Забывание делает снимок недоступным с сервера, но само удаление можно восстановить из облачного пользовательского интерфейса в течение некоторого времени (по умолчанию 30 дней для Backblaze). ## Автоматическое резервное копирование Если задать период автоматического резервного копирования, то резервное копирование всех сервисов будет производиться регулярно в соответствии с заданным периодом. Обратите внимание, что резервное копирование для каждого сервиса происходит независимо. Если резервное копирование сервисов A и B выполняется автоматически каждый день утром, а затем в полдень выполняется резервное копирование сервиса B вручную, то следующее резервное копирование сервиса A будет выполняться утром, как обычно, а резервное копирование сервиса B будет выполняться в полдень. Если значение равно нулю, то автоматическое резервное копирование будет отключено. ## Восстановление после удаления всех снимков * Перейдите непосредственно в интерфейс Backblaze/другого облака. * Отмотайте состояние ведра до события, предшествовавшего удалению. * Откройте приложение SelfPrivacy. * Аннулируйте кэш моментальных снимков. * Пролистайте снимки * Восстановите моментальный снимок обычным способом. ## Устранение неполадок при резервном копировании * Если вы подозреваете, что список моментальных снимков неточен, попробуйте удалить кэш. * Если восстановление на месте не удалось, убедитесь, что облако доступно и контракт активен, а затем попробуйте восстановить либо снимок, который вы пытались восстановить, либо снимок, сгенерированный автоматически перед восстановлением. * Если на диске не хватает места для безопасного восстановления, попробуйте второй вариант восстановления — восстановить на месте