Proposto o mecanismo blksnap para criar snapshots de dispositivos de bloco no Linux

A empresa Veeam, que desenvolve software para backup e recuperação após falhas, propôs a inclusão no núcleo do Linux do módulo blksnap, que implementa um mecanismo para criação de snapshots de dispositivos blocos e monitoramento de mudanças nesses dispositivos. Para trabalhar com snapshots, foi preparada uma ferramenta de linha de comando blksnap e a biblioteca blksnap.so, permitindo que o espaço do usuário interaja com o módulo do núcleo por meio de chamadas ioctl.

O objetivo da criação do módulo é organizar o backup de unidades e discos virtuais sem interromper a operação — o módulo permite que o estado atual de todo o dispositivo de bloco seja capturado em um snapshot, fornecendo um recorte isolado para backup, independente das mudanças que continuam a ocorrer. Uma característica importante do blksnap é a possibilidade de criar snapshots simultaneamente para vários dispositivos de bloco, o que não apenas garante a integridade dos dados a nível de dispositivo de bloco, mas também assegura a consistência do estado de diferentes dispositivos de bloco no backup.

Para monitorar as mudanças, foi adicionada à subsistema de dispositivos blocos (bdev) a capacidade de anexar filtros que interceptam as solicitações de entrada/saída. No blksnap, um filtro foi implementado para interceptar solicitações de gravação, ler o valor antigo e armazená-lo em uma lista separada de mudanças, que determina o estado do snapshot. Com essa abordagem, a lógica de operação com o dispositivo de bloco não muda, a gravação no dispositivo de bloco original ocorre como está, independentemente dos snapshots, o que exclui a possibilidade de corrupção de dados e evita problemas mesmo em caso de erros críticos imprevisíveis no blksnap e de excesso de armazenamento destinado às mudanças.

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

Blksnap é baseado no código do módulo veeamsnap, que faz parte do produto Veeam Agent for Linux, mas reformulado para atender às especificidades de sua entrega principalmente como parte do núcleo do Linux. A diferença conceitual do blksnap em relação ao veeamsnap é a utilização de um sistema de filtros anexados ao dispositivo de bloco, em vez de um componente separado bdevfilter que intercepta a entrada/saída.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster