Disk clone: É possível acelerar todo o processo?

0

Eu tenho dois discos rígidos USB 3.0 idênticos (750 GB). Um deles está vazio e eu quero usá-lo como espelho do primeiro disco (como backup).

Ambos os discos estão conectados a portas USB 3.0 e em testes a velocidade de leitura e gravação é muito boa (~ 110MB / s max e ~ 60MB / s min para leitura e ~ 100MB / s max e ~ 55MB / s min para gravação) .

Eu tentei fazer isso com a ferramenta dd, assim:

dd if=/dev/sdc | pv | dd of=/dev/sdd

A velocidade máxima não é superior a 20MB / s. É possível, de alguma forma, acelerá-lo?

    
por WombaT 29.09.2013 / 17:11

2 respostas

5

Adicionar um tamanho de bloco pode acelerar as coisas. Por exemplo. %código%.

O que usar bs é difícil de prever, mas o padrão parece ser 512 byes, o que significa que você está transferindo 750GiB em mandris 750x1024x1024x2. Se você usar 1M como tamanho de bloco, isso reduzirá o número de mandris (e as chamadas do sistema) até 2048. Isso elimina muita sobrecarga.

O teste próprio com discos conectados dd e SAS e SATA mostra um grande aumento passando de 512bytes para 4K, mas aumentos muito menores depois disso.

Em segundo lugar: Os dois discos estão conectados ao mesmo controlador USB3? Então você está compartilhando a largura de banda dos controladores USB. Dois controladores USB diferentes devem acelerar as coisas. (Note que eu escrevi controlador e não porta USB. Um controlador geralmente controla várias portas).

Observe que: o USB2 geralmente arquiva velocidades de até 30 ou 35 MB / seg. Você pode tentar mover um dos discos para um conector USB 2 e deixar o outro na porta USB 3. Supondo que a porta USB3 não tenha a largura de banda (interna) para sustentar ambos os canais, isso pode dobrar sua velocidade. (Além do aumento obtido ao definir um tamanho de bloco).

Em terceiro lugar: O uso do termo 'espelho' é um pouco confuso. Na maioria das vezes, 'espelho' se refere a RAID-1 e é possível usar dois discos USB em um espelho RAID-1. Dessa forma, eles sempre recebem o mesmo conteúdo. Isso também significa que a exclusão de algo o excluirá de ambas as unidades.

    
por 29.09.2013 / 17:42
0

Se você estiver falando sobre um espelho como no RAID-1, observe que isso não é um backup. Um espelho permite que você sobreviva à falha física de uma unidade, mas não ajuda se você excluir um arquivo.

Se você quiser duplicar todos os arquivos de uma unidade para outra, considere o uso do rsync. Isso garantirá que apenas os arquivos sejam copiados, em vez de copiar todos os blocos físicos. Isso pode ser um pouco mais rápido, dependendo de quão cheio é o seu disco. Além disso, é provável que seja MUITO mais rápido nas sincronizações subsequentes, pois somente os arquivos alterados serão copiados.

Se você insistir em copiar os blocos físicos, convém copiá-los para uma unidade conectada diretamente primeiro e depois copiá-la para a segunda unidade USB. Isso evitará que as duas unidades concorram por recursos USB e, possivelmente, sejam mais rápidas do que a sua abordagem atual. Obviamente, isso requer que você tenha 750GB extras em sua unidade conectada diretamente.

Você pode considerar a configuração de uma configuração RAID-1 usando o mdadm. Provavelmente não será mais rápido, mas pode corresponder melhor ao que você está tentando fazer.

    
por 29.09.2013 / 17:27