nfs-sync a été décommissionné ; les sauvegardes sont désormais effectuées directement de Balearica vers Sarus. Les données ne sont plus systématiquement centralisées sur Antigone.
Le script nfs-sync est un petit utilitaire développé pour nos besoins internes.
La plupart des volumes de nos serveurs ne sont pas connectés à NFS et existent uniquement en local sur le serveur. Plusieurs raisons sont possibles :
root_squash
) et la façon dont le service gère ses fichiers et ses droits d’accès. Par exemple, le service mail dispose de nombreux logiciels en interne, qui utilisent tous des comptes UNIX différents dans le conteneur. Il en découle des droits d’accès variables selon le compte ;Or, dans l’organisation de notre infrastructure, nous souhaitons cette configuration :
En raison des limitations de NFS ou de considérations de performance, les données se retrouvent ainsi éparpillées sur plusieurs serveurs, contrairement à l’objectif défini, ce qui ne facilite pas les opérations de sauvegarde.
Pour faire face à ce problème, nous avons développé le script nfs-sync dont le rôle est de copier les volumes locaux de nos serveurs (ceux qui ne sont pas sur NFS) vers les machines de stockage, en copiant chaque volume local vers un volume NFS.
Ce script est exécuté dans un conteneur Docker qui dispose d’un accès en lecture au dossier /var/lib/docker/volumes/
de l’hôte. Le volume NFS est monté dans le dossier /sync/
sur le conteneur. Voir son dossier correspondant dans le dépôt Core.
Voilà à quoi ressemble ce script dans son ensemble :
#!/bin/bash
# nfs-sync
echo "Start syncing volumes at `date`."
# List volumes to copy
LOCAL_VOLUMES=(
"local-volume-1"
"local-volume-2"
)
for volume in ${LOCAL_VOLUMES[@]}; do
mkdir -p /sync/$volume
echo "Copying $volume…"
rsync -rav --delete --no-o --no-g /volumes/$volume/ /sync/$volume/
echo "Copied $volume."
done
Ce script reste toutefois une solution transitoire : cette problématique pourra être traitée en amont dans les futures formes que prendront notre infrastructure.