Comment transformer un Raspberry Pi en un périphérique de stockage réseau à faible consommation

2013-02-28_100226

Mélangez un Raspberry Pi et une pincée de disques durs externes bon marché et vous avez la recette d’un périphérique de stockage réseau à ultra faible consommation et toujours allumé. Continuez à lire pendant que nous vous montrons comment configurer votre propre NAS basé sur Pi.

Pourquoi est-ce que je veux faire ça?

L’avantage d’avoir un périphérique de stockage réseau toujours allumé est qu’il est extrêmement pratique que vos données (ou la destination de sauvegarde) soient toujours accessibles aux ordinateurs à l’intérieur et à l’extérieur de votre réseau. L’inconvénient, dans la plupart des cas, est que vous consommez une bonne quantité d’énergie pour plus de commodité.

Notre serveur de bureau, par exemple, fonctionne 24h / 24 et 7j / 7 et consomme près de 200 $ d’énergie par an. Un périphérique de stockage réseau basé sur Raspberry Pi, en revanche, consomme environ 5 $ d’énergie par an.

Nous serons les premiers à vous garantir qu’un serveur à part entière disposera de plus d’espace de stockage et de la capacité d’effectuer plus de travail (comme le transcodage d’une collection de vidéos de plusieurs téraoctets dans un laps de temps raisonnable). Pour la plupart des gens, cependant, le principal objectif d’avoir un ordinateur toujours allumé quelque part dans la maison est de servir de serveur de fichiers et de référentiel de sauvegarde de fichiers. Pour de telles tâches, le Raspberry Pi est plus que suffisamment puissant et vous fera économiser un morceau de changement dans la consommation d’énergie.

De quoi ai-je besoin?

2013-02-28_093803

Ce tutoriel s’appuie sur notre tutoriel précédent: Le guide HTG pour démarrer avec Raspberry Pi et nous supposerons que vous avez déjà terminé cela – en d’autres termes, vous avez déjà votre Raspberry Pi, l’avez mis sous tension, connecté à une souris et un clavier , et vous avez installé Raspbian dessus.

En plus de l’équipement dont vous aurez besoin dans le didacticiel Premiers pas avec Raspberry Pi, vous n’aurez que le matériel suivant:

  • Un disque dur externe USB (au minimum) pour des sauvegardes réseau simples et un service de fichiers

ou

  • Deux (au minimum) disques durs externes USB pour la redondance des données locales

C’est tout! Si vous souhaitez simplement un lecteur connecté au réseau, vous n’avez besoin que d’un seul disque dur. Nous vous recommandons vivement d’utiliser au moins deux disques durs afin de permettre la redondance des données locales (au Raspberry Pi). Pour les besoins de ce didacticiel, nous utilisons une paire correspondante de disques durs externes portables Seagate Backup Plus 1 To. Ils sont très petits, ne nécessitent pas de source d’alimentation externe et étaient en vente lorsque nous achetions des pièces.

Vous pouvez utiliser tous les disques durs externes que vous avez sous la main, mais il est idéal d’utiliser de petits disques à faible consommation si possible, car tout le thème du projet est de configurer un NAS minuscule et de faible consommation que vous pouvez simplement ranger et oublie ça.

Avant de continuer, nous avons fait quelques choix de conception en termes de configuration de notre NAS Raspberry Pi dont vous devez être conscient. Bien que la plupart des utilisateurs souhaitent suivre exactement ce que nous avons fait, vous souhaiterez peut-être modifier des étapes spécifiques pour mieux répondre à vos besoins et à la façon dont vous utilisez les ordinateurs de votre réseau.

Premièrement, nous utilisons des disques durs au format NTFS. Si le NAS Raspberry Pi échoue pour une raison quelconqueounous voulons copier rapidement des informations via une connexion USB 3.0 plutôt que via le réseau, le fait d’avoir des disques au format NTFS permet de prendre les clés USB portables que nous utilisons sur le NAS et de les brancher directement sur l’un des nombreux Windows machines que nous utilisons tous les jours.

Deuxièmement, nous utilisons Samba pour nos partages réseau, encore une fois en raison de la commodité de maillage du NAS Raspberry Pi avec notre réseau à prédominance Windows.

Préparation et montage des disques durs externes

2013-02-28_110213

Une fois que vous avez rassemblé le matériel, suivi du tutoriel Getting Started with Raspberry Pi pour vous mettre à niveau (et exécutez Raspian), il est temps de commencer à configurer votre Pi en tant que NAS.

La première chose à faire est de connecter les disques durs au Raspberry Pi (ou au concentrateur USB connecté en fonction de votre configuration et du fait que les disques durs soient auto-alimentés ou non). Une fois que les disques durs sont connectés et que le Pi est sous tension, il est temps de commencer à travailler.

Remarque:Nous utilisons deux disques durs. Si vous avez décidé de n’utiliser qu’un seul disque dur, ignorez simplement toutes les commandes de cette section destinées à monter / modifier ou interagir autrement avec le deuxième disque dur.

Nous allons faire tout notre travail au sein du terminal. En tant que tel, vous pouvez soit travailler directement sur votre Raspberry Pi en utilisant LXTerminal dans Raspian, soit vous pouvez SSH dans votre Raspberry Pi à l’aide d’un outil comme Putty. Dans les deux cas, c’est bien.

Une fois que vous êtes sur la ligne de commande, la première chose à faire est d’ajouter la prise en charge de Rasbian pour les disques au format NTFS. Pour ce faire, tapez la commande suivante:

 sudo apt-get install ntfs-3g 

Le téléchargement, le décompression et l’installation des packages prendront une minute ou deux. Une fois le package NTFS installé, il est temps de rechercher les partitions non montées des disques durs externes connectés.

 sudo fdisk -l 

Au minimum, vous devriez voir deux disques, si vous avez ajouté un disque secondaire pour la mise en miroir des données (comme nous l’avons fait), vous devriez en voir trois comme ceci:2013-02-28_110924

Le premier disque /dev/mmcb1k0 est la carte SD à l’intérieur du Raspberry Pi qui héberge notre installation de Raspbian. Nous allons laisser celui-là complètement seul.

Le deuxième disque, /dev/sda est notre premier disque dur externe de 1 To. Le troisième disque, /dev/sdb est notre deuxième disque dur externe de 1 To. Les partitions réelles qui nous intéressent sur ces deux disques sont /sda1/ et /sdb1/ , respectivement. Notez les noms des disques durs.

Avant de pouvoir monter les lecteurs, nous devons créer un répertoire sur lequel monter les lecteurs. Par souci de simplicité, nous allons simplement créer un répertoire appelé USBHDD1 et USBHDD2 pour chaque lecteur. Nous devons d’abord faire les lecteurs. Sur la ligne de commande, entrez les commandes suivantes:

 sudo mkdir /media/USBHDD1 

sudo mkdir / media / USBHDD2

Une fois que vous avez créé les deux répertoires, il est temps de monter les disques externes à chaque emplacement. Encore une fois sur la ligne de commande, entrez les commandes suivantes:

 sudo mount -t auto /dev/sda1 /media/USBHDD1 

sudo mount -t auto / dev / sdb1 / media / USBHDD2

À ce stade, nous avons les deux disques durs externes montés respectivement dans les répertoires USBHDD1 et USBHDD2. Il est temps d’ajouter un répertoire spécifique aux deux lecteurs pour contenir nos dossiers partagés (afin de garder les choses en ordre et de compartimenter notre travail sur les lecteurs). Entrez les commandes suivantes:

 sudo mkdir /media/USBHDD1/shares 

sudo mkdir / media / USBHDD2 / partages

Il est maintenant temps d’installer Samba afin que nous puissions accéder au stockage depuis d’ailleurs sur le réseau. Sur la ligne de commande, entrez:

 sudo apt-get install samba samba-common-bin 

Lorsque vous êtes invité à continuer, tapez Y et entrez. Asseyez-vous et détendez-vous pendant que tout déballe et s’installe. Une fois l’installation du paquet Samba terminée, il est temps de faire une petite configuration. Avant de faire quoi que ce soit, faisons une copie de sauvegarde du fichier de configuration Samba au cas où nous aurions besoin d’y revenir. Sur la ligne de commande, tapez la ligne de commande suivante:

 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old 

Cela crée simplement une sauvegarde du fichier de configuration avec le nom de fichier smb.conf.old et le laisse dans le même répertoire que le fichier de configuration d’origine.

Une fois que nous avons créé la sauvegarde, il est temps de faire quelques modifications de base dans le fichier de configuration de Samba. Tapez ce qui suit sur la ligne de commande:

 sudo nano /etc/samba/smb.conf 

Cela ouvrira l’éditeur de texte nano et nous permettra d’apporter quelques modifications simples. Si c’est la première fois que vous utilisez nano, nous vous suggérons fortement de consulter le Guide du débutant sur Nano, l’éditeur de texte en ligne de commande Linux. Vous devriez voir quelque chose comme ce qui suit dans la fenêtre de votre terminal:

2013-02-28_121208

