2026年、跨区の Mac mini M4Nomad を載せると、CPU より先に「配置」「単一ライター」「ディスク増設」で詰まります。並列の効きはラベル設計・ビルドロック拡張水位の三本柱です。

Nomad だけでは足りない詰まりどころ

共有ボリュームへの二重書き込みは成果物を壊し、跨区では同期順序が逆転すると欠損ツリーが広がります。ビルドロックrsync 成果物マトリクス稿 で役割分担しましょう。

  • 配置ドリフト: メタ無しでは重いバッチが偶然ライトノードに乗り、IO が凸凹になる。
  • 二重ライター: promote を複数ジョブが同時に掴むと rsync 先が壊れる。
  • ディスク崖: 1TB でも DerivedData+シミュレータで黄信号が早い。2TB でも再現する。

意思決定マトリクス:Nomad 役割 × ストレージ

トポロジ Nomad 側の狙い ストレージ/同期
単一ゴールデン+扇展開ワーカー promote は count = 1 か専用キューで単一ライター化。他は batch ゴールデン確定後に rsync 読み取り同期。帯域はプロファイル化。
リージョンごとゴールデン メタ region_lane で constraint。親和で「重いコンパイル層」に寄せる。 合流検証と時計同期が増える。DNS/レジストリは スプリット DNS 稿 を参照。
全ノードローカルビルド spread で均等化。成果物はオブジェクトストア経由か昇格のみ集約。 ディスク水位が早めに黄信号。早期に 2TB ラインを検討。

実運用では「コンパイルは並列、昇格と rsync の書き込みは単一路」が最もトラブルが少ないです。

実行可能な job 制約の考え方(HCL は文章レベル)

クライアントに meta(例:ci_tierartifact_lanedisk_class)を付け、ジョブ側は constraint で重い batch を特定 Mac mini M4 に固定、affinity で 1tb 系を優先する等の軟着陸、spreadnode.datacenter 分散、が定石です。昇格系は priority を上げ restart を慎重に。対話入口は Mosh と SSH の協働稿 と分担します。

ビルドロック:スケジューラと OS を二段にする

スケジューラに加え、共有ツリーは flock で短い昇格区間だけ排他します。バッチはローカル WORK_DIR、promote だけがロック後に rsync。SSHFS ではロック不可扱いです。

LOCK_FILE="/var/tmp/ci-artifact-promote.lock"
flock -n "$LOCK_FILE" bash -c '
  ./scripts/compile.sh
  rsync -az --delete ./out/ "/Volumes/Artifacts/promote/"
' || { echo "lock busy"; exit 17; }

exec/raw_exec タスクから呼び出す想定。終了コード 17 は競合としてメトリクス化します。

1TB / 2TB の拡張水位(意思決定表)

使用率帯 1TB ラインの行動 2TB ラインの行動
〜70% DerivedData/古いシミュレータをルーチン削除。Nomad のログもローテ。 同左。2TB は猶予が増えるが放置しない。
70〜80%(黄) 増設またはアーカイブ退避をスプリント内に計画。新規「全ノードフルビルド」を抑える。 黄信号は遅れて現れる。バーストジョブの同時数を下げる。
80〜90% 実行枠を絞り、rsync 扇展開の帯域も縮小。空きが戻るまで promote 以外を止める判断も。 2TB でもシミュレータ多版が残ると再び詰まる。メタ disk_class と連動してスケジューリングを減らす。
90% 超(赤) APFS スナップショットや隠れ領域を踏む前にハードストップ。クラスタ追加・ディスク段階アップを最優先。水位は「拡張」のトリガーであり、監視ダッシュボードに固定表示がよいです。
70%
クリーニング自動化の目安。
80%
黄信号:拡張計画をコミット。
90%
赤信号:新規扇展開と重バッチを止める。

調達と段階は 料金・プラン比較(ログイン不要) で固められます。

rsync 成果物同期との合流ポイント

スケジュールは Nomad、ゴールデン後の伝播は rsync プロファイルに寄せると帯域と再開性が読みやすいです。単一路がチェックサム等のゲートファイルを書き、扇展開は存在確認後に pull。periodic と評価周期はオフセット。詳細は rsync 稿 と Runbook を共有してください。

FAQ:Nomad × Mac 並列の勘所

constraint と affinity の使い分け: 必須条件は constraint、コスト最適化や軟着陸は affinity。

flock が飽和: ロック範囲が広すぎ。promote タスクを短くし、コンパイルはロック外へ。

2TB にしても黄信号: シミュレータとキャッシュ政策がボトルネック。メタで「重いノード」と「軽いノード」を分離。

運用目安。 数値は環境依存の目標で SLA ではありません。本番反映前に dry-run と削除挙動を検証してください。
並列 Mac クラスタ

同型 Mac mini M4 で Nomad+rsync を安定運用

ログイン不要でプラン確認から申し込みへ。Nomad 用の同型ノードとディスク段階を揃え、水位が黄信号になる前に拡張しましょう。

クラスタ/並列リソースを購入 プランを比較