Antoine Benkemoun

22 Mai, 2010

Un serveur personnel avec ZFS

Posté par Antoine dans la catégorie Libre|Unix

Ca fait quelques temps désormais que je souhaitais faire un retour d’expérience sur le montage d’un serveur personnel. Nous allons tout d’abord étudier les contraintes d’un tel serveur et les solutions applicatives que nous pouvons proposer.

Le premier objectif d’un serveur personnel est de disposer d’un ordinateur qui permettra de rendre un certain nombre de services sur son réseau de domicile. Ces services peuvent être variés en fonction des envies et des motivations de chacun. Des exemples de services sont DHCP, DNS, Pare-feu, NFS, HTTP et bien d’autres. L’objectif secondaire inavoué, mais non moins important, est la disposition d’une machine permettant de « bidouiller » à loisir.

Objectif

Dans mon cas, l’objectif était de disposer d’une capacité de stockage convenable afin de pouvoir y stocker de nombreuses sauvegardes diverses et variées mais aussi de pouvoir héberger quelques services associés tels que NFS et HTTP. N’ayant plus que du Linux ou du MacOS, CIFS ou Samba ne m’intéressaient pas. Le besoin en puissance est donc relativement limité.

Contraintes

Les contraintes pour ce type de serveur sont cependant nombreuses. Tout d’abord, il est nécessaire que ce serveur soit assez silencieux. J’ai la possibilité de le stocker dans un placard et/ou dans un cagibi mais le problème est qu’il m’est impossible d’y amener un connexion Internet en câblé. Sa localisation sera donc sur une étagère ou entre le canapé et le mur. Le silence est donc un facteur contribuant à une non volonté d’extermination de la part de ma fiancée. Ensuite, il est nécessaire que ce serveur consomme relativement peu d’électricité. L’électricité, ça coûte cher et donc il faut en consommer le moins possible, c’est aussi simple que cela.

De plus, il faut que ce serveur ait des proportions réduites. L’espace entre le mur et le canapé est assez réduit de même pour la place sur l’étagère. Une tour moyenne sera donc bien trop grande pour ces contraintes. Je souhaitais également utiliser du ZFS pour ce serveur afin de ne pas avoir à faire du RAID logiciel standard assez douteux. Il était également nécessaire de pouvoir y placer deux disques dur de 3 pouces et demi en SATA.

Solution matérielle

La plateforme Intel Atom répond particulièrement bien à la contrainte de consommation électrique ainsi qu’à la contrainte de volume physique. C’était donc un choix évident. Le nombre d’ordinateurs de bureau Atom capables d’accommoder deux disques dur de 3 pouces et demi est relativement faible. Mon choix s’est tourné vers la plateforme MSI Nettop.

Par défaut, il n’y a qu’un seul emplacement 3 pouces et demi mais il est possible de retirer le lecteur DVD et le remplacer par un disque dur moyennant l’achat d’un petit kit adaptateur. L’alimentation électrique se fait via un transformateur qui vient fournir le PC directement en courant continu. Il dispose également d’un emplacement SD ce qui pourra éventuellement être utile pour faire de la sauvegarde sur ce type de médium.

Comme vous le savez, ZFS calcule de somme de contrôle pour toutes les données écrites sur ses volumes. Cette opération consomme de la ressource processeur. Le processeur étant un Intel Atom, il y a de quoi se poser des questions en effet. L’objectif n’étant pas de faire des gros transferts de données à la vitesse de la lumière, cela n’est pas réellement problématique. Le débit de données reste relativement correcte.

Par défaut, le MSI Nettop est fourni avec un disque dur de 160Go ce qui est trop peu. J’ai donc acheté un disque supplémentaire Western Digital de 500Go pour le remplacer.

Solution logicielle

