Mecanisme blksnap proposat per crear instantànies de dispositius de bloc a Linux

L'empresa Veeam, que produeix programari per a còpies de seguretat i recuperació de desastres, va proposar el mòdul blksnap per incloure'l al nucli de Linux amb la implementació del mecanisme per crear instantànies de dispositius de bloc i fer el seguiment dels canvis en dispositius de bloc. Per treballar amb instantànies, s'han preparat la utilitat de línia d'ordres blksnap i la biblioteca blksnap.so, que us permeten interactuar amb el mòdul del nucli mitjançant trucades ioctl des de l'espai d'usuari.

L'objectiu de la creació del mòdul és organitzar la còpia de seguretat de les unitats i els discos virtuals sense aturar el treball: el mòdul us permet capturar l'estat actual de tot el dispositiu de bloc en una instantània, proporcionant una part aïllada per a la còpia de seguretat que no depèn dels canvis en curs. Una característica important de blksnap és la capacitat de crear instantànies simultàniament per a diversos dispositius de bloc alhora, la qual cosa permet no només garantir la integritat de les dades a nivell de dispositiu de bloc, sinó també aconseguir la coherència en l'estat de diferents dispositius de bloc a la còpia de seguretat.

Per fer un seguiment dels canvis al subsistema del dispositiu de blocs (bdev), s'ha afegit la possibilitat d'adjuntar filtres que us permetin interceptar les sol·licituds d'E/S. blksnap implementa un filtre que intercepta les sol·licituds d'escriptura, llegeix el valor antic i el desa en una llista separada de canvis que determina l'estat de la instantània. Amb aquest enfocament, la lògica de treballar amb un dispositiu de bloc no canvia, l'enregistrament al dispositiu de bloc original es realitza tal com està, independentment de les instantànies, la qual cosa elimina la possibilitat de corrupció de dades i evita problemes fins i tot en cas d'errors crítics impredictibles en blksnap i desbordament de l'espai assignat per als canvis.

El mòdul també us permet determinar quins blocs s'han canviat entre l'última i qualsevol instantània anterior, cosa que pot ser útil per implementar còpies de seguretat incrementals. Per desar els canvis, en relació amb l'estat de la instantània, es pot assignar un rang arbitrari de sectors a qualsevol dispositiu de bloc, la qual cosa us permet desar els canvis en fitxers separats dins de l'FS en dispositius de bloc. La mida de l'àrea per emmagatzemar els canvis es pot augmentar en qualsevol moment, fins i tot després de crear la instantània.

Blksnap es basa en el codi del mòdul veeamsnap, que forma part del producte Veeam Agent per a Linux, però redissenyat per a les especificitats de lliurament a la part principal del nucli de Linux. La diferència conceptual entre blksnap i veeamsnap és l'ús d'un sistema de filtres connectats a un dispositiu de bloc, en lloc d'un component de filtre bdevper separat que intercepta E/S.

Font: opennet.ru

Afegeix comentari