Preciso copiar alguns dados que incluem 900.000 arquivos minúsculos, totalizando cerca de 30 gigabytes, em um computador com Windows. No entanto, ele precisa ser copiado e configurado em menos de uma hora e meia e pode levar mais de 5 horas para copiar um disco rígido USB, principalmente devido à quantidade louca de arquivos. Existe uma maneira melhor / mais rápida de lidar com isso, como fazer algum tipo de cópia em bloco? obrigado
usb-storage
file-transfer
Joe Lyga
fonte
fonte
Respostas:
Com um grande número de arquivos, é melhor criar um arquivo tar para que você tenha menos arquivos para lidar. Se você estiver usando o disco rígido externo USB 2.0, deverá usar o USB 3.0, eSATA ou uma rede local rápida.
Qual é o seu SO de origem? Se os dois sistemas operacionais fossem Linux, você poderia canalizar os arquivos através de tar, gzip e ssh para a máquina de destino. Você pode instalar o cygwin no Windows para obter esse tipo de funcionalidade para o Windows também.
Atualização: A postagem
" Usando Tar e SSH para melhorar as velocidades do SCP " descreve os comandos necessários para enviar o conteúdo do tar pelo ssh.
fonte
Se o disco rígido puder ser removido da interface USB para o SATA / ATA, eu o instalaria no computador de destino. Você obterá velocidades de transferência muito mais rápidas, como outros observaram. Para copiar, supondo que você esteja no Windows, eu faria um simples ROBOCOPIA. É o mais rápido que você realmente pode esperar, embora existam outras alternativas.
Eu tentaria evitar a compactação de todos esses arquivos, porém, há uma boa chance de o tempo para compactar e mover exceder a simples movimentação dos arquivos.
* Adicionada a opção / MT para robocopy. Pode acelerar bastante as transferências quando você estiver em um ambiente com vários threads.
fonte
/MT
ajudar em transferências de disco individuais locais, ou causar surra disco maciça? É comum copiar grandes compartilhamentos entre servidores, mas eles geralmente adicionam latência devido à passagem pela rede e IOPS aprimorado de matrizes RAID.Você pode tentar tirar uma imagem de toda a pasta / unidade
Nos sistemas Linux, você pode usar
dd
para obter uma cópia bruta do sistema de arquivos e copiá-la como um único arquivo grande.Para extrair a imagem no Windows, pode ser necessário instalar o cygwin ou um programa capaz de processar
dd
imagens.fonte
Instale o disco em que os arquivos de origem residem no computador que você está configurando e transfira o disco para o disco. Esqueça o USB. Mesmo a transferência pelo cabo (conecte as máquinas em rede) seria mais rápida que o USB (supondo USB 2.0 e 1Gbps NIC). Se este for um evento recorrente, verifique a replicação.
fonte
Use
rsync
com az
opçãoIsso aumentará a velocidade de transferência pela rede. Portanto, provavelmente não é útil no seu caso.
Após algumas leituras, percebi que, não devemos usar o sinalizador '-z' ao copiar dados de um disco rígido local para outro, pois isso aumenta a sobrecarga. Obrigado a comentar de @FakeName.
fonte
Você está se aproximando rapidamente das limitações do seu disco rígido. De fato, com as unidades de mercadorias atuais, é impossível reduzir o tempo de transferência com uma operação de cópia por arquivo.
Supondo que cada arquivo requer 1 HD de busca e tempo de busca é de 7 ms (o que é um pouco idealizado, realisticamente, cada arquivo exigirá duas buscas, a menos que o bitmap de volume esteja armazenado em cache no ram), na melhor das hipóteses, você gerenciará ~ 142 arquivos / s ( \ $ \ frac {1000} {7} = 142,8 ... \ $).
Com as especificações do OP (30 GB, 900.000 arquivos), é ~ 33K por arquivo (\ $ \ frac {30.000.000k} {900.000} = ~ 33,3 ... \ $. 33KB * 142 = 4,68 MBps.
O tempo mínimo para transferir 30 GB a 5 MBps é de ~ 1 hora e 40 minutos (\ $ \ frac {30.000} {5} = = 6.000 \ $ segundos. \ $ \ Frac {6.000} {60} = 100 \ $ minutos ou 1:40 horas)
Portanto, é impossível alcançar uma velocidade melhor que ~ 5 MBPS, e isso é com uma unidade ideal (e menos operações de busca. Isso é para uma busca por arquivo. Realmente, seriam duas). Você está limitado inteiramente pelo desempenho do disco.
A única maneira de melhorar o desempenho é copiando todo o sistema de arquivos e partindo sequencialmente.
dd
pode fazer isso no linux.O que você está tentando fazer?
fonte
Experimente o 7zip para arquivar os arquivos em um único arquivo. Se possível, use a WLAN com uma conexão adhoc a um notebook.
fonte
Relacionado à resposta do @arcyqwery, você pode compactá-lo e transformá-lo simultaneamente em um arquivo grande. Isso irá acelerar o processo alguns.
Também pode valer a pena usar um programa como o TeraCopy , pois geralmente é mais rápido que o desempenho padrão de cópia do Windows. Você deve testar em circunstâncias semelhantes no seu caso para verificar.
fonte
Eu tive um caso semelhante. Desliguei o antivírus, a velocidade da cópia foi alterada de 3MB / s para 12MB / s.
fonte