Par Pascal Le cunff, Directeur Europe du Sud chez DataCore Software
La déduplication des données pour le stockage en ligne est devenue « tendance ». Cette mode m’a donné envie de l’analyser d’un angle légèrement différent. Ainsi, les promesses faites par certains fournisseurs pour économiser 50 % de la capacité voire plus m’ont en particulier interpellé, notamment sur certains aspects de l’architecture de stockage moderne.
La technologie de Thin Provisionning de DataCore
Les innovations DataCore de ces 5 à 10 dernières années montrent que les limites de capacité sont rarement problématiques. En effet, notre technologie de Thin Provisionning, permet à l’utilisateur de présenter bien plus de capacité virtuelle qu’il n’y en a réellement sur des disques physiques. La possibilité de sur-allouer le stockage réduit les frais de stockage moyens d’environ 10 à 15 % (qui, dans les SAN traditionnels à provisionnement dense, consomment facilement jusqu’à 60 % de la capacité totale). Dès lors, le Thin Provisionning garantit en moyenne 45 à 50 % d’économies de capacité nettes.
Ce qui est intéressant, c’est que la déduplication promet d’assurer des résultats similaires, mais la différence majeure entre Thin Provisionning et déduplication, c’est le moyen d’atteindre cette économie de capacité.
Le Thin Provisionning réduit la consommation des LUNs (Logic Unit Number) et élimine « l’air chaud » dans les LUNs de stockage individuels. La technologie ne stocke que les données des utilisateurs sur les systèmes de stockage, ce qui fait que les espaces vides n’occupent plus d’espace sur le disque. Tous les blocs de données des utilisateurs disposent de leur propre emplacement individuel sur les systèmes de stockage de base et gardent cet emplacement occupé tant que les données existent. Cela permet d’obtenir des performances prévisibles sur de longues périodes de temps. Si les données sont supprimées, le Thin Provisionning est capable de détecter des zones de blocs libres et de les détacher des LUNs virtuels, sans aucune interruption. Ainsi, un LUN consommant de l’espace peut facilement être réduit plus tard en arrière-plan, tout en ayant accès aux données.
Une gestion intelligente des données redondantes
La déduplication, d’autre part, détecte les données redondantes des utilisateurs et ne stocke ces groupes de données qu’une seule fois, tout en laissant une indication au précédent emplacement du bloc indiquant où se trouve le bloc de données stocké. Cette technologie est parfois appelée ‘instance unique’, car une seule instance des données est inscrite sur le disque. Les applications ayant accès aux données sont redirigées par un mécanisme de lien intelligent vers les blocs de stockage individuels qui maintiennent les groupes de données dédupliqués. L’application voit les données par l’intermédiaire d’un filtre, qui fait en sorte que le groupe total des données apparaît comme des blocs individuels, alors que l’accès est redirigé vers un groupe consolidé de blocs.
Les modifications (mises à jour des écritures) d’un bloc de données dédupliqué nécessitent une copie du bloc de données dans un emplacement distinct, la modification des tableaux des indications et enfin le remplacement des données à l’emplacement nouvellement créé. Dès lors, le remplacement des blocs entraîne une duplication des données (gonflées) qui peuvent par la suite être dédupliquées à nouveau (réduction). Cette logique implique une certaine complexité intrinsèque et nécessite un suivi et une réorganisation constants du contenu des données sur le disque. Ce processus engloutit un nombre significatif de cycles CPU sur le contrôleur de stockage lorsqu’il est fait en temps réel. De plus, le stockage en ligne dédupliqué nécessite un nombre significatif d’IOPS (Input/Output Operations Per Second) pour réaliser la réorganisation permanente à l’échelle des blocs en raison des opérations quotidiennes, mais ces IOPS volent les ressources des applications ayant accès au stockage.
Un impact sur les performancesdes groupes de données dédupliquées ?
Le concept de déduplication semble être le modèle parfait pour réduire la capacité de stockage au strict nécessaire. Malheureusement, les lois de la physique et le développement
actuel de la technologie des disques contredisent cette affirmation. Les solutions pour la sauvegarde et l’archivage n’ont pas nécessairement beaucoup de sens pour les groupes de données en ligne à haute performance. La déduplication en ligne entraîne des soucis majeurs qui n’apparaissent pas dans les fiches de spécifications marketing et les présentations commerciales. Il ne s’agit pas ici de questions d’intégrité des données (conflits de hash) ou d’efficacité limitée (systèmes de fichiers compressés). Mais uniquement de l’impact sur les performances des groupes de données dédupliquées.
actuel de la technologie des disques contredisent cette affirmation. Les solutions pour la sauvegarde et l’archivage n’ont pas nécessairement beaucoup de sens pour les groupes de données en ligne à haute performance. La déduplication en ligne entraîne des soucis majeurs qui n’apparaissent pas dans les fiches de spécifications marketing et les présentations commerciales. Il ne s’agit pas ici de questions d’intégrité des données (conflits de hash) ou d’efficacité limitée (systèmes de fichiers compressés). Mais uniquement de l’impact sur les performances des groupes de données dédupliquées.
Pour étayer mes propos, voici quelques chiffres de base pour que cela soit plus clair. L’évolution du stockage magnétique (disque rotatif) ces dernières années a permis d’obtenir toujours plus de capacité par disque rotatif, mais des vitesses de rotation, des temps d’accès et des taux de transfert stables.
Type de disque
|
Vitesse de rotation
|
Capacité de traitement
|
Performance IO
|
Latence
|
ATA 3.5“ 7k
|
7,200 rpm
|
50 MB/s
|
80 IO/s
|
12ms
|
FC 3.5“ 10k
|
10,000 rpm
|
60 MB/s
|
100 IO/s
|
6 ms
|
FC 3.5“ 15k
|
15,000 rpm
|
100 MB/s
|
160 IO/s
|
4 ms
|
SAS 2.5“ 10k
|
10,000 rpm
|
100 MB/s
|
160 IO/s
|
4ms
|
SAS 2.5“ 15k
|
15,000 rpm
|
140 MB/s
|
220 IO/s
|
3ms
|
Les valeurs du tableau ci-dessus sont des valeurs moyennes. En fonction du fournisseur et de la capacité du cache des disques, les valeurs individuelles peuvent varier légèrement. En général, les nombres sont grosso modo définis par les limites physiques de la technologie du disque dur magnétique. Ces 20 dernières années, la capacité par disque a explosé : fin des années 90, les disques avaient des capacités allant de 4 Go à 36 Go. Aujourd’hui, nous voyons des capacités allant jusqu’à 1,2 To pour les lecteurs SAS et 10 To pour les lecteurs S-ATA/NL-SAS. À la lumière de cette croissance de la capacité, un nouveau visage apparaît dans le tableau ci-dessous.
Type de disque
|
Capacité 2000
|
IO/Go 2000
|
Capacité 2010
|
IO/Go 2010
|
Capacité 2017
|
IO/Go 2017
|
ATA 3,5’’7k
|
120 GByte
|
0,66
|
2 TByte
|
0,04
|
10 TByte
|
0,0008
|
FC 3,5’’ 10k
|
36 GByte
|
2,78
|
600GByte
|
0,17
|
./.
|
./.
|
FC 3,5’’ 15k
|
18 GByte
|
8,89
|
300GByte
|
0,53
|
./.
|
./.
|
SAS 2,5’’ 10k
|
./.
|
./.
|
300GByte
|
0,53
|
1,2 TByte
|
0,13
|
SAS 2,5’’ 15k
|
./.
|
./.
|
146GByte
|
1,51
|
600GByte
|
0,37
|
Est-ce que cela est inquiétant ? Surtout quand on pense au fait que la capacité des disques va augmenter. Une application ayant besoin d’une capacité de 200 Go, qui en 2000 nécessitait en moyenne 12 disques en RAID-5 dans une baie de stockage, en 2017, elle n’a besoin que de 3 disques d’une baie. Si l’on fait le calcul, on remarque que cette même application ne reçoit environ que 8 % des performances d’IO par rapport à ce qui était disponible en 2000.
Ces chiffres sont d’autant plus impressionnants quand on rappelle que la déduplication tourne sur cette architecture de stockage déjà plus de 240 % plus lente. L’accès simultané aux schémas de données dédupliquées réduit les ressources d’IO de 50 % supplémentaires, dû au fait que la déduplication permet de réaliser 50 % d’économies. En effet, chaque disque doit répondre à environ le double de demandes d’IO par Go lorsqu’un bloc de données se révèle redondant pour gérer l’architecture IO qui s’y rapporte. Par ailleurs, le suivi des groupes de données redondants et les tâches de réorganisation nécessaires à l’intérieur de l’unité du disque nécessitent leurs propres ressources supplémentaires d’IO.
Pour résumer, les performances d’IO restantes disponibles pour les applications à l’heure actuelle seraient de moins de 20 % par rapport à l’année 2000 de référence. Cette puissance informatique qui ne cesse d’augmenter aggrave la situation et l’écart entre le stockage et le traitement ne fait que s’élargir.
Le SSD : une solution certes, mais coûteuse et fragile
En surface, une solution à ce dilemme serait apportée par la technologie Solid State Disk (SSD). Les taux d’IO et de transfert réalisables semblent incroyables. Les SSD n’ont pas de parties mobiles, donc ils peuvent vraiment y arriver. Comparé aux disques rotatifs classiques, c’est un véritable rêve qui devient réalité. Les latences de <0,2 ms et des performances allant au-delà de 100 000 IOPS sont possibles. Tout fonctionne ! Mais il y a un mais, et même deux.
Tout d’abord, la technologie SSD est très coûteuse par Go. Dès lors, le SSD ne se distille qu’à très petites doses dans les implémentations de stockage actuelles. Deuxièmement, et plus troublant encore, les SSD basés sur les mémoires flash NAND s’épuisent avec le temps. L’écriture sur les cellules flash NAND les use. Chaque cellule individuelle peut être écrasée environ 10 000 fois (technologie MLC à plus faible coût) ou 100 000 fois (technologie SLC plus chère). En fonction du profil d’écriture de l’application, l’intelligence de l’algorithme qui contrôle l’usure du SSD, et le type de cellule, cela prend plus ou moins de temps jusqu’à ce que le SSD plante et entraîne des erreurs d’écriture. Pour la déduplication et l’usage du cache d’écriture associé, le SSD n’est pas une bonne solution.
Dès lors, la déduplication n’est certainement pas la clé pour une gestion de stockage efficace et orientée performances. Une solution possible pour résoudre les principaux problèmes de stockage actuels est un Thin Provisionning en combinaison avec une méthode de placement intelligent des données. Cette technologie de placement intelligent des données s’appelle la hiérarchisation automatique des données, ou tout simplement auto-tiering.
Le Thin Provisionning, une solution pertinente
Les pools de stockage à Thin Provisionning de DataCore sont composés de systèmes de stockage de vitesses et de tailles différentes, éventuellement de différents fabricants de baies et de stockage. L’administrateur de stockage établit quelle technologie compose chaque niveau. En fonction de la fréquence des accès et d’une politique riche, les blocs de données associés à un disque virtuel individuel sont essentiellement répartis sur certains ou tous les niveaux d’un pool de stockage à plusieurs niveaux. Des changements à la demande dans le profil d’accès ou des instructions administratives peuvent influencer la manière dont les données sont stockées au cours du temps et de faire passer les blocs de niveau en niveau. Les données « chaudes » remontent à des niveaux plus rapides et plus chers, tandis que les points froids redescendent à des niveaux plus lents et moins chers. Maintenant, il est possible d’utiliser la force des SSD au besoin, mais en compensant ses faiblesses (capacité et prix) en ne l’utilisant que pour les données qui le méritent vraiment. Cette technologie fonctionne à un niveau sous-LUN et permet d’établir une organisation hybride du stockage sur chaque LUN, par exemple un volume de base de données. Un seul SSD est capable de remplacer jusqu’à 120 disques rotatifs. Une allocation dynamique de ces disques offre un avantage conséquent dans l’efficacité totale du stockage, le coût par Go et l’empreinte du centre de données (espace des racks et dioxyde de carbone) sans compromettre les performances.