Niveau : débutant
Début 2012, j'avais besoin d'un nouveau serveur de stockage pour mon "lab" (l'infrastructure maison qui me sert pour la veille technologique).
Je me suis donc mis à la recherche de la machine idéale, compacte, silencieuse, avec un espace de stockage conséquent, un maximum de fonctionnalités professionnelles, pour un prix risible.
Cet article traite des questions que je me suis posées, des choix que j'ai fait, et de la façon dont j'ai contourné les limitations inhérentes à un petit budget :
je voulais faire en sorte que le système que je bâtirais "sorte du lot", avec un rapport performances / prix imbattable par rapport aux produits que l'on trouve sur le marché !
Cahier des charges
- je voulais 4 emplacements disques, pour y mettre des 3 TO (pour une capacité totale de 12TO, effective de 9 TO)
- éventuellement un SSD supplémentaire
- je le voulais silencieux et économe en énergie
- avec un processeur suffisamment puissant pour du stockage, mais pour rien de plus (j'avais déjà un serveur web, très puissant)
- avec la possibilité d'y installer 8GO de RAM
- d'y rajouter une carte réseau pour faire de l'agrégation de liens (standardisée via la norme 802.3ad, aussi appelée EtherChannel chez Cisco)
- je ne voulais pas me voir imposé un système particulier, je voulais une machine "bare metal", préférant être tributaire de mes compétences plutôt que d'un constructeur
- et bien-sûr, le moins cher possible ;-)
Mes choix
J'ai d'abord passé en revue les boitiers de type "NAS", notamment les Synology, mais je n'étais pas pleinement satisfait.
C'est alors que je suis tombé par hasard sur ce mini serveur HP Proliant MicroServer N40L, qui répondait à mes attentes, moyennant quelques "hacks".
Je précise que je tiens un blog personnel, et que je ne suis sponsorisé par AUCUN constructeur !
D'un point de vue logiciel, j'ai rapidement opté pour l'installation d'une FreeBSD, avec les disques gérés par ZFS, qui sera traitée dans un prochain article.
Notons toutefois que cela influencé deux de mes choix :
- la quantité de RAM : les 2GO livrés avec la machine sont considérés insuffisants pour faire tourner correctement un volume ZFS de la taille choisie
- l'ajout d'un disque SSD : ZFS est très en avance sur ce point, et permet de faire du "tiered storage". Tout comme votre RAM est utilisée comme cache pour vos accès disque, ZFS permet d'utiliser le disque SSD, plus rapide que les disques mécaniques classiques, pour du cache en lecture et/ou écriture ! C'est un concept très à la mode actuellement, pour les systèmes de stockage professionnels (NAS haut de gamme et SANs), car il permet d'offrir des performances très supérieures
La machine retenue
Le serveur HP Proliant Microserver N40L a les caractéristiques techniques suivantes :
- Un processeur Dual Core AMD Turion 1,5GHz
- 2GO de RAM ECC, extensibles à 8GO (2 slots)
- un contrôleur disque intégré, capable de faire du RAID 0 et 1, avec 4 ports frontaux SATA 2, ainsi qu'un port interne en SATA 1 (pour le lecteur CDROM)
- deux emplacements PCI Express (un x16 et un x1) n'acceptant que les cartes demi-hauteur
- un contrôleur réseau gigabit NC107i
Le prix du serveur était à l'époque de 264,90€ TTC (acheté sur un magasin en ligne bien connu)
Quelques points qui ne me satisfaisaient pas
Clairement, il y a des choses qui n'allaient pas, avec la machine de base :
- il me fallait 8GO de RAM, au lieu de 2
- étant donné qu'il y a 4 emplacements disque, y avoir ajouté un contrôleur capable de faire seulement du RAID 1 est pour le moins ... incongru ! Au mieux, nous pouvons faire 2 grappes RAID1 de deux disques, ce qui fait une perte de capacité conséquente par rapport au RAID5, en plus d'avoir à gérer deux volumes séparés. De plus, le contrôleur en question n'est pas compatible "hot plug", donc vous ne pourrez pas entamer un changement de disque avec le serveur allumé, en vue de reconstruire une grappe RAID, si l'un des disques est tombé en panne !
- si nous mettons le disque SSD sur le port interne dédié au CDROM, il marchera en SATA1, et sera très fortement limité au niveau de ses performances
- un seul contrôleur réseau me semble un peu léger pour un serveur, mais tout fait compréhensible, vu que HP s'attaque avec ce produit au marché des micro et des petites entreprises
- bizarrement, HP ne fournit pas d'alimentation SATA pour le lecteur interne, il faut donc ajouter un adaptateur Molex -> SATA pour son alimentation
Ajout de matériel supplémentaire
J'ai donc du acheter du matériel supplémentaire pour renforcer la configuration :
- 2 barrettes de 4GO (le serveur accepte aussi de la mémoire non-ECC)
- un contrôleur SATA3 bon marché, en PCI Express x2 demi-hauteur, dédié au disque SSD, le Connectland PCIE-CNL-SATA6G-IDE
- un disque SSD SanDisk de 64 GO (SDSSDP-064G-G25), très peu onéreux, moyennement véloce, mais fiable (je voulais à tout prix éviter les disques de la marque OCZ, qui a fait faillite depuis, à cause d'un taux de retour en garantie très élevé)
- une carte réseau Intel Gigabit CT (EXPI9301CTBLK) en PCI Express x 1 demi-hauteur, qui n'est absolument pas la plus haut de gamme de chez Intel, mais qui est suffisante pour avoir un bon débit, et pour faire de l'agrégation de liens
- un adaptateur alimentation Molex -> SATA
Le surcoût a été de 177€ TTC
Choix des disques de stockage des données
J'ai longtemps hésité sur le choix des disques, je trouve que les disques "économiques" ont une fiabilité douteuse, que ce soit la série Green chez Western Digital, ou les équivalents chez les autres marques.
Et les disques durs de classe "entreprise", comme la série Black, sont, quant à eux, hors de prix.
J'ai donc opté pour la série "NAS" de chez Western Digital, les Caviar RED 3TO.
Deux ans après leur mise en production, aucun problème particulier à signaler avec une utilisation relativement soutenue, des performances correctes, et aucune panne pour le moment (croisons les doigts ...)
Le prix était tout de même assez élevé pour l'époque, puisque j'ai payé 780€ TTC pour les quatre disques !
Concernant le contrôleur RAID HP
C'était pour moi un problème épineux. Je suis habitué aux serveurs d'entreprise, et un contrôleur RAID 0/1, non "hot plug", me semble juste totalement incompatible avec un usage à peu près sérieux ...
Dans mon cas, j'ai contourné le problème. En effet, ZFS est en même temps un logiciel de gestion de données, et un file system, qui assure sa propre redondance. Autrement dit, il ne fonctionne pas au dessus d'une couche RAID, il se substitue à elle.
Pendant des années, les serveurs ont fonctionné selon le paradigme suivant :
- la couche matérielle, le RAID, assurait la redondance
- la couche logicielle, elle, ne faisait que gérer le file system
Cela avait certains avantages, puisque les cartes RAID implémentaient des circuits spécialisés et performants pour la redondance et le calcul de parité, ce qui permettait de décharger le processeur principal de cette tâche fastidieuse.
Cela avait aussi un inconvénient, puisque le RAID était transparent pour le système, une couche inférieure, totalement indépendante.
Ce qui limitait sérieusement le design de nouvelles méthodes pour la redondance : tous les niveaux de RAID ne sont que des déclinaisons plus ou moins évoluées du mécanisme RAID 1 originel.
Et c'est là que ZFS est révolutionnaire : en intégrant la gestion de la redondance en son sein, il a donné naissance à un agencement des données totalement inédit, contournant les problématiques propres au RAID, notamment le "write hole", qui nécessitait l'adjonction d'un cache avec batterie (le write-back cache) sur le contrôleur.
D'un point de vue performances, ZFS et son système de redondance RAIDZ est tout à fait compétitif par rapport aux contrôleurs RAID classiques.
Les performances en lecture sont équivalentes, les performances en écriture sont légèrement supérieures.
Concrètement, quelles sont les implications pour mon serveurs de fichiers ?
Plutôt que d'utiliser les fonctionnalités RAID du contrôleur, je vais uniquement utiliser sa partie contrôleur SATA, pour présenter les disques de façon indépendante au système (ce que l'on appelle la méthode JBOD ou encore "Just a Bunch Of Disks"), qui lui se chargera de gérer la redondance des données et les pannes des disques.
En fouillant un peu sur Internet, je me suis vite aperçu que cela me permettait aussi de régler le problème épineux du "hot plug" : les fonctionnalités de base du contrôleur intégré sont bien hot plug, c'est le logiciel propre au RAID qui ne sait pas le gérer. En désactivant les fonctionnalités RAID, j'aurai donc un système hot plug !
Il reste la question du port CDROM interne, qui fonctionne en SATA1. C'est aussi une limitation purement logicielle, qui peut-être contournée en modifiant le BIOS de la carte-mère, et j'ai donc effectué cette manipulation : le port SATA fonctionnera donc à sa vitesse maximale, en SATA2, comme les quatre ports frontaux.
Toutefois, le SATA2 a un débit (pratique) maximal d'environ 300MO/s. Ce qui est largement suffisant pour un disque dur mécanique, mais qui peut se révéler limité pour un disque SSD.
D'où l'adjonction d'une carte contrôleur SATA3 (600MO/s) basique, qui me permettra d'utiliser le SSD à son maximum : le SDSSDP-064G-G25 a des performances d'environ 490MO/s en lecture, 240MO/s en écriture.
Un détail d'importance qui n'aura pas échappé au lecteur attentif : le disque SSD, sur lequel seront installés le système et le cache, ne sera pas en RAID. Je pars du principe que le serveur n'est de toute façon pas totalement sûr . Vu son prix, il ne faut pas s'attendre à des miracles, et certains éléments, comme l'alimentation, ne sont de toute façon pas redondés. J'aurais pu acheter une carte RAID 1, et faire une grappe avec 2 SSD. Toutefois, faire un miroir d'un disque qui servira à 90% de son volume pour du cache, ça n'avait pas vraiment de sens pour moi. J'ai donc une sauvegarde régulière qui tourne sur la partie système du SSD, et la grappe ZFS est sauvegardée aussi, sur un serveur distant. Si le disque SSD me lâche, je pourrai réinstaller rapidement les données à partir de la sauvegarde, sur un disque de remplacement, que j'ai déjà en stock. Si la carte contrôleur ConnectLand venait à tomber en panne, je pourrai me servir temporairement du contrôleur interne SATA2, en attendant d'en racheter une.
La meilleure solution pour ce type de machines reste d'en mettre deux en haute disponibilité (ça tombe bien, ZFS la gère nativement). J'ai bien, sur un autre serveur, une autre grappe de 12TO, mais elle sert à la sauvegarde en différé, et non pas à une réplication en temps réel. N'ayant pas pour l'instant le budget pour avoir et la réplication et la sauvegarde, j'ai préféré choisir la sauvegarde, qui est plus importante à mes yeux. En cas de fausse manipulation, je dois être capable de récupérer mes données en toute circonstance, ce que ne permet pas de faire la réplication : dans un système répliqué, si un fichier est effacé ou modifié par erreur, il le sera sur les deux serveurs. C'est pour cela qu'avoir un troisième serveur, pour une sauvegarde (autrement dit une réplication ponctuelle, différée) est indispensable, selon moi. S'il ne doit y avoir que deux serveurs par manque de moyens, tant pis pour la haute disponibilité !
Une précision concernant la génération actuelle 8 du Proliant Microserver, que vous trouverez dans le commerce en 2014 : HP a changé la carte contrôleur pour une Smart Array B120i, qui permet maintenant de faire du RAID 5, en plus du RAID 0 et 1. Toutefois, pour que vos données soient totalement sécurisées, il vaut mieux acheter la batterie/cache "write back" optionnelle, propre au RAID5. Et la fonctionnalité Hot Plug est toujours absente ... |
C'est pour ces raisons que je ne recommanderais pas ce serveur pour une utilisation classique, comme un serveur de fichiers Windows ou Linux, par exemple.
Mon opinion personnelle, c'est que seuls les mécanismes propres au ZFS permettent de compenser les limitations du matériel.
Je ne dis pas que les Proliant Microserver sont de mauvais produits, visiblement HP a fait énormément d'efforts, et il a fallu faire des sacrifices, vu le coût très raisonnable de la machine.
C'est juste que dans cette gamme de prix, si je devais monter un serveur de fichiers classique, avec du RAID, je m'orienterais plutôt vers les boitiers NAS, qui sont tout à fait concurrentiels.
Conclusion de la première partie
Et voilà, nous avons un serveur de stockage de 12TO, en agrégation de liens, avec du tiering SSD, le tout pour 1221,90€ TTC, ce qui est, je trouve, très abordable compte tenu des fonctionnalités offertes !
La prochaine partie de l'article traitera de l'installation elle-même :
Installation d'un serveur HP Proliant Microserver (partie 2/2)