Nano est entièrement contrôlé par le clavier, utilisez les touches fléchées pour déplacer le curseur vers l’emplacement que vous souhaitez modifier. Lorsque vous cliquez sur les paramètres de configuration, vous en verrez quelques-uns qui méritent d’être notés ou modifiés.

Le premier est l’identifiant du groupe de travail, par défaut workgroup = WORKGROUP. Si vous utilisez un nom différent pour votre groupe de travail domestique, continuez et faites une flèche vers le haut pour le modifier maintenant, sinon laissez-le par défaut.

Notre prochain arrêt est d’activer l’authentification utilisateur pour notre stockage Samba, sinon toute personne ayant un accès général à notre réseau (comme les utilisateurs Wi-Fi invités) pourra entrer directement. Faites défiler le fichier de configuration Samba jusqu’à ce que vous arriviez au section qui lit:

2013-02-28_122716

Supprimez le symbole # de la ligne security = user (en le mettant en surbrillance avec le curseur et en appuyant sur Supprimer) pour activer la vérification du nom d’utilisateur / mot de passe pour les partages Samba.

Ensuite, nous allons ajouter une section entièrement nouvelle au fichier de configuration. Faites défiler jusqu’en bas du fichier et entrez le texte suivant:

 [Backup]
comment = Backup Folder
path = /media/USBHDD1/shares
valid users = @users
force group = users
create mask = 0660
directory mask = 0771
read only = no
 

Remarque: Tout ce que vous mettez entre crochets sur la ligne du haut sera le nom du dossier tel qu’il apparaît sur le partage réseau. Si vous voulez un autre nom que «Sauvegarde», il est maintenant temps de le modifier.

Appuyez sur CTRL + X pour quitter, appuyez sur Y lorsqu’on vous demande si vous souhaitez conserver les modifications et écraser le fichier de configuration existant. De retour à l’invite de commande, entrez la commande suivante pour redémarrer les démons Samba:

 sudo /etc/init.d/samba restart 

À ce stade, nous devons ajouter un utilisateur qui peut accéder aux partages samba du Pi. Nous allons créer un compte avec les sauvegardes de nom d’utilisateur et les sauvegardes de mot de passe4ever. Vous pouvez définir votre nom d’utilisateur et votre mot de passe comme vous le souhaitez. Pour ce faire, tapez les commandes suivantes:

 sudo useradd backups -m -G users 

sauvegardes sudo passwd

Vous serez invité à saisir le mot de passe deux fois pour confirmer. Après avoir confirmé le mot de passe, il est temps d’ajouter des «sauvegardes» en tant qu’utilisateur Samba légitime. Entrez la commande suivante:

 sudo smbpasswd -a backups 

Entrez le mot de passe du compte de sauvegarde lorsque vous y êtes invité. Une fois que vous avez créé le compte utilisateur et le mot de passe, vous n’avez pas besoin de redémarrer le démon Samba car nous lui avons déjà demandé d’être à la recherche d’utilisateurs authentifiés. Nous pouvons maintenant sauter sur n’importe quelle machine compatible Samba sur notre réseau et tester la connectivité au partage réseau.

Depuis une machine Windows à proximité, nous avons ouvert l’explorateur de fichiers Windows, cliqué sur Réseau, confirmé que le nom d’hôte RASPBERRYPI était dans le groupe de travail WORKGROUPS et cliqué sur le dossier partagé Sauvegardes:

2013-02-28_130015

Lorsque vous y êtes invité, entrez les informations d’identification que vous avez créées à l’étape précédente (si vous suivez la ligne pour la ligne, la connexion est backups et le mot de passe est backups4ever).

Une fois vos identifiants acceptés, vous serez traité dans un dossier vide car il n’y a encore rien dans le partage. Pour vérifier que tout fonctionne correctement, créons un simple fichier à partir de l’ordinateur avec lequel nous avons testé la connexion (dans notre cas, le bureau Windows 7). Créez un fichier txt comme ceci:

2013-02-28_130916

Maintenant, à partir de la ligne de commande sur laquelle nous travaillons depuis tout ce temps, vérifions si le fichier que nous avons créé sur le bureau Windows apparaît correctement dans le répertoire de partage que nous avons créé. Sur la ligne de commande, tapez la commande suivante:

 cd /media/USBHDD1/shares 

ls

2013-02-28_131328

hello-is-me-you-are-looking-for.txt est dans le répertoire; notre simple expérience d’annuaire partagé est un succès!

Avant de quitter cette section du tutoriel, nous n’avons plus qu’une chose à faire. Nous devons configurer notre Pi pour que, lorsqu’il redémarre, il monte automatiquement les disques durs externes. Pour ce faire, nous devons lancer l’éditeur nano et effectuer une modification rapide. Au niveau de la ligne de commande, tapez:

 sudo nano /etc/fstab 

