マウント前に詰まる三つの痛点
- brick ドリフト。 AZ ごとに APFS パスがずれると昇格時にレプリカが割れます。
- 退避なし rsync。 生成物嵐が一 brick だけを埋め、heal が直列 IO を足します。
- ビルドロック欠如。 並列レーンが同一昇格ツリーを書き、スプリットブレインリスクが上がります。
① レプリカボリュームと brick 設計
本番は artifacts-rep3 をレプリカ 3で作成します。brick は専用 APFS データディスクに置き、システムボリュームは共有しません。オブザーバは glusterd とメトリクスのみ。Xcode 索引と heal が同じ NVMe を奪わないよう performance.cache-size を抑えます。
| レイアウト | brick パターン | 用途 |
|---|---|---|
| replica 3 | 3 AZ × 各 1 brick | 本番 CI・共有 DerivedData |
| replica 2 | 2 ノード | 検証用・二重障害は不可 |
| arbiter | 2 data + 1 witness | ディスク逼迫時・経路が複雑 |
② 生成物 rsync 退避マトリクス
オブジェクトは MinIO/JuiceFS、ディレクトリ生成物は Gluster へ rsync します。退避とは bwlimit 低下・並列削減・再試行間隔延長であり、完全停止ではありません。
| シナリオ | 初期パラメータ | 退避 |
|---|---|---|
| 昼間デルタ | --bwlimit=35000 | 黄水位 → 22000、赤 → delete フェーズ停止 |
| 初回シード | --partial-dir=…/partial | heal 窓から 30 分ずらす |
| CI ピーク | 並列 1・--timeout=600 | 三回失敗で再試行 900 秒上限 |
ionice -c2 -n4 rsync -az --delete-delay --bwlimit=35000 --timeout=600 \
--partial-dir=/mnt/scratch/partial "${GOLDEN}:/artifacts/" /mnt/gluster/artifacts/
③ マルチプロジェクト・ビルドロック
/var/locks/build-${tenant} に 1200 秒 TTL の flock を置き、ロック中は同一 Gluster サブツリーへの二重 rsync を禁止します。生成物 rsync 決定表稿 と整合させ、brick が赤水位なら OpenClaw カナリア稿 と同様に加重昇格を凍結します。
④ 1TB/2TB 拡張とディスク水位検収
拡張は add-brick で行い、単一ディスクの差し替えだけに頼りません。検収は使用率に加え inode・スナップショット・partial サイズを含めます。
| SKU | 黄信号 | 赤信号 | 処置 |
|---|---|---|---|
| 1TB | 約 78% | 約 88% | rsync 抑制・heal はオフピーク |
| 2TB | 約 72% | 約 84% | partial 排出・非クリティカル停止 |
運用五手順(導入から切替訓練まで)
- 棚卸し:テナントごとにボリューム・brick・マウント・rsync DAG を一覧化します。
- replica 3 作成:
gluster volume infoで三 brick 健全を確認します。 - 起動マウント:クライアントキャッシュ上限を書き、索引と heal の競合を避けます。
- rsync マトリクス適用:ノードごとに partial 用ディスクを分離します。
- 切替訓練:一 brick オフライン→読み取り専用 CI→黄水位後に heal、を runbook 化します。
⑤ 故障切替 FAQ
GlusterFS と MinIO・JuiceFS の分担は? 不変 blob は MinIO、メタ重い S3 キャッシュは JuiceFS、POSIX ワークスペースは Gluster。同一パスに二系統のプライマリを載せないでください。
brick 一つ落ちたまま rsync してよい? レプリカ 3 は可ですが直ちに bwlimit を下げます。レプリカ 2 は読み取り専用にし CI を止めます。
赤水位後は heal と rsync の順序は? rsync 停止→partial とスクラッチ排出→黄水位→gluster volume heal の順です。
GlusterFS トポロジを clustervps 並列レーンへ載せる
跨区 Mac mini M4 クラスタ には brick と CI を載せる複数ベアメタルが必要です。購入(並列パッケージ)でノードを足し、料金と上表でディスクを検収してください。clustervps の並列方案は SSH/VNC と拠点選択に対応しています。