arculaДокументация

Хранилища

Хранилища

Хранилище — bucket в S3 у любого провайдера: Hetzner, Scaleway, Wasabi, AWS, MinIO и других S3-совместимых. Хранилища ваши: arcula кладёт туда зашифрованные бэкапы и следит за ними.

Что arcula кладёт в bucket

Внутри префикса хранилища arcula пользуется только двумя местами:

  • arcula/<id сервера>/ — restic-репозиторий сервера, отдельный на каждый сервер в каждом хранилище. У каждого — свой пароль, его создала панель;
  • .arcula-check/ — тестовые объекты проверки доступа.

Репозиторий — обычный restic: его можно открыть и без arcula, с паролем и ключами из recovery kit.

Сколько хранилищ

Лучше два — у разных провайдеров и в разных аккаунтах. Тогда сбой провайдера, блокировка аккаунта или потерянный bucket оставляют вторую копию.

  • В плане сервера одно хранилище — основное, остальные — резервные. Отправка в них одинаковая, у каждого своя очередь.
  • Поле «Аккаунт» при подключении — подпись для себя. Если у двух хранилищ указан один аккаунт, ЛК предупреждает: «в одном аккаунте: если аккаунт заблокируют, пропадут обе копии». В плане видно «независимых копий: N».

Чей ключ

При подключении выбирается «Чей ключ»:

РежимКакЧто может взломанный сервер
«Один на все серверы»Ключ хранилища получают все серверыУдалить бэкапы всех серверов в этом хранилище
«Свой у каждого сервера»У провайдера для каждого сервера создаётся ключ только на его папку arcula/<id сервера>/Удалить только свои бэкапы

Свой ключ имеет смысл, если провайдер умеет ключи на префикс. Если ключи бывают только на весь bucket, изоляции не будет — тогда проще «Один на все серверы».

Ключи серверов задаются после подключения: хранилище → «Подключение» → «Ключи серверов» → «Задать ключ». Панель проверит ключ в папке сервера до сохранения. Пока ключа нет, бэкапы этого сервера сюда не уходят: «для сервера не задан ключ — бэкапы сюда не отправляются». Ключ, введённый при подключении, остаётся у панели — для проверок, замеров и очистки.

Сменить режим — «Подключение» → «Сменить режим». Смена ключа или режима — новая ревизия плана у всех серверов хранилища: агенты получат новый доступ со следующим сигналом.

Защиты от удаления нет

Агент пишет в S3 сам, напрямую, ключом хранилища или своим ключом. Тем же ключом можно и удалять. Значит, тот, кто получил root на сервере, может удалить бэкапы:

  • при «Один на все серверы» — всех серверов в этом хранилище;
  • при «Свой у каждого сервера» — только этого сервера.

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

Посредника между агентами и S3, который запрещал бы удаление, arcula не делает — это осознанное решение. Защита от удаления — на стороне владельца хранилищ, у провайдера. arcula её не настраивает и не проверяет; на вкладке «Подключение» — только ответы S3 про версионирование и Object Lock, как есть. ЛК пишет это прямо: «Защита от удаления — нет».

Ещё два следствия:

  • панель держит ключи хранилищ с правом удаления — ими работают очистка и удаление данных. Взлом панели вместе с её мастер-ключом открывает все хранилища;
  • если отключить сервер, его ключи S3 остаются на нём. ЛК подскажет, что сменить: при общем ключе — ключ хранилища, он есть у всех его серверов; при своём — ключ этого сервера.

Лимит и «Хватит на»

Лимит — ваш бюджет в ЛК, а не квота провайдера: общего способа узнать квоту у S3 нет. Задаётся при подключении или на вкладке «Подключение» → «Лимит».

  • Без лимита ЛК показывает только объём и рост в сутки: «без лимита».
  • С лимитом — «Занято»: сколько из лимита, полоса и сколько осталось.
  • «Хватит на» — через сколько кончится место до лимита при нынешнем росте. Как считается и что значит «мало данных» — Место и «Хватит на».
  • Занято 90 % и больше или хватит меньше чем на 30 дней — предупреждение.

Сами бэкапы при нехватке места не останавливаются. Место освобождает только очистка; пока она выключена, место только растёт.

Не наши данные

Подключить можно и bucket, где уже что-то лежит: файлы, старые бэкапы, чужие restic-репозитории. Наше — только arcula/<id серверов этой панели>/ и .arcula-check/. Всё остальное — «не наше», в том числе каталог arcula/ другой панели.

  • arcula не наше никогда не пишет, не меняет и не удаляет — только считает объём.
  • При подключении видно, сколько там не наших данных и какие restic-репозитории найдены.
  • «Занято» — только наши данные. Не наши показаны отдельно: «Не наших данных 1,2 ТБ — arcula их не трогает». Это факт, а не проблема.
  • Лимит по умолчанию считается по нашим данным. При подключении можно отметить «считать лимит по всему bucket, вместе с не нашими данными».
  • Если в bucket есть каталог arcula/ другой панели и это не ваша прежняя панель, выберите другой префикс.

Подключить и отключить

  • «Хранилища» → «+ Хранилище» → «Проверить» → «Подключить». Без list, read и write подключить нельзя: бэкапы туда не уйдут.
  • Чтобы серверы начали сюда писать, добавьте хранилище в план сервера, блок «Где храним».
  • «Отключить хранилище» — только если его нет ни в одном плане. Данные в bucket остаются.
  • «Отключить и удалить данные» — после подтверждения паролем или passkey. Удаляются только репозитории серверов этой панели и .arcula-check/; не наше остаётся. Удалённое не вернуть.

Та же статья — в панели, в разделе «Справка».