Mecanismo blksnap propuesto para crear instantáneas de dispositivos de bloque en Linux

La empresa Veeam, que produce software para respaldo y recuperación ante desastres, propuso el módulo blksnap para incluirlo en el kernel de Linux con la implementación del mecanismo para crear instantáneas de dispositivos de bloque y rastrear cambios en dispositivos de bloque. Para trabajar con instantáneas, se han preparado la utilidad de línea de comandos blksnap y la biblioteca blksnap.so, lo que le permite interactuar con el módulo del kernel a través de llamadas ioctl desde el espacio del usuario.

El propósito de crear el módulo es organizar la copia de seguridad de unidades y discos virtuales sin detener el trabajo: el módulo le permite capturar el estado actual de todo el dispositivo de bloque en una instantánea, proporcionando una porción aislada para la copia de seguridad que no depende de los cambios en curso. . Una característica importante de blksnap es la capacidad de crear simultáneamente instantáneas para varios dispositivos de bloque a la vez, lo que permite no solo garantizar la integridad de los datos a nivel de dispositivo de bloque, sino también lograr la coherencia en el estado de los diferentes dispositivos de bloque en la copia de seguridad.

Para realizar un seguimiento de los cambios en el subsistema de dispositivos de bloque (bdev), se ha agregado la capacidad de adjuntar filtros que le permiten interceptar solicitudes de E/S. blksnap implementa un filtro que intercepta solicitudes de escritura, lee el valor anterior y lo guarda en una lista separada de cambios que determina el estado de la instantánea. Con este enfoque, la lógica de trabajar con un dispositivo de bloques no cambia, la grabación en el dispositivo de bloques original se realiza tal cual, independientemente de las instantáneas, lo que elimina la posibilidad de corrupción de datos y evita problemas incluso en caso de errores críticos impredecibles. en blksnap y desbordamiento del espacio destinado a cambios.

El módulo también le permite determinar qué bloques se cambiaron entre la última y cualquier instantánea anterior, lo que puede ser útil para implementar copias de seguridad incrementales. Para guardar los cambios, en relación con el estado de la instantánea, se puede asignar un rango arbitrario de sectores en cualquier dispositivo de bloque, lo que le permite guardar los cambios en archivos separados dentro del FS en dispositivos de bloque. El tamaño del área para almacenar cambios se puede aumentar en cualquier momento, incluso después de que se haya creado la instantánea.

Blksnap se basa en el código del módulo veeamsnap, que es parte del producto Veeam Agent para Linux, pero rediseñado para las especificaciones de entrega en la parte principal del kernel de Linux. La diferencia conceptual entre blksnap y veeamsnap es el uso de un sistema de filtros adjunto a un dispositivo de bloque, en lugar de un componente bdevfilter separado que intercepta E/S.

Fuente: opennet.ru

Añadir un comentario