Ранее уже обсуждали, для чего можно использовать VPS по невероятно низкой цене — всего 130 руб в месяц. 512 МБ RAM хватает для стабильной работы Linux (без графического интерфейса) и множества приложений, веб-хостинга, телеграмм-ботов, нетребовательных игровых серверов, а также для создания резервных копий файлов.
Существует множество облачных хостингов в интернете. Однако для хранения конфиденциальных данных предпочтительнее использовать личный сервер, который находится под вашим полным контролем.
Базовая конфигурация серверов RUVDS предусматривает диск объемом всего 10 ГБ, часть которого (несколько гигабайт) будет занята операционной системой. Поэтому такое решение не подходит для создания полноценной резервной копии данных. В этом случае можно подключить дополнительное пространство по цене 500 рублей за терабайт.
Если выбираете самый бюджетный сервер с 0,5 ГБ оперативной памяти без услуги «Большой Диск», его стоимость составит 130 рублей в месяц (или 104 рубля в месяц при оплате за год). Однако, если нужен сервер с диском на 1 ТБ, он будет оснащен уже 1 ГБ оперативной памяти и стоить 1005 рублей в месяц. За сервер с диском на 2 ТБ придется заплатить 1505 рублей в месяц. Максимально через конфигуратор можно выбрать основной диск на 600 ГБ и большой диск на 18 ТБ.
Для эффективного управления данными у RUVDS есть услуга «Облачное хранилище», которая включает три специально разработанные конфигурации для VPS с облачным хранилищем или файл-сервером. Если нет желания вручную указывать параметры для сервера, можно выбрать одну из них. После выбора автоматически перенаправит в конфигуратор, где будут установлены соответствующие тарифу параметры.
Среди доступных дистрибутивов выберем Debian 12. Стоит отметить, что на более дорогих тарифах линейки «Облачное хранилище» по умолчанию предлагается установка Windows вместо Linux. Выбор операционной системы не играет существенной роли для файлового хранилища, если только не планируется работа с продвинутыми файловыми системами, такими как ZFS (пока не портирована под Windows).
Оплатив выбранную конфигурацию, установка системы запустится автоматически.
После завершения установки можно сразу же подключиться к серверу. На указанный адрес электронной почты отправляется информация для доступа к серверу по SSH: IP-адрес, логин и пароль.
Теперь можно приступать к настройке резервного хранилища. Существует множество инструментов для этого, например: BorgBackup, bup, CAFS, dedupfs, LBFS, restic, Tahoe-LAFS, tarsnap, Venti, zsync и casync.
Подключаемся к серверу по SSH (можно использовать PuTTY). Вписываем IP-адрес сервера, логин, пароль и проверяем конфигурацию системы.
Как видно, все в порядке:
Установка restic
Теперь можно приступить к установке системы бэкапирования на сервер с ОС Debian 12 и клиент под управлением Windows 10. Для установки restic на сервер воспользуемся официальным репозиторием.
В случае с клиентом под управлением Windows процесс немного сложнее, так как необходимо установить консольный инсталлятор Scoop. Это осуществляется с использованием команд PowerShell.
И из него устанавливается restic:
В системе резервного копирования restic хранилище называется «репозиторий». Прежде чем создать репозиторий, необходимо настроить сервер для хранения данных. Можно использовать SFTP-сервер или REST-сервер. Второй вариант интереснее, т.к. взаимодействие с сервером идет через HTTP/HTTPS с использованием REST API, что обеспечивает более эффективную работу. Сам сервер доступен по ссылкам вида rest:http://user:passw@194.87.74.115:8000/
Чтобы создать репозиторий на сервере, выполняем команду: restic init -r /dir (где /dir — это путь к директории хранилища).
Это можно сделать по протоколу HTTP:
В документации указано, что возможен одновременный локальный и удаленный доступ.
Для создания резервных копий (снапшотов) на клиенте используется команда restic backup.
Давайте проверим степень сжатия и скорость работы, создав копию папки /docs, содержащей документы общим объемом около 1 ГБ. Папка содержит файлы различных форматов: .pdf, .rtf, .odt и .jpg. Общий размер папки на диске составляет 1 024 214 289 байт. Важно отметить, что файлы хранятся без сжатия, то есть в исходных форматах. Архивируем папку /docs в репозиторий /docs2.
Программа restic справилась с задачей сканирования архива размером 976 МиБ на предмет новых или измененных файлов и записи снапшота в репозиторий за 45 секунд. Особенно впечатляет скорость работы.
Поскольку архив документов регулярно пополняется новыми файлами, функция инкрементальных бэкапов становится крайне полезной. Давайте оценим ее эффективность. Для этого добавим три файла в папку /docs и повторим операцию.
Теперь процесс выполнился менее чем за секунду.
Полученные снапшоты можно сразу отправить на REST-сервер. Для этого достаточно указать его rest: URL вместо локальной папки. Процесс инкрементального бэкапа на удаленный сервер происходит почти мгновенно.
Также стоит отметить, что REST-сервер можно запустить на VPS в докер-контейнере. Это может быть наиболее простым способом его использования, так как не требуется отдельно устанавливать зависимости (для Go версии 1.18 и выше) и собирать его из исходников с использованием официального компилятора Go. Достаточно просто скачать и запустить контейнер:
По умолчанию будет включена аутентификация. Чтобы её отключить, необходимо изменить значение переменной DISABLE_AUTHENTICATION на любое другое.
REST-бэкенд демонстрирует более высокую производительность по сравнению с SFTP-бэкендом, особенно если отказаться от дополнительного шифрования и использовать простой HTTP-транспорт. Это связано с тем, что restic уже шифрует все передаваемые данные, поэтому применение HTTPS в основном требуется для аутентификации.
Даже при использовании HTTPS-соединения REST работает быстрее SFTP из-за особенностей последнего. В SFTP данные передаются фиксированными блоками по 32 КБ, и сервер должен подтверждать каждый пакет, что добавляет задержку на ожидание подтверждения.
REST-сервер обеспечивает безопасность благодаря режиму работы append-only, при котором резервные копии доступны только для чтения. Это делает невозможным случайное или намеренное удаление файлов злоумышленником, получившим удаленный доступ к VPS.
REST-сервер — это небольшая и простая программа на Go, которая может работать на серверах практически любой конфигурации, включая устройства начального уровня, такие как Raspberry Pi. Он отлично функционирует на минимальном VPS, стоимость которого составляет 130 р. в месяц.
Еще одно преимущество REST заключается в возможности доступа к нему из-за корпоративного файрвола, где разрешены только протоколы HTTP и HTTPS.
Выводы
Для резервного копирования на виртуальном частном сервере (VPS) наиболее подходящим решением представляется использование restic через REST-сервер. Этот инструмент может применяться не только для резервного копирования отдельной системы, но и позволяет автоматизировать создание резервных копий для тысяч виртуальных машин. Кроме того, restic поддерживает взаимодействие с облачными провайдерами.
Реклама. ООО «МТ ФИНАНС» ИНН 7706424050