Test : FreeNAS
Rédigé par Xavier - -
FreeNAS est une solution de stockage et de partage de fichiers pour l'entreprise basée sur FreeBSD et (principalement) ZFS le système de fichiers de Oracle haute-performances haute-sûreté. J'ai décidé de tester ce produit en simulation de situation d'entreprise : intégration A.D, RAID, sauvegardes.

Les tests sont faits sur mon ordinateur de bureau, équipé d'un Core i7 860, 8GB de mémoire, deux disques de 80GB pour le stockage et un de 160GB pour le système. Les cartes réseau des machines de test sont 1000Mbps, ainsi que le switch. On sait que ZFS est très gourmand, mais ma config devrait lui suffire.
Je n'ai pas publié cet article sur le planet-libre en raison du nombre élevé d'images qu'il contient, j'avais peur de faire exploser le poids des pages. C'est aussi la raison pour laquelle j'ai créé un châpo.
Installation
Dès l'installation j'ai rencontré des difficultés avec FreeNAS. Le démarrage sur CDROM semblait bien se passer mais bloquait très rapidement sur le message :
looking for installation cdrom on
Et la solution fut de... brancher un lecteur CD externe en USB. La suite de l'installation est très rapide et très simple, il n'y a aucune option. On sélectionne le disque dur cible, et c'est tout. Partitionnement automatique, pas de choix de composants.
Lorsque le système démarre enfin sur le disque dur, il propose des menus en mode texte permettant de configurer le réseau. Il y a peut-être trop d'options, car on peut par exemple paramétrer des VLANs. Pas vraiment utile sur un NAS à mon sens. Mais au moins on s'y retrouve.
Découverte de l'interface

L'interface n'est pas moche, bien au contraire, et respire la modernité. Elle est un poil complexe à première vue car il y a beaucoup d'éléments à gérer mais on s'y retrouve globalement.
Intégration Active Directory
Mon Active Directory tourne sur Windows 2008 R2 et contient des comptes fictifs. Tout d'abord, pensez à bien mettre votre FreeNAS à l'heure. On peut le faire via un serveur NTP dans les options. Paramétrez aussi votre fuseau ! Utilisez la commande date dans le shell pour vérifier.

Passez aussi votre FreeNAS en IP fixe. Le fonctionnement en DHCP est possible mais cause des problèmes en cas de redémarrage (voir plus bas, paragraphe "bugs"). Lorsque tous ces points sont vérifiés, allez dans la liste des services et cliquez sur le petit bouton à côté de l'entrée Active Directory ce qui affiche ceci :

Les détails pour la configuration peuvent être trouvés ici. Validez puis passez l'Active Directory en "ON". Dans le Shell de votre FreeNAS, utilisez la commande wbinfo pour savoir si la connexion à l'A.D s'est bien déroulée :
[root@freenas] ~# /usr/local/bin/wbinfo -u FREEMAN\administrateur FREEMAN\invité FREEMAN\krbtgt FREEMAN\john.shepard FREEMAN\liara.tsoni FREEMAN\adminfreeman FREEMAN\xchotard
Au passage, il n'est pas possible de voir les utilisateurs de l'A.D dans l'interface de FreeNAS... il y a bien une page pour les utilisateurs, mais elle ne montre que ceux "locaux" de UNIX. Il est vraiment dommage d'être obligé de passer par le shell juste pour ça.
Vous devez ensuite paramétrer CIFS dans la liste des services. Mettez le même nom de machine et Workgroup que pour votre Active Directory. Là encore on se demande pourquoi il ne le fait pas tout seul. Passez CIFS en ON.
Création d'un volume
Allez ensuite dans Stockage > Volumes puis créez un nouveau volume. Sélectionnez vos deux disques de stockage puis le format de fichiers (de préférence ZFS). Choisissez aussi le mode de fonctionnement : mirror (RAID1) ou stripe (RAID0).

