
Temos uma unidade USB 2 externa que estamos usando como unidade de backup para nossa configuração. Nós usamosinstantâneopara os backups. Ele usa alguns comandos padrão para gerenciar snapshots:
rm -rf
: exclui instantâneos expiradosmv
: move snapshots mais antigos para um slotcp -al
: duplica o último instantâneo para o novo slotrsync -a --delete --numeric-ids --relative
: sincroniza o novo instantâneo
Como você pode ver no log abaixo, a maior parte do tempo é gasta nas rm -rf
etapas cp -al
:
[25/Dec/2010:14:00:02] rsnapshot hourly: started
[25/Dec/2010:14:00:02] echo 21012 > /var/run/rsnapshot.pid
[25/Dec/2010:14:00:02] rm -rf /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.4/ /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.3/ /mnt/extdrive/snapshots/hourly.4/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.2/ /mnt/extdrive/snapshots/hourly.3/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.1/ /mnt/extdrive/snapshots/hourly.2/
[25/Dec/2010:14:15:48] cp -al /mnt/extdrive/snapshots/hourly.0 /mnt/extdrive/snapshots/hourly.1
[25/Dec/2010:14:23:32] rsync -a --delete --numeric-ids --relative /etc /mnt/extdrive/snapshots/hourly.0/sm4/
[25/Dec/2010:14:23:52] touch /mnt/extdrive/snapshots/hourly.0/
[25/Dec/2010:14:23:52] rm -f /var/run/rsnapshot.pid
[25/Dec/2010:14:23:52] rsnapshot hourly: completed successfully
Minhas perguntas:
Atualmente estou usando ext4 para o sistema de arquivos. Talvez esta não seja a melhor escolha entre as disponíveis no Red Hat. Alguém tem alguma recomendação que possa acelerar o processo?
As opções de montagem da partição são
sync,dirsync 1 2
. Existe uma maneira de otimizar isso, já que é usado exclusivamente para rsnapshot? Claro, o raciocínio seria muito apreciado.
Responder1
ext4 está bem.
As opções "sync,dirsync" tornam as atualizações de dados e metadados síncronas, o que é um grande efeito negativo no desempenho na maioria das cargas de trabalho. A remoção dessas opções provavelmente aumentará o desempenho, mas você deve se lembrar de desmontar o dispositivo antes de puxar o cabo, caso contrário você poderá perder dados (presumivelmente é por isso que as opções foram adicionadas em primeiro lugar, elas não são as opções padrão, ou talvez seja algum tipo de mágica especial que sua distro faz para dispositivos USB).
noatime desativa atualizações atime, o que reduz a quantidade de gravações no sistema de arquivos. Mais ou menos todos os aplicativos, incluindo o rsnapshot, não precisam do atimes, portanto isso deve ser perfeitamente seguro.
data=writeback reduz a sobrecarga do registro no diário, ao preço de aumentar ligeiramente a possibilidade de perda de dados em caso de falha de energia. Dependendo da distribuição, este já pode ser o padrão.
Com o ext4 também é possível desabilitar completamente o diário (a partir do kernel 2.6.29), embora eu não recomende isso. Isso ainda tem todas as outras melhorias do ext4, então deve ser mais rápido do que usar ext2, fwiw.
barreira=0 desativa barreiras, o que melhora o desempenho das gravações, ao custo de aumentar a possibilidade de perda de dados em caso de falha.
Responder2
Você configura o rsnapshot para manter mais instantâneos (por exemplo 9999) e os exclui do disco usando o crontab. Isso tornará a velocidade do rnapshot mais previsível.
Responder3
Observe também que o uso --link-dest
também altera o plano de como isso cp
é feito, o que pode afetar significativamente o desempenho (basicamente é apenas rm
o e, em seguida , hourly.$old
é usado rsync
para fazer a cópia e sincronizar a partir da fonte simultaneamente).hourly.1
hourly.0
Há mais discussão sobre umtécnica alternativa aqui- basicamente girando o último instantâneo de hora em hora para o novo em mv hourly.$old hourly.0
vez de rm
-ing, e fazendo um cp -afl
from hourly.1
on hourly.0
para atualizá-lo, mas eu não tentei isso - você teria que fazer a rotação manualmente em vez de confiar em rsnapshot
fazer isso