Sincronizando manualmente dois snapshots BTRFS com RSYNC

0

Pergunta

Existe uma maneira de sincronizar dois snapshots BTRFS manualmente em discos diferentes e marcá-los como idênticos (definir o relacionamento pai / filho) de forma confiável?

Problema

Eu estava sincronizando meus instantâneos com meu disco externo. Naturalmente, estou aproveitando o btrfs send -p $PARENT $CURRENT , o que reduz bastante a quantidade de dados que precisam ser enviados pela rede. Para poder enviar o instantâneo usando apenas o diff, o instantâneo PARENT deve existir em ambos os discos.

Por engano, excluí todos os meus instantâneos antigos no meu laptop para que todos os instantâneos comuns acabem. Como não há nenhum ponto em comum, eu tenho que enviar um instantâneo inteiro pela primeira vez, que é de cerca de 800GB. rsync diz que há apenas 100MB de diferença entre o meu instantâneo mais antigo no meu laptop e o mais recente instantâneo no disco externo. É por isso que não quero mandar 800GB inteiros novamente em vez de enviar 100MB.

Idéia

Eu pensei que poderia

  • crie um instantâneo rw do instantâneo mais antigo no disco externo (nomeie esse foo ),
  • use rsync para sincronizar foo com a captura instantânea de origem no laptop,
  • crie um instantâneo somente leitura de foo no disco externo ( foo-readonly ),
  • de alguma forma, marque foo-readonly Received UUID com UUID do instantâneo de origem.

Mas, como o rsync não sincroniza todos os arquivos (bloqueará arquivos de dispositivo e tal), ele quebraria qualquer coisa no futuro se eu mantivesse a técnica de snapshot incremental para o restante das transferências?

Ou, ignorando os possíveis arquivos ausentes, existe alguma maneira confiável de sincronizar dois instantâneos com rsync para esse tipo de cenário?

    
por ceremcem 14.08.2018 / 09:44

0 respostas