Topologie de sauvegarde sur grappe parallèle
Sur une grappe inter-régions, segmentez les chemins d’écriture : un préfixe objet par région ou, plus conservateur, par hôte, afin que deux processus restic backup ne tentent pas de sceller les mêmes packs sans mécanisme de verrou distant fiable. Pour les miroirs d’artefacts immuables, rclone reste souvent le chemin le plus prévisible lorsque l’historique dédupliqué n’apporte rien. Croisez ce schéma avec la matrice rsync d’artefacts afin que la promotion nocturne ne remplace pas un tarball pendant qu’un transfert multipart est encore ouvert.
Points de friction typiques
- Saturation WAN. Les liaisons inter-sites partagées avec le télétravail s’effondrent dès que trois nœuds montent en rafale sans plafond.
- Cache thermique & SSD. Les packs volumineux de restic augmentent les pics d’écriture APFS ; sans surveillance, le disque de 1 To approche des seuils critiques avant la fin du prune.
- Concurrence CI. Les pipelines Xcode ou les tâches Gradle qui tiennent un
flockou une session Nomad empêchent toute lecture cohérente si la sauvegarde démarre trop tôt — voir la matrice affinité Nomad et verrous de build.
Limites de bande passante, chunks et concurrence
Les tableaux suivants regroupent des invocations réalistes : copiez-les dans vos unités launchd, puis ajustez après une semaine de métriques. L’objectif est de garder la latence SSH interactive acceptable tout en saturant modestement le WAN réservé aux sauvegardes.
| Outil | Paramètre / fragment | Exemple exécutable | Effet opératoire |
|---|---|---|---|
| restic | --limit-upload | restic backup --limit-upload 4000 /chemin | Plafonne approximativement la montée (~4 Mbit/s cible ingénierie). |
| restic | --pack-size | restic -r s3:... backup --pack-size 8 /data | Packs 8 MiB : compromis RAM réseau pour Mac 16 Go. |
| restic | option backend | restic -o s3.connections=4 backup ... | Limite les connexions S3 concurrentes côté client. |
| restic | priorité disque | sudo ionice -c2 -n7 restic backup ... | Réduit la contention avec des compilations locales. |
| Outil | Paramètre | Exemple exécutable | Effet opératoire |
|---|---|---|---|
| rclone | --bwlimit | rclone copy ~/Artifacts s3:bucket/chemin --bwlimit 6M | Cap journalier lisible pour opérateurs. |
| rclone | --transfers / --checkers | ... --transfers 4 --checkers 8 | Parallélisme modéré sans explosion de descripteurs. |
| rclone | multipart | --s3-chunk-size 32M --s3-upload-concurrency 2 | Chunks S3 alignés sur la MTU WAN observée. |
| rclone | intégrité | rclone sync ... --checksum | Coût CPU supplémentaire mais preuve d’alignement. |
Rétention : dépôt restic forget versus arborescence rsnapshot
rsnapshot duplique des arborescences via des liens matériels : la rétention est géométrique sur le disque local ou NFS, et la suppression d’une rotation reste une opération de fichiers massifs. restic encapsule l’historique dans un dépôt chiffré adressable sur objet ; l’oubli se fait par politique temporelle (restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12) suivie d’un prune planifié lorsque le compartiment distant dispose de marge lifecycle. Cette distinction impose de provisionner l’espace objet pour les packs orphelins, alors que rsnapshot exige surtout des inodes et du free space APFS côté source.
| Critère | rsnapshot + rsync | restic vers objet |
|---|---|---|
| Surface d’attaque | Lectures directes sur snapshots montés | Packs chiffrés, clés hors bande |
| Rotation | Renommage de répertoires horodatés | Graphe de snapshots logiques + forget |
| Coût réseau | Pic lors du miroir complet | Incrémental dédupliqué, mais prune peut monter |
| Interop grappe | Partage NFS délicat entre AZ | Un dépôt par writer, agrégation métrique |
Décaler la fenêtre nocturne des verrous CI
Alignez vos minuteurs pour que la phase « lecture intensive » de restic ne coïncide pas avec la phase « écriture intensive » des builds. Documentez l’heure de libération du verrou dans le même référentiel que vos playbooks SSH clustervps.
- Cartographier les créneaux
launchdexistants et les fuseaux des développeurs. - Insérer au moins quarante-cinq minutes de marge après la fin statistique des pipelines parallèles.
- Étiqueter les jobs Nomad ou systemd pour filtrer rapidement les collisions dans les journaux.
- Tester un vendredi avec
restic check --read-data-subsetpartiel avant le premier prune complet. - Publier le créneau validé dans le centre d’aide interne et synchroniser les alertes disque.
Jalons disque 1 To / 2 To (acceptation)
Seuil 70 % — rapport hebdomadaire automatique sur l’espace libre et les inodes APFS (df -h, df -i).
Seuil 80 % — bloquer les nouveaux artefacts éphémères et déclencher un nettoyage ciblé DerivedData.
Seuil 90 % — fenêtre d’urgence : suspendre les uploads rclone non critiques et reporter le prune restic après libération mesurée.
FAQ express
Faut-il chiffrer deux fois si le compartiment SSE côté cloud le fait déjà ? Conservez la clé restic pour la portabilité et la révocation indépendante ; la couche SSE protège au repos chez l’opérateur, pas contre une compromission de compte.
Peut-on mélanger rclone le lundi et restic les autres nuits ? Oui, pourvu que les chemins objet ne se chevauchent pas et que les métadonnées de lifecycle ne purgent pas des packs encore référencés.
Que surveiller le matin après la première grosse montée ? Latence SSH, pression mémoire du processus restic, erreurs HTTP 503 côté endpoint S3 compat, et corrélation avec les métriques CPU de compilation résiduelle.
Besoin de nœuds supplémentaires pour étaler restic ?
Consultez les options de montée en charge sur la page d’achat, comparez les forfaits Mac mini M4 sur les tarifs publics, puis parcourez le centre d’aide pour SSH, fenêtres de maintenance et bonnes pratiques disque.