Хранилища
Хранилища
Хранилище — 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/; не наше остаётся. Удалённое не вернуть.
Та же статья — в панели, в разделе «Справка».