A desfragmentação do Btrfs não quebra todas reflinks
Apenas as instâncias particulares em que você aponta. Portanto, se você tiver subvolume A
e snapshots S1
e S2
desse subvolume A
, a execução da desfragmentação em apenas subvolume A
interromperá os reflexos entre ela e o instantâneos, mas S1
e S2
ainda compartilharão todos os dados que foram originalmente um com o outro. Se você fizer um terceiro instantâneo de A
, ele compartilhará dados com A
, mas não com S1
ou S2
(porque A
não está mais compartilhando dados com S1
ou S2
) .
Dado esse comportamento, você tem três casos possíveis ao falar sobre instantâneos persistentes:
- Você se preocupa com minimizar espaço usado, mas não está tão preocupado com o desempenho.
Nesse caso, a única opção é não executar a desfragmentação .
- Você se preocupa com o desempenho , mas não com o uso do espaço. Nesse caso, desfragmentar tudo .
- Você se preocupa com o uso e o desempenho do espaço. Neste caso balanceado , eu pessoalmente sugiro desfragmentar apenas o subvolume de origem (portanto, subvolume apenas
A
na explicação acima) e fazer isso em um planejamento que coincida com a rotação de snapshot. A idéia é defragment
antes de você tirar uma foto e em uma frequência que ofereça um bom equilíbrio entre o uso do espaço e o desempenho. Como regra geral, se você seguir esse caminho, comece a fazer a desfragmentação mensalmente, se estiver fazendo instantâneos diários ou semanais, ou a cada quatro instantâneos, se não, e então ajuste o intervalo com base em como isso impacta sua imagem. uso do espaço.
Fonte: Lista de discussão do Btrfs , conforme mencionado por Spacedog.
Btrfs desfragmenta instantâneo somente leitura
A partir da minha experiência de tentativa e erro, o btrfs desfragmentando instantâneos (para usar a nova compactação zstd) resultou em 100% Exclusivo e 0,00 bytes de dados compartilhados.
Antes de btrfs defragment
:
# btrfs filesystem du -s /mnt/btrfs/Backups.backupdb/d2/readonly-snapshot/
Total Exclusive Set shared Filename
1.41GiB 6.27MiB 1.41GiB /mnt/btrfs/Backups.backupdb/d2/readonly-snapshot/
Após btrfs defragment
:
# btrfs filesystem du -s /mnt/btrfs/Backups.backupdb/d2/readonly-snapshot/
Total Exclusive Set shared Filename
1.42GiB 1.42GiB 0.00B /mnt/btrfs/Backups.backupdb/d2/readonly-snapshot/
Os dados compartilhados diminuem para 0.00B