У меня есть ценные цифровые данные, которые невозможно воспроизвести снова и соответственно нельзя потерять. Это, например:
- воспоминания из жизни в виде фотографий и видео
- исходный код проектов, инструментов и конфигурация, которые я создаю для собственного использования (в том числе и этот сайт)
- персональная база знаний (а если точнее, то obsidian vault)
Все эти и другие данные у меня хранятся на домашнем сетевом хранилище (NAS). Для целей сохранности данных мне хотелось иметь хранилище за пределами моего дома, на случай микро- и макро- катострофических ситуаций. Что бы с меньшим стрессом переживать потенциальную поломку NAS решения ввиду внутренних факторов (отказ из-за перегрева/возраста) или внешних (пожар, затопление). Дома у меня размещен Synology DS224+. Внутри всех Synology есть уже встроенное ПО Hyper Backup. Собственно через него я и решил настроить резервное копирование. А в качестве внешнего хранилища решил использовать инфраструктуру Yandex Object Storage т.к. давно знаком и активно пользуюсь данным облаком. Данная статья фокусируется на настройки бэкапа в связке Synology → Яндекс.Облако, однако те же принципы и общий процесс применим для всех других поставщиков S3 хранилищ.
Создаём сервисную учётку
Процесс создания сервисной учётной записи отлично описан в официально документации и учитывает все возможные способы.
Убедитесь, что у учётной записи обязательно должны быть как минимум права storage.editor
и storage.viewer
на каталог или эквиваленты описанные в документации объектного хранилища в секции Сервисные роли.
Нам обязательны права на весь каталог в силу специфики процесса создания S3 backup target’а внутри Hyper Backup.
Т.к. пользовательский интерфейс обязательно требует выбора бакета из выпадающего списка.
Создаём бакет
Создание бакета так же отлично описано в официальной документации. От себя добавлю лишь рекомендации:
- имя бакета рекомендую делать чем-то рандомным, для того, что бы снизить вектор атаки от хакеров (бакет
my-personal-backup
гораздо более интересная цель чем например3c0c40063f8b18969a73d5270b4ef550
) - убедитесь, что бакет исключительно приватный
- убедитесь, что вы не делаете шифрование на уровне бакета, т.к. шифрование нам обеспечит сам Hyper Backup
- не ставьте ограничений на занимаемый размер объектов в бакете, лучше регулировать размер бэкапов через настройки бэкапа и списка папок, для которых делаем резервное копирование
Настройка Synology
Wizard настройки бэкапа в Hyper Backup сделан вполне интуитивно. Ключевое, что нам необходимо выбрать это выбрать “S3 Storage” на этапе “Backup Destination” и правильно ввести настройки соединения.
Настройки соединения:
- S3 Server: Custom Server URL
- Server address: storage.yandexcloud.net
- Signature Version: v4
- Request Style: Path-Style
- Access Key: Идентификатор ключа сервисного аккаунта
- Secret Key: секретный ключ сервисного аккаунта
- Bucket name: выбираем необходимый из выпадающего списка
- Directory: прописываем желаемое название “папки” в бакете для нашего бэкапа (например: “msk1_nas1_critical”, “msk1_nas1_photos”)
Далее идём просто по мастеру настройки и обязательно устанавливайте шифрование данных в мастере настройки.
Недостатки решения
Synology Hyper Backup при записи объектов пишет их с классом хранения STANDARD
.
В случае с Yandex Object Storage и их тарифной сеткой это двукратно дороже.
Т.к. можно использовать “Холодное хранилище” за 2 раза меньшую стоимость.
Я уверен, что можно некими “костылями” добиться установки класса хранения объектов как COLD
однако это
Заключение
Резервное копирование в связке Synology Hyper Backup и Yandex Object Storage дало мне внешнюю копию данных. Эта копия защищает мои фотографии, исходники и персональную базу знаний от потери, а меня защищает от лишних нервов. Процесс “от и до” занял у меня порядка 10 минут. В теории, благодаря поддержке S3-совместимых хранилищ в будущем я смогу при необходимости перевезти бэкапы к любому поддерживающем провайдеру.