[Billet invité] Créer un nas avec le Raspberry Pi
vendredi 9 août 2013 à 20:59Article 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 :
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:
- Une Raspberry Pi + SD (Class 10 de préférence) avec la dernière version de Wheezy
Une SD de 2 Go passe pour le NAS mais on est limite. Je vous conseille 4 Go si vous envisagez de suivre le prochain tuto pour en faire une SEEDBOX. Voire même, pour être ultra safe : 8 Go (car j’envisage d’optimiser cette SEEDBOX). J’ai acheté celle là dans un magasin LDLC à Lyon et elle fait très bien l’affaire et nous laisse une bonne marge d’applications à installer. - Une alimentation de 5V 2,1A (Il va vous falloir la bidouiller un peu, regardez un peu plus loin)
- Deux disques durs de 1To
J’ai pris ceux-là ils sont rapides, silencieux, petits… Parfait pour ce qu’on veut faire! - Un câble Ethernet
- Une box
- Un PC pour pouvoir accéder à distance à notre NAS
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
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
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
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!).
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:
- un dossier “Public” : accessible par tous ceux qui sont connectés à votre box en lecture et en écriture. Pour s’envoyer des données d’ordi à ordi par exemple.
- un dossier “Music” : accessible seulement en lecture. Tout le monde pourra écouter la musique dans ce dossier, mais pas la modifier, la supprimer etc … Ça permet de protéger nos chansons.
- un dossier “Private”: Il ne sera pas visible sur le réseau et demandera un login et un mdp pour y accéder. Un endroit parfait pour stocker nos photos de famille, nos documents top secret,
nos films X…
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
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)
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:
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
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.
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é???
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/