L’infrastructure cloud perpétuelle : la virtualisation du stockage entre dans une nouvelle dimension

« Virtualisation » est sans conteste l’un des termes les plus utilisés aujourd’hui dans le langage informatique et le stockage n’échappe pas à la règle. Quelle est la prochaine étape en matière de virtualisation du stockage ?

La prochaine étape dans le domaine de la virtualisation doit être un changement radical de dimension, et cette nouvelle dimension, c’est tout simplement l’extension de la virtualisation à l’ensemble des systèmes et des contrôleurs de stockage. Nous devons passer de ce qui constituait essentiellement jusqu’à présent une virtualisation verticale (depuis le contrôleur de stockage jusqu’au stockage externe qu’il virtualisait) à une virtualisation horizontale entre de multiples systèmes. Ce concept est finalement très proche de ce qui se fait déjà en matière de virtualisation de serveurs. Des hyperviseurs comme VMware ou HyperV permettent de créer des machines virtuelles et de les faire passer d’un serveur physique à un autre afin d'assurer la disponibilité et la répartition des charges.

La virtualisation de stockage horizontale nous permet de fournir bien plus que la disponibilité et la répartition de charges

Elle permet la création d’un périphérique actif global (ou volume virtuel global) couvrant de multiples contrôleurs, de telle sorte qu’une application peut continuer à accéder au volume en cas de défaillance de l’un des contrôleurs. Cette approche nous garantit une véritable disponibilité active/active avec un objectif de point de reprise (RPO) de zéro, sans aucune perte de données, et un objectif de temps de reprise (RTO) proche de zéro. Un système entier peut ainsi être remplacé sans aucune interruption d’activité, ce qui garantit également des migrations non perturbantes vers les technologies de nouvelle génération. Ces différents éléments constituent la base d’une infrastructure cloud perpétuelle garante de hautes performances et d’une évolutivité au gré des besoins de l’entreprise.
Jusqu’à présent, la continuité des opérations dépendait d’une réplication synchrone et asynchrone : les données étaient dupliquées depuis un système principal vers un système secondaire situé à une certaine distance géographique, à des fins de reprise. La réplication synchrone exige la reconnaissance préalable de chaque écriture avant que la suivante ne puisse être transmise, ce qui limite la distance entre les différents sites à quelques centaines de mètres. La réplication asynchrone permet la réplication des données sur n’importe quelle distance via une méthode de contrôle permettant de conserver les données en séquences et de déterminer en cas de défaillance sur le site principal la nature des paquets de données perdus durant le temps de transmission entre les contrôleurs de stockage.
Donc, en quoi la disponibilité perpétuelle d’un périphérique actif global couvrant de multiples systèmes diffère-t-elle de la réplication synchrone et asynchrone ? La virtualisation d’un volume couvrant différents systèmes de stockage présente des similarités avec la réplication synchrone en termes de distance, puisqu’une écriture sur ce volume virtuel global est transmise sur les deux contrôleurs en mode synchrone.  La différence, c’est que dans la réplication synchrone, l’application parle uniquement au contrôleur de stockage du système principal, et le contrôleur principal effectue la duplication synchrone sur le contrôleur du système secondaire. Lorsqu’une défaillance intervient sur le site principal, l’application doit être redémarrée sur le site secondaire et doit garantir la cohérence des transactions.
Si les données sur le site secondaire sont bien synchronisées avec le site principal à l'instant de la défaillance, les E/S associées à une transaction peuvent, elles, ne pas avoir achevé leur procédure. L’application doit donc revenir en arrière dans les journaux et identifier les transactions dont les E/S n’ont pas été achevées, avant de repartir en avant avec des transactions cohérentes afin d’achever le traitement. En clair, le RPO et le RTO ne seront pas de zéro.
 
La virtualisation d’un volume global couvrant de multiples systèmes de stockage préservera la cohérence des transactions et masquera toute défaillance éventuelle d’un contrôleur. Tout contrôleur recevant une requête d’écriture s’assurera préalablement que l’autre contrôleur reçoit bien l’écriture dans son cache avant de répondre avec une écriture achevée. Les deux systèmes de stockage étant actifs sur le même volume virtuel global, lorsque l’un des systèmes de stockage connaît une défaillance, l’application peut continuer à s’exécuter sur le système de stockage restant, sans aucune interruption d’activité ni perte d’une quelconque E/S. Le seul retard potentiellement occasionné en termes de RTO correspond à l’essai de chemin alternatif au moment où survient la défaillance du système de stockage. Dès que le système défaillant est de nouveau en ligne, il peut être ajouté au volume virtuel sans aucune perturbation. La virtualisation globale d’un volume garantit la disponibilité perpétuelle en cas de défaillance d'un système de stockage, mais elle n'offre aucune protection contre la corruption ou la suppression des données par un utilisateur, la défaillance d’un serveur ou d’un datacenter tout entier.

Une stratégie réellement complète de protection et de reprise exige donc toujours à l’échelle de l’entreprise l’utilisation de snapshots, de clones et de la réplication synchrone et asynchrone en complément de la virtualisation de volume globale. Cette virtualisation globale peut être obtenue via une appliance placée au sein du réseau, entre l’application et les systèmes de stockage, mais cette approche ajoute une couche de complexité et ne permet pas de bénéficier de l’intégration des fonctionnalités de protection des données d’entreprise offertes par les systèmes de virtualisation globale de volume SVOS (Storage Virtualization Operating System). Ces derniers couvrent de multiples systèmes de stockage distincts placés à distance les uns des autres et constituent la base d'une toute nouvelle dimension en matière de virtualisation du stockage, en favorisant la mise en place d'une infrastructure cloud perpétuelle.