Инженеры межрегионального CI на Mac mini M4 в clustervps выбирают между SeaweedFS как слоем мелких объектов и узким rsync золотого артефакта. Здесь — матрица решений, параметры volume и filer, полоса и параллелизм rsync, build lock и чек-лист водяных знаков для томов 1 ТБ и 2 ТБ. Связка с серией параллельного кластера и rsync, контуром OpenClaw: логи и webhook и оформлением на странице покупки.

Три узких места до стабильного контура артефактов

На выделенном Apple Silicon узкое горло чаще дают не гигагерцы CPU, а случайный IOPS по APFS, рост inode и конкурирующие потоки CI. Ниже — типовые провалы при совместном использовании SeaweedFS и rsync между регионами.

  • 1. Шторм мелких файлов. Поток мелких needle без батчинга и без лимита на стороне filer раздувает журнал метаданных и выбивает кэш, пока rsync ещё копирует крупные блобы — растёт задержка SSH и VNC на том же NVMe.
  • 2. Рассинхрон метаданных. Filer и volume живут на разных Mac mini M4; при сетевом джиттере между локациями clustervps появляются «полузелёные» каталоги артефактов, если нет явного build lock вокруг promote.
  • 3. Диск без водяных знаков. Без порогов df и inode для 1 ТБ и 2 ТБ томов команда узнаёт о переполнении только по падению weed volume или обрыву rsync на ночной синхронизации.

Матрица: SeaweedFS против узкого rsync для межрегионального CI

Таблица фиксирует границу ответственности: когда держать истину в объектном слое, а когда — в золотом каталоге на узле после сериализованного rsync.

Критерий SeaweedFS volume + filer Только rsync между узлами
Мелкие файлы и метаданные Распределённые needle, отдельный том filer под метаданные Миллионы файлов бьют по inode APFS на одном узле
Репликация между регионами Явный defaultReplicaPlacement и отдельные volume на локацию Ручные окна rsync и риск перекрытия с интерактивом
Лимиты полосы Очереди на стороне клиента S3 API и compaction по расписанию Прямой --bwlimit и счётчик параллельных сессий
Build lock Обязателен вокруг compaction и снапшотов метаданных filer Естественный flock вокруг каждого promote

Топология: master, volume и filer на нескольких Mac mini M4

На каждом clustervps-узле выделяйте отдельный APFS-том под weed volume -dir, не смешивая его с Derived Data и журналами OpenClaw. Master держите в зоне с устойчивой задержкой до volume; filer монтируйте с отдельным диском под хранилище метаданных, чтобы журнал не конкурировал с needle на NVMe.

Компонент Ключевые параметры Заметка по эксплуатации
weed volume -max число томов, -dir NVMe, -mserver список, -publicUrl внешний адрес узла Ограничьте max с запасом под 1 ТБ / 2 ТБ; следите за свободными inode
weed filer Метка -dataCenter, кэш метаданных, политика defaultReplicaPlacement Резервное копирование каталога метаданных — вне окна CI
weed master Кворум peer-узлов, мониторинг задержки до volume Падение кворума означает режим только чтения до восстановления

Синхронизация: rsync, полоса, параллелизм и стык с filer

Для золотого артефакта после успешной сборки используйте rsync --delete --partial --numeric-ids и явный --bwlimit, согласованный с ночным restic в матрице restic и rclone. Число одновременных rsync на пару регионов держите в пределах двух-трёх, иначе TCP начнёт душить filer и интерактивные сессии SSH.

Поток в SeaweedFS через S3 API на filer разводите с rsync по календарю: пока идёт promote под flock, запрещайте тяжёлый weed compact на затронутых volume.

Практика: ведите таблицу «окно — максимальный bwlimit — число параллельных rsync» на каждую пару регионов clustervps и пересматривайте её после смены канала или добавления узла.

Масштабирование: новые volume-узлы и рост filer

Добавление Mac mini M4 как нового volume требует обновления меток rack и dataCenter, затем постепенного пересчёта replica placement без немедленной полной перебалансировки. Для filer рост шардов метаданных планируйте заранее: вертикальное масштабирование NVMe дешевле аварийного переноса каталога под нагрузкой CI.

Если команда удваивает число параллельных пайплайнов, сначала увеличьте запас по inode и ужесточите водяные знаки диска, затем — параллелизм rsync, и только потом — число одновременных загрузок в filer.

Катастрофоустойчивость: эксплуатационный FAQ

  • Потеря filer при живых volume. Остановить запись из CI, восстановить метаданные из резервной копии, проверить replica на каждом volume; не запускать массовый rsync --delete до завершения проверки.
  • Расхождение реплик после сетевого разрыва. Использовать диагностику master, затем управляемый repair; держать build lock до единого «зелёного» статуса по шарду.
  • Диск 1 ТБ против 2 ТБ. На 1 ТБ смещайте алерты раньше из-за служебных снапшотов APFS; на 2 ТБ контролируйте также рост локального кэша клиентов filer и временных каталогов CI.

Шесть шагов внедрения на кластере clustervps

  1. Инвентаризация томов: зафиксировать df, inode и каталоги weed на каждом Mac mini M4 до любых изменений.
  2. Топология: развернуть master, затем volume с явным -publicUrl и отдельным -dir на NVMe.
  3. Filer: включить defaultReplicaPlacement, вынести хранилище метаданных на отдельный том, задать резервное копирование каталога.
  4. Rsync-контур: описать --bwlimit, число параллельных заданий и исключения для временных каталогов CI.
  5. Build lock: обернуть promote, крупный rsync и compact в flock с таймаутом и журналом владельца.
  6. Приёмка: пройти чек-лист водяных знаков 1 ТБ / 2 ТБ ниже и зафиксировать результаты в runbook смены.
2–3
параллельных rsync на пару регионов без деградации filer
80%
заполнения тома 1 ТБ — типовой жёлтый водяной знак APFS
1
активный flock на promote и compact одного шарда

Чек-лист приёмки водяных знаков 1 ТБ и 2 ТБ

  • Снимок df и inode до и после ночного окна; отклонение более десяти процентных пунктов — разбор по узлу clustervps.
  • Свободный резерв APFS не ниже согласованного минимума; учёт снапшотов, если локальные снапшоты включены на томе CI.
  • Очередь compaction weed volume пуста к началу рабочего окна CI; иначе сдвинуть окно или снизить bwlimit rsync.
  • Корреляция с OpenClaw: при росте диска сверить с логами и webhook, нет ли утечки поколений артефактов.

Итог для платформенной команды

Связка SeaweedFS и дисциплинированного rsync на межрегиональном кластере Mac mini M4 работает, когда топология разводит метаданные filer и данные volume, синхронизация уважает полосу и build lock, а масштабирование идёт через измеримые водяные знаки диска. Закрепите матрицу в репозитории рядом с базовой серией rsync и держите FAQ по отказам в общем runbook с clustervps.

Эксплуатационные рекомендации. Перед изменением replica placement прогоните сухой прогон rsync с --dry-run на копии каталога и сверьте версию weed на всех узлах одного контура.
Многоузловые планы Mac mini M4

Два и более узла под SeaweedFS, rsync и CI

Оформите несколько выделенных Mac mini M4 в разных локациях clustervps, разведите volume и filer по узлам и согласуйте полосу с командой сети; тарифы и конфигурации — на странице заказа.

Заказать многоузловой кластер Тарифы и диски 1–2 ТБ Другие материалы блога