bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Настройка BorgBackup на VPS для шифрованного и дедуплицированного бэкапирования

calendar_month Aug 21, 2026 schedule 18 мин. чтения visibility 13 просмотров
Настройка BorgBackup на VPS для шифрованного и дедуплицированного бэкапирования
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Настройка BorgBackup на VPS для шифрованного и дедуплицированного бэкапирования

TL;DR

В этом подробном гайде мы пошагово настроим систему резервного копирования BorgBackup на вашем VPS-сервере. Вы узнаете, как создать безопасные, шифрованные и дедуплицированные бэкапы важных данных, а также автоматизировать процесс и обеспечить их надежное хранение. Это решение идеально подходит для защиты конфигураций, баз данных, пользовательских файлов и других критически важных данных с минимальным потреблением дискового пространства и пропускной способности.

  • Настройка BorgBackup для создания шифрованных и дедуплицированных резервных копий.
  • Использование SSH для безопасного доступа к удаленному репозиторию Borg.
  • Автоматизация процесса бэкапирования с помощью cron-скриптов.
  • Реализация политик хранения бэкапов (pruning) для экономии места.
  • Проверка целостности и восстановление данных из резервных копий.
  • Обеспечение безопасности сервера и данных на всех этапах.

Что мы настраиваем и зачем

Схема: Что мы настраиваем и зачем
Схема: Что мы настраиваем и зачем

Настройка надежной системы резервного копирования — это краеугольный камень любой инфраструктуры, будь то небольшой личный проект или сложный SaaS-сервис. В данном туториале мы сосредоточимся на BorgBackup — мощном инструменте для создания шифрованных и дедуплицированных резервных копий. Он позволяет эффективно хранить множество версий данных, занимая при этом значительно меньше места, чем традиционные методы, благодаря умной дедупликации на уровне блоков.

В итоге вы получите полностью автоматизированную систему, которая регулярно создает бэкапы ваших данных (файлов, баз данных, конфигураций), хранит их в зашифрованном виде и позволяет легко восстанавливать в случае непредвиденных ситуаций. Это критически важно для защиты от потери данных из-за ошибок, сбоев оборудования, кибератак или случайного удаления.

Существуют альтернативы, такие как облачные сервисы (например, AWS Backup, Google Cloud Backup) или управляемые решения от хостинг-провайдеров. Однако self-hosted решение на VPS дает вам полный контроль над данными, их шифрованием, местом хранения и стоимостью. Для многих разработчиков, стартаперов и криптоэнтузиастов, ценящих приватность и контроль, это предпочтительный выбор. Вы не зависите от тарифных планов сторонних сервисов, можете настраивать любые политики хранения и быть уверенными в безопасности своих данных, поскольку ключи шифрования находятся только у вас.

Какой VPS-конфиг нужен под эту задачу

Схема: Какой VPS-конфиг нужен под эту задачу
Схема: Какой VPS-конфиг нужен под эту задачу

Требования к VPS для BorgBackup относительно невысоки, если он используется как источник бэкапов (клиент) или как хранилище для небольших объемов данных. Однако, если вы планируете хранить на нем значительные объемы данных или использовать его как центральный репозиторий для нескольких серверов, требования возрастают.

Минимальные требования для клиента BorgBackup (сервера, с которого делаются бэкапы):

  • CPU: 1 ядро (любой современный x86-64 процессор). Процесс создания бэкапа может быть CPU-интенсивным из-за шифрования и дедупликации, но это обычно кратковременные пики.
  • RAM: 1 GB. BorgBackup может потреблять до нескольких сотен мегабайт RAM во время операций создания и проверки бэкапов, особенно если обрабатываются очень большие файлы или репозитории.
  • Диск: 20-40 GB NVMe/SSD. Достаточно для операционной системы, самого BorgBackup и временных файлов. Основные данные будут храниться в удаленном репозитории.
  • Сеть: 100 Mbps. Для передачи данных на удаленный репозиторий. Скорость может быть важна, если бэкапится большой объем данных.

Минимальные требования для сервера-репозитория BorgBackup (сервера, где хранятся бэкапы):

  • CPU: 1-2 ядра. Для обработки запросов от клиентов, дедупликации и шифрования/дешифрования.
  • RAM: 2-4 GB. Borg при работе с репозиторием активно использует оперативную память для кеширования индексов. Чем больше репозиторий, тем больше RAM может потребоваться. Для репозиториев в несколько терабайт может потребоваться 8 GB и более.
  • Диск: От 100 GB до нескольких TB NVMe/SSD/HDD. Объем диска полностью зависит от объема данных, которые вы планируете бэкапить, и срока их хранения. Для оптимальной производительности SSD предпочтительнее для индексов Borg, но сами данные могут храниться на HDD. Для большинства задач, связанных с бэкапированием веб-серверов или небольших баз данных, 200-500 GB будет достаточно.
  • Сеть: 100 Mbps - 1 Gbps. Высокая пропускная способность сети критична для быстрого создания и восстановления бэкапов, особенно если у вас много клиентов или большие объемы данных.

Для типичной задачи шифрованного и дедуплицированного бэкапирования одного-двух VPS с общим объемом данных до 500 GB, можно взять VPS с 2 vCPU, 4 GB RAM, 200 GB NVMe SSD и каналом 1 Gbps. Это обеспечит достаточную производительность для операций Borg и комфортную работу с репозиторием.

Когда нужен dedicated сервер вместо VPS: Если вы планируете хранить десятки терабайт данных, обслуживать десятки клиентов, или вам нужна максимальная производительность дисковой подсистемы (например, для бэкапирования очень больших баз данных с интенсивным I/O), то лучше рассмотреть dedicated сервер. Он предлагает гарантированные ресурсы (CPU, RAM, диск) без "соседства" с другими пользователями, что критично для стабильной производительности при высоких нагрузках.

Локация: на что влияет: Расположение VPS-сервера для бэкапов имеет значение. Желательно, чтобы он находился в другом дата-центре или даже регионе по сравнению с основным сервером, который вы бэкапите. Это защитит вас от региональных сбоев (например, отключение электричества в одном дата-центре). При этом стоит учитывать сетевую задержку (ping) между вашими серверами – чем она меньше, тем быстрее будут выполняться операции бэкапирования.

Подготовка сервера

Схема: Подготовка сервера
Схема: Подготовка сервера

Перед установкой BorgBackup необходимо выполнить базовую подготовку сервера. Мы предполагаем, что вы используете чистый дистрибутив Ubuntu Server 24.04 LTS (актуальная версия на 2026 год). Все команды выполняются от имени пользователя root или с использованием sudo.

1. Обновление системы

Первым делом обновим все пакеты до актуальных версий. Это обеспечит стабильность и безопасность.


sudo apt update && sudo apt upgrade -y # Обновление списка пакетов и их обновление
sudo apt autoremove -y # Удаление ненужных пакетов

2. Создание нового пользователя и настройка SSH-ключей

Работа под root небезопасна. Создадим нового пользователя с ограниченными правами и настроим вход по SSH-ключам.


sudo adduser sysadmin # Создание нового пользователя "sysadmin"
sudo usermod -aG sudo sysadmin # Добавление пользователя в группу sudo
sudo mkdir /home/sysadmin/.ssh # Создание директории для SSH-ключей
sudo chmod 700 /home/sysadmin/.ssh # Установка корректных прав
sudo cp ~/.ssh/authorized_keys /home/sysadmin/.ssh/ # Копирование вашего публичного SSH-ключа
sudo chown -R sysadmin:sysadmin /home/sysadmin/.ssh # Установка владельца для директории и ключей

После этого выйдите из root и войдите под новым пользователем sysadmin. После успешного входа, отключите вход по паролю для root и по паролю вообще в /etc/ssh/sshd_config.


sudo nano /etc/ssh/sshd_config # Открытие конфигурационного файла SSH

Найдите и измените следующие строки:


PermitRootLogin no # Запретить вход для root
PasswordAuthentication no # Запретить вход по паролю
ChallengeResponseAuthentication no # Отключить аутентификацию по запросу
UsePAM no # Отключить PAM для SSH

Сохраните изменения (Ctrl+X, Y, Enter) и перезапустите SSH-сервис:


sudo systemctl restart sshd # Перезапуск SSH-сервиса

3. Настройка файрвола (UFW)

Включим простой, но эффективный файрвол UFW для ограничения доступа к портам.


sudo apt install ufw -y # Установка UFW
sudo ufw allow OpenSSH # Разрешить SSH-соединения
sudo ufw enable # Включение файрвола (подтвердите 'y')
sudo ufw status # Проверка статуса файрвола

Если BorgBackup будет использоваться для удаленного репозитория, вам может потребоваться открыть другие порты, но по умолчанию он работает через SSH, так что OpenSSH будет достаточно.

4. Установка Fail2ban (защита от брутфорса)

Fail2ban будет блокировать IP-адреса, которые пытаются подобрать пароли к вашему серверу.


sudo apt install fail2ban -y # Установка Fail2ban
sudo systemctl enable fail2ban # Включение автозапуска сервиса
sudo systemctl start fail2ban # Запуск сервиса
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Создание локальной копии конфига
sudo nano /etc/fail2ban/jail.local # Редактирование конфига для настройки

В файле jail.local убедитесь, что секция [sshd] активна (enabled = true) и настройте параметры по своему усмотрению (например, bantime, findtime, maxretry). По умолчанию настройки вполне адекватны.


sudo systemctl restart fail2ban # Перезапуск Fail2ban для применения изменений
sudo fail2ban-client status sshd # Проверка статуса Fail2ban для SSH

Теперь ваш сервер готов к установке BorgBackup.

Установка ПО — пошагово

Схема: Установка ПО — пошагово
Схема: Установка ПО — пошагово

Мы будем устанавливать BorgBackup на двух серверах: на "клиенте" (сервер, с которого будут делаться бэкапы) и на "репозитории" (сервер, где будут храниться бэкапы). Процесс установки практически идентичен.

1. Установка BorgBackup

BorgBackup доступен в официальных репозиториях Ubuntu. Предполагаем использование версии BorgBackup 1.2.x или 1.3.x, которая будет актуальной и стабильной в 2026 году.


# Установка BorgBackup на обоих серверах (клиент и репозиторий)
sudo apt update # Обновление списка пакетов
sudo apt install borgbackup -y # Установка пакета BorgBackup

Проверим установленную версию BorgBackup:


borg --version # Вывод версии BorgBackup

Ожидаемый вывод будет примерно таким: borg 1.2.x или borg 1.3.x.

2. Создание отдельного пользователя для Borg на сервере-репозитории

Для повышения безопасности, на сервере-репозитории создадим специального пользователя borguser, который будет иметь доступ только к репозиторию Borg и не сможет выполнять другие команды. Это важный шаг для минимизации рисков, если злоумышленник получит доступ к ключам SSH клиента.


# На сервере-репозитории
sudo adduser borguser --shell /usr/bin/borg-shell # Создание пользователя с ограниченной оболочкой Borg
sudo mkdir /home/borguser/backups # Создание директории для хранения репозиториев
sudo chown borguser:borguser /home/borguser/backups # Установка владельца для директории

Оболочка borg-shell (или borg-serve) позволяет пользователю выполнять только команды Borg, что значительно повышает безопасность. Убедитесь, что /usr/bin/borg-shell существует. Если нет, BorgBackup обычно предоставляет borg-serve, который можно использовать с SSH command= опцией.

3. Настройка SSH-доступа для Borg на сервере-репозитории

Нам потребуется настроить SSH-ключи для пользователя borguser на сервере-репозитории. Клиент будет использовать свой приватный ключ для аутентификации.


