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

Отримати VPS arrow_forward
eco Початковий Туторіал

Налаштування BorgBackup на VPS

calendar_month Aug 21, 2026 schedule 18 хв. читання visibility 25 переглядів
Настройка 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 завжди перевіряйте працездатність скрипта резервного копіювання та можливість відновлення даних.

Усунення несправностей + 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.
  • Регулярне тестування відновлення: Періодично тестуйте процес відновлення даних, щоб переконатися, що резервні копії актуальні та працездатні. Це дасть вам впевненість у критичній ситуації.

Чи був цей гайд корисним?

Ваш відгук допомагає нам покращувати гайди.

Share this post:

Надішліть гайд тому, кому він може стати в пригоді.

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.