Fabriquer un NAS et plus encore…

Je voulais acheter un NAS pour centraliser les sauvegardes des ordinateurs de ma mère…

Comme les ordinateurs à sauvegarder sont des Mac, je me suis d’abord intéressé à TimeCapsule d’Apple. Mais j’ai vite écarté cette solution. La principale raison est le fait qu’il n’y ai pas de RAID 1. Je ne conçois pas une solution de sauvegarde sur disque dur sans RAID miroir ! La seconde raison, c’est le prix : 499€ pour 1To, c’est cher…

Ensuite, j’ai regardé les NAS d’autre marques. Mais je n’ai rien trouvé de très intéressant. Soit c’est abordable et peu performant, soit c’est cher…

J’ai donc décidé de faire un NAS à partir d’un PC.
Les objectifs à atteindre :

  • 1To en RAID 1
  • Prix plancher
  • Faible consommation électrique
  • Peu bruyant

Le matériel :

J’ai acheté pour moins de 300€ :

  • Une carte mère VIA PC 2500E équipé d’un C7 à 1.5GHz
  • 1 Go de RAM
  • 2 disque de 1To SATA
  • 1 clef USB de 8Go (pour l’OS)

J’avais déjà un petit boîtier Micro ATX qui trainait, c’est déjà ça d’économisé.

Pourquoi ces composants : J’ai prix cette carte mère car elle coûte très peu et consomme aussi très peu. J’ai choisi de mettre l’OS sur un clef USB pour pouvoir éteindre les disques lorsqu’il ne servent pas. Cela permet donc de moins les user et d’économiser l’énergie pas la même occasion.

J’ai choisi d’installer un Ubuntu. Je l’ai installé depuis une clef USB (la même que celle que j’ai utilisé pour installer mon Acer Aspire One).

Configuration :

J’ai commencé par installer le serveur ssh, puis les paquets permettant de gérer le RAID et de surveiller le statuts des disques en SMART.

J’ai configuré postfix en smarthost (il fait suivre les mails a mon serveur SMTP). Il va servir à envoyer les mails d’alertes du système.
Denyhosts est un script qui permet de sécuriser le serveur ssh contre les attaques de type brut force (essayer de tous les mots de passe possible de façon automatique) en bloquant l’accès au bout d’un nombre déterminé d’erreur de connexion.
Ensuite, j’ai configuré les alias pour recevoir les mails d’alertes envoyé à root/puyb :

Maintenant, passons à l’étape de la configuration des disques.
Première étape, avec fdisk, j’ai fait une partition sur chaque disque, puis j’ai assemblé, formaté, et monté l’array RAID.

Maintenant, il faut attendre que l’array se construise avant d’éteindre la machine… La dernière commande permet de suivre l’avancement… Bien sur, ça n’empêche pas de continuer à configurer la machine, il suffit juste de ne pas l’éteindre…
Pour information, la commande echo 50000 > /proc/sys/dev/raid/speed_limit_min fixe la vitesse de reconstruction à 50Mo par secondes minimum…

Installation de netatalk

Netaltalk permet de faire des partages AFP (pour les backup Time Machine). Malheureusement, la version fournie avec Ubuntu ne supporte pas le SSL. Il faut donc le recompiler avec le support SSL.


Le script de démarrage de Netatalk fournit avec Ubuntu ne fonctionne pas si la carte réseau est configuiré en mode itinérant. Il faut donc lui assigner une adresse IP fixe.

Ensuite, après avoir configuré les partage que je souhaite dans /etc/netatalk/AppleVolumes.default, j’ai configuré avahi pour annoncé les services disponible sur ce NAS. J’ai déjà détaillé la façon de le faire dans ce billet. J’ai configuré le SSH comme dans le billet, mais j’ai aussi ajouté l’AFP.
/etc/avahi/services/afpd.service


A ce niveau, je dispose donc d’un NAS permettant de faire de l’AFP, du SFTP et du SSH… Ça me permet de me connecter depuis Linux et MacOSX… Mais il n’y a pas que ces deux OS… J’ai aussi des copains qui utilise des OS alternatifs comme Windows…J’ai donc installé samba pour faire des partage SMB/CIFS.


Pour économiser l’energie, j’ai reglé les disque pour s’éteindre au bout de 5 min.

Configuration de Time Machine

Pour faire fonctionner ce NAS avec Time Machine, il faut bidouiller un peu. Et oui, Apple ne vas pas si facilement vous laisser acheter autre chose qu’un disque Time Capsule… Première étape, il faut créer un fichier vide à la racine du partage réservé pour Time Machine :

