J'ai besoin de copier des données qui incluent 900 000 petits fichiers totalisant environ 30 gigaoctets sur un ordinateur Windows. Cependant, il doit pouvoir être copié et configuré en moins d'une heure et demie, et cela peut prendre plus de 5 heures pour copier un disque dur USB, principalement en raison de la quantité folle de fichiers. Existe-t-il un moyen meilleur / plus rapide de gérer cela, comme faire une sorte de copie de bloc? Merci
usb-storage
file-transfer
Joe Lyga
la source
la source
Réponses:
Avec un grand nombre de fichiers, il est préférable de créer une archive tar afin d'avoir moins de fichiers à traiter. Si vous utilisez un disque dur externe USB 2.0, vous devriez envisager d'utiliser USB 3.0, eSATA ou utiliser un réseau local rapide.
Quel est votre système d'exploitation source? Si vos deux systèmes d'exploitation étaient Linux, vous pouvez diriger les fichiers via tar, gzip et ssh vers la machine cible. Vous pouvez également installer cygwin sur Windows pour obtenir ce type de fonctionnalité pour Windows.
Mise à jour:
" Utiliser Tar et SSH pour améliorer les vitesses SCP " décrit les commandes nécessaires pour envoyer le contenu de tar via ssh.
la source
Si le disque dur peut être retiré de l'interface USB et sur SATA / ATA, je l'installerais sur l'ordinateur de destination. Vous obtiendrez des vitesses de transfert beaucoup plus rapides, comme d'autres l'ont noté. Pour copier, en supposant que vous êtes sous Windows, je ferais une ROBOCOPIE simple. C'est à peu près aussi vite que vous pouvez vraiment l'espérer, bien qu'il existe d'autres alternatives.
J'essaierais cependant d'éviter de compresser tous ces fichiers, il y a de fortes chances que le temps de compression et de déplacement dépasse simplement le déplacement des fichiers.
* Ajout de l'option / MT pour robocopy. Il peut considérablement accélérer les transferts lorsque vous êtes dans un environnement multi-thread.
la source
/MT
sur les transferts locaux d'un seul disque ou provoquera-t-il une destruction massive des disques? Il est courant de copier des partages importants entre les serveurs, mais ils ont souvent à la fois une latence supplémentaire en raison du passage sur le réseau et des IOPS améliorés à partir des baies RAID.Vous pouvez essayer de prendre une image de l'ensemble du dossier / lecteur
Sur les systèmes Linux, vous pouvez utiliser
dd
pour obtenir une copie brute du système de fichiers et la copier en un seul gros fichier.Pour extraire l'image sur Windows, vous devrez peut-être installer cygwin ou un programme capable de traiter les
dd
images.la source
Installez le disque où résident les fichiers source sur l'ordinateur que vous configurez et transférez le disque sur le disque. Oubliez l'USB. Même le transfert sur le fil (mettre en réseau les machines ensemble) serait plus rapide que l'USB (en supposant USB 2.0 et NIC 1 Gbps). S'il s'agit d'un événement récurrent, recherchez plutôt la réplication.
la source
Utiliser
rsync
avecz
option.Cela augmentera la vitesse de transfert sur le réseau. Donc très probablement pas utile dans votre cas.
Après quelques lectures supplémentaires, je me suis rendu compte que nous ne devrions pas utiliser l'indicateur «-z» lors de la copie de données d'un disque dur local vers un autre, cela augmente les frais généraux. Merci au commentaire de @FakeName.
la source
Vous approchez rapidement des limites de votre disque dur. En fait, avec les lecteurs de produits actuels, il est impossible de mesurer votre temps de transfert avec une opération de copie par fichier.
En supposant que chaque fichier nécessite 1 recherche HD et que le temps de recherche soit de 7 ms (ce qui est un peu idéal, de manière réaliste, chaque fichier nécessitera deux recherches, à moins que le bitmap de volume ne soit mis en cache dans la mémoire RAM), au mieux, vous gérerez ~ 142 fichiers / sec ( \ $ \ frac {1000} {7} = 142,8 ... \ $).
Avec les spécifications OP (30 Go, 900 000 fichiers), c'est ~ 33 Ko par fichier (\ $ \ frac {30 000 000 k} {900 000} = ~ 33,3 ... \ $. 33 Ko * 142 = 4,68 Mo / s).
Le temps minimum pour transférer 30 Go à 5 Mbps est d'environ 1 heure et 40 minutes (\ $ \ frac {30 000} {5} = = 6 000 \ $ secondes. \ $ \ Frac {6 000} {60} = 100 \ $ minutes ou 1:40 heures)
Par conséquent, il est impossible d'atteindre une vitesse meilleure que ~ 5 MBPS, et c'est avec un lecteur idéal (et moins d'opérations de recherche. C'est pour une recherche par fichier. En réalité, ce serait deux). Vous êtes entièrement limité par les performances du disque.
La seule façon d'améliorer les performances est de copier le système de fichiers et la partition de manière séquentielle.
dd
peut le faire sur linux.Qu'essayez-vous de faire?
la source
Essayez 7zip pour archiver les fichiers dans un seul fichier. Si possible, utilisez le WLAN avec une connexion ad hoc à un ordinateur portable.
la source
En rapport avec la réponse de @arcyqwery, vous pourrez peut-être le compresser et le transformer simultanément en un seul gros fichier. Cela accélérera un peu le processus.
Il peut également être utile d'utiliser un programme comme TeraCopy , car il est généralement plus rapide que les performances de copie par défaut de Windows. Vous devriez cependant tester avec des circonstances similaires dans votre cas.
la source
J'avais un cas similaire. J'ai désactivé l'antivirus, la vitesse de copie est passée de 3 Mo / s à 12 Mo / s.
la source