O mecanismo blksnap foi proposto para criar instantâneos de dispositivos de bloco no Linux

A Veeam, empresa que produz software de backup e recuperação de desastres, propôs o módulo blksnap para inclusão no kernel Linux, que implementa um mecanismo para criar instantâneos de dispositivos de bloco e rastrear alterações em dispositivos de bloco. Para trabalhar com snapshots, foram preparados o utilitário de linha de comando blksnap e a biblioteca blksnap.so, permitindo interagir com o módulo do kernel por meio de chamadas ioctl do espaço do usuário.

O objetivo da criação do módulo é organizar backups de drives e discos virtuais sem interromper o trabalho - o módulo permite registrar em um instantâneo o estado atual de todo o dispositivo de bloco, fornecendo uma fatia isolada para backup que não depende de mudanças contínuas . Uma característica importante do blksnap é a capacidade de criar simultaneamente instantâneos para vários dispositivos de bloco ao mesmo tempo, o que permite não apenas garantir a integridade dos dados no nível do dispositivo de bloco, mas também obter consistência no estado de diferentes dispositivos de bloco na cópia de backup.

Para rastrear alterações, o subsistema de dispositivo de bloco (bdev) adicionou a capacidade de anexar filtros que permitem interceptar solicitações de E/S. blksnap implementa um filtro que intercepta solicitações de gravação, lê o valor antigo e o armazena em uma lista de alterações separada que define o estado do instantâneo. Com esta abordagem, a lógica de trabalhar com um dispositivo de bloco não muda; a gravação no dispositivo de bloco original é realizada como está, independentemente dos instantâneos, o que elimina a possibilidade de corrupção de dados e evita problemas mesmo que ocorram erros críticos imprevisíveis no blksnap e o espaço alocado para mudanças está cheio.

O módulo também permite determinar quais blocos foram alterados no período entre o último e qualquer snapshot anterior, o que pode ser útil para implementar backups incrementais. Para salvar alterações relativas ao estado do instantâneo, um intervalo arbitrário de setores pode ser alocado em qualquer dispositivo de bloco, o que permite salvar alterações em arquivos separados dentro do sistema de arquivos em dispositivos de bloco. O tamanho da área de armazenamento de alterações pode ser aumentado a qualquer momento, mesmo após a criação de um instantâneo.

Blksnap é baseado no código do módulo veeamsnap incluído no produto Veeam Agent for Linux, mas redesenhado para levar em conta as especificidades de entrega no kernel Linux principal. A diferença conceitual entre blksnap e veeamsnap é o uso de um sistema de filtro conectado ao dispositivo de bloco, em vez de um componente bdevfilter separado que intercepta E/S.

Fonte: opennet.ru

Adicionar um comentário