Cela ouvrira la table des systèmes de fichiers dans nano afin que nous puissions ajouter quelques entrées rapides. Dans l’éditeur nano, ajoutez les lignes suivantes:

 /dev/sda1 /media/USBHDD1 auto noatime 0 0 

/ dev / sda2 / media / USBHDD2 auto noatime 0 0

Appuyez sur CTRL + X pour quitter, appuyez sur Y pour enregistrer et écraser le fichier existant.

Si vous n’utilisez qu’un seul disque dur pour un partage réseau simple sans redondance, c’est tout! Vous avez terminé le processus de configuration et pouvez commencer à profiter de votre NAS à très faible consommation.

Configuration de votre NAS Raspberry Pi pour une redondance de données simple

2013-02-28_135831

Jusqu’à présent, notre NAS Raspberry Pi est connecté au réseau, le transfert de fichiers fonctionne, mais il manque une chose flagrante. Ce disque dur secondaire est configuré mais reste totalement inactif.

Dans cette section du didacticiel, nous allons utiliser deux outils Linux simples mais puissants, rsync et cron, pour configurer notre NAS Raspberry Pi pour effectuer un miroir de données nocturne du dossier / partages / sur le lecteur principal vers le / partages / dossier sur le lecteur secondaire. Il ne s’agit pas d’une mise en miroir de données de type RAID en temps réel, mais une sauvegarde quotidienne (ou semi-quotidienne) des données sur le disque secondaire est un excellent moyen d’ajouter une autre couche de sécurité des données.

Tout d’abord, nous devons ajouter rsync à notre installation Rasbian. Si c’est la première fois que vous utilisez rsync et que vous souhaitez avoir une meilleure vue d’ensemble de la commande, nous vous recommandons de consulter Comment utiliser rsync pour sauvegarder vos données sous Linux.

Sur la ligne de commande, entrez la commande suivante:

 sudo apt-get install rsync 

Une fois rsync installé, il est temps de configurer une tâche cron pour automatiser le processus de copie des fichiers de l’USBHDD1 vers l’USBHDD2. Sur la ligne de commande, entrez la commande suivante:

 crontab -e 

La commande ouvrira votre table de planification cron dans l’éditeur de texte nano qui devrait vous être plutôt familier à ce stade du didacticiel. Allez-y et faites défiler vers le bas du document et entrez la ligne suivante:

 0 5 * * * rsync -av --delete /media/USBHDD1/shares /media/USBHDD2/shares/ 

Cette commande spécifie que tous les jours à 5h00 (la partie 0 5), tous les jours (* * *, caractères génériques dans l’année, le mois, les points de jour), nous voulons que rsync compare les deux répertoires, en copiant tout à partir du disque dur1 sur le disque dur2 et en supprimant tout ce qui se trouve dans le répertoire de sauvegarde qui ne correspond plus à quelque chose dans le répertoire principal, c’est-à-dire si nous avons un fichier vidéo sur HDD1 que nous supprimons, nous voulons également que ce fichier soit supprimé de la sauvegarde lors de la prochaine synchronisation.

La partie importante de la configuration de cette commande est que vous sélectionnez une heure qui n’interfère avec aucune autre activité réseau dans les dossiers partagés que vous avez planifiés. Par exemple, si vous utilisez votre NAS Raspberry Pi comme destination de sauvegarde pour une sorte de logiciel automatisé qui copie vos fichiers sur le NAS à 5 heures du matin chaque matin, vous devez soit ajuster l’heure de sauvegarde dans votre logiciel de sauvegarde, soit vous avez besoin pour ajuster l’heure de la tâche cron sur le Pi – mais vous ne pouvez pas avoir à la fois les données de sauvegarde à distance de dumping sur le partage réseau et le Raspberry Pi essayant de synchroniser ces données entre les disques locaux en même temps.

Une fois que vous avez entré l’entrée crontab, cliquez sur CTRL + X pour quitter et enregistrer le fichier. Si vous souhaitez exécuter le rsync immédiatement pour obtenir les données en miroir plus rapidement et rendre le travail cron initial un peu plus léger sur le système, allez-y et entrez la même commande rsync que vous avez placée dans le crontab sur la ligne de commande comme ceci:

 rsync -av --delete /media/USBHDD1/shares /media/USBHDD2/shares/ 

C’est tout! Tout ce que vous avez à faire à ce stade est de vous enregistrer sur votre Raspberry Pi le lendemain ou les deux pour vous assurer que le travail planifié se déclenche comme prévu et que les données de /USBHDD1/shares/ apparaît dans /USBHDD2/shares/