Para um repositório num NAS local, mantenha a predefinição de 16 MiB do restic, a menos que as medições mostrem que a sobrecarga dos ficheiros do repositório ou o comportamento de procura do HDD está a limitar o débito. Se o NAS armazenar um repositório de vários terabytes em discos rotativos, pacotes de 32 MiB ou 64 MiB são valores razoáveis para testar antes de considerar algo maior.
O tamanho do pacote não é o mesmo que o tamanho dos blocos de deduplicação do restic. Primeiro, o restic divide os dados dos ficheiros em blobs definidos pelo conteúdo e, depois, agrupa os blobs em ficheiros de pacotes. Alterar o tamanho de pacote pretendido altera a forma como esses blobs são agrupados no repositório; não altera o polinómio do segmentador do repositório nem os hashes de conteúdo.
Comece com a predefinição de 16 MiB
As atuais orientações de ajuste do restic indicam que o tamanho de pacote predefinido é 16 MiB. Também referem que ficheiros de pacotes maiores podem reduzir o número de ficheiros do repositório e melhorar o desempenho das cópias de segurança em alguns repositórios armazenados em HDDs locais.
restic version
restic -r /mnt/nas/restic-repo snapshots
restic -r /mnt/nas/restic-repo stats --mode raw-data
Registe a versão do restic, o tamanho do repositório, o número de instantâneos, o tipo de armazenamento e a duração atual da cópia de segurança antes de fazer ajustes. Se o repositório já terminar dentro da janela da cópia de segurança, um tamanho de pacote maior pode acrescentar complexidade sem proporcionar um ganho útil.
Compreenda o que o tamanho dos pacotes realmente altera
O design do formato do repositório do restic explica que o conteúdo dos ficheiros é dividido em blobs definidos pelo conteúdo e que esses blobs são agrupados em ficheiros de pacotes.
Ficheiros de origem
|
segmentação definida pelo conteúdo
|
blobs deduplicados
|
agrupamento de pacotes
|
ficheiros de dados do repositório
Um destino de pacote maior geralmente significa menos ficheiros de repositório, mas maiores. Isso pode ajudar um disco rotativo a passar menos tempo com metadados e operações de abertura de ficheiros. Não melhora a deduplicação de conteúdos de ficheiros idênticos.
Verifique se o NAS está realmente limitado pelo tamanho dos pacotes
Antes de afinar, observe o disco do repositório durante uma cópia de segurança incremental normal. Um repositório num HDD local ocupado com muitas procuras curtas e operações de metadados, enquanto o débito permanece baixo, é um candidato melhor do que um repositório num SSD que já esteja a escrever sequencialmente a alta velocidade.
iostat -xz 2
Procure uma utilização sustentada do disco, tempos de espera elevados e um débito baixo em relação a uma escrita sequencial de grande dimensão. Verifique também a utilização da CPU e a velocidade de leitura da origem. Se o estrangulamento estiver na compressão, no cálculo de hashes, na I/O da origem ou na rede, aumentar o tamanho dos pacotes não irá resolver o problema.
Compare 16, 32 e 64 MiB com repositórios equivalentes
A comparação mais rigorosa utiliza repositórios descartáveis criados para o teste. Use o mesmo conjunto de dados de origem, volume NAS, versão do Restic e número de ligações ao backend.
restic --pack-size 16 -r /mnt/nas/test-restic-16 init
restic --pack-size 16 -r /mnt/nas/test-restic-16 backup /srv/testdata
restic --pack-size 32 -r /mnt/nas/test-restic-32 init
restic --pack-size 32 -r /mnt/nas/test-restic-32 backup /srv/testdata
restic --pack-size 64 -r /mnt/nas/test-restic-64 init
restic --pack-size 64 -r /mnt/nas/test-restic-64 backup /srv/testdata
Meça o tempo decorrido, o débito do disco do repositório, a utilização do espaço temporário e o número de ficheiros de dados resultante. Repita os testes sempre que possível, para que os efeitos da cache de páginas não determinem o resultado.
Tenha em conta o espaço temporário antes de aumentar o tamanho dos pacotes
O Restic documenta o requisito de espaço temporário aproximadamente assim:
tamanho do pacote × (ligações ao backend + 1)
Com cinco ligações ao backend e um objetivo de 64 MiB, isso corresponde a 384 MiB de espaço temporário mínimo. Atualmente, o backend local predefinido utiliza menos ligações do que a maioria dos backends remotos, mas a mesma regra continua a aplicar-se.
df -h "${TMPDIR:-/tmp}"
export TMPDIR=/mnt/fast-temp/restic
mkdir -p "$TMPDIR"
Pacotes temporários maiores também podem aumentar a utilização de memória e fazer com que mais escritas temporárias cheguem ao armazenamento SSD em vez de permanecerem na cache.
Mantenha a mesma definição de tamanho dos pacotes nos comandos que escrevem no repositório
O Restic indica que a definição do tamanho dos pacotes deve ser especificada em todos os comandos que modificam o repositório. Use uma variável de ambiente para todo o trabalho:
export RESTIC_REPOSITORY=/mnt/nas/restic-repo
export RESTIC_PACK_SIZE=64
export RESTIC_PASSWORD_FILE=/root/.config/restic/password
restic backup /srv/data
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6
restic prune
Alterar o tamanho dos pacotes não redefine a divisão em blocos para deduplicação, mas pode deixar pacotes de tamanhos diferentes. A consistência facilita a interpretação da manutenção futura e das comparações de desempenho.
Não espere que os pacotes existentes sejam redimensionados automaticamente
Uma nova definição do tamanho dos pacotes afeta os dados criados ou reempacotados posteriormente. Os ficheiros de pacotes existentes não são reescritos simplesmente porque RESTIC_PACK_SIZE alterações.
Se pretender intencionalmente que o prune reempacote pacotes existentes mais pequenos, as versões atuais do restic disponibilizam --repack-smaller-than. Consulte primeiro as opções de reempacotamento do prune.
restic prune --dry-run --repack-smaller-than 32M
Comece com uma simulação. Não force um reempacotamento completo apenas para fazer com que todos os ficheiros de pacotes tenham um aspeto uniforme.
Validar a integridade após o ajuste
restic check
restic check --read-data-subset=5%
Escolha um calendário de verificação adequado ao tamanho do repositório. As orientações de resolução de problemas do repositório do restic consideram as verificações de integridade a base para diagnosticar danos no repositório.
Para um desenho de cópia de segurança mais abrangente, combine o repositório local com outra cópia independente. A estratégia de cópia de segurança 3-2-1 do ZimaOS explica por que motivo a redundância local e um destino separado resolvem modos de falha diferentes.
Utilize esta regra de decisão
- Mantenha 16 MiB se as cópias de segurança já cumprirem a janela de execução ou se o estrangulamento estiver noutro componente.
- Teste 32 MiB se um repositório grande num HDD passar bastante tempo com metadados e operações em ficheiros pequenos.
- Teste 64 MiB se 32 MiB ajudar e a utilização de espaço temporário se mantiver confortável.
- Pare de aumentar quando os ganhos estabilizarem ou a E/S temporária aumentar.
O melhor tamanho de pacote é o menor valor que reduz de forma mensurável a sobrecarga do repositório sem criar um novo estrangulamento.
Perguntas frequentes sobre o tamanho dos pacotes do Restic
Um tamanho de pacote maior melhora a deduplicação do restic?
Não. A deduplicação ocorre ao nível dos blobs/fragmentos, antes de os blobs serem agrupados em ficheiros de pacotes.
Alterar o tamanho dos pacotes reescreve os meus ficheiros de pacotes antigos?
Não. Os pacotes existentes permanecem até serem reescritos por operações normais de limpeza ou reempacotamento.
Que tamanho de pacote devo experimentar primeiro num NAS com HDD local?
Use 16 MiB como base e, em seguida, faça testes de desempenho com 32 MiB e 64 MiB sob a mesma carga de trabalho.
Suporte e Dicas
Mais para Ler

O Home Assistant funciona por Wi-Fi, mas falha através de Ethernet ou VPN
Teste cada caminho de rede separadamente, verifique o estado da interface e do encaminhamento, distinga o IP direto da descoberta e repare apenas a...

Como desativar o Home Assistant sem deixar dados desprotegidos
Comprove a substituição ou o arquivamento, revogue todos os caminhos de confiança, higienize cada dispositivo que contenha dados e conserve apenas cópias de recuperação...

Deve utilizar atualizações automáticas do Home Assistant num servidor doméstico?
Escolha atualizações manuais, apenas de notificação ou automáticas faseadas, tendo em conta o impacto no agregado familiar, o risco de compatibilidade, o tempo de...

