NAS Synology : pour les sauvegardes et pour diffuser les médias

Séduit par l’idée d’un boîtier pour effectuer mes sauvegardes à faible coût, faible consommation énergétique, faible encombrement, en ligne 24h/24, j’ai récemment fait l’acquisition d’un NAS (Network Attached Storage); et c’est assez naturellement que je me suis tourné vers Synology, un des (sinon le) incontournables du marché (l’utilisation de Linux BusyBox et d’une multitude de logiciels libres n’y est sans doute pas pour rien !); j’ai opté pour le DS211J, qui dispose de 2 baies à disque SATA; pour l’instant je n’y aie inséré qu’un disque de 1.5 To.

Mon objectif premier est de réaliser des sauvegardes robustes, la cerise sur le gâteau (ou sundae) est le fait de pouvoir consulter mes fichiers multimédias sur mon téléviseur (via une vieille XBOX avec XBMC et/ou une PS3)

Architecture de sauvegarde robuste

On réalise des sauvegardes, car on ne veut pas perdre des années de photo, de travail sur documents multimédia (montages vidéos) ses documents personnels (impôts, etc..).

La majorité des utilisateurs sauvegarde leurs fichiers vers un disque dur externe, quand ils y pensent…

Cette approche là est résolument insatisfaisante : il faut automatiser (fréquence) le processus de sauvegarde (donc avoir du matériel toujours disponible pour effectuer la sauvegarde) et aussi diversifier ses lieux de sauvegarde (tout sauvegarder sur des supports qui se trouvent au même endroit que les originaux ouvre la porte à une perte de donnés en cas d’inondation, incendie, cambriolage, etc…)

Je vais décrire ici comment utiliser un NAS Synology pour :

  • y sauvegarder ses documents (les machines du réseau local, dans notre cas sous Ubuntu, vont sauvegarder vers le NAS)
  • synchroniser ces sauvegardes vers une machine distante (le NAS va synchroniser les sauvegardes vers une machine dans un data center)
  • y sauvegarder des sites internet et boîtes courriels hébergés sur un serveur distant (une machine dans un data center va sauvegarder ses données vers le NAS)

Enfin, je décrirai quelques astuces pour profiter de son NAS en serveur multimédia.

Sauvegarde entre les ordinateurs locaux et le NAS

Il existe un excellent article qui introduit ce propos sur le wiki de Synology; ceci dit la technique est la même que celle que j’avais décrit pour des sauvegardes distantes.

Mon objectif est ici de sauvegarder mon home directory (/home/anthony en excluant tous les .*) et rien d’autre
Voici mes remarques et ajouts :

  • Depuis l’interface graphique de votre NAS, rendez vous dans Panneau de configuration>Utilisateur, sélectionnez votre utilisateur et appuyez et cocher « Accueil Utilisateur » (une traduction sympathique de Home directory :-p) , vous disposez maintenant d’un répertoire personnel dans /volume1/homes/votre_utilisateur
  • la première étape est la création d’une clef (DSA, c’est important, RSA n’a pas marché chez moi…) sans mot de passe; utilisez la série de commande standard suivantes, dans mon cas :

ssh-keygen -t dsa -b 1024 -f ~/.ssh/diskstation

(pas de mot de passe, il serait difficile de gérer des sauvegardes non interactives avec un mot de passe, vérifiez quand même que votre clef .ssh/diskstation est en 600)

  • Maintenant envoyer la clef publique à votre NAS :

ssh-copy-id -i .ssh/diskstation.pub anthony@diskstation

  • Tester la connexion à votre NAS en utilisant la clef : (attention, il est fort possible que votre utilisateur n’aie pas de shell utilisable par défaut; connectez vous alors via SSH en tant que root (même mot de passe que admin) à votre NAS et éditez /etc/passwd, sur la ligne correspondant à votre utilisateur, remplacez /sbin/login par /bin/ash ; l’interpréteur de commandes par défaut)

ssh -i .ssh/diskstation diskstation

vous devriez arriver, sans mot de passe, dans le répertoire /volume1/homes/votre_utilisateur de votre NAS.

  • rsync pour sauvegarder, la commande est assez simple :

rsync -avz --delete /home/anthony/ --exclude=.* diskstation:/volume1/homes/anthony/sauvegarde

  • sauf que le vrai défi avec les sauvegardes, c’est qu’il faut qu’elles soient automatiques, et lancées périodiquement ! ce bon vieux cron est encore une fois notre ami :

vim sauvegarde.ssh

on y écrit :

chmod +x

on peut tester :

./sauvegarde.sh

et enfin le rajouter à la crontab :

sudo vim /etc/crontab

et rajouter la ligne (pour lancer la sauvegarde tous les Dimanche à 2h00) :

  • Répétez cette opération pour tous les postes du réseau local.

Tout devrait bien se passer quotidiennement, à surveiller que tout est bien en place quand le disque dur de l’hôte commence à faire des bruits étranges ou avant de partir en congés…

Sauvegarde entre le NAS et un serveur distant

Le logiciel d’administration web des NAS Synology, Disk Station Manager (DSM 3.1 au moment où j’écris) dispose d’une efficace interface d’administration, qui comporte un volet « Restaurer et sauvegarder »; nous pourrions très bien faire comme précédemment pour sauvegarder le NAS vers un serveur distant, mais autant profiter de l’interface graphique et des notifications de DSM !

