Куда бэкапят бэкапы?
Мы привыкли считать, что резервная копия решает проблему сохранности данных. Но у резервной копии тоже есть носитель, владелец и срок жизни. И всё это однажды может закончиться.
Представьте, что у вас дома стоит NAS. Хороший, с несколькими дисками, RAID, мониторингом состояния и автоматическим резервным копированием компьютеров всей семьи. Фотографии за двадцать лет, документы, домашнее видео, рабочие проекты — всё аккуратно разложено по папкам.
Один диск выходит из строя — ничего страшного. Меняете диск, массив восстанавливается. Собственно, ради этого всё и затевалось.
Но однажды случается что-то, от чего RAID не защищает. Например, скачок напряжения убивает весь NAS. Или кто-то случайно удаляет папку, а система послушно синхронизирует удаление. Или в квартиру попросту забираются воры.
И вот тут возникает неприятный вопрос: а где резервная копия самого NAS?
Три копии, два носителя, одна катастрофа
Есть старое правило резервного копирования — 3-2-1. Три копии данных, два разных типа носителей, одна копия за пределами основного места хранения.
Правило хорошее. Особенно последняя его часть.
Потому что три копии, лежащие в одной квартире, прекрасно защищают от выхода из строя отдельного диска, но совершенно бесполезны при пожаре.
Можно, конечно, поставить второй NAS у родителей. Или договориться с другом, что вы будете хранить резервные копии друг друга. Можно даже периодически относить внешний диск в банковскую ячейку.
Только у этих решений есть одна общая проблема: они требуют дисциплины и обслуживания.
С домашним NAS и так приходится возиться. А теперь у нас появляется ещё один NAS, за которым тоже нужно следить.
В какой-то момент проще заплатить за облачное хранилище.
Облако — это чей-то чужой компьютер
У облачных хранилищ есть замечательное свойство: они снимают с пользователя заботу об оборудовании. Не нужно менять диски, проверять SMART, разбираться с электропитанием.
Но сами диски никуда не исчезают. Просто теперь они принадлежат кому-то другому.
У крупных провайдеров есть резервирование оборудования, географически разнесённые дата-центры и профессиональные инженеры. Вероятность потери данных из-за обычной аппаратной неисправности у них чрезвычайно мала.
Однако физическая сохранность данных — лишь часть задачи.
Есть ещё доступность учётной записи, политика провайдера, ошибки биллинга, блокировки и, наконец, судьба самой компании. А если файлы передаются провайдеру без собственного шифрования, возникает и вопрос конфиденциальности.
Разумеется, это не означает, что облака ненадёжны. Скорее наоборот: для большинства людей облако значительно надёжнее единственного внешнего диска, лежащего в ящике стола.
Но возникает интересная мысль: обязательно ли для надёжного хранения данных нужен единый владелец всей инфраструктуры?
А что, если хранить у всех понемногу?
В мире огромное количество свободного дискового пространства. Домашние NAS, мини-серверы, компьютеры, которые работают круглосуточно. Часто значительная часть их ёмкости просто простаивает.
Идея использовать эти ресурсы для распределённого хранения не нова. Подобные системы существуют давно, но обычно предполагают довольно сложную инфраструктуру либо экономику, построенную вокруг криптовалют.
Есть и другой подход — обмен свободным пространством между обычными пользователями.
Например, проект folder.host предлагает хранить файлы не в одном облачном дата-центре, а на устройствах независимых участников сети.
Принцип работы довольно любопытный.
Прежде чем покинуть ваш компьютер, файл шифруется. Затем он кодируется в четырнадцать фрагментов, которые размещаются на разных узлах хранения.
При этом для восстановления исходного файла достаточно любых восьми фрагментов из четырнадцати.
Это не четырнадцать полных копий. Используется избыточное кодирование, благодаря которому можно восстановить исходные данные даже при потере части фрагментов.
Иными словами, шесть из четырнадцати устройств могут одновременно оказаться недоступными, а файл всё равно удастся прочитать.
Если какой-то узел окончательно исчезает, система должна восстановить недостающую избыточность, пока доступно достаточно оставшихся фрагментов.
Конечно, здесь важны не только математические свойства кодирования, но и реальная работа системы: насколько быстро обнаруживаются отказы, как распределяются фрагменты и нет ли между узлами общих причин отказа.
Однако сам подход позволяет сделать необычную вещь: использовать ненадёжные по отдельности домашние устройства как компоненты потенциально весьма надёжного хранилища.
Надёжность без надёжных компонентов
Это, пожалуй, самая интересная часть всей идеи.
Обычный домашний NAS нельзя сравнивать с профессиональным дата-центром. У него могут отключить электричество, сломаться интернет, умереть блок питания. Владелец может просто решить, что сервер ему больше не нужен.
Но если данные распределены между множеством независимых устройств, отдельные отказы перестают быть катастрофой.
Более того, у домашних устройств в разных городах и странах могут быть менее связанные причины отказов, чем у серверов в одном дата-центре.
Наводнение в одном городе не затронет устройства в другом. Авария у одного интернет-провайдера не отключит остальных. Ошибка электрика в одной квартире не повлияет на соседние.
Здесь, впрочем, есть существенная оговорка. Независимость отказов нельзя просто объявить. Если большая часть узлов находится у одного провайдера, в одном регионе или использует одинаковое оборудование, общие риски никуда не исчезают.
Поэтому для распределённого хранилища грамотное размещение фрагментов и постоянное восстановление избыточности не менее важны, чем само кодирование.
А как же конфиденциальность?
У идеи хранить свои файлы на компьютерах незнакомых людей есть очевидная психологическая проблема.
Насколько приятно осознавать, что семейный фотоархив физически лежит на чьём-то NAS?
Здесь и пригодится шифрование на стороне клиента.
В архитектуре folder.host файлы шифруются до отправки в сеть. Узлы хранения не получают ключей и располагают только закодированными зашифрованными фрагментами.
Сам сервис, согласно его описанию, тоже не хранит ключи расшифрования.
Это означает, что оператор хранилища не должен иметь технической возможности открыть пользовательские файлы.
Но у такого решения есть оборотная сторона: если потерять пароль восстановления и все устройства с ключами, обратиться в поддержку с просьбой вернуть доступ не получится.
И это уже не особенность конкретного сервиса, а фундаментальное свойство хранения, при котором ключи контролирует только пользователь.
Можно ли вообще обойтись без платы за облако?
Ещё одно интересное следствие распределённой архитектуры — возможность обмениваться дисковым пространством.
В folder.host владелец NAS может выделить часть свободной ёмкости другим участникам сети и получить взамен место для собственных файлов.
В предложенной модели обмена за каждый предоставленный терабайт начисляется 250 ГБ пространства для своих данных плюс дополнительные 50 ГБ. Минимальный объём участия — 500 ГБ.
Почему отдавать приходится больше, чем получаешь?
Потому что избыточность не бывает бесплатной. Для того чтобы файл пережил отказ нескольких узлов, его закодированные фрагменты должны занимать больше места, чем исходные данные.
Вдобавок необходим запас для перераспределения данных, обслуживания сети и других накладных расходов.
Получается довольно необычная экономика: вместо того чтобы платить деньгами за каждый гигабайт, можно оплачивать хранение частью собственного незанятого диска.
Впрочем, обмен пространством имеет смысл прежде всего для тех, у кого NAS уже есть и работает постоянно. Покупать отдельное устройство исключительно ради бесплатных гигабайтов вряд ли разумно.
Для остальных остаются обычные платные тарифы.
А как правильно организовать резервное копирование дома?
Вернёмся к нашему NAS. Допустим, на нём лежат семейные фотографии, документы и резервные копии компьютеров. Всего пара терабайт информации, потерять которую совершенно не хочется.
Построить довольно надёжную систему резервного копирования можно без профессионального администратора и второго домашнего сервера.
Главное — разделить три задачи: быстрое восстановление, защита от случайных изменений и защита от физической потери оборудования.
Первая линия: локальная копия
Компьютеры и телефоны регулярно копируют данные на домашний NAS.
Для компьютеров можно использовать Time Machine, встроенные средства Windows или специальные программы резервного копирования. Фотографии со смартфонов тоже желательно автоматически переносить на домашнее хранилище.
Периодичность зависит от характера данных. Рабочие документы имеет смысл копировать каждый час, фотографии — хотя бы ежедневно.
Преимущество локальной копии — скорость. Если случайно удалили документ или сломался SSD ноутбука, не придётся скачивать сотни гигабайт через интернет.
Но NAS вместе с компьютерами находится в одном доме. Значит, от пожара, кражи и некоторых других неприятностей он не защищает.
Вторая линия: история изменений
Резервные копии должны позволять вернуться не только к последней версии файла.
Представим, что вы случайно испортили документ, а заметили это через неделю. Всё это время автоматическая синхронизация исправно копировала повреждённый файл.
Поэтому полезно хранить несколько поколений резервных копий.
Например:
- Почасовые версии за последние 24 часа.
- Ежедневные версии за последний месяц.
- Еженедельные версии за последние три месяца.
- Ежемесячные версии за последний год.
Для этого подойдут файловые снимки NAS или специализированное ПО. Важно, чтобы история изменений не уничтожалась простой синхронизацией, а хотя бы часть копий была защищена от изменения и удаления с обычной учётной записи.
Это также помогает при атаке шифровальщика: даже если текущие файлы оказались зашифрованы, остаётся возможность вернуться к состоянию до заражения.
Третья линия: удалённая копия
Теперь самое важное. Содержимое NAS, включая необходимые резервные копии, должно регулярно отправляться за пределы дома.
Не обязательно копировать вообще всё. Например, коллекцию фильмов, которую нетрудно восстановить, можно оставить только локально. А семейные фотографии, документы, собственные проекты и другие невосполнимые данные — обязательно дублировать.
Удалённой площадкой может быть коммерческое облако, NAS родственников или распределённое хранилище вроде folder.host.
Здесь полезно соблюдать несколько правил.
Во-первых, удалённая копия не должна автоматически исчезать вместе с локальной. Если вы удалили папку на NAS, это ещё не повод немедленно стирать все её резервные версии.
Во-вторых, удалённое хранилище должно быть независимо от локального. Отдельные учётные данные и ограниченные права доступа помогут избежать ситуации, когда одна ошибка или атака уничтожает все копии.
В-третьих, копирование должно происходить автоматически. Любой процесс, требующий регулярного участия человека, рано или поздно перестанет выполняться.
Для большинства домашних архивов ежедневного удалённого бэкапа достаточно. Если речь идёт о рабочих данных, можно запускать его значительно чаще.
Четвёртая линия: проверка восстановления
И вот об этом почему-то забывают чаще всего.
Успешное сообщение «Резервное копирование завершено» ещё не означает, что файлы удастся восстановить.
Поэтому хотя бы раз в месяц стоит выбирать несколько случайных файлов из удалённого архива, восстанавливать их в отдельную папку и проверять целостность.
Раз в несколько месяцев полезно проводить более серьёзную проверку: например, восстановить полный архив одного компьютера или крупную папку с фотографиями.
И обязательно проверить, что у вас сохранились необходимые ключи шифрования и средства доступа.
Идеально, если вы сможете восстановить данные на совершенно новом компьютере, не имея доступа к старому NAS.
Это и есть настоящая проверка резервной копии.
Как выглядит схема целиком
Получается вполне понятная архитектура:
Компьютеры и телефоны → домашний NAS → удалённое хранилище.
На NAS сохраняются версии файлов, а удалённая копия имеет собственную историю изменений и независимые средства доступа.
Для особенно важных данных можно добавить ещё одну периодически обновляемую копию на отключаемом внешнем диске.
Такая схема защищает от нескольких совершенно разных сценариев: поломки диска, случайного удаления, повреждения файлов, шифровальщика и физической потери домашнего оборудования.
Разумеется, ни одна схема не гарантирует абсолютную сохранность. Но вероятность одновременно потерять все действительно независимые копии существенно ниже, чем вероятность поломки одного устройства.
А где подвох?
Распределённое хранение — не волшебная технология, отменяющая все риски.
Во-первых, молодой сети ещё предстоит доказать свою устойчивость на практике. Математическая способность восстановить файл из восьми фрагментов не гарантирует, что в любой момент эти восемь фрагментов действительно доступны.
Во-вторых, децентрализация хранения не обязательно означает полную независимость от оператора сервиса. Управление учётными записями, подключением новых устройств и работой программного обеспечения может оставаться централизованным.
В-третьих, даже исключительно надёжное хранилище не заменяет полноценную стратегию резервного копирования.
Если пользователь удалил нужный файл, а программа автоматически удалила все его копии, никакая избыточность не поможет. От случайного удаления и шифровальщиков защищают история версий, неизменяемые снимки и возможность восстановления на определённую дату.
И наконец, у резервных копий есть ещё одна неприятная особенность: они могут годами создаваться совершенно исправно, а в момент необходимости выяснится, что восстановить из них ничего нельзя.
Поэтому резервное копирование без периодической проверки восстановления — это скорее надежда, чем гарантия.
Так куда всё-таки бэкапить бэкапы?
Пожалуй, правильный ответ — туда, где они не погибнут вместе с оригиналом.
Неважно, будет ли это коммерческое облако, второй NAS в другом городе или распределённая сеть хранения. Важно, чтобы резервная копия имела независимую судьбу.
Для домашнего архива вполне разумна комбинация локального NAS, позволяющего быстро восстановить файлы, и удалённой копии, защищающей от катастрофы на основном месте хранения. Для особенно ценных данных стоит предусмотреть и отдельные неизменяемые версии.
А появление проектов вроде folder.host интересно тем, что они предлагают ещё один вариант ответа на старый вопрос.
Раньше мы строили надёжные системы хранения из надёжных серверов, профессиональных дата-центров и дорогостоящей инфраструктуры.
Теперь можно попробовать строить их из обычных домашних устройств, каждое из которых в отдельности ненадёжно.
Идея красивая. Насколько хорошо она работает в реальном мире, покажут время, масштаб сети и практика восстановления данных.