Vous devez ensuite modifier les permissions pour votre volume ZFS (en rouge sur l'image en dessous), et y attribuer un utilisateur de l'A.D comme propriétaire (en bleu).

Et pour finir, dans la partie "Partage", vous devez créer un partage Windows (CIFS). Aucun paramètre particulier à entrer, sélectionnez juste votre volume précédemment créé. Et voilà.

Depuis un ordinateur sous Windows vous devriez maintenant visualiser le partage que vous venez de créer.

Comportement du RAID
J'ai débranché un des disques de stockage (à froid) pour voir ce qui allait se passer. Le fonctionnement n'est pas interrompu, et lors de la connexion à la console j'obtiens une alerte sur l'état de mon volume de stockage. J'ai rebranché le disque (toujours à froid) et ait constaté que le volume s'est reconstruit tout seul.
Je n'ai pas paramétré la partie SMTP, je ne sais donc pas si il y a un envoi de mail automatique à l'administrateur lorsqu'un problème sur un volume est détecté. Cette partie est décrite ici.
Sauvegardes et snapshots
FreeNAS supporte les snapshots. Allez dans "Storage" > "Periodic Snapshot Tasks" > "Add Periodic Snapshot". Vous pouvez définir à quelle heure et quels jours vos tâches doivent être déclenchées, ainsi que leurs intervalles.

La récupération d'un fichier est une étape un peu longue. On ne peut pas visualiser directement ce qui est dans le snapshot. Selon la doc officielle il faut donc commencer par le cloner, puis créer un point de montage, y accéder pour récupérer le fichier, et détruire le clone lorsque tout est terminé. C'est un peu long et c’est bien dommage.
Performances
Les tests sont faits avec un ordinateur branché sur le réseau, sous Windows 7, antivirus désactivé. C'est la même machine dans tous les tests et les mesures sont faites 3 fois (il y a eu des gros écarts lors des mesures avec 2008R2, j'ai donc mis les moyennes).
Je teste tout d'abord le transfert d'un gros fichier : l'ISO de Windows 2008R2, puis ensuite une multitude de petits fichiers : le dossier d'installation de Exchange qui en contient 13491. Je place un benchmark d'un serveur de fichiers 2008R2 pour comparer.
Envoi d'un gros fichier
Ici j'envoie l'ISO de Windows 2008R2 qui pèse 3GiB.

Envoi de nombreux fichiers
Là j'envoie le répertoire d'installation d'Exchange 2010. 13491 fichiers, environ 1,3GiB d'espace disque.

Suppression de fichiers
Je lance ensuite une suppression sur les fichiers.

Téléchargement
Je fais maintenant les tests dans l'autre sens, les fichiers sont sur le serveur, je les récupère.

Les performances lors des transferts avec FreeNAS sont très clairement en retrait, d'un facteur de 2 dans quelques cas. Il y a un goulot d'étranglement quelque part et je soupçonne que ce soit l'implémentation SAMBA sur FreeBSD 8.2. Si vous cherchez la performance, c'est 2008R2 que vous devrez retenir...
Bugs
- Si vous travaillez avec une IP en DHCP, au démarrage vous n'aurez pas de connexion à l'Active Directory car elle se lance trop tôt.
- Si votre serveur démarre et n'a pas d'accès à internet, il ne pourra pas récupérer l'heure et la date en NTP, ces paramètres seront donc mauvais et la connexion à l'Active Directory ne sera pas fonctionnelle ("Clock skew too great").
Conclusion
FreeNAS est très intéressant, il permet de profiter du système de fichiers ZFS en toute simplicité. En revanche, dans le cadre d'une utilisation en environnement Microsoft (ce qui est souvent le cas en entreprise) on se heurte à quelques limites. Les performances ne sont pas au top, les snapshots ne sont pas très pratiques et l'installation peut se révéler périlleuse.
C'est tout de même une solution viable à mon sens en raison des nombreux avantages comme le RAID, la réplication, et le fait qu'une fois lancé ça marche très bien.