Identificando a mudança para o nível do bloco do disco

5

Eu tenho um problema:)

Gostaria de identificar quantas alterações ocorreram no nível de bloco em um disco inteiro ou em um arquivo específico.

Idealmente, existe uma ferramenta que executa uma varredura em um disco ou arquivo e produz "impressões digitais" para cada bloco e pode compará-las em um estágio posterior para chegar a vários blocos alterados desde a última varredura.

Alguém tem alguma ideia? Alguém pode sugerir quaisquer ferramentas, utilitários de linha de comando?

UPDATE

Eu encontrei o seguinte projeto:

link

que é uma implementação em C # da ferramenta rdiff que é baseada no algoritmo rsync e essencialmente segue as linhas do que eu esperava.

Agora, o que eu preciso é de uma ferramenta que produza os dados alterados sem escrever um arquivo delta.

    
por Bruno 12.11.2015 / 11:18

6 respostas

3

O recurso de rastreamento de blocos da Microsoft semelhante ao mecanismo VMware CBT deve estar disponível no Windows Server 2016. Você pode acessar esse recurso usando algumas APIs públicas (como a Veeam emprega o vSphere CBT). Então, acho que pode ajudar você a rastrear blocos de dados que foram alterados. Também estamos executando o hyper-v usando o veeam e sentando-se no Starwind vSAN que funciona bem com o VSS. Eu sei que o Nimble também suporta VSS / CBT.

    
por 26.10.2016 / 16:31
3

@ batistuta09 mencionado Starwind link que na verdade é uma SAN virtual e é gratuito. Ele é instalado nativamente no Hyper-V e tem um dispositivo de sistema de arquivos com registro de diário chamado LSFS link que é orientado para VM.

O interessante é que ele gera novos arquivos (ou partes) do tamanho de AFAIK de 128 MB para 512 MB continuamente quando novos dados são gravados nele. Isso pode ser suficiente para você ver com facilidade quantos dados "novos" são gerados durante um determinado período de tempo. O resultado pode não ser muito preciso, mas provavelmente será bom o suficiente para sua tarefa específica e a instalação e configuração é realmente simples.

    
por 28.10.2016 / 09:03
2

Não vou entrar em muitos detalhes, e percebo que essa é uma pergunta do Windows Server, mas vou apontar duas direções que acho viáveis para seus objetivos.

1) Você poderia usar um sistema de arquivos de registro no diário e capturar as entradas de diário conforme elas acontecessem para produzir uma aproximação não perfeita, mas muito próxima de quantas alterações foram feitas em um intervalo de tempo específico. Então você poderia usar um pouco de matemática para determinar mudanças no nível de bloco para um nível decente de precisão.

Muitos sistemas de arquivos de registro no diário permitem que você coloque o próprio diário em uma peça de armazenamento totalmente diferente dos dados, portanto você poderia fazê-lo (com XFS por exemplo) em um grande armazenamento e depois analisar o diário. fatias de tempo com uma ferramenta separada ou observador.

Muitas possibilidades com essa abordagem eu não estou mencionando .. o céu é o limite.

2) Se você precisar de um mapa realmente preciso sobre fatia de tempo (1) vs fatia de tempo (2) no nível de bloco em termos de alterado / não alterado, posso pensar em usar o DRBD e dois escravos somente de leitura separados (ou software RAID 1, que seria mais fácil e possível no Windows Server, mas mais fisicamente limitante) .. um que é trazido em Time (a) e, em seguida, desconectado. Em seguida, traga o segundo em um momento (b) e, em seguida, desconecte-o e faça uma comparação estática usando qualquer tipo de ferramenta desejada. Basta ler cada bloco de ambas as fontes e fazer um XOR. Se o resultado for maior que zero, ele mudou.

    
por 12.10.2016 / 19:49
0

Minha sugestão seria usar uma tecnologia de VM, como CBT no vSphere ou KVM usando um arquivo de apoio e uma sobreposição para armazenamento.

Em seguida, você pode aproveitar o CBT ou examinar a imagem qcow2 de sobreposição para determinar quais blocos foram alterados.

Como alternativa, se você estiver fazendo isso para determinar a taxa de alteração do tráfego de replicação, use os contadores de desempenho para examinar o total de dados gravados no dispositivo.

    
por 14.10.2016 / 20:29
0

Uma opção pode ser usar o ZFS e seu recurso de instantâneo. Faça um snapshot no tempo X e verifique qual é o uso do espaço de snapshot na hora Y. Isso informará o tamanho das diferenças entre os tempos X e Y.

O uso do espaço de instantâneo do ZFS é descrito na Oracle Documentação do ZFS .

    
por 14.10.2016 / 20:33
0

Você pode ativar cópias de sombra em todos os volumes que deseja monitorar e, em seguida, verificar o espaço de armazenamento de cópias de sombra usado com:

lista de sombra de vssadmin

A diferença nos valores entre duas execuções do comando deve dar uma boa estimativa do tamanho das alterações acumuladas

    
por 17.10.2016 / 19:34