Mécanisme blksnap proposé pour créer des instantanés de périphériques de bloc sous Linux

La société Veeam, qui produit des logiciels de sauvegarde et de reprise après sinistre, a proposé le module blksnap à inclure dans le noyau Linux avec la mise en œuvre du mécanisme de création d'instantanés des périphériques de bloc et de suivi des modifications des périphériques de bloc. Pour travailler avec des instantanés, l'utilitaire de ligne de commande blksnap et la bibliothèque blksnap.so ont été préparés, vous permettant d'interagir avec le module du noyau via des appels ioctl depuis l'espace utilisateur.

Le but de la création du module est d'organiser la sauvegarde des lecteurs et des disques virtuels sans arrêter le travail - le module vous permet de capturer l'état actuel de l'ensemble du périphérique de bloc dans un instantané, fournissant une tranche isolée pour la sauvegarde qui ne dépend pas des changements en cours . Une caractéristique importante de blksnap est la possibilité de créer simultanément des instantanés pour plusieurs périphériques de bloc à la fois, ce qui permet non seulement d'assurer l'intégrité des données au niveau du périphérique de bloc, mais également d'assurer la cohérence de l'état des différents périphériques de bloc dans la sauvegarde.

Pour suivre les modifications apportées au sous-système de périphérique de bloc (bdev), la possibilité d'attacher des filtres qui vous permettent d'intercepter les demandes d'E / S a été ajoutée. blksnap implémente un filtre qui intercepte les demandes d'écriture, lit l'ancienne valeur et l'enregistre dans une liste de modifications distincte qui détermine l'état de l'instantané. Avec cette approche, la logique de travail avec un périphérique bloc ne change pas, l'enregistrement dans le périphérique bloc d'origine est effectué tel quel, quels que soient les instantanés, ce qui élimine la possibilité de corruption des données et évite les problèmes même en cas d'erreurs critiques imprévisibles dans blksnap et débordement de l'espace alloué aux modifications.

Le module vous permet également de déterminer quels blocs ont été modifiés entre le dernier et tout instantané précédent, ce qui peut être utile pour mettre en œuvre des sauvegardes incrémentielles. Pour enregistrer les modifications, par rapport à l'état de l'instantané, une plage arbitraire de secteurs peut être allouée sur n'importe quel périphérique de bloc, ce qui vous permet d'enregistrer les modifications dans des fichiers séparés au sein du FS sur les périphériques de bloc. La taille de la zone de stockage des modifications peut être augmentée à tout moment, même après la création de l'instantané.

Blksnap est basé sur le code du module veeamsnap, qui fait partie du produit Veeam Agent pour Linux, mais repensé pour les spécificités de livraison dans la partie principale du noyau Linux. La différence conceptuelle entre blksnap et veeamsnap est l'utilisation d'un système de filtres attaché à un périphérique bloc, au lieu d'un composant bdevfilter séparé qui intercepte les E/S.

Source: opennet.ru

Ajouter un commentaire