Skip to main content

Sauvegarder un NAS Buffalo sur un cloud

Hello !

Après ma mésaventure des disques qui plantent, j’ai décidé de sauvegarder mes NAS en ligne (en plus de la réplication sur d’autres supports… oui, je suis parano, et je l’assume !). J’ai choisi d’utiliser le service Object Storage proposé par OVH. Pourquoi utiliser ce service ?

  • Pas de limite d’espace
  • Une facturation au Go stocké
  • Un prix assez attractif (compter 0,012 € TTC / mois / Go stockés et 0,012 € TTC / Go en trafic sortant, ce qui ne devrait – en théorie – pas arriver souvent)

Pour créer le conteneur sur OVH, ce guide est assez bien fait. A noter que dans notre cas, nous veillerons bien à créer un conteneur privé. Il nous faut également un nom d’utilisateur et mot de passe OpenStack. Pour cela, utilisez ce guide.

Ensuite, occupons-nous du NAS. Le modèle dont je dispose est un Buffalo LinkStation acquis il y a quelques années. En bref, nous allons dans un premier temps activer un accès SSH à ce disque, puis installer un utilitaire de synchro et enfin paramétrer tout ça.

Ouvrir l’accès SSH au disque

Pour cette tâche, nous allons utiliser un petit soft très bien fait : APC Commander. Rendez-vous sur cette page, puis téléchargez la version qui correspond à votre système.Ouvrez-le puis suivez les étapes ci-dessous :

sc-buffalo-ls

Une fois l’utilitaire démarré, il découvrira les disques compatibles sur votre réseau. Suivez alors les étapes suivantes :

  1. Sélectionnez le disque dans la liste en dessous de Select LinkStation;
  2. Entrez votre mot de passe admin (celui de l’interface web) dans le champs Admin password;
  3. Cliquez sur le bouton Enable SSH pour activer le protocole SSH sur le disque;
  4. Cliquez ensuite sur Set root PW pour modifier le mot de passe root à la machine.

Bien. Nous avons maintenant accès via la console au NAS, on s’y connecte…

Connexion en SSH à la console

Connectez-vous en SSH à votre disque via la commande :

ssh root@<ip.du.nas>

puis, lorsque demandé, entrez le mot de passe root mis en place dans l’étape précédente. Vous y êtes ? Bien, on continue…

Installation de RClone

RClone est un outil vous permettant de synchroniser un répertoire local avec une instance distante et notamment via le protocole OpenStack-Swift, qu’utilise le système Object Storage proposé par OVH. Nous allons donc l’installer. Première étape, l’architecture de notre disque. Pour ma part, il s’agit d’une archi ARM. Mais pensez tout de même à vérifier que la votre est bien identique avec la commande :

uname -m

qui devrait retourner un truc du genre : armv5tel

Rendez-vous sur le site de RClone, copiez le lien de téléchargement de la version correspondante à l’architecture de votre disque, puis retournons dans la console pour y télécharger le soft. Pour une architecture ARM, cela donne :

wget http://downloads.rclone.org/rclone-current-linux-arm.zip
unzip rclone-current-linux-arm.zip
cd rclone-current-linux-arm
./rclone -V

La version correspondante à RClone devrait alors s’afficher (si tout se passe bien). Par commodité, nous allons déplacer RClone dans le répertoire /usr/sbin afin qu’il soit accessible depuis n’importe quel folder sans devoir y indiquer le path complet.

mv ./rclone /usr/sbin

Une fois cela fait, nous devons créer un fichier de configuration pour RClone. Heureusement pour nous, il dispose d’un outil interactif pour le faire. Pour lancer la config, il suffit de lancer la commande :

rclone config

