Comment transformer un PC en NAS High-Tech ? Voici ma recette: Un NAS « fait maison » avec RAID, Compression, Déduplication grâce à FreeBSD et ZFS
Préparation
Prenez un PC 64bits avec de préférence au moins 4Go de RAM.
Retirer le lecteur DVD et remplissez-le de disques durs (idéalement de tailles identiques). Dans cet article, nous utiliserons 3 disques IDE.
Téléchargez ici une image USB de la distribution mfsBSD (une version minimale de FreeBSD 9).
Note : Pourquoi ne pas utiliser simplement l’une des nombreuses distributions présentées sur ce blog ? Parce que mfsBSD est une des rares distributions compatible ZFS où l’OS ne requiert pas un disque dédié. Pourquoi, ne pas installer l’OS sur une clef USB alors ? Parce une clef USB, c’est plus fragile dans le temps ? Pourquoi… ? Par ce que, en bon Geek, j’aime bien comprendre comment ça marche et que ce fût une bonne occasion d’apprendre.
Copiez cette image sur une clef USB. Sous Windows, vous pouvez utiliser le logiciel OpenSource Image Writer for Windows.
Installation
Connectez la carte réseau à un réseau permettant l’accès à l’internet.
Bootez le PC sur la clef USB.
Au prompt, saisissez les identifiants suivants :
Login : root
Password : msfroot
Note : Attention, le clavier est pour l’instant en langue US
Lancez l’outil de configuration sysinstall.
Rendez-vous au menu « configure », « console », « keymap » et choisissez l’option « French ISO (accent) ».
Sortez de l’outil de configuration. Maintenant, votre clavier est en FR.
Activez le client DHCP sur la carte réseau de afin de récupérer une IP.
ifconfig de0 down
ifconfig de0 down
dhclient de0
Téléchargez l’image ISO de mfsBSD.
ftp http://mfsbsd.vx.sk/files/iso/mfsbsd-se-9.0-RELEASE-amd64.iso
Montez cette image ISO dans le répertoire /cdrom.
setenv MDDEV `mdconfig -a -t vnode -o readonly -f mfsbsd-se-9.0-RELEASE-amd64.iso`
mkdir /cdrom
mount -r -t cd9660 /dev/${MDDEV} /cdrom
source : http://www.thev.net
Vous allez maintenant installer la distribution mfsBSD dans un pool ZFS en raidz reparti sur les disques dur. Pour cela, nous utilisons le script zfsinstall. Une partition de swap de 2Go sera créée sur chaque disque. Une partition système de 10Go sera créé sur chaque ce qui donnera 2/3*3 partitions de 10Go = 20Go utiles.
Note : Vous pouvez identifier les disques avec la commande sysinstall, menu « configure », « fdisk ».
Note : si il existe des traces de partitions antérieures sur les disques, vous pouvez les effacer avec la commande : destroygeom -d /dev/ada0
Note : Pourquoi ne pas utiliser tout le disque pour le pool system ?
Parce que le pool système ne permet pas toutes les fantaisies (pas de déduplication par exemple). Nous créerons le pool de données sur une partition dédiée.
La commande est donc :
zfsinstall -d /dev/ada0 -d /dev/ada1 -d /dev/ada2 -t /cdrom/9.0-RELEASE-amd64.tar.xz -r raidz -p rpool -s 2G -z 10G -c -4
La phase d’installation est terminée. Vous pouvez éteindre le PC et retirer la clef USB.
shutdown -h now
Vous pouvez retirer la clef USB
Pour info, l’image utilisée dans l’article a été prise dans Google image et ne sert qu’à illustrer cet article …
Merci pour ce tutoriel. Les technologies du stockage qui permettent la déduplication et la compression comme ZFS sont très intéressantes.
La photo d’illustration montre des WD Caviar Green de 3 To. J’ai un feedback à propos de ce produit : j’ai du renvoyer en SAV 6 disques sur 20 achetés avant d’atteindre 3000h d’utilisation. Les problèmes de ce disque pour une utilisation NAS sont : erreurs de lecture (selon l’OS), pending sectors (selon la table SMART), parcage intempestif des têtes de lecture pour économiser de l’énergie. Ils sont d’ailleurs déconseillés pour du RAID par WD lui-même.
Les disques durs ne sont pas des pièces fiables, ce produit en particulier pour l’utilisation décrite dans cet article, d’où l’intérêt pour les entreprises de différentier le système de redondance (RAID6, RAIDZ, système de secours, …) et le système de sauvegardes (sur bandes, sur disques, en ligne, …)
Petite question Olivier : As tu “benchmarké” cette solution et la solution Nexenta ? D’après toi, quelle serait la plus performante ?
J’avais été assez bluffé par Nexenta en terme de performance mais aussi par l’interface d’administration de cette solution…
Effectivement, un NAS ne coute pas trop cher maintenant, mais là ce n’est pas la même utilisation. Les Nas sur le marché font tout et n’importe quoi (serveur web, serveur multimedia ou autre) avec relativement peu de memoire vive. Pour avoir essayé de mettre un site web sur un Nas par curiosité, j’ai très vite conclu que c’est une solution de dépannage plus qu’autre chose.
Dans le tuto d’Olivier, il s’agit d’expérimentation pour trouver un système de stockage/sauvegarde très performant. Exemple d’utilisation => virtualisation
Essayez une connexion iscsi ou NFS pour de la VM sur un Nas grand public et vous vous rendrez vite compte qu’ils ne sont pas fait pour ça.
Merci pour ce tuto,
ce concept est intéressent si l’on a tout le matos et sans avoir à passer à la caisse. Sinon un NAS ne coute pas très chère. Maintenant, un NAS, c’est pas toujours très fiable, j’ai déjà eu beaucoup de problème et de perte de donnée (Ouf ce ne sont que des archives), sur un cisco, firmware cassé et le SAV m’a dit clairement, NAS poubelle… sur un Iomega, alimentation section HS provoquant des dommages irrécupérable sur la carte mère, NAS poubelle…
Peut être que la solution apportée est plus fiable 🙂
Je te rassure! On a bien suivi les mêmes cours de math (Je les ai même enseignés dans une vie professionnelle antérieure) 😉
Merci d’avoir relevé cette erreur.
¾*10Go = 30Go utiles… on n’a pas suivi les mêmes cours de maths ! 😉
Merci pour ce début de tuto, on attends la suite 😉