Maniatux's Blog

Welcome to the internet

Serveur de fichiers + Réplique

Rédigé par Xavier - -

Introduction

Pour stocker de manière permanente et sécurisée mes fichiers, je me suis monté un petit NAS très simple à base d'Atom, disque dur 1To tournant sur une Debian Squeeze. Je n'ai mis qu'un accès FTP pour le moment mais on peut très bien configurer du NFS ou du SAMBA si besoin.

Sécurité des données

Un disque dur n'est pas à l'abri d'une panne, il faut donc trouver un moyen de préserver les données quoi qu'il arrive. Une première solution est un RAID1, qui est envisageable pour moi vu que j'ai deux disques identiques de 1 To. Mais le RAID a surtout pour but d'assurer la continuité de service en cas de panne d'un disque, et non de préserver les données. En effet on est pas à l'abri d'une mauvaise manip provoquant la perte des fichiers, ou même dans le pire des cas une défaillance sur la carte mère qui bousillerait les deux disques en même temps. De plus je n'ai vraiment pas besoin d'une continuité de service.

L'autre solution est de créer un serveur-réplique, sur lequel on synchronise régulièrement les données. Il assure une bien meilleure sécurité.

Serveur principal

Les données sont stockées dans le répertoire /srv

Serveur réplique

Ce serveur est virtualisé sur Windows 7 par VirtualBox. J'utilise une des fonctionnalités avancées de ce dernier qui permet d'utiliser un disque physique pour une machine virtuelle (ce qui n'est pas faisable par l'interface graphique). L'astuce est détaillée ici, n'oubliez pas de lancer VirtualBox en administrateur par la suite sinon cela ne fonctionnera pas.

Ce serveur virtualisé tourne sur Debian également et stocke ses données sur /srv ce qui nous simplifie la vie. Ce qu'on lui rajoute en plus, c'est rsync tournant en daemon. Pour ceux qui ne connaissent pas, c'est un outil permettant de synchroniser des répertoires à travers un réseau. Il permet notamment des sauvegardes incrémentielles et beaucoup de paramétrages.

Rsync peut fonctionner sur des partages NFS ou autres, mais s'en passe très bien grâce à un modèle client/serveur. Pour pouvoir activer rsync en serveur, voici les manipulations à effectuer.

Ouvrir le fichier /etc/default/rsync, chercher la ligne RSYNC_ENABLE et passer la valeur en TRUE Ensuite vous devez définir quels répertoires devront être synchronisés. Ces paramétrages se trouvent dans /etc/rsyncd.conf voici les miens pour l'exemple:

log file = /var/log/rsyncd.log

[replique] #Nom du partage
uid=xavier #Sous quel user rsync doit parcourir ce répertoire
gid=xavier #Sous quel groupe
path=/srv/ #Mon partage
read only = false #J'ai le droit d'écrire
list = yes #J'ai le droit de lister

Lancement d'une synchro

Sur le serveur principal (et non celui qui sert de réplique, lancer la commande suivante:

# rsync -av --delete /srv/ IPsrvreplique::replique

Explication des paramètres:

  • -av: le a est un raccourci pour archiver, le v pour être verbeux
  • --delete: Supprimer sur la réplique les fichiers qui n'existent plus sur le serveur principal
  • /srv/ le répertoire du serveur qu'on veut synchroniser
  • IPsrvreplique::replique l'ip du serveur réplique, suivi du nom du partage à utiliser.

Et si vos serveurs tournent 24h/24 vous pouvez faire un script cron pour automatiser cette réplique. La première réplique prendra énormément de temps, pour mes 600Go de données il m'a fallu quasiment 3 jours car rsync utilise un système de checksum.

Classé dans : Sysadmin - Mots clés : aucun