Choisir un système d'exploitation de stockage ouvert
Il devient de plus en plus courant de renoncer aux périphériques de stockage traditionnels et propriétaires, tant NAS que SAN, pour utiliser à la place du matériel standard du commerce sur lequel on installe un système d'exploitation de stockage, donnant ce que beaucoup appellent des serveurs de stockage “à faire soi-même”. Il s'agit bien entendu d'une appellation impropre, puisque personne n'appelle un serveur de fichiers ordinaire “à faire soi-même” au seul motif que vous avez installé Windows vous-même. Le stockage est entouré de nombreux mythes et légendes, et les gens paniquent souvent à l'idée d'installer Windows et de l'appeler NAS plutôt que de l'appeler serveur de fichiers. Aussi, si cela vous rassure, utilisez des termes comme serveur de fichiers ou serveur de stockage plutôt que NAS et SAN – problème résolu. Cela fait partie du mouvement du “stockage ouvert” – faire passer les systèmes de stockage du propriétaire au standard.
Choisir le bon système d'exploitation pour un serveur de stockage est important et pas toujours si facile. Je travaille beaucoup dans ce domaine et les gens me demandent souvent ce que je recommande ; les recommandations varient, selon le scénario, et semblent souvent prêter à confusion. Mais les facteurs sont en réalité relativement simples, pour peu que l'on connaisse les limitations qui créent les choix et les chemins de l'arbre de décision.
Avant de choisir un système d'exploitation, nous devons nous arrêter et réfléchir à ce que seront nos besoins. Parmi les domaines à prendre en considération figurent : la capacité, les performances, la facilité d'administration, le budget, la technologie de connexion, le coût et la mise en cluster. Il existe également deux grandes catégories de systèmes que nous prendrons en compte : le système d'exploitation standard ou le système d'exploitation d'appliance de stockage. Les systèmes d'exploitation standards sont Windows, Linux, Solaris et FreeBSD. Les systèmes d'exploitation d'appliance de stockage sont FreeNAS, OpenFiler et NexentaStor. Il en existe d'autres dans les deux catégories, mais ce sont là les principaux acteurs à l'heure actuelle.
La première décision à prendre est de savoir si vous-même ou votre organisation êtes à l'aise avec la prise en charge d'un système d'exploitation normal fonctionnant dans un rôle de serveur de stockage. Si vous envisagez un NAS, demandez-vous simplement si vous sauriez administrer un serveur de fichiers. Administrer un serveur de stockage en mode bloc (SAN) est un peu plus complexe ou, du moins, inhabituel, ce qui peut susciter une légère inquiétude, mais cela s'inscrit en réalité dans la lignée des autres tâches d'administration. Si la réponse est oui, à savoir que l'utilisation des outils et interfaces d'un système d'exploitation normal vous convient, alors écartez d'emblée la catégorie “appliance”. L'approche par appliance ajoute de la complexité et ralentit les cycles de développement et de support, de sorte qu'à moins d'être nécessaire, elle est indésirable.
Les systèmes d'exploitation d'appliance de stockage n'existent que pour fournir une vue préemballée et “facile à utiliser” de l'exploitation d'un serveur de stockage. Sur le principe, c'est appréciable, mais cette méthode pose de réels problèmes. Les plus gros problèmes proviennent du processus d'empaquetage qui vous éloigne d'un cran des fournisseurs de systèmes d'exploitation d'entreprise eux-mêmes, rendant votre système plus fragile, plus en retard sur les mises à jour et les fonctionnalités, et moins sécurisé que ses homologues sous système d'exploitation traditionnel. Cela vous laisse également à la merci d'une très petite entreprise pour un support de niveau OEM lorsque quelque chose tourne mal, plutôt qu'à celle d'un grand fournisseur d'entreprise doté d'une vaste base d'utilisateurs et d'une communauté. Le processus de transformation en appliance dépouille aussi par nécessité les systèmes de fonctionnalités et d'options. Au final, vous y perdez.
Les appliances sont appréciables car vous obtenez une interface web pratique depuis laquelle “n'importe qui” peut administrer votre stockage. Du moins en théorie. Mais en réalité, deux préoccupations se posent. La première est qu'il est toujours nécessaire, de temps à autre, de descendre dans le système d'exploitation lui-même pour corriger des choses. La présence de l'interface web personnalisée de l'appliance rend cela considérablement plus difficile que la normale, de sorte que c'est précisément au moment où vous avez le plus besoin de la nature « appliance » du système que vous ne l'avez pas. La seconde est que rendre quelque chose d'aussi critique que le stockage accessible à “n'importe qui” pour y intervenir est une pensée terrifiante. Il existe peu d'éléments de votre infrastructure pour lesquels vous souhaitez plus d'expérience, de planification et de soin que pour le stockage. Rendre le système plus difficile à utiliser n'est pas toujours une mauvaise chose.
Si vous avez besoin d'un système d'appliance, vous vous tournez alors principalement vers FreeNAS et OpenFiler. NexentaStor propose un produit séduisant, mais il n'est pas disponible en version gratuite et le coût peut être prohibitif. La version téléchargeable gratuitement semble gratuite pour les 18 premiers To de stockage brut, mais la licence stipule le contraire, ce qui en fait rarement le choix populaire. (Le coût de NexentaStor est suffisamment élevé pour que l'achat d'un système Solaris entièrement pris en charge revienne moins cher et offre un support complet du fournisseur d'origine plutôt que de Nexenta, qui se contente pour l'essentiel de reconditionner d'anciennes versions de Solaris et de ZFS. Du code plus moderne et des mises à jour sont disponibles à moindre coût auprès de la source d'origine.)
FreeNAS, en dehors de la mise en cluster, est la plateforme de stockage de choix dans un format transformé en appliance. Il dispose du très vanté système de fichiers ZFS, qui lui confère une flexibilité et une facilité d'utilisation dont OpenFiler et les autres alternatives basées sur Linux sont dépourvus. Il possède également une implémentation iSCSI fonctionnelle, de sorte que vous pouvez utiliser FreeNAS en toute sécurité aussi bien comme NAS que comme SAN. Le support de FreeNAS semble se renforcer, avec de nouveaux développements réalisés régulièrement et des fonctionnalités conservées. FreeNAS offre un large éventail de fonctionnalités et de protocoles pris en charge. On pense que la mise en cluster arrivera également à FreeNAS à l'avenir, car celle-ci a récemment été ajoutée au système d'exploitation FreeBSD sous-jacent. Si tel est le cas, FreeNAS éliminera complètement le besoin d'OpenFiler sur le marché. FreeNAS est entièrement gratuit.
OpenFiler est dépourvu d'une implémentation SAN iSCSI fiable (à moins de payer une fortune pour faire remplacer cette partie du système par un composant fonctionnel) et est bien plus dépassé que ses concurrents, mais il offre une réplication complète en temps réel au niveau bloc, lui permettant de fonctionner en mode cluster pour la fiabilité. Le problème ici est que la pratique interface web de l'appliance NAS ne prend pas en charge ce scénario, et si vous souhaitez procéder ainsi, il vous faudra vous salir les mains sur la ligne de commande, et même très fortement. C'est du niveau expert, et quiconque est capable ne serait-ce que d'envisager un projet visant à transformer OpenFiler en un cluster fiable sera tout aussi à l'aise, et probablement bien plus à l'aise, à construire l'intégralité du cluster à partir de zéro sur la distribution Linux de son choix. OpenFiler est bâti sur la distribution rPath Linux, plutôt impopulaire et désormais complètement abandonnée, à l'aide du système d'empaquetage Conary, deux acteurs de niche, c'est le moins que l'on puisse dire, dans le monde Linux. Vous trouverez peu de support rPath auprès des autres administrateurs, et de nombreux paquets et fonctionnalités auxquels vous pourriez souhaiter accéder sont indisponibles. Le seul avantage de quelque importance d'OpenFiler est la disponibilité de DRBD pour la mise en cluster, ce qui, comme indiqué ci-dessus, est dénué de sens. Le support d'OpenFiler semble décliner, les nouvelles fonctionnalités étant inexistantes et, en fait, des fonctionnalités clés comme l'AFP ont été supprimées au lieu que de nouvelles fonctionnalités aient été ajoutées. OpenFiler est gratuit, mais des fonctionnalités clés, comme l'iSCSI fiable, ne le sont pas. De récents retours d'utilisateurs d'OpenFiler indiquent que même le stockage non-iSCSI est devenu instable dans la dernière version, et que les pertes de données sont monnaie courante. OpenFiler demeure très populaire dans l'esprit de ce segment de l'industrie, mais devrait être évité complètement.
Si vous n'avez pas besoin que votre système d'exploitation de stockage soit transformé en appliance, il vous reste alors davantage de choix, et de meilleurs, mais un arbre de décision bien plus complexe. Contrairement au marché des systèmes d'exploitation d'appliance, qui est truffé de nids-de-poule (NexentaStor réserve des coûts surprises, OpenFiler semble prendre en charge l'iSCSI mais provoque des pertes de données, des fonctionnalités sont retirées des nouvelles versions), les quatre systèmes d'exploitation mentionnés ici sont tous extrêmement robustes et riches en fonctionnalités. Trois d'entre eux bénéficient d'un support du fournisseur OEM, ce qui peut constituer un facteur décisif majeur, et tous disposent d'excellentes options de support tiers, bien plus étendues que ce qui est disponible sur le marché des appliances.
La première décision consiste à déterminer si des fonctionnalités propres à Windows, notamment les ACL NTFS, sont nécessaires ou non. Il est courant que les nouveaux utilisateurs de NAS soient surpris lorsque le protocole SMB ne fournit pas tout le contrôle granulaire du système de fichiers auquel ils sont habitués sous Windows. Cela tient au fait que ces contrôles sont en réalité gérés par le système de fichiers, et non par le protocole réseau, et que Windows est le seul à les fournir, par l'intermédiaire de NTFS. Aussi, si ce contrôle granulaire des fichiers à la Windows est nécessaire, Windows est votre seule option.
Les trois autres prétendants, Linux, Solaris et FreeBSD, partagent tous les mêmes capacités de base, à l'exception notable de la mise en cluster. Tous disposent d'un bon RAID logiciel, tous possèdent des systèmes de fichiers puissants et robustes, tous offrent une gestion de volumes logiques puissante et tous proposent une variété d'options de connexion NAS et SAN. De nombreuses versions de Linux et de FreeBSD sont disponibles entièrement gratuitement. Solaris, bien que gratuit à des fins de test, n'est pas disponible gratuitement pour un usage en production.
Le plus grand facteur de différenciation entre ces trois options de système d'exploitation est la mise en cluster. Linux dispose de DRBD depuis longtemps maintenant, et il s'agit d'une technologie robuste de mise en cluster de systèmes de fichiers. FreeBSD a récemment (à partir de la version 9.0) ajouté HAST pour remplir le même objectif. Ainsi, en théorie, FreeBSD dispose des mêmes options de mise en cluster que Linux, mais celles-ci sont bien plus récentes et bien moins connues. Solaris est dépourvu de mise en cluster de systèmes de fichiers dans le système d'exploitation de base et nécessite à l'heure actuelle des compléments commerciaux pour gérer cela.
Solaris et FreeBSD partagent le puissant système de fichiers ZFS, éprouvé au combat. ZFS est extrêmement puissant et flexible, et constitue depuis longtemps l'argument de vente clé de ces plateformes. La prise en charge des systèmes de fichiers par Linux est plus alambiquée. La quasi-totalité des distributions Linux (celles qui nous intéressent principalement ici étant RHEL/CentOS, Oracle Unbreakable Linux, Suse/OpenSuse et Ubuntu) prend en charge EXT4, qui est puissant et rapide mais dépourvu de certaines des fonctionnalités vraiment intéressantes de ZFS. Cependant, Linux adopte rapidement BtrFS, qui est très compétitif face à ZFS mais qui est naissant et actuellement disponible uniquement dans les distributions Suse et Oracle Linux. Nous nous attendons à le voir bientôt arriver chez les autres pour un usage en production, mais à l'heure actuelle, il reste expérimental.
En dehors de la mise en cluster, le choix du système d'exploitation parmi ces trois se résumera probablement avant tout à l'expérience et à l'aisance. Solaris est généralement réputé offrir le meilleur débit et FreeBSD le moins bon. Mais les trois sont assez proches. Une fois que BtrFS sera largement disponible et stable sous Linux, Linux deviendra probablement le choix de fait, comme cela a été le cas par le passé.
Sans influence extérieure, ma recommandation de plateforme de stockage va à FreeBSD puis à Linux, Solaris étant éliminé au motif que rares sont ceux qui recherchent un support commercial, de sorte qu'il est automatiquement écarté. Ceci repose presque entièrement sur la disponibilité de systèmes de fichiers Copy-on-Write et en supposant l'absence de mise en cluster, ce qui n'est pas courant. Si la mise en cluster est nécessaire, alors c'est Linux en premier, puis FreeBSD, et Solaris est écarté, là encore.
Linux et FreeBSD se rapprochent rapidement l'un de l'autre en termes de fonctionnalités. À mesure que BtrFS mûrit sous Linux et que HAST mûrit sous FreeBSD, ils semblent se rejoindre à mi-chemin, le choix ne se résumant guère plus qu'à pile ou face.
Il n'existe pas de réponse unique et simple. Choisir un système d'exploitation de stockage est avant tout une affaire d'équilibre entre une myriade de facteurs : performances, ressources, fonctionnalités, support, stabilité, etc. Quelques facteurs peuvent servir à écarter de nombreux prétendants, et connaître ces limites strictes est essentiel. Savoir exactement comment vous comptez utiliser le système et quels facteurs sont importants pour vous est essentiel pour faire le tri parmi les options disponibles.
Même une fois que vous avez choisi une plateforme, de nombreuses décisions restent à prendre. Certaines plateformes incluent plusieurs systèmes de fichiers. Il y a le SAN et le NAS. Il existe plusieurs protocoles SAN et NAS. Il y a l'agrégation de liens réseau (ou « teaming », dans le monde Windows). Il y a le multipathing. Il y a les snapshots, les volumes, le RAID. La liste est encore longue.