# На сервере-репозитории, от имени пользователя sysadmin (или root)
sudo mkdir /home/borguser/.ssh # Создание директории для SSH-ключей
sudo chmod 700 /home/borguser/.ssh # Установка правильных прав
sudo touch /home/borguser/.ssh/authorized_keys # Создание файла authorized_keys
sudo chown borguser:borguser /home/borguser/.ssh/authorized_keys # Установка владельца
sudo nano /home/borguser/.ssh/authorized_keys # Редактирование файла

В файл /home/borguser/.ssh/authorized_keys добавьте публичный SSH-ключ вашего клиента. Важно добавить опцию command= для ограничения команд, которые может выполнять клиент. Замените ваш_публичный_ключ на реальный ключ клиента.


command="borg serve --restrict-to-path /home/borguser/backups",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICL... ваш_публичный_ключ_клиента

Эта строка гарантирует, что пользователь borguser может выполнять только команду borg serve и только внутри директории /home/borguser/backups. Опции no-port-forwarding и другие еще больше повышают безопасность.

4. Инициализация Borg-репозитория на сервере-репозитории

Теперь, когда все готово, можно инициализировать сам репозиторий Borg. Это можно сделать с клиентского сервера или напрямую на сервере-репозитории, используя SSH-доступ.


# На клиентском сервере, от имени пользователя sysadmin
# Инициализация репозитория (замените IP/домен_репозитория на ваш)
borg init --encryption=repokey-blake2 --make-parent-dirs ssh://borguser@ваш_ip_или_домен_репозитория:22/home/borguser/backups/my_server_repo # Инициализация репозитория с шифрованием repokey-blake2

Вам будет предложено ввести и подтвердить пароль для репозитория. Этот пароль является основным ключом к вашим зашифрованным бэкапам. Обязательно сохраните его в надежном месте! Без него вы не сможете восстановить данные.

  • --encryption=repokey-blake2: Рекомендуемый метод шифрования. Ключ шифрования хранится в репозитории, но он сам зашифрован паролем.
  • --make-parent-dirs: Создает родительские директории, если они не существуют.
  • ssh://borguser@ваш_ip_или_домен_репозитория:22/home/borguser/backups/my_server_repo: Путь к удаленному репозиторию.

Теперь BorgBackup установлен и репозиторий инициализирован. Можно переходить к конфигурации и созданию первых бэкапов.

Конфигурация

Схема: Конфигурация
Схема: Конфигурация

Конфигурация BorgBackup в основном сводится к созданию скриптов для создания и обслуживания бэкапов. Важно правильно определить, что бэкапировать, куда, и как управлять ключами шифрования. Мы будем использовать переменные окружения для хранения чувствительных данных, таких как пароль к репозиторию.

1. Настройка переменных окружения для пароля Borg

Чтобы не вводить пароль при каждом запуске скрипта, Borg может брать его из переменной окружения BORG_PASSPHRASE. Это удобно для автоматизации, но требует осторожности в хранении.


# На клиентском сервере
# Создаем файл для хранения переменных окружения
sudo nano /etc/profile.d/borg_env.sh

Вставьте следующее содержимое, заменив ВАШ_ПАРОЛЬ_К_РЕПОЗИТОРИЮ на ваш реальный пароль:


#!/bin/bash
export BORG_PASSPHRASE="ВАШ_ПАРОЛЬ_К_РЕПОЗИТОРИЮ"
export BORG_REPO="ssh://borguser@ваш_ip_или_домен_репозитория:22/home/borguser/backups/my_server_repo"
export BORG_CACHE_DIR="/var/cache/borg" # Директория для кэша Borg

Сохраните файл и сделайте его исполняемым:


sudo chmod 600 /etc/profile.d/borg_env.sh # Установка прав доступа
sudo chown root:root /etc/profile.d/borg_env.sh # Установка владельца
# Чтобы переменные были доступны в текущей сессии (для проверки)
source /etc/profile.d/borg_env.sh

Важно: Убедитесь, что права доступа к этому файлу ограничены, чтобы только root мог его читать. Для cron-заданий переменные окружения будут загружены автоматически, если скрипт будет запускаться с соответствующими правами.

2. Создание скрипта для бэкапирования

