Description globale de la réplication

Plutôt que de sauvegarder sur bande les fichiers générés et de nécessiter une intervention manuelle, le répertoire de backup sera répliqué sur le deuxième system controller du SunFire 15K. La synchronisation des deux serveurs sera effectuée à l'aide de l'utilisatire rsync.

Dans la suite du document, on effectuera donc la synchronisation du sf15k01sc1 sur le sf15k01sc0. Le sf15k01sc0 sera donc considéré comme Maître et le sf15k01sc1 comme Esclave. En tout état de cause, toutes les modifications devront être faites sur le serveur maître (sf15k01sc0), sous peine d’être supprimées lors de la synchronisation.

Pré requis à la mise en place de cette réplication

  • La commande rsync doit être présente sur chacun des serveurs.
  • Un espace de stockage suffisant doit être créé sur chaque serveur
  • Les clefs ssh des utilisateurs effectuant cette réplication (root dans notre cas) doivent avoir été configurées pour permettre l'autologin.

Installation de rsync

La version de Solaris isntallée sur les SC n'inclut pas l'utilisatire rsync, par conséquent, celui ci sera installé depuis le package rsync-2.6.3-sol8-sparc-local librement téléchargeable sur le site Sunfreeware.com. A noter que le package popt-1.7-sol8-sparc-local doit également être installé.

L'installation du package se fait de façon classique :

Décompression des paquets :

gunzip /tmp/popt-1.7-sol8-sparc-local.gz
gunzip /tmp/rsync-2.6.3-sol8-sparc-local.gz

Puis installation de ceux ci à l'aide de la comande pkgadd :

pkgadd -d /tmp/popt-1.7-sol8-sparc-local
pkgadd -d /tmp/rsync-2.6.3-sol8-sparc-local

l'ensemble des données à synchroniser entre les deux SC sont situées dans le répertoire /export/install.

Configuration de l'autologin SSH

Création des clefs publiques et privés sur chaque serveur :

/usr/local/bin/ssh-keygen -t rsa

Puis copie de la clef publique dans le fichier authorized_keys du serveur distant afin de permettre l'autologin :

/usr/local/bin/ssh root@10.0.66.120 < .ssh/id_rsa.pub '[ ! -d ${HOME}/.ssh ] && mkdir -p ${HOME}/.ssh ;\ 
cat >> .ssh/authorized_keys'

L'opération est réalisée sur les deux SC et on vérifie que l'autologin est effectif.

Mise en place de la synchronisation

La synchronisation est effectuée depuis le (ou les serveur(s) esclave(s) à l'aide de la commande suivante :

/usr/local/bin/rsync -a --delete  --rsh="ssh -l root" root@10.0.147.212:/export/install/ /export/install/

On prendra bien soin de ne pas omettre le "/" final après chaque nom de répertoire afin de copier le contenu du répertoire, et nom le répertoire lui même, sans quoi, l'arborescence ne sera pas identique sur le serveur cible. La première exécution effectue la copie de tous les fichiers du serveur Maître vers le serveur Esclave et peut prendre un temps non négligeable. Les exécutions suivantes ne concerneront que les fichiers modifiés depuis la dernière synchronisation. Un nombre de fichiers élevé dans le répertoire conduira cependant à un temps d'exécution relativement important. Cette commande peut alors ête ajoutée à la crontab pour une exécution quotidienne.

L'option -a correspond au mode Archive et l'équivalent de l'ensemble des options : -rlptgoD L'option --delete permet la supression des fichiers qui ne sont pas présents sur le serveur maître, et nous assure d'avoir le même contenu sur l'ensemble des serveurs. L'ensemble des options existantes est décrite dans la page de man de rsync