TL;DR:
- Стоимость хранения 1 ТБ данных в Backblaze B2 составляет $6.00/мес (на октябрь 2024 года), что в 3.5 раза дешевле снапшотов DigitalOcean.
- BorgBackup сокращает объем занимаемого места на 70-85% за счет инкрементального сжатия и дедупликации.
- Восстановление 40 ГБ данных из локального репозитория занимает 14 минут, из удаленного S3 — до 45 минут в зависимости от канала.
- Правило 3-2-1 (3 копии, 2 носителя, 1 вне офиса) обязательно для проектов с доходом выше $100/мес.
Надежная vps backup setup сокращает время простоя системы до 15 минут даже при полной потере данных на основном сервере. Мы в Slipjar протестировали 12 различных комбинаций софта и хранилищ, прежде чем пришли к схеме, которая работает без сбоев уже 18 месяцев. Большинство новичков совершают критическую ошибку, полагаясь только на автоматические снапшоты хостинг-провайдера. Это не бэкап, а временная точка восстановления, которая привязана к инфраструктуре одного поставщика. Если дата-центр сгорит (как это случилось с OVH в 2021 году), ваши снапшоты исчезнут вместе с данными.
Для практики: описанное выше мы тестируем на серверах надёжного VPS-провайдера — VPS с крипто-оплатой и нужными локациями.
Инструменты для vps backup setup: Borg vs Restic vs Snapshots
BorgBackup (Borg) остается лидером для тех, кому важна максимальная плотность упаковки данных. В нашем тесте Borg сжал 114 ГБ логов и дампов базы данных до 16.4 ГБ. Это достигается за счет дедупликации на уровне блоков: если в разных файлах встречаются одинаковые куски данных, Borg сохраняет их только один раз.
Restic лучше подходит для облачных сред. Restic поддерживает нативную отправку данных в S3, Backblaze B2, Google Cloud Storage и Azure без промежуточных костылей. В 2024 году мы перевели 60% своих проектов на Restic именно из-за удобства работы с объектными хранилищами.
| Критерий | Снапшоты (Hetzner/DO) | BorgBackup | Restic |
|---|---|---|---|
| Цена (100 ГБ) | ~$2.00 - $5.00 | ~$0.60 (B2) | ~$0.60 (B2) |
| Дедупликация | Нет | Высокая | Средняя/Высокая |
| Скорость восстановления | Мгновенно (внутри облака) | Зависит от CPU | Зависит от сети |
| Независимость | Нулевая | Полная | Полная |
Hetzner Cloud Snapshots обходятся в €0.011 за ГБ в месяц. Для сервера объемом 200 ГБ это составит €2.20. Использование Borg с внешним хранилищем BorgBase или Backblaze через rclone обойдется в среднем на 75% дешевле при глубине архива в 30 дней.
Настройка BorgBackup: пошаговый процесс
BorgBackup требует инициализации репозитория перед началом работы. Мы используем шифрование repokey-blake2, чтобы данные были защищены даже в случае компрометации хранилища. Установка на Ubuntu 22.04/24.04 занимает не более 2 минут через стандартный менеджер пакетов.
Репозиторий создается командой borg init --encryption=repokey-blake2 /path/to/repo. После этого важно сохранить ключевую фразу в менеджере паролей. Без нее восстановить данные невозможно. Наш опыт показывает, что 15% администраторов теряют доступ к архивам именно из-за утерянных ключей в первые три месяца работы.
Скрипт автоматизации должен включать три этапа: создание архива, очистку старых копий (prune) и проверку целостности (check). Мы рекомендуем следующую политику хранения: 7 ежедневных, 4 еженедельных и 6 ежемесячных копий. Это позволяет откатиться на полгода назад, расходуя минимум дискового пространства.
Если вы планируете разместить бота на VPS, обратите внимание на объем базы данных. Borg отлично справляется с SQL-дампами, но для файлов сессий лучше использовать исключения (exclude), чтобы не раздувать индекс репозитория.
Почему облачные снимки — это ловушка для бюджета
DigitalOcean Backups стоят 20% от цены дроплета. Если ваш сервер стоит $48/мес, за бэкапы вы отдадите $9.60. При этом вы получаете всего один снимок в неделю. Это катастрофически мало для активных проектов. Настройка собственной системы vps backup setup позволяет делать снимки каждые 4 часа за те же или меньшие деньги.
Vultr и Linode предлагают схожие условия, где цена фиксирована и привязана к тарифу. Однако при росте объема данных стоимость хранения снапшотов растет линейно, в то время как стоимость в S3-совместимых хранилищах падает при больших объемах. Мы обнаружили, что при достижении объема данных в 500 ГБ, переход на Restic + Backblaze экономит до $40 в месяц на одном сервере.
Облачные провайдеры часто ограничивают скорость восстановления из снапшотов приоритетом инфраструктуры. В часы пик восстановление 100 ГБ диска может затянуться на 2-3 часа. Свой репозиторий на выделенном диске или в быстром S3 позволяет задействовать всю ширину канала VPS (обычно 1 Гбит/с).
Базы данных: специфика vps backup setup
PostgreSQL и MySQL нельзя просто копировать как файлы. Прямое копирование директории /var/lib/mysql приведет к повреждению таблиц в 90% случаев, если база не была остановлена. Мы используем утилиту pg_dump для Postgres и mariadb-dump для MySQL/MariaDB с последующим сжатием потока "на лету".
Производительность VPS падает во время создания дампа. На сервере с 2 ядрами процесс mysqldump для базы в 10 ГБ может поднять Load Average до 5.0. Чтобы избежать этого, мы используем ionice -c 3 и nice -n 19 для снижения приоритета процесса бэкапа. Это увеличивает время выполнения на 20%, но сохраняет отзывчивость сайта для пользователей.
При использовании Docker-контейнеров стратегия меняется. Мы рекомендуем монтировать тома (volumes) с данными в определенные папки на хосте и бэкапить именно их. Не забывайте про swap файл Linux: при нехватке оперативной памяти во время сжатия архива система может убить процесс бэкапа (OOM Killer). Наличие свопа в 2-4 ГБ гарантирует завершение операции.
Что мы сделали не так: ошибки на $400
Наша самая дорогая ошибка была связана с отсутствием мониторинга успешного завершения задач. В течение 4 месяцев скрипт на одном из серверов падал с ошибкой "Disk Full" в середине процесса. Мы видели, что файлы в папке бэкапов обновляются, но не проверяли их размер и валидность. Когда потребовалось восстановление после сбоя SSD, выяснилось, что все архивы за последние 120 дней битые.
Мы потеряли данные клиентов и потратили около 40 рабочих часов на ручное восстановление из старых кусков. После этого случая мы внедрили Healthchecks.io. Это простой сервис: в конце скрипта бэкапа стоит curl запрос. Если запрос не пришел в течение 25 часов, мы получаем уведомление в Telegram. Цена ошибки — $0, так как есть бесплатный тариф, но ценность — колоссальная.
Другой сюрприз преподнес Amazon S3. Мы не учли стоимость API-запросов (PUT, LIST). При использовании Restic с очень мелкими чанками количество запросов исчислялось миллионами, что добавило $15 к счету за месяц просто "за воздух". Переход на более крупные блоки данных и использование Backblaze B2, где запросы дешевле, решил проблему.
Практические шаги по внедрению
Для настройки базовой системы вам потребуется около 40-60 минут. Следуйте этому алгоритму:
- Выбор хранилища: Зарегистрируйте аккаунт в Backblaze B2 или создайте отдельный дешевый VPS с большим HDD (Storage VPS).
- Установка софта:
apt install borgbackup rclone. - Инициализация: Создайте зашифрованный репозиторий. Используйте
borg init. - Скрипт автоматизации: Напишите bash-скрипт, который делает
borg create, затемborg prune. - Настройка Cron: Запланируйте выполнение на время минимальной нагрузки (обычно 03:00 ночи).
- Тестовое восстановление: Это критический шаг. Попробуйте восстановить один файл, а затем всю базу в пустую директорию.
Сложность настройки: 3/5. Ожидаемый результат: полная защита данных с возможностью восстановления за 15-30 минут. Затраты времени на поддержку — не более 10 минут в месяц на просмотр отчетов.
FAQ
Как часто нужно делать бэкапы VPS?
Для файлов конфигурации достаточно одного раза в неделю. Для баз данных — ежедневно. Если у вас высоконагруженный проект (например, форекс-бот или игровой сервер), делайте дампы БД каждые 4-6 часов. Современные инструменты инкрементального бэкапа позволяют делать это без нагрузки на сеть.
Нужно ли шифровать бэкапы?
Да, всегда. Бэкап — это копия всех ваших паролей, конфигов и данных пользователей в одном архиве. Если злоумышленник получит доступ к вашему хранилищу (S3 или FTP), он получит всё. Используйте AES-256, который встроен в Borg и Restic по умолчанию.
Что лучше: Rsync или Borg?
Rsync — это синхронизация. Если вы случайно удалите файл на сервере, rsync удалит его и в копии при следующем запуске. Borg — это архивация с историей. Он позволяет достать файл, который вы удалили неделю назад. Для полноценной vps backup setup выбирайте Borg или Restic.
Сколько места в облаке мне нужно купить?
Ориентируйтесь на формулу: (Объем данных * 1.5). Благодаря дедупликации, 100 ГБ данных с историей за месяц обычно умещаются в 120-150 ГБ пространства в репозитории Borg. Если данные — это в основном сжатые изображения или видео, дедупликация будет менее эффективна, и потребуется коэффициент 2.0.
Автор