Создадим основной скрипт, который будет выполнять бэкап. Этот скрипт будет включать в себя создание архива, его проверку и очистку старых бэкапов.


# На клиентском сервере
sudo mkdir -p /opt/backup_scripts # Создание директории для скриптов
sudo nano /opt/backup_scripts/create_backup.sh

Содержимое скрипта:


#!/bin/bash

# Загрузка переменных окружения
source /etc/profile.d/borg_env.sh

# Директории для бэкапирования
BACKUP_DIRS="/etc /var/www /home /var/lib/mysql_dumps" # Пример: /var/lib/mysql_dumps должна быть предварительно создана с дампами БД

# Имя архива (с меткой времени)
ARCHIVE_NAME="{hostname}-$(date +%Y-%m-%d_%H-%M-%S)"

echo "--- Начинаем бэкап в ${BORG_REPO}::${ARCHIVE_NAME} ---"

# Создание бэкапа
borg create --stats --progress \
    --compression zstd,5 \
    --exclude '/home//.cache' \
    --exclude '/var/cache/' \
    --exclude '/var/tmp/' \
    --exclude '/var/log/' \
    --exclude '/var/lib/mysql/.sock' \
    --exclude '/var/lib/mysql/mysql.sock' \
    --exclude '.log' \
    "${BORG_REPO}::${ARCHIVE_NAME}" ${BACKUP_DIRS} \
    2>&1 | tee /var/log/borg_backup.log # Перенаправление вывода в лог-файл

EXIT_STATUS=$?

if [ ${EXIT_STATUS} -eq 0 ]; then
    echo "--- Бэкап успешно завершен ---"
elif [ ${EXIT_STATUS} -eq 1 ]; then
    echo "--- Бэкап завершен с предупреждениями (см. лог) ---"
else
    echo "--- Бэкап завершен с ошибкой (код ${EXIT_STATUS}, см. лог) ---"
fi

echo "--- Запускаем проверку репозитория ---"
borg check --last 1 "${BORG_REPO}" # Проверка последнего архива

echo "--- Запускаем очистку старых бэкапов ---"
# Политика хранения:
# 7 последних ежедневных бэкапов
# 4 последних еженедельных бэкапа
# 6 последних ежемесячных бэкапов
borg prune --list --stats --show-rc \
    --keep-daily 7 --keep-weekly 4 --keep-monthly 6 "${BORG_REPO}" \
    2>&1 | tee -a /var/log/borg_backup.log # Добавление вывода в тот же лог-файл

PRUNE_EXIT_STATUS=$?

if [ ${PRUNE_EXIT_STATUS} -eq 0 ]; then
    echo "--- Очистка успешно завершена ---"
else
    echo "--- Очистка завершена с ошибкой (код ${PRUNE_EXIT_STATUS}, см. лог) ---"
fi

echo "--- Выводим список архивов ---"
borg list "${BORG_REPO}"

echo "--- Скрипт бэкапирования завершен ---"

Сделайте скрипт исполняемым:


sudo chmod +x /opt/backup_scripts/create_backup.sh # Делаем скрипт исполняемым

Пояснения к скрипту:

  • source /etc/profile.d/borg_env.sh: Загружает переменные BORG_PASSPHRASE и BORG_REPO.
  • BACKUP_DIRS: Определяет, какие директории будут бэкапироваться. Важно, чтобы дампы баз данных (например, /var/lib/mysql_dumps) были предварительно созданы.
  • --compression zstd,5: Использует алгоритм сжатия Zstandard с уровнем 5 (хороший баланс между скоростью и степенью сжатия).
  • --exclude: Исключает временные файлы, кэши и логи, которые не нужны в бэкапах.
  • borg check: Проверяет целостность репозитория. Это критически важный шаг для уверенности в возможности восстановления.
  • borg prune: Удаляет старые архивы согласно заданной политике (7 ежедневных, 4 еженедельных, 6 ежемесячных). Это помогает экономить место и поддерживать порядок.

3. Дампы баз данных (MySQL/PostgreSQL)