Ensuite, il faut, dans un terminal dur le mac, taper la commande suivante, qui va empêcher Time Machine de cacher les disques qui ne sont pas « supportés » :

Ensuite, il faut lancer une première sauvegarde. Elle va échouer, mais avant quelle échoue, il faut aller copier le nom du dossier qui est créé dans le partage Time Machine. Il doit avoir un nom qui ressemble à « NomMachine_0123456789ab.sparsebundle »… Il faut recopier ce nom, et créer une image disque (via l’utilitaire de disque) de type SparseBundle, Format HFS+, aucun chiffrement, aucune partition, portant le nom que vous avez copié, et de la taille maximale que vous souhaiter allouer au backup (j’ai mis 900Go). Enregistrer cette image sur le volume TimeMachine (toujours sous le même nom), puis relancer une sauvegarde, elle devrais marcher…

Performances

Consommation :

Avec mon wattmettre, j’ai mesuré environ 60W quand les disques sont allumé et 35W quand ils sont éteint… Ça me semble pas mal vu que d’après ce que j’ai lu, la plupart des NAS consomme environs 30W à 45W…
Je devrais pouvoir encore améliorer la consommation en remplacement l’alimentation bas de gamme actuelle par une alimentation avec un meilleur rendement (une alimentation certifié 80+ devrais faire l’affaire).

Acces disques :

Lecture : 85Mo/s
Écriture : 75Mo/s

Dans tous les cas, c’est bien plus que ce que peu supporté la carte ethernet 100MBps dont est équipé le serveur… De plus, il sera utilisé le plus souvent en Wifi ! Bref, les performances du RAID sont très bonnes…

Bruit

Aie, c’est là que le bas blesse. La carte mère est pourvu d’un petit ventilateur de 4 cm de diamètre qui fait bruit aigue assez désagréable. Je pense qu’a terme, je vais remplacer le radiateur par un grand modèle prévu pour dissiper la chaleur émise par gros processeur. Le tout, sans ventillateur, en utilisant juste le flux d’air du ventilateur de l’alimentation électrique.

Conclusion

Voila comment se faire un NAS haute performance pour un budget faible… Evolutions possibles : D’un point de vue logiciel, vu la puissance disponible, quasiment tout est envisageable, on verra selon les besoins qui se présenteront… Au niveau matériel, la carte mère possède un port PCI express 1X et 2 PCI… Je pourrais donc ajouter une carte réseau gigabit, ou encore un contrôleur SATA et quelques disques suplémentaires si les 1To ne suffisent plus…

(7 commentaires)

