Hetzner · General

Hetzner Storage Box: что это, протоколы доступа и резервное копирование

Обновлено

Ящик хранилища с папками и файлами, поступающими с сервера

Storage Box — сетевое хранилище Hetzner для файлов и резервных копий. Это не блочный диск и не S3: вы получаете каталог на хост-сервере, в который можно заходить по SSH-протоколам, rsync, BorgBackup, SMB или WebDAV. Ниже — как он устроен по документации Hetzner, какие порты открыты, как настроить доступ по ключу, как делать резервные копии rsync и Borg и в каких случаях Storage Box не подходит.

Что такое Storage Box и для чего он нужен

Данные Storage Box хранятся на нескольких дисках в RAID-массиве, внутри массива используются контрольные суммы блоков для обнаружения и исправления битых данных. Диски находятся на одном хост-сервере, поэтому RAID защищает от отказа дисков, но не заменяет копию в другом месте. Трафик у Storage Box безлимитный (по документации Hetzner), а цены и тарифы (BX11, BX21, BX31, BX41 и другие) указаны на странице продукта.

Типовые сценарии:

  • резервные копии серверов (файлы, дампы баз данных, архивы Borg);
  • обмен файлами между серверами и офисом;
  • хранение больших архивов, которые не нужны на быстром диске;
  • подключаемый сетевой каталог (SMB/WebDAV/sshfs).

Протоколы и порты

Адрес Storage Box вида uXXXXX.your-storagebox.de, где uXXXXX — имя основного пользователя. IP-адреса хранилища могут меняться, поэтому в настройках всегда используйте доменное имя.

ПротоколПортСтатус по умолчаниюДля чего
FTP / FTPS21Всегда включёнЗагрузка файлов старыми клиентами
SFTP / SCP22Всегда включёнПередача файлов; интерактивной оболочки нет
SSH (rsync, BorgBackup, интерактивный доступ)23Включается опцией SSH SupportРезервные копии, команды на хранилище
SMB / CIFS445Включается в настройкахПодключение каталога в Windows/Linux
HTTPS / WebDAV443Включается в настройкахДоступ по HTTPS

Чтобы подключаться не только из сети Hetzner, но и с домашнего компьютера или чужого сервера, включите «External Reachability» через «Change settings» в консоли. Перед использованием протокола проверьте, что он включён в обзоре Storage Box.

Подключение по SSH-ключу

Для SCP, SFTP, rsync и Borg можно входить без пароля. Формат ключа зависит от порта: на порту 22 используется формат RFC4716, на порту 23 — обычный формат OpenSSH. Поддерживаются RSA, ECDSA и ED25519.

  1. На своём сервере создайте ключ (если ещё нет):
    ssh-keygen -t ed25519 -f ~/.ssh/storagebox -C "backup"
  2. Для порта 23 добавьте публичный ключ в authorized_keys хранилища одной командой (потребуется пароль):
    cat ~/.ssh/storagebox.pub | ssh -p23 uXXXXX@uXXXXX.your-storagebox.de install-ssh-key
  3. Проверьте вход:
    ssh -p23 -i ~/.ssh/storagebox uXXXXX@uXXXXX.your-storagebox.de ls

Для удобства добавьте в ~/.ssh/config:

Host storagebox
    HostName uXXXXX.your-storagebox.de
    User uXXXXX
    Port 23
    IdentityFile ~/.ssh/storagebox

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

Резервное копирование через rsync

rsync по порту 23 — самый простой способ копировать каталоги:

rsync -az --delete -e "ssh -p23 -i ~/.ssh/storagebox" /var/www/ uXXXXX@uXXXXX.your-storagebox.de:backups/www/

Ключи: -a сохраняет права и время, -z сжимает при передаче, --delete удаляет на приёмнике файлы, которых нет в источнике. Сначала запустите с --dry-run: так видно, что будет удалено. Для регулярного запуска добавьте задачу в cron:

30 3 * * * rsync -az --delete -e "ssh -p23 -i /root/.ssh/storagebox" /var/www/ storagebox:backups/www/ >> /var/log/rsync-backup.log 2>&1

Синхронизация с --delete копирует и ошибки: если файл повредился или удалён по ошибке, он пропадёт и в копии. Поэтому включите снимки Storage Box или используйте инкрементные архивы Borg.

Резервное копирование через BorgBackup

BorgBackup хранит данные в дедуплицированном, сжатом и (по желанию) зашифрованном репозитории. На стороне Storage Box достаточно доступа по порту 23.

# один раз: создать репозиторий
borg init --encryption=repokey-blake2 ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./backups/server1

# ежедневный архив
borg create --stats --compression zstd ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./backups/server1::'{hostname}-{now:%Y-%m-%d}' /etc /var/www /root

# хранить 7 дневных, 4 недельных и 6 месячных копий
borg prune -v --list --keep-daily=7 --keep-weekly=4 --keep-monthly=6 ssh://uXXXXX@uXXXXX.your-storagebox.de:23/./backups/server1

Пароль репозитория задайте переменной BORG_PASSPHRASE в защищённом скрипте и сохраните его отдельно: без пароля репозиторий не расшифровать. Периодически проверяйте восстановление: borg list и пробное borg extract в отдельный каталог.

Базы данных

Не копируйте файлы работающей СУБД «на ходу». Делайте логическую копию и затем отправляйте её:

pg_dump -Fc mydb > /var/backups/mydb-$(date +%F).dump
mysqldump --single-transaction --routines mydb | gzip > /var/backups/mydb-$(date +%F).sql.gz

Затем передайте файлы в Storage Box через rsync или включите каталог /var/backups в архив Borg.

Подключение как каталог

Через sshfs (интерактивный SSH на порту 23):

sudo apt install sshfs
mkdir -p /mnt/storagebox
sshfs -p 23 -o IdentityFile=~/.ssh/storagebox uXXXXX@uXXXXX.your-storagebox.de: /mnt/storagebox

Через SMB/CIFS (в Linux путь //uXXXXX.your-storagebox.de/backup, в Windows \\uXXXXX.your-storagebox.de\backup) нужно сначала включить SMB в настройках хранилища. Подходит для офисной работы с файлами, но для серверных бэкапов надёжнее rsync или Borg.

Субаккаунты

В консоли можно создать до 100 субаккаунтов. Основной пользователь видит все каталоги, включая каталоги субаккаунтов, а субаккаунт — только свой подкаталог. Субаккаунт подключается по своему имени и домену вида uXXXXX-subX.your-storagebox.de. Все субаккаунты используют общее пространство хранилища; если нужно ограничить запись, подкаталог субаккаунта можно сделать доступным только для чтения. Чтобы удалить каталог субаккаунта, сначала удалите самого субаккаунта в консоли.

Используйте субаккаунты для отдельных серверов: так компрометация одного сервера не даёт доступа к бэкапам другого.

Снимки (snapshots)

Снимки сохраняются прямо в Storage Box и фиксируют состояние данных на момент создания. Изменения, которые происходят после снимка, занимают место в вашей квоте. Лимиты: до 10/20/30/40 ручных снимков и столько же слотов автоматических снимков для тарифов BX11/BX21/BX31/BX41. Снимки защищают от случайного удаления и от шифровальщика, который добрался до смонтированного каталога, — но только если они включены заранее.

Ограничения и подводные камни

  • До 10 одновременных соединений на один аккаунт.
  • Скорость зависит от загрузки хост-сервера: он общий для нескольких хранилищ, и доступная скорость может меняться.
  • Нельзя создать каталоги /etc и /lib.
  • Не снимайте право исполнения (x) с домашнего каталога: иначе вход перестанет работать.
  • Storage Box — не блочное устройство и не подходит для файлов работающей СУБД и виртуальных машин.
  • Копия на одном хост-сервере — не вся стратегия резервного копирования: для критичных данных держите ещё одну копию у другого провайдера или на своём оборудовании.

Чем заменить, если Storage Box недоступен

Если вы не можете пользоваться Hetzner или переезжаете, подойдут S3-совместимое объектное хранилище (например, у Timeweb Cloud или OVHcloud — см. аналоги Hetzner) или отдельный VPS с большим диском и теми же rsync/Borg по SSH. Порядок переноса сервера описан в статье Перенос сервера с Hetzner на другой хостинг. Общие принципы резервного копирования у Hetzner рассматриваются в справке Резервное копирование.

Частые вопросы

Какие порты нужно открыть для rsync и Borg?

Порт 23 (SSH для rsync, BorgBackup и интерактивного доступа). Порт 22 принимает только SFTP и SCP.

Можно ли использовать Storage Box как диск для базы данных?

Нет. Это сетевое файловое хранилище. Для баз данных используйте локальные диски или тома, а в Storage Box отправляйте логические дампы.

Как защититься от случайного удаления файлов?

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

Нужно ли задавать пароль, если я использую ключи?

Пароль основного пользователя остаётся, отключить вход по паролю нельзя. Задайте сложный пароль и храните его в менеджере паролей.

Почему не подключается с домашнего компьютера?

Проверьте, что включена опция External Reachability, нужный протокол активирован в настройках хранилища и вы используете правильный порт: 22 для SFTP/SCP, 23 для rsync и Borg.