Open-Storage avec NexentaStor
Toujours dans mon projet de formation sur OpenStack, j’ai décidé de me concentrer sur la partie stockage d’une infrastructure.
Je recherchais une solution qui répondait à ces critères :
- Environnement Open-Source
- Respect des standards
- Compatibilité avec les IaaS du marché (on verra plus tard que j’ai testé VMware & OpenStack)
- Bien documenté, et si possible un forum bien actif
J’ai donc choisis de tester NexentaStore Enterprise Edition dans sa version d’essai.
Ce que j’ai eu en plus avec Nexenta :
- Une interface d’administration & de configuration user-friendly (Web-GUI)
- Une liste très impressionnante de plugins (gratuits & payants) qui apportent des fonctionnalités non-négligeables
- La chance de pouvoir tester NexentaStor Enterprise Edition gratuitement pendant 45 jours.
- L’immense chance de pouvoir tester le plugin “HA Cluster” (que nous verrons plus tard) pendant 45 jours également (merci à l’équipe de Nexenta de m’avoir aidé).
Qu’est-ce que l’Open-Storage ?
Pour résumer l’Open-Storage avec des mots simples :
Fournir du stockage de manière standard, provenant de différentes sources, propriétaires ou libres. C’est donc s’affranchir du matériel propriétaire et hétérogène, pour rationaliser ses ressources en stockage.
L’Open-Storage est donc une solution économique de se créer une baie de disque hautement disponible et tolérante aux pannes, à partir de différentes sources de stockage.
En résumé, voici 3 avantages liés à l’Open-Storage :
- Votre stockage devient ouvert et accessible, grâce aux standards de l’industrie du stockage.
- Vous dessinez vous-même votre architecture de stockage. Il n’y a donc aucune limite à votre infrastructure !
- Votre Hardware devient flexible, dans la mesure où tout changement devient transparent pour l’utilisateur final.
Cas concret :
Je dispose actuellement d’une baie de stockage EMC, avec des disques plutôt performants en lecture / écriture. A coté de ça, j’ai récupéré une baie de disques SSD (très rapides donc), et enfin une baie assez ancienne comprenant des vieux disques toujours opérationnels.
Dans mon réseau, je souhaite fournir du stockage :
- assez performant pour mes serveurs ESXi pour le stockage des machines virtuelles.
- plutôt rapide pour mon infrastructure VDI, fournie par VMware View
- lent, mais facilement extensible pour du Cloud storage (exemple : Dropbox, Ubuntu One, SkyDrive, etc).
Ce que fait NexentaStore :
Pour commencer les présentations, il est bon de rappeler les bases.
NexentaStor est une appliance, basée sur OpenSolaris. Étant payante, j’ai donc usé de la licence Trial qui m’a permis de tester le produit dans sa totalité pendant 45 jours.
Il existe une version gratuite, NexentaStor Community Edition qui permet de fournir jusqu’à 18To de stockage (Raw). Attention, je n’évoquerai pas ce produit dans cet article car il ne supporte pas l’ajout des plugins type “HA Cluster” & autre.
Pour voir la liste complète des fonctionnalités, vous pouvez directement le lire sur le site officiel. Cependant, voici les points intéressants de ce produit :
- Système de fichiers ZFS 128 bits
- Aucune limite de stockage (ni eu capacité de stockage, ni en taille de fichier)
- Compatible SAN (iSCSI & FC) & NAS (NFS, CIFS, WebDAV et FTP)
- Optimisation du stockage (compression, dé-duplication)
- Création de Pools de stockage (pour améliorer les performances)
- Snapshots à chaud
- Réplication synchrone et asynchrone (pour faciliter le Disaster Recovery)
- Intégrité des données
- De nombreux plugins très puissants (je reviendrai plus tard vers le plugin HA Cluster)
- Et enfin, ce que j’ai vraiment apprécié : intégration avec VMware, Xen, OpenStack et Hyper-V.
Avec NexentaStor, je vais être capable de rationaliser le stockage que j’ai à ma disposition, de le rendre hautement disponible et tolérant aux pannes, et enfin de le distribuer vers des hôtes à travers des protocoles standards et connus de tous.
Mon infrastructure
Des fois, un bon vieux dessin vaut mieux qu’un gros pavé. Donc j’ai pris Visio pour vous montrer mon architecture :
- Je dispose d’une baie EMC avec des disques dur SAS en RAID 5, ainsi qu’une autre baie avec des disques SSD.
- Mes 2 appliances sont virtualisées dans mon infrastructure VMware, et sont en cluster avec le plugin HA.
- Je fournis du stockage pour les clients légers (VDI), mes VMs & volumes (pour OpenStack), et pour du Cloud Storage.
Ce que j’ai testé :
Dans un premier temps, j’ai testé :
- les fonctionnalités de base : Mapping de volumes over iSCSI, partage de fichier CIFS (dans un domaine 2008 R2 Natif), et NFS.
- Ensuite, j’ai fait la demande au service commercial de Nexenta pour tester gratuitement le plugin HA Cluster (qui coûte 4900 $). Il m’a permis de rendre hautement disponible le stockage que je met à disposition sur on réseau.
Je vais m’attarder sur ce plugin car je l’ai trouvé particulièrement puissant :
- L’installation se fait assez aisément, mais il faut au préalable avoir lu la documentation officielle (comme d’hab, RTFM !!!), sinon vous aurez des erreurs.
- J’ai été agréablement surpris. Tout a fonctionné du 1er coup : l’installation du plugin, la configuration de la mise en cluster des 2 appliances, la création des volumes à partager, et la configuration dans VMware ESX (la configuration du Multipath se fait toute seule).
- J’ai testé le basculement vers le serveur secondaire en mode Failover automatique et l’interruption de service était de 8 secondes (le temps pour l’IP Failover de switcher vers l’autre serveur). J’ai vraiment aimé le principe de pouvoir utiliser les cartes réseaux en Failover et continuer à fournir le stockage depuis le serveur principal. Si c’est le serveur en entier qui n’est pas accessible, l’autre prendra le relais et le service ne sera pas stoppé.
Voici une capture d’écran du dashboard du plugin HA Cluster (Cliquez-sur l’image pour agrandir) :
Par rapport à ce plugin, je dirais qu’il va à l’essentiel : il fonctionne et permet réellement de faire de la HA au niveau storage.
- Autre plugin très intéressant : VMDC (Virtual Machines Datastore Center). Il permet de gérer les datastores d’un hyperviseur directement depuis l’IHM de NexentaStor. Il est compatible avec VMware, Xen et Hyper-V. Suivant l’API de l’hyperviseur, certaines fonctionnalités sont disponibles en plus, comme l’arrêt ou le redémarrage des VMs.
- Je garde le meilleur pour la fin… le plugin OpenStack, qui permet d’intégrer du stockage fournis par NexentaStor dans une infrastructure OpenStack, et plus particulièrement pour le service nova-volumes (qui fournit des block devices aux VMs). De base, le driver est capable de créer des volumes, de les supprimer, et de réaliser des snapshots, et tout ça grâce aux REST API. Je rajouterai encore quelque chose de très pertinent : la distribution StackOps intègre nativement le driver NexentaVolumeDriver, et permet dès le SmartInstaller d’indiquer où se trouve le serveur NexentaStor.
Ce que j’en pense :
Vous l’aurez compris… que du bien !
Non, plus sérieusement. NexentaStor est un produit de qualité, et je pense qu’en s’ouvrant aux différentes technologies, il s’offre un bel avenir devant lui, et continuera de séduire tous ceux qui ne peuvent pas s’offrir des baies de stockages propriétaires. Ce que j’ai vraiment aimé, c’est la compatibilité avec les différents protocoles de transport de fichiers (NFS, CIFS, FTP, WebDAV) et également les technologies SAN (iSCSI & FC). De plus, ses plugins font de NexentaStor une solution flexible, et ouverte à un environnement hétérogène. Peu importe votre matériel et vos outils déjà en place : il sait s’adapter, et offrir ce qu’il sait faire de mieux : du stockage hautement disponible.
Les alternatives :
Il existe plusieurs alternatives, mais j’en ai testé une Open-Source, et une propriétaire.
Il s’agit de FreeNAS, et de Datacore SAN-Symphony-V.
- Concernant FreeNAS, ses fonctionnalités ne sont pas aussi poussées que les produits de Nexenta.
- Pour SAN-Symphony-V de Datacore, j’ai eu la chance d’avoir un cours sur le produit, ainsi qu’un TP à l’université. Je dois dire que le software est impressionnant, et qu’il fournit du stockage de manière performante et hautement disponible grâce à la mise en cluster. Il ne manquerait plus qu’une interopérabilité avec d’autres acteurs du Cloud comme le fait Nexenta avec ses plugins vus précédemment, ainsi qu’une REST-API (le seul moyen d’administrer le stockage sous SSV étant le Powershell ou la GUI en dotnet depuis Windows). J’ai eu l’occasion de créer du stockage à partir de SAN-Symphony pour OpenStack nova-volumes, mais je n’ai pas fait de benchmark pour le comparer avec le produit Nexenta.
Si des gurus du Cloud lisent cet article, n’hésitez pas à laisser votre commentaire !
Je vous laisse, je retourne dans mes nuages