On vous posera alors plusieurs questions. Voici ce qu’il faut répondre dans notre cas :

  • « No remotes found – make a new one » → n, Entrée
  • « Name » → Entrez le nom du remote (par ex. OVH_Object_Storage), puis Entrée
  • « Type of Storage » → OVH est du type « OpenStack Swift », donc entrez 10, puis Entrée
  • « User » → Entrez votre nom d’utilisateur OpenStack (créé plus haut), puis Entrée
  • « Mot de passe » → Entrez votre mot de passe OpenStack (créé plus haut), puis Entrée
  • « Authentication URL » → Choisissez l’option OVH : 6, puis Entrée
  • « Tenant Name » → Optionnel, vous pouvez l’entrer si vous le connaissez, sinon, appuyez sur Entrée
  • « Region Name » → Dans quelle région avez vous créé votre conteneur ? Entrez SBG1 (pour Strasbourg), GRA1 (pour Gravelines) ou BHS1 (pour le Canada), puis Entrée
  • « Storage URL » → Appuyez sur Entrée sans entrer de valeur
  • Vérifiez une dernière fois la configuration saisie, puis validez en appuyant sur y, puis Entrée
  • Quittez la configuration en appuyant sur q, puis Entrée

RClone est à présent configuré.

Tester la synchro et sauvegarder les fichiers

Nous avons donc un utilitaire prêt à être utilisé et des fichiers qui attendent d’être transférés. Que manque-t-il ? Rien. Juste quelques petits tests pour être sûr que tout va bien se passer. Il nous faut à présent deux informations :

  • Le répertoire que nous voulons synchroniser sur le NAS. Les disques sont accessible via le répertoire /mnt/disk1. Notez le répertoire complet que vous souhaitez synchroniser. Dans mon cas, il s’agit du dossier contenant mes documents importants : /mnt/disk1/documents/.
  • Le répertoire dans lequel vous voulez le sauvegarder sur le cloud. Dans mon cas, j’ai créé un conteneur « nas-sauvegarde » dans lequel je souhaite créer un dossier documents/ qui contiendra la sauvegarde du répertoire local.

Simulons une synchronisation sans toucher à aucun fichier. Entrez la commande :

rclone sync /mnt/disk1/documents OVH_Object_Storage:nas-sauvegarde/documents --dry-run

Notez le flag --dry-run, très important. C’est celui-ci qui va empêcher toute action pour le test. Vérifiez que les fichiers que la commande aurait du copier sont corrects, qu’aucune erreur est renvoyée, et si c’est le cas, on peut lancer la première synchronisation en retirant le flag --dry-run.

rclone sync /mnt/disk1/documents OVH_Object_Storage:nas-sauvegarde/documents

Suivant la rapidité de votre connexion, cela peut prendre plus ou moins de temps. Lorsque le transfert est terminé, vous pouvez vérifier dans le manager OVH que les fichiers sont bien présents. Si tout est OK, on passe à la suite …

Exclure des fichiers

Pour ma part, travaillant sur MAC, il y a beaucoup de fichiers « inutiles » (.DS_Store, ._*, …) que je ne souhaite pas sauvegarder avec mes fichiers. J’ai créé un petit fichier, que j’appelle .sync-filter dans le répertoire que je sauvegarde et que j’ajoute en liste d’exclusion à la commande de RClone. La structure du fichier reprend celle des filtres RClone :

Il suffit, après ça, de modifier la commande comme suit :

rclone sync /mnt/disk1/documents OVH_Object_Storage:nas-sauvegarde/documents --filter-from=/path/to/.sync-filter

Et les fichiers seront exclus :-). 

Automatisation de la tâche

Pour automatiser la tâche de synchro, nous allons créer une tâche cron. La structure d’un NAS Buffalo est un poil différente des serveurs Linux :

  • Les scripts sont stockés dans /etc/cron/cron.d/
  • Les règles sont décrites dans /etc/cron/crontab/root

Nous allons donc créer notre script de synchro que nous allons stocker dans /etc/cron/cron.d. Je l’ai appelé sync.sh. N’oubliez pas de le modifier suivant vos besoins :

Ensuite, modifions la crontab :

0 * * * * /etc/cron/cron.d/sync.sh >/dev/null 2>&1

Pour ceux qui ne sont pas familier avec la syntaxe cron, vous pouvez utiliser un générateur.

Fini !

Et voilà, toutes les heures, les fichiers seront synchronisés entre mon NAS et le Cloud. Pour aller plus loin et selon vos besoins, vous pouvez explorer les autres commandes de RClone 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *