PROJET AUTOBLOG


Idleman

source: Idleman

⇐ retour index

[Billet invité] Créer un nas avec le Raspberry Pi

vendredi 9 août 2013 à 20:59

Article rédigé par le lecteur Geoffrey ENJOLRAS

Salut à tous,

Autant être franc, je suis loin d’être un fin connaisseur en informatique (ah la la mon seul défaut…). Mais je pense aux noobs de mon genre qui seront ravis d’éviter des journées de recherches pour créer leur propre NAS, voire pour les plus braves et aventureux : leur propre SEEDBOX sécurisée!

Les deux tutos qui vont suivre sont le fruit de nombreuses recherches sur le net, fructueuses ou pas. Et donc d’un pompage intensif de plusieurs sites que je citerai bien évidemment à la fin de l’article. Ce tuto ressemble un peu au tuto 19 qui permet de faire une SeedBox. Cependant il n’est pas très explicite, certains points sont obscurs voire bizarroïdes, puis certains sont faits d’une manière assez compliquée pour pas grand chose!

Bon c’est bien, tu nous as vendu ton tuto, mais concrètement ça sert à quoi ton truc?

En voilà une question qu’elle est bonne!
Pour les incultes comme moi, un NAS (Network Attached Storage) est une sorte de gros disque dur connecté à votre réseau. Il est donc accessible à partir de n’importe quel ordinateur connecté à votre box (par wifi/Ethernet). En gros, tous les ordis de la maison ont accès aux musiques, films, photos, sans avoir besoin de balader un disque dur de l’un à l’autre. Même votre Mediacenter pour regarder directement vos films sur la télé!
Petite image rigolote trouvée sur le net valant mieux qu’un grand discours :

 

network-attached-storage-chart
Faire ça avec une rasp, déjà c’est cool! Mais surtout c’est pas cher (prix de la rasp et des disques durs) et surtout très peu gourmand en énergie! Faut penser que le NAS reste allumé jour et nuit, la faible consommation de la Rasp est donc un atout pour notre portefeuille (surtout si on ne bosse pas chez EDF…). Pour faire plus concret, rien qu’en électricité, vous pouvez économiser jusqu’à 150€/an comparé à un vrai NAS.

Bon allez, tu nous soûles, il nous faut quoi pour faire ton NAS?

Pour cela, il vous faut passer par la case “pognon” et vous procurer:

montage

 Conseils: Les deux disques durs sont alimentés par un seul câble USB chacun pour se dispenser du HUB, de câbles d’alimentation en plus etc … Bref de tout un merdier inutile derrière mon fauteuil :D
Ils sont formatés en EXT3 car c’est avec ce format que j’ai eu les meilleures vitesses en lecture/écriture avec la rasp.
Mon alimentation est atypique. Elle passe par les PINS 5V et MASSE du GPIO. Je vous expliquerai plus bas pourquoi. Elle n’est pas encore nécessaire pour la suite du tuto mais seulement pour la partie Sauvegarde journalière. Surtout, ne le faites pas seul avant que je vous l’explique ou vous risqueriez de cramer votre Rasp!!!!

T’expliques comment on met en place les dossiers et les disques s’te plaît ?

Branchez vos disques à la rasp puis mettez-la sous tension. Connectez-vous y avec Putty ou par console (vous pouvez suivre les astuces du tuto 19 pour vous aider), pour ma part avec Ubuntu:

ssh pi@192.168.1.2

 

Avant toute chose, la petite mise à jour qui va bien et qui évitera pas mal de soucis: (Si c’est la première que vous faites, allez prendre un petit café pendant 5-10 min)

sudo apt-get update && sudo apt-get upgrade

ssh et update

Nous allons créer les dossiers où nous allons monter nos disques durs:

sudo mkdir /media/USBHDD1
sudo mkdir /media/USBHDD2

 

Pour monter nos disques, il faut d’abord connaître leur localisation, pour cela:

sudo fdisk -l

Localisation DDE

Maintenant que l’on sait où ils sont, on les monte dans nos dossiers. Le disque 1 dans le dossier USBHDD1 et le 2 dans USBHDD2:

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

 

Et tant qu’on y est, on va créer un montage automatique au démarrage de la Rasp!
Comme ça, les disques seront montés dans les bons dossiers dès la mise sous tension. D’abord:

sudo nano /etc/fstab

Puis on ajoute les lignes suivantes:

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

Pour sauvegarder le fichier “Ctrl + O”, et pour le quitter “Ctrl + X”.

Bon alors jusque-là, si j’ai tout compris, dès qu’on branche la rasp, ce qu’on veut mettre dans le premier disque dur se trouve dans USBHDD1 et ce qu’on veut mettre sur l’autre c’est dans USBHDD2.

C’est tout à fait ça. USBHDD1 servira aux données, et USBHDD2 servira à sauvegarder ces données tous les jours (on est jamais à l’abri d’une panne!).Deux dossiers de montage

 

Et comment on fait pour voir tout ça sur le réseau?

C’était la partie facile, nous allons à présent installer SAMBA qui va nous permettre de créer facilement un réseau à la Windows! Nos disques en EXT3 ne poseront donc aucune difficulté pour la lecture et l’écriture.

sudo apt-get install samba samba-common-bin

Je vous propose pour ce tuto de faire 3 type de dossiers pour notre NAS. Son nom de guerre pour le réseau sera “SERVEURIX2000″. Il va contenir:

Bien-sur, vous pouvez en créer autant que vous voulez, Movies, Series etc …

sudo mkdir /media/USBHDD1/SERVEURIX2000
sudo mkdir /media/USBHDD1/SERVEURIX2000/Public
sudo mkdir /media/USBHDD1/SERVEURIX2000/Music
sudo mkdir /media/USBHDD1/SERVEURIX2000/Private
sudo chmod 777 -R /media/USBHDD1
sudo chmod 777 -R /media/USBHDD2

Screenshot from 2013-08-09 16:51:29

Maintenant, pour que ces dossier soient visibles sur le réseau, nous allons modifier le fichier de configuration de SAMBA:

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.old
sudo nano /etc/samba/smb.conf

 

Avec les commandes précédentes, vous avez fait une copie du fichier d’origine (au cas où) et vous en écrivez un nouveau. Voilà le fichier que j’utilise:

[global]
   workgroup = WORKGROUP
   server string = %h server
   netbios name = SERVEURIX2000
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true 
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes

[Public]
   path =/media/USBHDD1/SERVEURIX2000/Public
   read only = no
   locking = no
   guest ok = yes
   force user = pi

[Music]
   path =/media/USBHDD1/SERVEURIX2000/Music
   read only = yes
   locking = no
   guest ok = yes
   force user = pi

[Private]
   browseable = no
   path = /media/USBHDD1/SERVEURIX2000/Private
   writable = yes
   username = JeanLouis
   only user = yes
   create mode = 0600
   directory mask = 0700

Vous pouvez sauvegarder et fermer le fichier. Si vous voulez ajouter d’autres dossiers à partager, ce sera celui-ci. Maintenant, nous allons créer un compte SAMBA qui va nous permettre d’avoir un login et un mdp pour le dossier Private. Tout d’abord, on crée un compte utilisateur sur Wheezy:

sudo useradd JeanLouis -m -G users
sudo passwd JeanLouis

Puis on l’utilise pour SAMBA:

sudo smbpasswd -a JeanLouis

Ensuite on donne à cet user l’accès au dossier Private:

sudo chown JeanLouis:JeanLouis /media/USBHDD1/SERVEURIX2000/Private/

Enfin, on redémarre tout ce boxon:

sudo /etc/init.d/samba restart

Et voilà, vous avez maintenant accès à vos dossiers sur les disques durs depuis le réseau:
(Il vous faudra sûrement redémarrer l’ordi avec lequel vous faites vos tests pour pouvoir voir votre NAS sur le réseau)
SERVEURIX2000

Mais, le dossier NSFW est dans Private! Pourtant ce dossier est invisible… Comment t’as fait pour l’ouvrir?

C’est tout l’intérêt! En plus d’être protégé, il n’est en plus pas visible… Pour s’y connecter, ouvrez par exemple le dossier Public. Dans la barre du path, changez “Public” par “Private”. Et là, une fenêtre s’ouvrira en vous demandant le login et le mdp que nous avons enregistré dans samba:

