Como posso remover meus backups de BTRFS?

3

Eu tenho um sistema de backup BTRFS onde faço instantâneos diários ( btrfs subvolume snapshot ) e os serializo em arquivos de mudança incrementais baseados no backup dos dias anteriores ( btrfs send -f backup.date volume -p backup.date-1 ).

Infelizmente, isso significa que eu tenho que manter todos os volumes serializados para sempre, porque eu preciso de todos os instantâneos serializados na cadeia.

Eu tentei desserializar ( btrfs receive ) essas capturas instantâneas incrementais e excluir volumes intermediários, mas os volumes subseqüentes receberam IDs novos. Volumes incrementais referem-se a seus volumes principais por ID, portanto, isso quebra a cadeia.

Assim, eu tenho backup.Jun01.daily e backup.Jun01.monthly onde o último é removido e tem um ID diferente. Esses dois arquivos contêm efetivamente todos os mesmos dados.

Existe alguma maneira de alterar o ID em backup.Jun01.monthly para que backup.Jun02.daily possa se referir a ele, ao passo que ele se referia a backup.Jun01.daily ?

    
por Sophit 10.07.2014 / 20:24

2 respostas

0

Adotei uma abordagem um pouco diferente e talvez incompatível com a sua. Em vez de salvar o btrfs send stream com -f , sempre btrfs receive reproduz o instantâneo na mídia de backup (também um sistema de arquivos btrfs).

Além disso, todos os instantâneos são indistinguíveis um do outro - não há diferença entre os meses, os horários, os horários, etc. - eles são simplesmente nomeados de acordo com um isodato do formato AAAA-MM-DDTHHMMSS + hhmm. A remoção de instantâneos no host original e na remoção de instantâneos na mídia de backup separadamente não me causou problemas com incrementais, mas ainda é cedo.

O que começou como um githubista se transformou em algo maior, então eu chamei de snazzer - veja link

Eu escrevi o que eu esperava que fosse um script de poda genericamente útil, ou melhor, um script que emite os caminhos dos instantâneos que devem ser candidatos à poda. Consulte o link - veja a sinopse com este exemplo:

find /some/.snapshotz -maxdepth 1 -mindepth 1 -type d | \
    snazzer-prune-candidates | xargs btrfs subvolume delete

Infelizmente, isso não funcionará para você, porque depende dos nomes de snapshots com datas de iso. Se você tiver a chance de dar uma olhada em snazzer , snazzer-receive ou qualquer outro bit, por favor me dê feedback - não estou pronto para lançar para o mundo (eu apenas adicionei a capacidade hoje de receber instantâneos de um sistema de arquivos local em vez de ssh), mas qualquer feedback seria bem-vindo.

P.S. Se você sentir repulsa pelo fato de eu ter escolhido o POSIX shell e perl para esta primeira versão, é porque estou em um ataque de dependências zero - estarei adicionando implementações de python nos próximos meses: D

    
por csirac2 15.04.2015 / 08:13
0

uma solução muito simples seria

cd /whever/.shapshots
btrfs subvolume delete *
    
por Turgut Kalfaoglu 11.01.2017 / 09:32