Public : responsables plateforme et stockage qui orchestrent Xcode/CI et miroirs d'artefacts inter-AZ sur des ressources parallèles clustervps. Conclusion : un facteur replica 3 exige une brique par zone, le rsync doit être borné et les verrous de build couvrent la chaîne de sync la plus longue. Ce guide livre trois tableaux comparatifs, six étapes de déploiement et une FAQ de bascule prête pour vos runbooks d'astreinte.
1. Dérive des briques. Des chemins APFS divergents par AZ cassent le quorum lors des promotions nocturnes.
2. rsync sans backoff. Les tempêtes d'artefacts saturent une brique pendant que l'heal séquentiel ajoute de l'IO.
3. Verrous absents. Deux voies CI écrivent le même préfixe — le risque de split-brain grimpe.
Volumes répliqués et planification des briques GlusterFS
Nommez le volume de production artifacts-rep3 en replica 3 : une brique dédiée par Mac et par AZ, jamais sur le volume système. Les nœuds observateurs n'exécutent que glusterd et les métriques. Bornez performance.cache-size pour que l'indexation Xcode et l'heal ne se disputent pas le même NVMe aux heures de pointe CI. Documentez chaque chemin de brique dans le même référentiel que vos manifests OpenClaw afin qu'un remplacement de nœud ne recrée pas silencieusement un déséquilibre de quorum entre Tokyo, Singapour et Francfort.
| Topologie | Schéma briques | Usage recommandé |
|---|---|---|
| replica 3 | 3 AZ × 1 brique | CI parallèle & DerivedData partagé |
| replica 2 | 2 Mac | Laboratoire ; perte double hôte fatale |
| arbiter | 2 data + 1 témoin | Disques serrés ; chemins d'écriture plus complexes |
Matrice rsync backoff pour les artefacts
Les blobs immuables peuvent rester sur MinIO ou JuiceFS ; les répertoires d'artefacts continuent d'être synchronisés vers le montage Gluster. Le backoff signifie abaisser --bwlimit, réduire la concurrence et espacer les relances — pas un arrêt total.
| Scénario | Paramètres de départ | Action backoff |
|---|---|---|
| Delta journée | --bwlimit=35000 | Jalon jaune → 22000 ; rouge → pause delete |
| Seed initial | --partial-dir=/mnt/scratch/partial | Décaler 30 min hors fenêtre heal |
| Pic CI | Concurrence 1 ; --timeout=600 | 3 échecs → plafond relance 900 s |
ionice -c2 -n4 rsync -az --delete-delay --bwlimit=35000 --timeout=600 \
--partial-dir=/mnt/scratch/partial "${GOLDEN}:/artifacts/" /mnt/gluster/artifacts/
Verrous de build multi-projets (flock)
Utilisez flock sur /var/locks/build-${tenant} avec un TTL de 1200 secondes. Pendant le verrou, bloquez un second rsync dans le même sous-arbre Gluster. Alignez-vous sur la matrice artefacts rsync pour que les phases --delete n'empiètent jamais sur les promotions. Gelez les hausses de poids canari OpenClaw lorsqu'une brique franchit le jalon rouge — voir le guide Flagger canari.
Extension 1 To / 2 To et checklist des jalons disque
Étendez par add-brick plutôt qu'en remplaçant un seul disque sur place. L'acceptation doit inclure inodes, snapshots et taille de partial-dir — pas seulement le pourcentage APFS. Sur disque 1 To, réservez au moins 128 Go libres par brique avant de lancer un heal massif ; sur 2 To, planifiez la purge des caches locaux et des artefacts orphelins avant d'ajouter une quatrième voie CI parallèle.
| SKU | Jalon jaune | Jalon rouge | Action |
|---|---|---|---|
| 1 To | ~78 % | ~88 % | Couper rsync ; heal hors pic |
| 2 To | ~72 % | ~84 % | Vider partial-dir ; pause volumes non critiques |
Déploiement : six étapes opératoires
- Inventorier volumes, briques, points de montage et DAG rsync par locataire.
- Créer replica 3 et valider
gluster volume info(trois briques saines). - Monter au boot avec limites de cache client pour protéger l'heal.
- Appliquer la matrice rsync et un disque partial dédié par nœud.
- Déployer flock et cron de jalons sur chaque hôte brique.
- Répéter la bascule : hors ligne une brique, CI lecture seule, heal après gel du quorum ; commandez sur la page d'achat grappe.
FAQ bascule et reprise
GlusterFS vs MinIO vs JuiceFS ? Objets volumineux sur MinIO ; caches S3 méta sur JuiceFS ; Gluster porte les espaces POSIX et arbres incrémentaux. rsync avec une brique offline ? Replica 3 : écritures possibles mais --bwlimit immédiat ; replica 2 : lecture seule et CI en échec. Heal ou rsync après jalon rouge ? Pause rsync, drain scratch, retour jaune, puis gluster volume heal.
- Règle : rsync de base 35000 Ko/s ; passer à 22000 au jalon jaune.
- Règle : verrou flock 1200 s par locataire sur chemins de promotion partagés.
- Règle : contrat disque — 1 To jaune 78 % / rouge 88 % ; 2 To jaune 72 % / rouge 84 %.
Déployez la topologie GlusterFS sur des forfaits multi-nœuds
Une grappe Mac mini M4 inter-régions exige plusieurs Mac bare-metal pour héberger briques et CI. Ouvrez l'achat forfaits grappe, comparez les tarifs et validez les disques avec les tableaux ci-dessus — solution clustervps parallèle clé en main.