Pour commencer, vous devez préparer votre serveur distant à recevoir les sauvegardes, dans mon cas, nous avons un utilisateur backup, avec son répertoire personnel /home/backup

Dans ce même répertoire personnel, nous allons y créer un fichier rsyncd.conf avec le contenu suivant :

Grâce à ce fichier, lorsque votre NAS fera ses sauvegardes, il trouvera la configuration rsync.

Côté client, donc le NAS, dirigez vous vers l’interface graphique « Restaurer et sauvegarder » et créez une nouvelle sauvegarde

  • choisissez sauvegarde réseau (compatible rsync)
  • sélectionnez toutes les options SAUF l’avant dernière (réserver les fichiers; si vous la cochez, lorsque vous supprimerez un fichier/répertoire de la source il sera gardé sur le serveur)
  • choisissez le nom de module rsync que vous avez configuré sur votre serveur distant (dans notre cas diskstation) et saisissez l’utilisateur (dans notre cas backup) ainsi que son mot de passe
  • Testez la connexion, paramétrez la fréquence

Et c’est fini !

Sauvegarde entre un serveur distant et le NAS

Dans ce cas ci, vous devez au préalable avoir un moyen d’identifier sur internet votre nas, par exemple, DSM vient avec un client DynDNS.

Dans la suite du paragraphe j’assume que vous avez un nom d’hôte fixe (ou une IP fixe) pour votre NAS, et que vous pouvez y accéder par internet (pour ceci vous devrez configurer aussi les bons port forwarding [seul ssh nous intéresse dans le cas présent] depuis votre routeur ou « box »)

Pour le reste, c’est la même chose que ce que j’ai décrit au chapitre « Sauvegarde entre les ordinateurs locaux et le NAS » …

La particularité que vous pourrez rencontrer, au cas où vous sauvegarder des répertoires qui appartiennent à plusieurs utilisateurs sur le serveur distant à sauvegarder vers le NAS, est de travailler avec l’utilisateur root : c’est le seul utilisateur à pouvoir accéder à tous le système de fichiers.

Donc

  • côté NAS, créez un utilisateur backup, donnez lui un répertoire personnel et l’accès via SSH;
  • côté serveur distant à sauvegarder, créez un couple de clefs pour se connecter sans mot de passe au NAS, en tant que utilisateur backup, créez un script sauvegarde.sh, qui vous rentrerez dans la crontab, à lancer par root (il pourra donc travailler sur tout le système de fichiers)

procéder de cette manière vous permet de pouvoir sauvegarder tout le système de fichiers, sans jamais compromettre l’utilisateur root (pas de connexion en tant que root, ni par SSH ni par sudo, etc…)

 

Astuces pour la performance de votre NAS Synology

Si vous avez beaucoup de photos dans le partage « photo », vous risquez de voir un process appelé « convert » (en fait c’est imagemagick) prendre tout la mémoire vive et une bonne partie du CPU de votre Synology.

Ce process est lancé par le démon suivant :

/usr/syno/etc/rc.d/S77synomkthumbd.sh

donc il vous suffit, une fois connecté par ssh en root (même mot de passe que admin une fois que l’accès ssh est configuré) de lancer :

/usr/syno/etc/rc.d/S77synomkthumbd.sh stop

Si vous voulez définitivement arrêter ce service, éditez le avec vim et rajouter exit à la 2ème ligne (cette astuce est publiée dans le wiki de synology; attention à ne pas comme eux désactiver postgresql, toutes les applications multimédia : photo, son, video, téléchargements nécessitent cette base de donnée); attention quand vous remettrez votre NAS à jour, il faudra ré effectuer l’opération (sigh!)

 

Diffuser des fichiers vidéos hébergés par le NAS Synology

Le plus simple, si vous disposez d’un lecteur branché à la TV qui peut naviguer sur des partages Samba/CIFS (comme la vieille XBOX avec XBMC), c’est alors de configurer un dossier partagé (par défaut, un dossier partagé est un partage SMB/CIFS) contenant vos vidéos.

Si vous utilisez une PS3, l’approche est différente, il faut utiliser le partage médias par DLNA (car la PS3 ne peut pas monter un partage SMB/CIFS)

Si vous configurez votre NAS comme étant un serveur DLNA, il vous suffit d’avoir vos videos dans le partage video pour que la PS3 puisse les lire…enfin çà va bien pour les formats (container, codes audio et video) que la PS3 reconnaît nativement…

Pour les autres formats de video, comme par exemple container MKV encapsulant du h264, votre PS3 vous dira « format de fichier non compatible ».

Deux options se présentent à vous :

  • votre PS3 utilise un firmware « non officiel »comme le CFW 3.55 kmeaw, dans ce cas vous pouvez installer le logiciel de lecture Showtime sur votre PS3, qui non seulement lit les partages DLNA, mais est capable aussi d’ouvrir à peu près tous les containeurs vidéo et recense un bon nombre de codecs..(il repose sur libav)
  • Une autre approche, est de convertir à la volée vos fichiers vidéos dans un format que la PS3 peut ouvrir, le logiciel PS3 Media Player semble pouvoir être installable sur un NAS Synology, ceci dit je n’ai pas essayé…