Nous avons vu il y a quelques jours comment répliquer nos bases de données à la volée d'un serveur à l'autre. Voyons aujourd'hui comment répliquer les fichiers en temps réel avec lsyncd.

Créer un serveur High Availability : la réplication des fichiers photo

Pour les besoins de ce tutoriel, vous avez besoin:

Mon serveur principal s'appelle MASTER. Le serveur de sauvegarde s'appelle BACKUP.

Copier tous les fichiers d'un serveur à l'autre avec rsync

rsync est le moyen le plus simple de copier tous les fichiers d'un répertoire sur votre serveur de sauvegarde.

Nous copions donc tous les fichiers qui se trouvent dans /var/www/html de notre serveur MASTER vers BACKUP :

rsync --progress -av --delete --stats --checksum --human-readable /var/www/html/* root@10.134.4.220:/var/www/html/

Cela permet d'avoir deux copies identiques très rapidement, surtout si vos deux VPS sont dans le même datacenter : vous pouvez alors utiliser l'IP interne du serveur - vitesse décuplée assurée (et cela ne compte pas dans la bande passante allouée).

La réplication des fichiers du site avec lsyncd

Je choisis d'utiliser lsyncd pour assurer la réplication des fichiers du site. C'est un petit service qui surveille le contenu d'un répertoire et qui fait un rsync toutes les 20 secondes vers votre autre VPS.

A lire :  Fable : Le Pigeon et le Renard

1. Sur le serveur MASTER, on installe lsyncd:

apt-get install lsyncd

2. Et on crée ses répertoires et son fichier de configuration :

mkdir /etc/lsyncd
mkdir /var/log/lsyncd
nano /etc/lsyncd/lsyncd.conf.lua

3. Munissez-vous de l'adresse IP interne du serveur BACKUP (10.134.4.220 chez moi).

4. Ajoutez le code suivant dans le fichier :

settings  {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd-status.log",
    statusInterval = 20,
    delete = true
}
      sync {
      default.rsync,
      source="/var/www/html/",
      target="10.134.4.220:/var/www/html/",
      rsync = {
        acls = true,
        verbose = true,
	compress = true,
	owner = true,
	group = true,
	perms = true,
        _extra = {"-a"},
        rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no" }
      }

Il est important de changer l'adresse IP de la ligne 11 pour y mettre celle de votre serveur de destination (serveur BACKUP). Je mets l'adresse IP interne pour ne pas "manger" la bande passante mensuelle.

Vous pouvez maintenant lancer lsyncd avec:

service lsyncd start

et vérifier son état de fonctionnement:

service lsyncd status

Si lsyncd est correctement configuré, lancé et actif, vous devriez avoir quelque chose comme ceci :

lsyncd.service - LSB: lsyncd daemon init script
   Loaded: loaded (/etc/init.d/lsyncd; bad; vendor preset: enabled)
   Active: <code>active (running)

Notez la mention active (running), en vert.

Pour vérifiez si tout fonctionne : créez un fichier dans le répertoire /var/www/html sur votre server MASTER. Quelques secondes plus tard, ce fichier apparait sur le serveur BACKUP.

Résoudre l'erreur "Error: Terminating since out of inotify watches"

Si jamais il y a trop de fichiers à transférer d'un coup, il se peut que lsyncd ait du mal à faire face à un nombre de fichiers trop important, d'un seul coup.

On peut alors obtenir le message d'erreur suivant dans les logs:

      Sat Feb 25 08:35:22 2017 Error: Terminating since out of inotify watches.
      Consider increasing /proc/sys/fs/inotify/max_user_watches

Le message d'erreur est très explicite. Il suffit d'éditer /etc/sysctl.conf:

nano /etc/sysctl.conf

ajoutez ensuite cette ligne à la fin du fichier:

fs.inotify.max_user_watches=32768

activez les changements de manière permanente:

sysctl -p /etc/sysctl.conf

et enfin, relancez le service et vérifiez son état de service :

service lsyncd restart
service lsyncd status

Voilà. Vos fichiers sont maintenant répliqués en temps réel. Rien ne vaut un petit rsync de temps en temps pour vérifier que tout est bien à jour. Cela peut s'avérer utile lors de gros changements dans la structure d'un site.

A lire :  Créer une redirection DynDNS

Sommaire de la série Créer un serveur High Availability (HA)

  1. Créer un serveur High Availability : la réplication des bases de données
  2. Créer un serveur High Availability : la réplication des fichiers
  3. Serveur High Availability : créer un load balancer avec une IP flottante

Pour développer votre projet WordPress ou Woocommerce, faites appel à mon expertise pour réaliser un site rapide, performant et fonctionnel.

Je soumets mon projet

Si vous avez trouvé une faute d’orthographe, informez-nous en sélectionnant le texte en question et en appuyant sur Ctrl + Entrée s’il vous plaît.

Articles en rapport:

Créer un serveur High Availability : la réplication des fichiers

par Matt Lecture: 4 min
0

Pin It on Pinterest

Share This

Spelling error report

The following text will be sent to our editors: