Propúxose o mecanismo blksnap para crear instantáneas de dispositivos de bloque en Linux

Veeam, unha empresa que produce software de copia de seguridade e recuperación ante desastres, propuxo o módulo blksnap para a súa inclusión no núcleo de Linux, que implementa un mecanismo para crear instantáneas de dispositivos de bloque e rastrexar os cambios nos dispositivos de bloque. Para traballar con instantáneas, preparáronse a utilidade de liña de comandos blksnap e a biblioteca blksnap.so, o que lle permite interactuar co módulo do núcleo mediante chamadas ioctl desde o espazo do usuario.

O propósito da creación do módulo é organizar as copias de seguridade de unidades e discos virtuais sen deter o traballo: o módulo permítelle gravar nunha instantánea o estado actual de todo o dispositivo de bloque, proporcionando unha porción illada para a copia de seguridade que non depende dos cambios en curso. . Unha característica importante de blksnap é a capacidade de crear instantáneas simultaneamente para varios dispositivos de bloque á vez, o que permite non só garantir a integridade dos datos a nivel de dispositivo de bloque, senón tamén lograr a coherencia no estado dos diferentes dispositivos de bloque na copia de seguridade.

Para rastrexar os cambios, o subsistema de dispositivos de bloque (bdev) engadiu a posibilidade de engadir filtros que che permiten interceptar as solicitudes de E/S. blksnap implementa un filtro que intercepta as solicitudes de escritura, le o valor antigo e gárdao nunha lista de cambios separada que define o estado da instantánea. Con este enfoque, a lóxica de traballar cun dispositivo de bloque non cambia; a gravación no dispositivo de bloque orixinal realízase como está, independentemente das instantáneas, o que elimina a posibilidade de corrupción de datos e evita problemas aínda que se produzan erros críticos imprevisibles en blksnap e o espazo asignado para os cambios está cheo.

O módulo tamén permite determinar que bloques se cambiaron no período de tempo entre a última e calquera instantánea anterior, o que pode ser útil para implementar copias de seguridade incrementais. Para gardar os cambios relativos ao estado da instantánea, pódese asignar un rango arbitrario de sectores en calquera dispositivo de bloque, o que lle permite gardar os cambios en ficheiros separados dentro do sistema de ficheiros en dispositivos de bloque. O tamaño da área para almacenar os cambios pódese aumentar en calquera momento, mesmo despois de crear unha instantánea.

Blksnap está baseado no código do módulo veeamsnap incluído no produto Veeam Agent para Linux, pero redeseñado para ter en conta as características específicas da entrega no núcleo principal de Linux. A diferenza conceptual entre blksnap e veeamsnap é o uso dun sistema de filtro conectado ao dispositivo de bloque, en lugar dun compoñente bdevfilter separado que intercepta E/S.

Fonte: opennet.ru

Engadir un comentario