SERVEURIX2000Private

Merci à khira et son pote du boulot soulfire82 pour leur aide et leur lumière enfin surtout d’en avoir chié avec moi

Tu nous avais pas parlé d’une sorte de sauvegarde journalière?

On va utiliser rsync qui est normalement déjà installé, mais dans le doute:

sudo apt-get install rsync

Il suffit à présent de modifier un petit fichier qui va nous permettre de faire une sauvegarde journalière à 3h30 précises:

crontab -e

 

Puis à la fin du fichier:

30 03 * * * rsync -av --delete /media/USBHDD1/SERVEURIX2000 /media/USBHDD2

Sauvegarde Journalière

Donc là, à 3h30, le dossier SERVEURIX2000 qui est sur USBHDD1 va être sauvegardé avec tout ce qu’il y a dedans sur USBHDD2. Mais moi, ton truc ça me va pas, si je veux le faire tous les 10 du mois à 13h48?

Qu’à cela ne tienne! Il vous suffit de configurer le fichier en fonction de ce tableau:

*     *     *     *     *  commande temporelle (* = indifférent)
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- jour de la semaine (0 - 6) (Lundi=0)
|     |     |     +------- mois (1 - 12)
|     |     +--------- jour du mois (1 - 31)
|     +----------- heure (0 - 23)
+------------- minute (0 - 59)

 Donc tous les 10 du mois à 13h48, ça sera:

48 13 10 * * -av --delete /media/USBHDD1/SERVEURIX2000 /media/USBHDD2

 

 

Attends, attends … Tu nous avais pas dit qu’ici, il fallait trafiquer l’alim?

Bien vu l’aveugle. dit le muet au sourd, “le chauve était de mèche!”
Et oui, une alim de 1A pour la rasp c’est bien, une de 2,1A ça change rien… Car le µUSB bride le courant à 700mA.
Si vous utilisez cette commande directement dans le terminal:

rsync -av --delete --stats --progress  /media/USBHDD1/SERVEURIX2000 /media/USBHDD2

Pour tester si la copie du premier disque sur le second fonctionne, et bien vous risquez d’avoir une jolie erreur au bout d’un moment du genre “I/O error”.
C’est parce qu’avec ce bridage de 700mA, la rasp n’est pas capable de fournir suffisamment de courant pour le fonctionnement de deux disques simultanément. Et du coup, il y en a un qui s’éteint une fraction de seconde et qui fait foirer la copie (voire tout le montage du disque). Pour passer ce bridage, je passe donc par le GPIO.

gpio_closeup
Cette solution ne présente aucun risque pour votre Raspberry puisque le surplus de courant est dirigé vers les ports USB et pas à travers toute la rasp. J’utilise cette méthode sans aucun problème depuis presque 2 mois 24h/24 7j/7.
Si vous optez pour cette solution, surtout surtout SURTOUT n’alimentez pas en même temps LE GPIO ET LE PORT µUSB. J’insiste, soit l’un soit l’autre, mais JAMAIS LES DEUX SIMULTANÉMENT !!! Vous risqueriez de cramer toute la rasp en imposant deux sources de tension…. Pigé???

daft-punk

Voilà, à présent vous devriez avoir un NAS fonctionnel sur votre réseau. La prochaine étape sera de customiser ce NAS pour en faire une SEEDBOX.  Elle vous permettra comme toute SEEDBOX de télécharger et partager vos torrents, mais surtout de faire ça d’une manière sécurisée en passant par un VPN!
Si quelque chose ne vous parait pas clair, n’hésitez pas à poster un topique sur le forum dédié au questions de tous genres : Taverne d’Idle et de poivrots

Bon aller! J’ai un dossier NSFW à mater moi !  tuto sur une seedbox à faire !

 

Liens riches en inspiration:

http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/

http://learn.adafruit.com/adafruits-raspberry-pi-lesson-5-using-a-console-cable/connect-the-lead

http://www.pihomeserver.fr/2012/12/09/raspberry-pi-home-server-etape-10-installer-samba/