Une des contraintes était de pouvoir disposer de ZFS. Cela laisse donc trois choix : Solaris, OpenSolaris ou FreeBSD. Étant donné l’orientation entreprise de Solaris et la nouvelle politique de support d’Oracle, il n’était pas souhaitable de l’utiliser. FreeBSD est un système d’exploitation qui ne me plait pas particulièrement et ce dernier n’est pas au niveau d’OpenSolaris en terme de versions de ZFS. Il n’y a pas de déduplication de données sur ZFS sous FreeBSD. Mon choix s’est donc naturellement tourné vers OpenSolaris.

Un autre avantage est qu’il gère directement NFS et CIFS sans avoir besoin d’applications supplémentaires. Cela rend très simple la gestion de partages réseaux par le biais de commandes simples et efficaces. La documentation Oracle est très claire à ce niveau, je vous laisse la consulter.

Utilisation

Une fois que nous avons une solution logicielle et une solution matérielle, nous allons pouvoir décider ce que nous allons en faire.

Mon serveur me sert en tant que serveur NFS afin de sauvegarder des données à la volée à partir de mes différents ordinateurs. Pour mon MacBook Pro, cela me permet d’utiliser l’excellent Time Machine. La mise en place de Time Machine sur un NFS ne se fait pas sans douleur mais il existe de nombreux tutoriels sur Internet afin de vous aider. Ce serveur effectue une sauvegarde périodique (tous les 15 minutes) de mes emails Gmail. L’application getmail permet de récupérer en POPS les nouveaux mails. La récupération initiale de mes 70.000 mails a pris une nuit sur mon ADSL 7Mbit/s et désormais il récupère juste les mails le plus récents.

Ce serveur héberge également mon blog en ce moment le temps que je réinstalle ma VM Xen. Le temps de chargement de pages web a même été amélioré par rapport à ma VM ce qui est assez impressionnant. J’ai activé la déduplication de données en même temps que j’ai écrit le tutoriel précédent. Ce serveur a été tout à fait stable. Je n’ai rencontré aucun problème depuis 2 mois que ce serveur est en place.

7 Commentaires to "Un serveur personnel avec ZFS"

1 | AP

mai 22nd, 2010 at 20 h 37 min

Avatar

Je vous trouve sévère avec le « RAID logiciel standard assez douteux ». Sous Linux, j’utilise le gestionnaire RAID inclus dans le noyau depuis de nombreuses années et je lui dis merci pour m’avoir plusieurs fois épargné la crise d’angoisse devant le sinistre « clac clac clac clac » du disque dur qui agonise…

ZFS semble séduisant mais je comprends que les développeurs du noyau Linux aient pu lui reprocher de tout réinventer : le RAID, la gestion de volumes, le NFS… D’un autre côté, cet aspect monolithique peut séduire, je le conçois. En outre, la gestion du RAID par un système de fichiers qui « checksumme » tout peut permettre de diagnostiquer plus tôt que le support de stockage est en train de rendre l’âme.

Je surveille de près le prometteur btrfs. Je l’ai implémenté sur un petit serveur de sauvegardes sur lequel j’utilisais rdiff-backup que j’ai remplacé par un couple « snapshots btrfs » + rsync.

2 | Antoine

mai 25th, 2010 at 12 h 29 min

Avatar

Bonjour,

Je suis peut être un peu sévère contre le RAID logiciel, c’est vrai mais je n’en pense pas moins. Le concept même du raid logiciel me semble bancal. Les applicatifs du raid logiciel sont présents sur les disques qu’on cherche à protéger. On met donc tous ses oeufs dans le même panier. De plus, le raid logiciel rend impossible l’utilisation de batteries préservant les caches…
Le raid logiciel peut être intéressant pour une utilisation type pc perso mais pas pour des systèmes plus critiques que ca.
Pour btrfs, on verra bien mais il va y avoir beaucoup de travail pour arriver au niveau de ZFS.

3 | Les tweets qui mentionnent Antoine Benkemoun » Un serveur personnel avec ZFS - Sécurité informatique, Virtualisation, Administration système et Réseaux -- Topsy.com

mai 25th, 2010 at 8 h 37 min

Avatar

[…] Ce billet était mentionné sur Twitter par Hobbestigrou, Gaëtan Compigni. Gaëtan Compigni a dit: Benkemoun : Un serveur personnel avec ZFS http://bit.ly/c41hZM […]

