---
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;
  * Обновите список копий;
  * Откройте снимки;
  * Восстановите моментальный снимок обычным способом.

## Устранение неполадок при резервном копировании

  * Если вы подозреваете, что список моментальных снимков неточен, попробуйте обновить список копий.
  * Если восстановление на месте не удалось, убедитесь, что облако доступно и аккаунт не заблокирован, а затем попробуйте восстановить либо снимок, который вы пытались восстановить, либо снимок, сгенерированный автоматически перед восстановлением.
  * Если на диске не хватает места для безопасного восстановления, попробуйте второй вариант восстановления: восстановить на месте