Microsoft Storage Space / Storage Space Direct (S2D)

Dès 2016, avec la nouvelle version de Windows Server, Microsoft a innové en déployant une nouvelle technologie de stockage distribuée, Storage Spaces Direct. Cette nouveauté a permis la création de pools de stockage partagés sur plusieurs serveurs, dans cette tendance de l’hyperconvergence qui mutualise les ressources matérielles au service d’un système global. 

Le S2D permet d’améliorer considérablement certaines fonctionnalités comme la mise en cache, les niveaux de stockage, l’effacement,… en lien avec les évolutions matérielles même si le paramétrage de ce dernier est défini par logiciel (Software Defined Storage).  

La performance est ainsi démultipliée lorsque la mise en réseau RDMA (Remote Direct Memory Access) est active et le stockage réalisé sur des SSD ou NVME. L’environnement virtualisé s’en retrouve directement impacté.

Comment fonctionne le S2D ?

S2D crée des pools de stockage à partir de serveurs dans un cluster Windows Server. Il fonctionne de 2 à un maximum de 16 serveurs inclus dans un nœud S2D. La capacité maximale par pool de stockage est limitée à 1 peta octet (1024 To); tandis que chaque nœud est bridé à 100 To.  Les composants supportés sont les disques NVMe, les SSD SATA ou SAS, et les disques durs traditionnels. 

Lorsque vous activez S2D sur un cluster Windows Server, S2D analyse et découvre automatiquement le stockage éligible et vous permet de l’ajouter à un pool de stockage pour le cluster.

S2D crée également un cache de stockage intégré côté serveur pour maximiser les performances. Les disques les plus rapides sont utilisés pour la mise en cache, et les disques restants pour la capacité. 

Il est possible ensuite de créer des volumes à partir d’un pool de stockage contenant des machines virtuels (espace de stockage),puis de les gérer, de les partitionner et de les formater, de les ajouter au cluster ou de les convertir en volumes partagés de cluster (CSV).

S2D a été développé pour être utilisé avec des systèmes NTFS ou ReFS (Windows server 2012 R2 et plus récents).

Différents niveaux de tolérance aux pannes sont paramétrables pour un volume, afin de spécifier comment les disques virtuels sont répartis sur les disques physiques du pool, en utilisant SMB 3.0 : volume sans résilience, ou avec une résilience miroir ou paritaire. Ces formats s’approchent de systèmes type RAID1 ou RAID 5 / 6. 

storage-space-direct-recovery

Fiabilité d'un serveur avec Storage Spaces Direct (S2D) ?

La perte de données sur serveur est toujours critique. Storage Spaces Direct offre avec la fonctionnalité « cluster de basculement » de Windows Server 2016 un moyen de protéger les données stockées contre les pannes matérielles. Si un disque dur ou un nœud entier subit une avarie, aucune donnée n’est potentiellement perdue et le système continue à tourner normalement. La plupart du temps, les utilisateurs ne s’aperçoivent de rien.

Dans un cluster ne contenant que deux nœuds, il se produit une mise en miroir double qui synchronise les données des deux nœuds, de sorte qu’un nœud ou un disque dur peut défaillir complètement sans endommager les données.

À partir de trois nœuds, il est conseillé de réaliser une mise en miroir triple. Dans ce cas de figure, l’un des trois nœuds peut tomber en panne et plusieurs disques durs peuvent bloquer les accès. Cependant, à aucun instant il ne doit y avoir plus de la moitié des lecteurs de données touchés, sous peine de compromettre l’intégrité des données. Cela n’est pas valable pour une panne de disque dur ou de système d’exploitation, qui s’assimile à une panne de serveur. Récemment, nous en avons d’ailleurs eu la preuve avec un pool serveur de 147 NVME en panne à cause de la défaillance de 6 SSD, malgré une mise en miroir double. 

Récupération de données sur Microsoft Storage Space

Il s’agit d’une opération complexe par son fonctionnement. En effet, le Storage Space vient ajouter une couche supplémentaire dans l’intervention technique.


Si on prends l’exemple de la récupération sur serveur, nos experts travaillent en tout premier lieu sur la reconstruction du RAID, puis du système, éventuellement des machines virtuelles avant de pouvoir accéder aux données. Le storage space rajoute une étape supplémentaire entre la partie hardware et le système en lui-même. Cette strate supplémentaire complique grandement la récupération de données car la liaison entre les données et leur emplacement physique est très mince et fragile. Elle peut facilement avoir été endommagée par une reconstruction ou lors de manipulations.

Mettre en place un S2D sur Windows Server, compliqué ?

La mise en place de Storage Spaces Direct n’est pas très complexe mais elle requiert un minimum de prérequis technologiques pour être performante. 

Pour commencer, chaque serveur composant le S2D doit être équipé de cartes 10Gigabit Ethernet pouvant traiter les protocoles RDMA : iWARP (Internet Wide Area RDMA Protocol) & RoCE (RDMA Over Converged Ethernet)

Ensuite, il est recommandé d’utiliser des SSD SATA ou NVMe, au minimum pour le cache. L’idéal étant toutefois d’être en configuration serveur composé à 100% de supports flash. 

Pour les disques cache, nous vous invitons à favoriser des versions capables de supporter plusieurs réécritures complètes par jour. Les mémoires SLC sont ainsi les plus indiquées pour ce type d’usage avec une tolérance de plusieurs milliers d’écritures. Les recommandations Microsoft sont également d’avoir au minimum 4Gb de mémoire cache par tera de stockage pour la gestion des métadonnées, et de 10% de la capacité totale pour chaque nœud.

Règle d’or qui se justifie encore plus lors de la mise en production de systèmes importants, et 100% hébergés sur du support flash : ne composez votre infrastructure de SSD ayant la même durée de vie, sous peine de les voir “tomber” extrêmement rapidement en panne ensemble, avant que vous n’ayez pu intervenir. Même si cela permet d’avoir un stockage homogène, le risque de défaillance rapide est accru.

En résumé

Le système S2D – Microsoft Storage Space apporte de nombreux avantages mais n’est pas infaillible comme notre expérience le prouve. Il permet certes d’avoir une excellente évolutivité, en facilitant l’ajout de serveurs et de composants ; de sécuriser les données avec un taux de réplication variable (miroir, triple, etc.) ou encore de s’intégrer facilement avec les environnements Microsoft comme ReFS, les serveurs SQL ou les virtualisations Hyper-V.

Mais, il reste fragile car il repose souvent sur la technologie flash qui ne prévient pas vraiment de défaillances proches. La surcouche des clusters partagés apporte également une complexité plus importante en cas de problèmes. Elle alourdit la recherche de paramètres, et opacifie les liaisons software/hardware, qui rende la récupération des données plus fastidieuse.