S3-lastige Pipelines vergleichen Sie mit der MinIO-EC-Matrix oder JuiceFS S3-Metadaten-Engines. Progressive Delivery über geteilte Volumes koppeln Sie an OpenClaw-Flagger-Canary-Sonden. Regionale Kapazität planen Sie über die Startseite.
Drei Engpässe vor dem ersten Gluster-Mount
Ohne gemeinsame Kalibrierung wirkt der Mac mini M4 Cluster instabil, obwohl WAN-Bandbreite ausreicht.
- Brick-Drift: unterschiedliche APFS-Pfade pro AZ — Replik-Quorum bricht bei Promotion, self-heal läuft endlos.
- rsync ohne Rückdruck: Artefakt-Stürme füllen einen Brick, während Gluster heal und Scanner sequenzielle Last addieren.
- Fehlende Buildsperren: parallele Lanes schreiben dieselbe Promotion-Datei — Split-Brain-Risiko steigt.
Replikvolumen und Brick-Planung (GlusterFS)
Wählen Sie das Schema nach effektiver Nutzlast, Heilfenster und thermischem Budget auf M4 — Zahlen sind Planungsgrößen für dedizierte Buildknoten.
| Volume-Typ | Bricks / AZ | eff. Nutzlast | Heilfenster | CPU-Last | Stabilität | Sicherheit |
|---|---|---|---|---|---|---|
| Replica 2 | 2 × 1 Brick | ca. 50 % | kurz | niedrig | kleine Teams | TLS + Auth |
| Replica 3 | 3 × 1 Brick | ca. 33 % | mittel | moderat | Standard CI | mTLS Peers |
| Replica 3 arbiter | 2 Daten + 1 Arbiter | ca. 50 % | mittel | moderat | WAN-tauglich | Arbiter isoliert |
| Dispersed 4+2 | 6 Bricks / Pool | ca. 66 % | lang | hoch | große Artefakte | EC-ähnlich |
Pro Brick ein dediziertes Subvolume unter /bricks/vol1/brickN; niemals System-Root teilen. cluster.quorum-type auto nur mit ungerader Server-Zahl und dokumentiertem Wartungs-Freeze.
Für WAN-übergreifende Parallel-Ressourcen empfiehlt sich Replica 3 mit Arbiter auf einem schmalbandigen Standort: zwei volle Daten-Bricks in Build-AZs, der Arbiter nur für Metadaten-Quorum. So bleibt effektive Kapazität höher als bei klassischem Drei-Wege-Replik über drei volle Knoten, ohne die Heilzeit eines Dispersed-Volumes zu akzeptieren.
Artefakt-rsync: Backoff und Parallelität
bwlimit in KiB/s koppeln an SSH-p95 und gluster volume heal info-Queue — erhöhen nur, wenn beide flach bleiben.
rsync -az --partial --delete-delay --bwlimit=48000 \ --timeout=300 --info=stats2 \ ./DerivedArtifacts/ mac-eu-02:/mnt/gluster-ci/promote/
| Profil | bwlimit KiB/s | Streams | Backoff-Trigger | SSH p95-Ziel | Stabilität |
|---|---|---|---|---|---|
| Tag (1 TB) | 38 000–45 000 | 1 | APFS > 72 % | < 150 ms | Default |
| Nacht (2 TB) | 52 000–70 000 | 2 | heal < 200 pending | < 180 ms | Promotion-Fenster |
| Notfall | 80 000 | 3 | Change-Record + Gelb-Gate | Freigabe nötig | kurzzeitig |
Buildsperren (flock) je Pipeline-Lane
Jede parallele Lane erhält einen eigenen Lock-Namespace; Promotions auf das Gluster-Mount nur nach erfolgreichem Heal-Check.
LOCK=/var/tmp/gluster-promote-${LANE_ID}.lock
flock -n "$LOCK" ionice -c2 -n4 rsync -az --delete-delay \
--bwlimit="${BWLIMIT}" "${SRC}/" "${GLUSTER_MOUNT}/stable/"
- Lane-Isolation: getrennte Unterverzeichnisse
stable/undcanary/— OpenClaw-Sonden lesen nur canary-getaggte Pfade. - Heal-Gate: Promotion blockieren, wenn die heal-Queue den Schwellwert überschreitet.
- Audit: Lock-Inhaber, PID und rsync-Exit-Code in JSONL pro Lane.
1TB/2TB-Platten-Wasserstände und Erweiterung
APFS- und Inode-Budgets pro Brick; bei gemeinsamem NVMe zwischen Gluster-Brick und Build-Artefakten striktere Schwellen als bei getrennten Volumes.
- 1 TB-Knoten: max. zwei parallele rsync-Streams; Brick-Reserve 120 GiB für self-heal-Spitzen.
- 2 TB-Knoten: dritter Brick oder Arbiter auf separatem Volume; Inode-Warnung bei > 75 % belegt.
- Erweiterung:
gluster volume add-bricknur nach dokumentiertem Drain und rsync-Pause aller Lanes.
Sechs Rollout-Schritte für Mehrregionen-Parallel-Cluster
- Baseline:
gluster volume statusund heal-Queues vor CI-Last erfassen. - Volume anlegen: Replica-Schema aus Matrix wählen; Bricks pro AZ symmetrisch provisionieren.
- Mount testen: Client mit
direct-io-mode disablefür kleine Build-Dateien benchmarken. - rsync profilieren: bwlimit und Backoff-Trigger in Runbooks; flock pro Lane aktivieren.
- Wasserstände automatisieren: täglicher APFS-Check; Gelb löst Ticket und Canary-Pause aus.
- Review: Post-Mortem mit heal-Queue, rsync-Exit-Codes und freier Kapazität je Brick.
Failover- und Split-Brain-FAQ
GlusterFS vs MinIO vs JuiceFS? POSIX-Workspaces und geteilte Derived Data → Gluster. Objekt-Promotion und EC → MinIO-Matrix. S3-Metadaten mit Client-Cache → JuiceFS. Nie zwei Primärmounts ohne Pfadtrennung.
Split-Brain erkennen? Widersprüchliche Quorum-Zähler oder divergierende Attribute unter .glusterfs/ — zuerst rsync stoppen, verlierenden Brick offline, Heal erst nach Freeze.
Canary während Heal? OpenClaw-Flagger nur auf canary-Pfad, wenn heal-Queue unter Schwellwert — siehe Flagger-Gateway-Sonden.
Zitierfähige Leitplanken
- Replik-Standard: Replica 3 oder 2+1 Arbiter für Mehr-AZ-Parallel-Ressourcen auf clustervps.
- rsync-Cap: 45–52 Mbit/s tagsüber (1 TB), 52–70 Mbit/s Nacht (2 TB) — Planungswerte, keine SLA.
- Promotions-Freeze: kein delete-delay-rsync bei heal-Queue > 200 oder APFS-Gelb.