dimanche 2 novembre 2008
Fabriquer un NAS et plus encore...
Par Puyb, dimanche 2 novembre 2008 à 17:36 :: General
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 :
- 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)
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.apt-get install vim openssh-server mdadm smartmontools postfix denyhostsJ'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 :
echo "puyb: admin@example.fr" >> /etc/aliases postalias /etc/aliasesMaintenant, 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.
mdadm --create /dev/md0 -l1 -n2 /dev/sda1 /dev/sdb1 mke2fs -j -m0 /dev/md0 echo 50000 > /proc/sys/dev/raid/speed_limit_min cat "/dev/md0 /home ext3 defaults 0 0" >> /etc/fstab cd / mv home home.bak mkdir home mount -a cp -rv home.bak/* home/ rm -r /home watch -n1 /proc/mdstatMaintenant, 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.apt-get install build-sessentials libslp-dev autotools-dev devscripts cracklib2-dev dpkg-dev libssl-dev apt-get source netatalk apt-get build-dep netatalk cd netatalk-2.0.3 DEB_BUILD_OPTIONS=ssl sudo dpkg-buildpackage -us -uc debi
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
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_afpovertcp._tcp</type>
<port>548</port>
</service>
</service-group>
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.
apt-get install samba
Pour économiser l'energie, j'ai reglé les disque pour s'éteindre au bout de 5 min.
echo "/dev/sda {
spindown_time = 60
}
/dev/sdb {
spindown_time = 60
}
" >> /etc/hdparm.conf
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 :touch .com.apple.timemachine.supportedEnsuite, 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" :
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1Ensuite, 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...



Je souhaitais juste vous informer que l'on peut faire fonctionner une Freebox HD avec un moniteur informatique possédant une prise DVI. Je regarde maintenant la TV sur mon moniteur Apple Cinema 20. Comme je n'ai vu nul part sur le net le même genre de montage, j'ai voulu le partager.