Когда команда платформы держит межрегиональный параллельный кластер Mac mini M4 в clustervps под iOS- или AI-сборки и одновременно хочет ночной бэкап в S3-совместимое объектное хранилище, узким местом редко становится сам формат тома. Куда чаще это: ночное окно в конкуренции с дневной сборкой, лимит полосы канала, размер chunk у restic и rclone, водяные знаки APFS 1 ТБ/2 ТБ и пересечение бэкапа с build lock. Ниже — практическая матрица для администраторов многоузлового кластера: где жить restic repository, как считать forget в отличие от ротации rsnapshot, как rclone --bwlimit не конфликтует с CI и какой запас по диску оставить для ночного снапшота.

Три ловушки до первой стабильной ночной серии

Первая ловушка — путаница между restic (дедуплицирующий repository со снапшотами) и rsnapshot (локальная ротация через hardlink): они решают разные задачи и стоят на разных уровнях стека. Вторая — отсутствие --bwlimit и параллельные потоки --transfers, которые в пике задавливают канал и интерактивный SSH/VNC. Третья — запуск prune в неудачное окно, когда CI уже захватил build lock на запись и держит inode под Derived Data.

  • Подмена ролей инструментов: rsnapshot хорош как локальная страховка, но не заменяет дедупликацию и шифрование repository restic в S3.
  • Полоса без потолка: rclone без --bwlimit и restic с дефолтными потоками легко съедают аплинк на узле под нагрузкой.
  • forget без plan: агрессивный prune без чек-листа удаляет нужные снапшоты или блокирует repository на часы; политику нужно зафиксировать заранее.

Профиль межрегионального кластера и поведение rsync для артефактов CI разобраны в материале о rsync, блокировках и водяных знаках 1 ТБ/2 ТБ; общую логику build lock и аффинити Nomad — в матрице Nomad с build lock.

Топология бэкапа: restic, rclone и rsnapshot — три уровня, не три копии

Цель — не выбрать «один правильный» инструмент, а развести их по уровням и не путать repository restic с зеркалом rclone. Матрица фиксирует роль и адресата на узле Mac mini M4 в clustervps.

Инструмент Источник Цель Дедупликация Когда применять
restic Каталоги проекта, конфиги CI, артефакты S3-совместимый restic repository Да, на уровне chunk + шифрование Главный путь снапшотов в объектное хранилище
rclone Подписанные образы, сборки, релизные пакеты Бакет S3, отдельный от restic repository Нет, прямая синхронизация объектов Большие неизменяемые артефакты, копия наружу
rsnapshot Локальный том на узле Локальный том той же машины Hardlink-ротация по интервалам Быстрый локальный откат, не замена облака

Лимиты полосы и параллелизм: исполняемая таблица параметров

Фиксируйте параметры в runbook и держите их под контролем версий рядом с launchd-планами на каждом узле кластера.

Команда Лимит полосы Параллелизм Chunk / packsize
restic backup --limit-upload 12500 (≈100 Мбит/с) --read-concurrency 2 --pack-size 32 (МБ)
rclone copy --bwlimit 100M:200M (день:ночь) --transfers 4 --checkers 8 --s3-chunk-size 64M --s3-upload-concurrency 4
restic prune Без аплоада, локальная нагрузка --max-repack-size 50G Используйте окно вне build lock
Совет: в rclone расписание --bwlimit "08:00,20M 02:00,200M" позволяет автоматически открывать ночное окно и сжиматься днём — без перезапуска демона и без ручных правок профиля.

Политика хранения: restic forget вместо ротации rsnapshot

В отличие от rsnapshot, где интервалы (hourly/daily/weekly) задаются в rsnapshot.conf и зависят от точности cron, у restic retention выражена через forget с явными ключами и обязательным prune. Ниже — рабочий шаблон, который держит управляемый объём в repository и не блокирует ночное окно.

  • restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --keep-yearly 1 — горизонт год, без хвостов.
  • restic prune --max-unused 10% — выполняем отдельной задачей, после forget, под собственным flock.
  • restic check --read-data-subset 5% — еженедельная выборочная проверка целостности на staging-узле.
  • restic stats --mode raw-data — фиксируйте динамику repository в дашборде вместе с df -h.

Разведение с CI и build lock: ночное окно, флоки и приёмка диска

Бэкап и сборка не должны делить запись по очереди — иначе один длинный prune уронит SLA merge артефактов. Зафиксируйте окна, флоки и пороги диска как в матрице Watchman/Git и водяных знаков диска.

  • Ночное окно: 02:00–04:30 локально под restic backup, 04:30–05:30 под rclone, 05:30–06:00 под forget; prune — отдельным днём.
  • Build lock: бэкап читает с flock --shared /var/lock/build.lock, prune захватывает эксклюзивный lock с длинным таймаутом и алертом на провал.
  • Водяные знаки: на томе 1 ТБ алерт ≥ 78%, soft-stop CI ≥ 86%; на 2 ТБ — 82% / 90%; ниже порога prune не запускается.
  • Кэш restic: --cache-dir /var/cache/restic на быстром APFS-разделе; держите запас не меньше 5–8% диска.

FAQ: что чаще всего ломает ночной бэкап

  • Хватит ли только rclone без restic? Нет, если важна история и дедупликация: rclone делает зеркало, не снапшоты.
  • Где держать ключ restic? В отдельном секрет-сторе с overlap при ротации, не в репозитории кода и не на резервируемом томе.
  • Когда нужен второй регион хранилища? При требованиях RPO < 24 ч добавьте второй S3 как rclone-зеркало restic repository.
  • Что делать при «repository is already locked»? Проверьте параллельный prune, аккуратно снимите блокировку restic unlock, увеличьте таймаут flock.
  • Можно ли заменить rsnapshot на restic? Локально — да, но потеряете быстрый off-line откат через hardlink; оставьте оба слоя.

Итог: один runbook на узел и ровный ночной ритм

Когда restic владеет repository в S3, rclone отвечает за крупные артефакты с расписанием --bwlimit, а rsnapshot остаётся локальной страховкой, ночное окно перестаёт спорить с CI. forget и prune разнесены по дням, водяные знаки 1 ТБ/2 ТБ зашиты в алерты, а build lock и flock не дают двум инструментам писать в один и тот же путь. Тогда межрегиональный кластер Mac mini M4 в clustervps остаётся быстрым днём и аккуратно сходится в ночное окно бэкапа.

Подобрать узлы и регионы под бэкап-окно можно на странице тарифов и оформления; чек-листы расширения и доступа — в справочном центре.

Эксплуатационные рекомендации. Уточните версии restic и rclone под ваш S3-провайдер, зафиксируйте overlap ключей шифрования и проверяйте политику в staging до выкатки в продуктовый кластер.
Расширение под ночное окно бэкапа

Подберите узлы Mac mini M4 для restic и rclone в clustervps

Многоузловой кластер Mac mini M4 с дисками 1 ТБ/2 ТБ и каналом под ночной аплоад в S3. Связанные материалы: rsync и блокировки, Nomad и build lock, водяные знаки диска.

Заказать узлы для бэкап-окна Открыть тарифы Справка по расширению