Перед запуском BorgBackup, если вы используете базы данных, необходимо создать их дампы. Например, для MySQL:


# На клиентском сервере
sudo mkdir -p /var/lib/mysql_dumps # Создание директории для дампов
sudo chown mysql:mysql /var/lib/mysql_dumps # Установка владельца (или вашего пользователя, если дамп будет делаться от него)
# Создание дампа всех баз данных
sudo mysqldump --all-databases --single-transaction --flush-logs --master-data \
    -u root -p'ВАШ_ПАРОЛЬ_MYSQL' > /var/lib/mysql_dumps/all_databases_$(date +%Y%m%d%H%M%S).sql # Дамп всех БД
# Или для конкретной базы
# sudo mysqldump -u root -p'ВАШ_ПАРОЛЬ_MYSQL' YOUR_DATABASE > /var/lib/mysql_dumps/your_database_$(date +%Y%m%d%H%M%S).sql

Этот шаг должен быть добавлен в ваш скрипт create_backup.sh перед командой borg create, чтобы Borg бэкапил уже готовые дампы. Или создайте отдельный скрипт для дампа, который будет запускаться перед основным бэкапом.

4. Проверка работоспособности

Запустите скрипт вручную, чтобы убедиться, что все работает:


sudo /opt/backup_scripts/create_backup.sh # Запуск скрипта

Проверьте вывод в консоли и лог-файл /var/log/borg_backup.log на наличие ошибок. После успешного выполнения, вы можете проверить список архивов на репозитории:


borg list "${BORG_REPO}" # Проверка списка архивов

Вы должны увидеть имя архива, которое вы сгенерировали.

Бэкапы и обслуживание

Схема: Бэкапы и обслуживание
Схема: Бэкапы и обслуживание

После того как BorgBackup настроен и протестирован, необходимо автоматизировать процесс и определить стратегию обслуживания.

1. Что бэкапить

Выбор данных для бэкапирования зависит от вашего сервиса, но обычно включает:

  • Конфигурационные файлы: /etc/ (особенно /etc/nginx/, /etc/apache2/, /etc/php/, /etc/mysql/, /etc/ssh/, /etc/fail2ban/ и т.д.).
  • Данные веб-серверов: /var/www/ или /opt/www/ (файлы сайтов, статика, медиа).
  • Домашние директории пользователей: /home/ (если пользователи хранят там важные данные).
  • Базы данных: Дампы баз данных (MySQL, PostgreSQL, MongoDB и т.д.), которые должны быть созданы перед запуском Borg. Например, в /var/lib/mysql_dumps/.
  • Приложения: Если вы устанавливали что-то вне пакетного менеджера (например, в /opt/), включите это.

Чего не бэкапить: Временные файлы (/tmp, /var/tmp), кеши (/var/cache), логи (/var/log), системные файлы ОС (кроме /etc), которые легко восстановить переустановкой пакетов.

2. Автоматизация бэкапов с помощью cron

Для регулярного выполнения скрипта бэкапирования используйте cron.


# На клиентском сервере
sudo crontab -e # Открытие файла crontab для root (или sudo crontab -e -u sysadmin для пользователя sysadmin)

Добавьте следующую строку для ежедневного бэкапа в 03:00 ночи:


0 3    /opt/backup_scripts/create_backup.sh > /dev/null 2>&1 # Ежедневный бэкап в 03:00

Если вы хотите получать уведомления по почте в случае ошибок, можно убрать > /dev/null 2>&1 и настроить почтовый клиент на сервере.

Важно: Убедитесь, что переменные окружения, включая BORG_PASSPHRASE, доступны для cron. Если вы используете /etc/profile.d/borg_env.sh, cron может не загрузить его. Более надежный способ — явно определить переменные в самом crontab файле или в начале скрипта.

Пример для crontab:


# В crontab -e
BORG_PASSPHRASE="ВАШ_ПАРОЛЬ_К_РЕПОЗИТОРИЮ"
BORG_REPO="ssh://borguser@ваш_ip_или_домен_репозитория:22/home/borguser/backups/my_server_repo"
BORG_CACHE_DIR="/var/cache/borg"