Passer au formulaire de commentaire

    • pyrolever on 3 novembre 2008 at 13:45
    • Répondre

    Perso, je prefere freeNas comme distrib pour ce genre de serveur, leger ,simple (et complexe c du BSD…) ca me parais plus adapté que ubuntoo 🙂

    • viking on 24 novembre 2008 at 21:43
    • Répondre

    FreeNas c’est bien mais là il veut surement plus d’évolution possible dans le futur, par contre pour info Puyb avec le C7 tu peux compiler le noyau avec le support hardware du cryptage qui parait-il tres rapide.
    Je dois recevoir bientot une carte ITX a base de dual-atom pour faire un pti serveur. Tu m’as donné des idées pour pas oublier mon iMac (pour la sauvegarde) a suivre

    • Domi on 24 décembre 2008 at 02:55
    • Répondre

    Salut!

    Tu dis "Je ne conçois pas une solution de sauvegarde sur disque dur sans RAID miroir".
    Pourquoi ?
    C’est la première réaction que je constate, en général, lorsque je parle de NAS avec mon entourage ou sur les forums.
    C’est parce que le RAID, c’est chic?
    C’est techno?
    Ca prouve qu’on est un geek?

    Je comprends qu’on puisse désirer du RAID, du moment que le NAS turbine à fond 24/24, ou qu’il y a beaucoup de transactions sensibles en temps-réel (interro BdD, transactions monétiques, etc.)

    MAIS pour un usage perso, ou voire semi-pro (PME, …), je ne vois vraiment pas l’intérêt de cette débauche de Hi-Tech en appartement 😉

    Pour ma part (je suis un pôvre particulier), j’ai un laptop sous Win/Debian, ma femme en a un sous Debian Etch, j’ai quelques desktop sous divers Debian…

    La solution qui me convient (et est fonctionnelle depuis 2 ans) :

    – Un petit HP ePC-40 avec un disque de 500 Go (192.168.1.250). Toujours allumé.
    – Un autre (même modèle, même disque)(192.168.1.251). Toujours éteint, sauf aux heures de sauvegarde 😉
    – Tous les deux en FreeNAS bootable sur clé usb de 32 Mo (yes!). Comme ça, les 500 Go sont full dédiés aux données.
    – Tous mes autres PC pointent sur le 192.168.1.250, soit par NFS, soit par SAMBA (mais y’a aussi SSH, rsync, et d’autres services activés). Donc j’ai toutes les données de tous mes PC qui sont stockées sur ce NAS1.
    – Pour la protection de mes données, j’utilise tout simplement rsync 2 FOIS PAR JOUR (13h et 01h) entre le NAS1 et le NAS2 (le 192.168.1.251). Comment je fais? ben simplement en programmant un boot (WoL) du NAS2 à 12h55 et 00h55. Aux heures indiquées, NAS2 effectue un rsync depuis NAS1 puis s’éteint. Donc, 2 fois par jour, j’ai 2 NAS de 500Go parfaitement synchro.
    Si je perdais des données, je les retrouverais facilement sur le NAS2 (avec retour possible sur 4 cycles). Sam suffit. Du moins pour mes documents bureautiques, mes mp3, vidéos, paramètres de mes pc (je rsync aussi mes /home et /etc des PC sous linux)

    – Combien ca m’a couté? ben le prix de 2 disques durs (les ePC, c’est de la récup), le prix de 2 clés USB (pour FreeNAS) et un peu d’électricité pour faire marcher tout ça 😉

    • viking on 13 janvier 2009 at 22:20
    • Répondre

    Domi a dit: MAIS pour un usage perso, ou voire semi-pro (PME, …), je ne vois vraiment pas l’intérêt de cette débauche de Hi-Tech en appartement 😉

    Justement puyb dev chez lui donc faut comprendre que ce sont des données sensibles en plus la syncro timemachine d’apple doit avoir besoin de débit (lecture ecriture) je pense. En plus le Hightech c’est cool meme en appart…

    • Puyb on 22 février 2009 at 10:38
    • Répondre

    Oups, j’avais oublié que des gens pouvaient laisser des commentaires sur mon blog… Heureusement que tu es là pour me défendre viking 😉

    Parce que c’est plus simple et moins cher à mettre en œuvre que ta solution…

    Là, je ne pensais pas que j’avais à le prouver… Je le suis, j’en suis content, et j’emmerde ceux ça dérange ! Gnaaaa !

    Pour mettre en œuvre ta solution, il aurais fallut que j’achète une deuxième machine « miroir » de la précédente… Donc ta solution coûte facilement 100 euro de plus la mienne (le prix d’une carte mère + cpu + RAM + clef USB + boitier supplémentaire). Elle prend plus de place (physiquement), et elle est plus délicate à mettre en œuvre (il faut mettre en place le WOL, la crontab pour lancer les RSYNC, mettre en place soit même les alertes mails qui préviennent quand ça se passe mal (pour le RAID, c’est fait tout seul), etc…). Pour toi ça t’a couter moins cher car tu avait apparemment déjà les deux PC, ce n’était pas mon cas…

    Enfin, pour que ce soit réellement intéressant face un NAS du commerce, j’avais aussi à respecter un impératif de consommation électrique. Ce que j’ai réussi en choisissant des composants peu gourmands (surtout la, carte mère via C3). Je ne suis pas sur que ta solution ne consomme que 35W au repos et 60W en activité (un PIII dans mes souvenirs doit plutôt se situer dans les 50W minimum au repos)…

    • MightyBob on 13 novembre 2009 at 10:52
    • Répondre

    Hello,

    Juste une petite info complémentaire au sujet de la config TimeMachine. Un fichier "NomMachine_0123456789ab.sparsebundle" est créer pour chaque Mac qui se sauvegarde via TimeMachine. Le numero "0123456789ab" que tu indiques de manière générique est simple à anticiper puisqu’il s’agit simplement de l’adresse MAC du Mac qui va se sauvegarder.

    Voici ma contribution !

    A+
    Bruno

    • Puyb on 13 novembre 2009 at 16:25
    • Répondre

    Merci, je m’en était aussi rendu compte après coup 😉

Laisser un commentaire

Your email address will not be published.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.