4 | Philippe

juin 4th, 2010 at 7 h 18 min

Avatar

Il etait question que Apple intègre ZFS sur Mac OS X, des news là-dessus ?

5 | Antoine

juin 4th, 2010 at 10 h 12 min

Avatar

Ca a été abandonné il y a quelques temps. La raison affichée serait un soucis de licences ce qui est assez douteux.

6 | Yannovitch

juin 29th, 2010 at 12 h 35 min

Avatar

Merci pour votre billet très intéressant.
Je déploie dans ma famille actuellement plusieurs serveurs sous Atom également, et chez mes parents un serveur mini itx avec Core2Duo. Je pense par contre me tourner plutot vers un Ubuntu Server pour ces systèmes, je n’ai pas besoin de ttes les fonctionnalités de ZFS.

Je viens d’acquérir un serveur dédié ( un Kimsufi 250) et avant de me « lancer » définitivement, j’hésite entre plusieurs systèmes d’exploitations.

Je souhaite avoir un système performant, mais qui prend le moins de place possible ( à cause des VM, voir ci dessous). Un BSD sera donc plus adapté qu’un Linux je pense, non ?

Je souhaite pouvoir faire tourner plusieurs VM dessus, sans grosse perte de performances. Je souhaite donc utiliser Xen en dom0.

Je souhaite aussi avoir un filtrage le meilleur possible. Donc un bon pare feu. Compatible avec plusieurs plugins. Me permettant de faire du load balancing pour d’autres serveurs, vu que le Kimsufi me sert également de « frontal » pour répartir les utilisateurs sur d’autres machines.
Dans l’idéal il me faudrait donc pf qui est très « clair ». Sinon iptables a pas mal de plugin également mais est moins clair. Et tient moins bien la charge.

J’aimerais avoir un système de fichier performant aussi. ZFS me semble assez bien indiqué. Mais bon, plutot pour les autres serveurs qui contiennent 20 disques durs que pour ce serveur frontal qui n’en contient qu’un, voire à terme, deux ( en rajoutant un disque dur 500go comme c’est permis avec les Kimsufi).

Or, aucun système actuellement n’implémente tout ce que j’ai envie :
– NetBSD a Xen Dom0 & pf mais pas ZFS (mais bon ZFS si je l’ai pas, je l’ai pas, ca me dérange pas plus que ca) et puis surtout, il est très chiant, pour ne pas dire impossible à installer sur un Kimsufi
– FreeBSD a ZFS & pf mais pas Xen en Dom0, et ca, ca m’est indispensable
– Solaris a (le meilleur) ZFS et Xen en Dom0 mais ipf, qui est vieillissant et dure à utiliser. A moins que vous connaissiez des astuces pour installer pf sur OpenSolairs ?
De plus l’avenir de OpenSolaris me semble incertain. C’est une communauté restreinte, bcp moins dynamique que la communauté de FreeBSD par ex
– Debian a Xen Dom0, peut utiliser ZFS, meme en Kernel ( mais au prix de systeme D douteux) , mais utilise netfilter qui est relou, et est relou meme tout court.

Donc quel système utiliser ???

7 | Antoine

juin 30th, 2010 at 12 h 16 min

Avatar

Bonjour,

Ce genre de choix n’appelle pas de réponse universelle je pense. Il faut choisir l’environnement applicatif avec lequel on se sent le plus confortable. Je ne suis pas un fan des *BSD donc je ne pourrais vous les recommander.

Dans votre cas, je choisirai probablement une Debian car Xen y fonctionne très bien et c’est relativement simple à utiliser. Pas de ZFS certes, mais on ne peut pas tout avoir :-P

En espérant avoir été utile,

Antoine

Ajoutez votre commentaire

A propos de ce blog

Ce blog a pour objectif de partager des informations avec tous les internautes. Comme indiqué dans le titre, je traiterais de différrents sujets gravitant autour de la sécurité informatique, de la virtualisation, de la l'administration système et du réseau.