0 3    /opt/backup_scripts/create_backup.sh > /dev/null 2>&1

3. Куда складывать бэкапы (внешний S3 / отдельный VPS)

В нашем случае, бэкапы складываются на отдельный VPS, который выступает в роли Borg-репозитория. Это уже гораздо лучше, чем хранить бэкапы на том же сервере, что и исходные данные.

Для максимальной надежности можно рассмотреть:

  • Внешний S3-совместимый объектный сторадж: BorgBackup не поддерживает S3 напрямую, но вы можете использовать rclone для синхронизации репозитория Borg с S3-совместимым хранилищем после создания бэкапов. Это добавляет еще один уровень избыточности и географического распределения.
  • Второй удаленный VPS: Создать второй Borg-репозиторий на другом VPS (возможно, в другом дата-центре или регионе) и отправлять бэкапы туда также.

Помните про правило 3-2-1: 3 копии данных, на 2 разных носителях, 1 из которых находится вне офиса/сайта.

4. Восстановление данных

Восстановление данных — это самый важный аспект любой системы резервного копирования. BorgBackup делает это относительно просто.

Список архивов:


borg list "${BORG_REPO}" # Показать все архивы в репозитории

Просмотр содержимого архива:


borg list "${BORG_REPO}::ARCHIVE_NAME" # Показать содержимое конкретного архива (замените ARCHIVE_NAME)

Восстановление всего архива:


borg extract "${BORG_REPO}::ARCHIVE_NAME" --paths /path/to/restore/to # Восстановить весь архив в указанную директорию

Восстановление конкретных файлов/директорий:


borg extract "${BORG_REPO}::ARCHIVE_NAME" path/to/file_or_dir --paths /path/to/restore/to # Восстановить конкретный файл или директорию

Всегда восстанавливайте данные в новую или временную директорию, чтобы избежать перезаписи существующих файлов и убедиться в корректности восстановления.

5. Обновления: rolling vs maintenance window

Обновление BorgBackup и операционной системы должно выполняться регулярно.

  • Rolling updates: Для некритических компонентов и минорных патчей ОС можно применять обновления регулярно, без остановки сервисов.
  • Maintenance window: Для мажорных обновлений BorgBackup или ОС, а также для обновления ядра, рекомендуется планировать "окно обслуживания". Это время, когда вы можете остановить сервисы, сделать снимок VPS (если ваш провайдер предоставляет такую возможность), выполнить обновление и тщательно протестировать систему.

Всегда проверяйте совместимость версий BorgBackup при обновлении. Хотя Borg обычно очень стабилен, крупные релизы могут иметь изменения, которые требуют внимания.


sudo apt update && sudo apt upgrade -y # Регулярное обновление системы

После обновления ОС и BorgBackup всегда проверяйте работоспособность скрипта бэкапирования и возможность восстановления данных.

Troubleshooting + FAQ

Что делать, если BorgBackup выдает ошибку "Remote: Host key verification failed"?

Эта ошибка означает, что SSH-клиент не может подтвердить подлинность удаленного сервера. Чаще всего это происходит при первом подключении к новому серверу, если вы не подтвердили отпечаток ключа, или если IP-адрес сервера изменился, а старый ключ остался в ~/.ssh/known_hosts. Для решения проблемы, удалите соответствующую строку из файла ~/.ssh/known_hosts на клиентском сервере (или из /root/.ssh/known_hosts, если скрипт запускается от root) и попробуйте подключиться снова, подтвердив новый отпечаток.

Как решить проблему с нехваткой места на диске репозитория?

Если на сервере-репозитории заканчивается место, первым делом проверьте, как работает команда borg prune. Возможно, политика хранения слишком либеральна, и вы храните слишком много старых архивов. Уменьшите количество сохраняемых ежедневных, еженедельных или ежемесячных бэкапов. Также проверьте, нет ли на диске других больших файлов, не относящихся к Borg. Если проблема сохраняется, возможно, пора увеличить объем диска на VPS-репозитории или рассмотреть переход на dedicated сервер с большим хранилищем.

