Un système de stockage est également appelé baie de stockage, système de fichiers ou système de fichiers . Les systèmes de stockage utilisent généralement du matériel et des logiciels spécialisés, ainsi que des disques durs, afin de fournir un stockage très rapide et fiable pour le calcul et le traitement des données. Complexes, les systèmes de stockage peuvent être considérés comme des ordinateurs dédiés, conçus pour fournir une capacité de stockage et des fonctionnalités avancées de protection des données. Les disques durs ne constituent qu'un élément d'un système de stockage, qui comprend également du matériel et des logiciels embarqués spécialisés .
Les systèmes de stockage peuvent offrir un accès par blocs ou un accès par fichiers. L'accès par blocs est généralement assuré par Fibre Channel , iSCSI , SAS , FICON ou d'autres protocoles. L'accès par fichiers est souvent assuré par les protocoles NFS ou SMB .
Dans le contexte d'un système de stockage, deux principaux types de virtualisation peuvent se produire :
- La virtualisation par blocs, utilisée dans ce contexte, fait référence à l'abstraction (séparation) du stockage logique (partition) du stockage physique , permettant ainsi d'y accéder indépendamment du stockage physique ou de la structure hétérogène. Cette séparation offre aux administrateurs du système de stockage une plus grande flexibilité dans la gestion du stockage pour les utilisateurs finaux.
- La virtualisation des fichiers répond aux problématiques des NAS en éliminant les dépendances entre les données accessibles au niveau du fichier et leur emplacement physique. Elle offre ainsi des possibilités d'optimisation de l'utilisation du stockage et de la consolidation des serveurs, ainsi que de migration de fichiers sans interruption de service.
The actual form of the mapping will depend on the chosen implementation. Some implementations may limit the granularity of the mapping which may limit the capabilities of the device. Typical granularities range from a single physical disk down to some small subset (multiples of megabytes or gigabytes) of the physical disk.
In a block-based storage environment, a single block of information is addressed using a LUN identifier and an offset within that LUNlogical block addressing (LBA).
The virtualization software or device is responsible for maintaining a consistent view of all the mapping information for the virtualized storage. This mapping information is often called metadata and is stored as a mapping table.
The address space may be limited by the capacity needed to maintain the mapping table. The level of granularity, and the total addressable space both directly impact the size of the meta-data, and hence the mapping table. For this reason, it is common to have trade-offs, between the amount of addressable capacity and the granularity or access granularity.
One common method to address these limits is to use multiple levels of virtualization. In several storage systems deployed today, it is common to utilize three layers of virtualization.
Some implementations do not use a mapping table, and instead calculate locations using an algorithm. These implementations utilize dynamic methods to calculate the location on access, rather than storing the information in a mapping table.
I/O redirection
The virtualization software or device uses the metadata to re-direct I/O requests. It will receive an incoming I/O request containing information about the location of the data in terms of the logical disk (vdisk) and translates this into a new I/O request to the physical disk location.
For example, the virtualization device may:
- Receive a read request for vdisk LUN ID=1, LBA=32
- Perform a meta-data look up for LUN ID=1, LBA=32, and finds this maps to physical LUN ID=7, LBA0
- Envoie une requête de lecture à l'ID LUN physique 7, LBA0
- Récupère les données renvoyées par le LUN physique
- Renvoie les données à l'émetteur comme si elles provenaient du disque virtuel LUN ID=1, LBA32
Capacités
La plupart des implémentations permettent une gestion hétérogène des périphériques de stockage de différents fournisseurs, dans les limites de leur matrice de compatibilité. Cela signifie que les fonctionnalités suivantes ne sont pas limitées au périphérique d'un seul fournisseur (contrairement aux fonctionnalités similaires offertes par certains contrôleurs de stockage) et sont en réalité disponibles sur des périphériques de différents fournisseurs.
Réplication
- Mise en miroir synchrone : la fin des opérations d’E/S n’est confirmée que lorsque le site distant l’a validée. Applicable aux courtes distances (< 200 km).provisionnement fin , il permet de créer des instantanés économes en espace.
Mise en commun
Les ressources de stockage physique sont regroupées en pools de stockage, à partir desquels le stockage logique est créé. Des systèmes de stockage supplémentaires, éventuellement hétérogènes, peuvent être ajoutés au besoin, et l'espace de stockage virtuel s'étend d'autant. Ce processus est totalement transparent pour les applications utilisant l'infrastructure de stockage.
Gestion des disques
Le logiciel ou le périphérique assurant la virtualisation du stockage devient un gestionnaire de disques commun dans l'environnement virtualisé. Les disques logiques (vdisks) sont créés par ce logiciel ou périphérique et sont associés (rendus visibles) à l'hôte ou au serveur requis, offrant ainsi un point d'accès unique pour la gestion de tous les volumes de l'environnement.
Il est facile de fournir des fonctionnalités avancées dans cet environnement :
- Provisionnement fin pour optimiser l'utilisation du stockage
- Ceci est relativement facile à mettre en œuvre car le stockage physique n'est alloué dans la table de mappage que lorsqu'il est utilisé.
- Dilatation et rétrécissement du disque
- Il est possible d'allouer davantage d'espace de stockage physique en ajoutant des données à la table de correspondance (à condition que le système utilisateur puisse gérer l'extension en ligne).
- De même, la taille des disques peut être réduite en supprimant une partie du stockage physique du mappage (les utilisations de cette méthode sont limitées car il n'y a aucune garantie quant au contenu des zones supprimées).
Avantages
Migration de données sans interruption
L'un des principaux avantages de l'abstraction de l'hôte ou du serveur du stockage proprement dit est la possibilité de migrer des données tout en maintenant un accès E/S simultané.
L'hôte ne connaît que le disque logique (le LUN mappé) ; par conséquent, toute modification du mappage des métadonnées est transparente pour lui. Cela signifie que les données peuvent être déplacées ou répliquées vers un autre emplacement physique sans impacter le fonctionnement des clients. Une fois les données copiées ou déplacées, il suffit de mettre à jour les métadonnées pour pointer vers le nouvel emplacement, libérant ainsi de l'espace de stockage physique sur l'ancien emplacement.
Le processus de déplacement de l'emplacement physique est appelé migration de données . La plupart des implémentations permettent d'effectuer cette opération sans interruption de service, c'est-à-dire simultanément aux opérations d'E/S effectuées par l'hôte sur le disque logique (ou LUN).
La finesse du mappage détermine la vitesse de mise à jour des métadonnées, la capacité supplémentaire requise lors de la migration et la rapidité avec laquelle l'emplacement précédent est déclaré libre. Plus la finesse est grande, plus la mise à jour est rapide, moins d'espace est nécessaire et plus l'ancien stockage est libéré rapidement.
De nombreuses tâches quotidiennes qu'un administrateur de stockage doit effectuer peuvent être réalisées simplement et simultanément grâce aux techniques de migration de données.
- Déplacer des données hors d'un périphérique de stockage surchargé.
- Déplacer les données vers un périphérique de stockage plus rapide en fonction des besoins
- Mise en œuvre d'une politique de gestion du cycle de vie de l'information
- Migration des données à partir d'anciens périphériques de stockage (mis au rebut ou en fin de location)
Amélioration de l'utilisation
L’utilisation peut être accrue grâce aux services de mise en commun, de migration et de provisionnement fin. Cela permet aux utilisateurs d’éviter le surdimensionnement et le surachat de solutions de stockage. En d’autres termes, ce type d’utilisation via un pool de stockage partagé peut être alloué facilement et rapidement, selon les besoins, afin d’éviter les contraintes de capacité de stockage qui nuisent souvent aux performances des applications.
Lorsque toute la capacité de stockage disponible est mutualisée, les administrateurs système n'ont plus besoin de rechercher des disques disposant d'espace libre à allouer à un hôte ou un serveur particulier. Un nouveau disque logique peut être simplement alloué à partir du pool disponible, ou un disque existant peut être étendu.
La mise en commun des ressources permet d'utiliser potentiellement toute la capacité de stockage disponible. Dans un environnement traditionnel, un disque entier est alloué à un hôte. Cette capacité peut être supérieure aux besoins réels, entraînant ainsi un gaspillage d'espace. Dans un environnement virtuel, le disque logique (LUN) se voit attribuer la capacité requise par l'hôte utilisateur.
Le stockage peut être alloué en fonction des besoins à un instant donné, évitant ainsi d'avoir à estimer les besoins futurs d'un hôte. Grâce au provisionnement fin , l'administrateur peut créer un disque logique provisionné de très grande capacité ; le système utilisateur bénéficie ainsi d'un disque de grande capacité dès le premier jour.
Moins de points de gestion
Grâce à la virtualisation du stockage, plusieurs périphériques de stockage indépendants, même dispersés sur un réseau, apparaissent comme un seul périphérique de stockage monolithique et peuvent être gérés de manière centralisée.
Cependant, la gestion traditionnelle des contrôleurs de stockage reste nécessaire. Il s'agit de la création et de la maintenance des grappes RAID , y compris la gestion des erreurs et des pannes .
Risques
Annulation d'une implémentation défaillante
Une fois la couche d'abstraction en place, seul le virtualiseur connaît l'emplacement physique des données sur le support. Pour sortir d'un environnement de stockage virtuel, il est donc nécessaire de reconstruire les disques logiques sous forme de disques contigus utilisables de manière traditionnelle.
La plupart des implémentations proposent une procédure de retour en arrière, et les services de migration de données permettent au moins de revenir en arrière, mais cela prend du temps.
Interopérabilité et assistance des fournisseurs
L'interopérabilité est un facteur clé de succès pour tout logiciel ou périphérique de virtualisation. Elle concerne les contrôleurs de stockage physique et les hôtes, leurs systèmes d'exploitation, les logiciels de gestion de chemins multiples et le matériel de connectivité.
Les exigences d'interopérabilité varient selon l'implémentation choisie. Par exemple, la virtualisation implémentée au sein d'un contrôleur de stockage n'ajoute aucune surcharge à l'interopérabilité basée sur l'hôte, mais nécessitera la prise en charge supplémentaire d'autres contrôleurs de stockage s'ils doivent être virtualisés par le même logiciel.
La virtualisation basée sur des commutateurs peut ne pas nécessiter d'interopérabilité spécifique de l'hôte — si elle utilise des techniques de décryptage de paquets pour rediriger les E/S.
Les équipements réseau ont les exigences d'interopérabilité les plus élevées car ils doivent interagir avec tous les périphériques, systèmes de stockage et hôtes.
Complexité
La complexité affecte plusieurs domaines :
- Gestion de l'environnement : Bien qu'une infrastructure de stockage virtuel bénéficie d'un point unique de gestion des disques logiques et des services de réplication, le stockage physique doit néanmoins être géré. La résolution des problèmes et l'isolement des pannes peuvent également s'avérer complexes en raison de la couche d'abstraction.
- Conception d'infrastructures : L'éthique de conception traditionnelle peut ne plus s'appliquer, la virtualisation apportant toute une gamme de nouvelles idées et de nouveaux concepts à prendre en compte (comme détaillé ici).
- Le logiciel ou le dispositif lui-même : certaines implémentations sont plus complexes à concevoir et à coder – les conceptions basées sur le réseau, en particulier les conceptions en bande (symétriques) – ces implémentations gèrent en fait les requêtes d’E/S et la latence devient donc un problème.système d'exploitation ; dans d'autres, elle est proposée comme produit distinct. Les volumes (LUN) présentés au système hôte sont gérés par un pilote de périphérique physique classique . Cependant, une couche logicielle (le gestionnaire de volumes) située au-dessus du pilote de périphérique de disque intercepte les requêtes d'E/S et assure la recherche des métadonnées et le mappage des E/S.
La plupart des systèmes d'exploitation modernes intègrent une forme de gestion de volumes logiques (sous Linux, appelée Logical Volume Manager ou LVM ; sous Solaris et FreeBSD , la couche zpool de ZFS ; sous Windows, appelée Logical Disk Manager ou LDM), qui effectue des tâches de virtualisation.
Remarque : Les gestionnaires de volumes basés sur l'hôte étaient utilisés bien avant que le terme de virtualisation du stockage ne soit inventé.
Avantages
- Conception et programmation simples
- Compatible avec tous les types de stockage
- Améliore l'utilisation du stockage sans restrictions liées au provisionnement fin
Cons
- Utilisation du stockage optimisée uniquement par hôte
- La réplication et la migration des données ne sont possibles qu'en local sur cet hôte.
- Chaque système d'exploitation possède ses propres logiciels.
- Il n'existe aucun moyen simple de maintenir les instances hôtes synchronisées avec les autres instances.
- La récupération de données traditionnelle après une panne de disque dur de serveur est impossible.
Exemples précis
- Technologies :
- Gestion logique des volumes
- Systèmes de fichiers , par exemple ( liens physiques , SMB / NFS )
- Montage automatique, par exemple ( les disques durs individuels , ne proposent aucune virtualisation. En revanche, même les baies de disques les plus simples offrent une abstraction logique vers physique, puisqu'elles utilisent des schémas RAID pour regrouper plusieurs disques au sein d'une même baie (et éventuellement la diviser ultérieurement en volumes plus petits).
Les baies de disques avancées proposent souvent des fonctionnalités de clonage, de snapshots et de réplication à distance. En général, ces périphériques ne permettent pas la migration ou la réplication de données entre des systèmes de stockage hétérogènes, car chaque fournisseur utilise généralement ses propres protocoles propriétaires.
Une nouvelle génération de contrôleurs de baies de disques permet la connexion en aval d'autres périphériques de stockage. Dans cet article, nous aborderons uniquement les contrôleurs de ce type, qui virtualisent effectivement les périphériques de stockage externes.
Concept
Un contrôleur de stockage principal fournit les services et permet la connexion directe d'autres contrôleurs de stockage. Selon l'implémentation, ces contrôleurs peuvent provenir du même fournisseur ou de fournisseurs différents.
Le contrôleur principal assurera la mise en commun et la gestion des métadonnées. Il pourra également fournir des services de réplication et de migration entre les contrôleurs auxquels il est rattaché.
Avantages
- Aucun matériel ou infrastructure supplémentaire requis
- Offre la plupart des avantages de la virtualisation du stockage
- N'ajoute pas de latence aux E/S individuelles
Cons
- Utilisation du stockage optimisée uniquement sur les contrôleurs connectés
- La réplication et la migration des données ne sont possibles qu'entre les contrôleurs connectés et les appareils du même fournisseur pour l'assistance à distance.
- La connexion du contrôleur en aval est limitée aux fournisseurs pris en charge par matrice.
- Latence d'E/S : les accès non couverts par le cache nécessitent que le contrôleur de stockage principal émette une requête d'E/S secondaire en aval.
- Avec l'augmentation des ressources de l'infrastructure de stockage, le contrôleur de stockage principal requiert la même bande passante que les contrôleurs de stockage secondaires pour maintenir le même débit.
Réseau
La virtualisation du stockage s'exécute sur un périphérique réseau (généralement un serveur standard ou un commutateur intelligent) et utilise les réseaux iSCSI ou Fibre Channel FC pour se connecter en tant que SAN . Ces types de périphériques constituent la forme de virtualisation la plus courante et la plus répandue.
Le dispositif de virtualisation se trouve dans le SAN et fournit la couche d'abstraction entre les hôtes effectuant les E/S et les contrôleurs de stockage fournissant la capacité de stockage.
Avantages
- Virtualisation du stockage hétérogène véritable
- La mise en cache des données (gain de performance) est possible en bande passante.
- Interface de gestion unique pour tout le stockage virtualisé
- Services de réplication sur des périphériques hétérogènes
Cons
- Matrices d'interopérabilité complexes – limitées par le support des fournisseursles appliances et les commutateurs . Ces deux modèles offrent les mêmes services : gestion des disques, consultation des métadonnées, migration et réplication des données. Ils nécessitent tous deux du matériel de traitement pour assurer ces services.
Les appliances sont des dispositifs matériels dédiés assurant la connectivité SAN sous différentes formes. Elles se situent entre les hôtes et le stockage et, dans le cas des appliances symétriques (in-band), offrent tous les avantages et services décrits dans cet article. Les requêtes d'E/S sont adressées à l'appliance elle-même, qui effectue le mappage des métadonnées avant de rediriger l'E/S en envoyant sa propre requête au stockage sous-jacent. L'appliance symétrique peut également assurer la mise en cache des données, et la plupart des implémentations proposent un regroupement d'appliances individuelles afin de garantir une vue atomique des métadonnées et des données mises en cache.
Les périphériques à commutation, comme leur nom l'indique, résident dans le matériel physique de commutation utilisé pour connecter les périphériques SAN. Ils se situent également entre les hôtes et le stockage, mais peuvent utiliser différentes techniques pour assurer le mappage des métadonnées, telles que l'analyse des paquets pour espionner les requêtes d'E/S entrantes et effectuer la redirection des E/S. Il est beaucoup plus difficile de garantir des mises à jour atomiques des métadonnées dans un environnement commuté, et les services nécessitant des mises à jour rapides des données et des métadonnées peuvent être limités dans les implémentations commutées.
Dans la bande vs. hors bande
Les périphériques de virtualisation en bande , également appelés périphériques symétriques , s'insèrent dans le chemin de données entre l'hôte et le stockage. Toutes les requêtes d'E/S et leurs données transitent par ce périphérique. L'hôte effectue des E/S vers le périphérique de virtualisation et n'interagit jamais avec le périphérique de stockage physique. Le périphérique de virtualisation, quant à lui, effectue des E/S vers le périphérique de stockage. La mise en cache des données, les statistiques d'utilisation des données, les services de réplication, la migration des données et le provisionnement fin sont facilement implémentables sur un périphérique en bande.
Les dispositifs de virtualisation hors bande , également appelés asymétriques , sont parfois désignés comme serveurs de métadonnées . Ces dispositifs se chargent uniquement du mappage des métadonnées. Cela nécessite un logiciel supplémentaire sur l'hôte, qui doit d'abord interroger le serveur pour localiser les données. Ainsi, une requête d'E/S provenant de l'hôte est interceptée avant qu'elle ne le quitte, et une recherche de métadonnées est effectuée auprès du serveur de métadonnées (éventuellement via une interface autre que le SAN). Ce serveur renvoie l'emplacement physique des données à l'hôte. L'information est ensuite récupérée via une requête d'E/S vers le stockage. La mise en cache est impossible, car les données ne transitent jamais par le dispositif.
Virtualisation basée sur les fichiers
La virtualisation par fichiers est un type de virtualisation du stockage qui utilise les fichiers comme unité de base. Elle se distingue de la virtualisation par blocs, qui utilise les blocs. Elle permet d'abstraire les détails physiques du stockage et de stocker des fichiers sur n'importe quel type de périphérique, sans nécessiter de pilotes spécifiques ni de configuration de bas niveau.
La virtualisation basée sur les fichiers permet de consolider le stockage, d'optimiser son utilisation, de le virtualiser et d'assurer la reprise après sinistre. Elle simplifie l'administration du stockage et réduit le nombre total de périphériques à gérer. Les administrateurs système et les développeurs gèrent le stockage virtuel hors ligne à l'aide d'outils intégrés ou tiers.
Allocation de stockage
Il existe deux schémas prédominants de virtualisation du stockage basé sur les fichiers :
- Préallocation de la totalité du stockage pour le disque virtuel lors de sa création, ou,
- Augmentez dynamiquement le stockage à la demande
Espace de stockage préalloué
Le disque virtuel est implémenté soit sous forme de fichiers plats répartis sur une collection de fichiers plats, généralement de 2 Go chacun (appelés collectivement fichiers plats fractionnés ), soit sous forme d'un seul fichier plat monolithique de grande taille . Ce schéma de stockage pré-alloué est également appelé schéma de provisionnement épais .
croissance dynamique du stockage
Le disque virtuel peut être implémenté à l'aide de fichiers fractionnés ou monolithiques, à la différence que le stockage est alloué à la demande. Plusieurs implémentations de Virtual Machine Monitor initialisent le stockage avec des zéros avant de le mettre à disposition de la machine virtuelle en cours d'exécution. Ce mécanisme de stockage à croissance dynamique est également appelé allocation fine .
Avantages
La virtualisation de fichiers permet également d'optimiser l'utilisation du stockage en autorisant le stockage de fichiers sur des périphériques dont la capacité n'est pas pleinement exploitée. Par exemple, si un serveur de fichiers dispose de plusieurs disques durs partiellement remplis, la virtualisation de fichiers peut être utilisée pour stocker des fichiers sur ces disques, augmentant ainsi l'utilisation des périphériques de stockage.
La virtualisation basée sur les fichiers peut être utilisée pour créer un serveur de fichiers virtuel (ou périphérique NAS virtuel), qui est un système de stockage apparaissant à l'utilisateur comme un serveur de fichiers unique, mais qui est en réalité implémenté comme un ensemble de fichiers stockés sur un certain nombre de serveurs de fichiers physiques.