1. Métadonnées. Les rafales de petits fichiers CI saturent Redis, SQL ou TiKV avant l’objet ; la p95 meta devient le signal à surveiller, surtout lorsque plusieurs régions montent le même système logique pendant la journée européenne et asiatique.
2. Cache. Un --cache-dir mélangé à DerivedData fausse les graphes df et masque la pression réelle sur APFS ; les équipes interprètent alors à tort un problème « S3 » alors que le goulot est entièrement local.
3. rsync. Sans --bwlimit ni verrou, les promotions écrasent des segments partiels et les digest OpenClaw perdent le fil du nœud canari ; la corrélation incident / build devient impossible sans horodatage UTC partagé.
Moteurs de métadonnées : matrice de décision Redis, TiKV et SQL
Redis pour la latence ; TiKV pour l’échelle d’inodes ; SQL lorsque l’audit relationnel prime. Documentez l’URL meta avec les playbooks et reliez-la aux fiches d’astreinte qui consomment déjà les webhooks OpenClaw. Lors d’un incident, la première question doit être « le moteur répond-il ? » avant d’accuser le compartiment distant. Prévoyez des sauvegardes cohérentes — snapshots Redis, exports TiKV ou dumps SQL — pour restaurer la couche meta sans rejouer tout l’historique objet ; faites porter les tests de charge sur des traces réelles plutôt que sur des micro-benchmarks isolés.
| Moteur | Atout | Risque | Signal de bascule |
|---|---|---|---|
| Redis | latence basse | RAM, AOF | p95 meta > 10 ms |
| TiKV | inode massif | ops plus lourdes | partitionnement dynamique |
| SQL | audits familiers | rafales petits fichiers | index > 50 % buffer |
Paramètres juicefs format et juicefs mount
Au format, figez compartiment S3, chiffrement et corbeille ; au mount, isolez --cache-dir, bornez --cache-size (~25 % utile sur 1 To, ~35 % sur 2 To si surveillance OK), ajustez --prefetch / --max-readahead et --max-uploads / --max-downloads. Activez --attr-cache et --entry-cache pour réduire les allers-retours méta chauds, en acceptant un léger délai de cohérence visible pour les attributs listés intensivement par Gradle ou CocoaPods.
Pour les artefacts, réutilisez --bwlimit, ≤2 flux simultanés et flock comme dans artefacts rsync ; si SeaweedFS coexiste, séparez montages et quotas (matrice SeaweedFS) afin que chaque graphe d’occupation reste lisible pour l’astreinte inter-régions.
| Paramètre | Rôle | Ordre de grandeur |
|---|---|---|
--storage s3 | objet régional | aligné sur le Mac principal |
--trash-days | anti-suppression | 3–7 j (CI partagée) |
--cache-dir / --cache-size | empreinte locale | SSD distinct ; 20–35 % utile |
--attr-cache / --entry-cache | mémo client méta | 1–5 s typiques ; monter après mesure |
--prefetch + uploads/downloads | seq. + WAN | 2–8 flux ; tuner p95 |
OpenClaw : sonde canari, webhook et digest d’échecs
Sur la passerelle, sonde HTTP + JSON fusionné (santé JuiceFS, 5xx S3, verrous CI) calqué sur AnalysisRun ; en GitOps Flux, gardez le même principe de jeton / digest que Flux canari. Le broadcast résume AZ, Mac, UTC, extrait log et lien incident sur le canal OpenClaw journaux. Limitez le corps à quelques champs stables pour éviter que des dumps volumineux ne fassent échouer le récepteur webhook pendant la nuit.
Déploiement : six étapes opératoires
- Cartographier quels Mac montent JuiceFS, l’URL meta et chaque compartiment S3 relié par le WAN.
- Formater avec
juicefs format(chiffrement, corbeille) ; archiver la commande hors secrets bruts dans le coffre d’équipe. - Monter avec cache isolé, caches méta, prefetch mesuré et plafonds WAN alignés sur la liaison contractuelle.
- Plafonner rsync et verrous selon la matrice artefacts ; décaler les promotions hors des fenêtres Nomad critiques.
- OpenClaw : publier la sonde canari, valider le corps webhook fusionné, exécuter un test d’échec volontaire pour vérifier le digest.
- Valider jalons 70 / 80 / 90 % avant nouveaux nœuds ou commande sur la page d’achat.
| Jalon disque | Disque 1 To | Disque 2 To |
|---|---|---|
| 70 % vigilance | réduire prefetch, auditer cache JuiceFS | planifier extension ou purge DerivedData |
| 80 % freinage | couper promotions rsync non critiques | baisser --cache-size ou déplacer le cache |
| 90 % urgence | arrêt CI non essentiel, eviction caches | contrôler inode (df -i) et méta distante |
Synthèse plateforme
Plusieurs montages sur un même Mac ? Oui si URL meta et caches sont disjoints ; sinon les métriques disque deviennent opaques. Sauvegardes meta avec restic ? Oui, dans la fenêtre nocturne restic/rclone pour éviter les collisions avec les pics JuiceFS. Preuve qu’un échec est local au canari ? Joindre empreinte nœud, version JuiceFS et hash du bundle promu dans le digest.
- Règle : conserver au moins quinze pour cent d’inodes libres lorsque plus de dix millions de petits fichiers partagent le même préfixe logique.
- Règle : journaliser chaque changement de
--max-uploadsavec la mesure WAN associée pour permettre un retour arrière rapide. - Règle : publier la matrice de décision meta dans le même référentiel que les manifests OpenClaw afin d’éviter les dérives de configuration.
Composez des nœuds Mac mini M4 pour meta, cache et CI
Isoler méta, cache JuiceFS et CI sur plusieurs Mac 1 To / 2 To : achat public, tarifs, aide SSH/VNC.