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