Какой VPS-конфиг минимально подойдёт для BorgBackup-репозитория?

Для небольшого проекта с объемом данных до 100-200 GB и одним-двумя клиентами, минимально подойдет VPS с 1 vCPU, 2 GB RAM и 200 GB SSD/NVMe диска. Важно, чтобы диск был достаточно быстрым для операций Borg (SSD/NVMe предпочтительнее). Если количество данных или клиентов растет, то следует масштабировать ресурсы, особенно RAM и дисковое пространство.

Что выбрать — VPS или dedicated для этой задачи?

Выбор между VPS и dedicated сервером зависит от масштаба ваших нужд. VPS идеален для большинства малых и средних проектов, предлагая гибкость и экономичность. Он подходит, если вы бэкапите несколько сотен гигабайт данных с умеренной частотой. Dedicated сервер необходим, если объем данных исчисляется терабайтами, требуется максимальная производительность дисковой подсистемы, или вы выступаете в роли провайдера бэкапов для множества клиентов. Dedicated обеспечивает гарантированные ресурсы и полное отсутствие "соседей", что критично для производительности под высокой нагрузкой.

Что делать, если забыл пароль к репозиторию Borg?

Если вы забыли пароль к репозиторию Borg, к сожалению, восстановить данные из него будет невозможно. Шифрование Borg очень надежно, и без пароля доступ к данным невозможен. Это подчеркивает критическую важность безопасного хранения пароля. Всегда используйте менеджер паролей или другое надежное хранилище для таких критически важных данных.

Как проверить целостность бэкапов?

Регулярная проверка целостности бэкапов — это обязательная часть обслуживания. Для этого используется команда borg check. Вы можете добавить ее в свой скрипт бэкапирования, как мы это сделали, или запускать отдельно. Команда borg check --repository-only проверяет только репозиторий, а borg check --archives-only проверяет архивы. Полная проверка borg check может занять много времени для больших репозиториев, но она гарантирует, что данные не повреждены.

Можно ли бэкапить несколько серверов в один репозиторий?

Да, BorgBackup отлично подходит для бэкапирования нескольких серверов в один центральный репозиторий. Для каждого сервера-клиента достаточно создать свой набор SSH-ключей и настроить их в authorized_keys пользователя borguser на сервере-репозитории, используя опцию command="borg serve --restrict-to-path /home/borguser/backups/SERVER_NAME" для изоляции каждого клиента в своей поддиректории репозитория. Это повышает безопасность и позволяет легко управлять бэкапами разных источников.

Выводы и следующие шаги

Схема: Выводы и следующие шаги
Схема: Выводы и следующие шаги

Мы успешно настроили BorgBackup на вашем VPS для создания шифрованных и дедуплицированных резервных копий. Теперь ваши критически важные данные защищены от потери, а процесс бэкапирования полностью автоматизирован. Вы имеете полный контроль над своими данными, их безопасностью и стоимостью хранения.

Следующие шаги для дальнейшего улучшения вашей системы резервного копирования могут включать:

  • Настройка мониторинга: Интегрируйте логи BorgBackup с системой мониторинга (например, Prometheus, Grafana, ELK-стек) для отслеживания успешности бэкапов и предупреждений об ошибках.
  • Дополнительная избыточность: Рассмотрите возможность создания копий вашего Borg-репозитория на другом удаленном хранилище (например, S3-совместимом или втором VPS) для реализации правила 3-2-1.
  • Регулярное тестирование восстановления: Периодически тестируйте процесс восстановления данных, чтобы убедиться, что бэкапы актуальны и работоспособны. Это даст вам уверенность в критической ситуации.

Был ли этот гайд полезен?

Ваш отзыв помогает нам улучшать гайды.

Поделиться записью:

Отправьте гайд тому, кому он может пригодиться.

Telegram VKVK WhatsApp Facebook LinkedIn XX

настройка borgbackup на vps для шифрованного и дедуплицированного бэкапирования
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.