Мне нужно переместить около 320 000 файлов, 80 000 папок (всего 100 ГБ) данных. Некоторые файлы> 1 ГБ, но большинство <1 КБ.
Я посмотрел на самый быстрый метод копирования файлов, но я не уверен, насколько полезным будет какой-либо из них, моя проблема не в чистых скоростях передачи, а в том, насколько быстро Windows может справиться с IO из 320 000 файлов.
Как вы думаете, я буду видеть преимущества в скорости при использовании ксерокопии, робокопии, теракопии или фасткопии?
Нам потребовалось много времени (+ 12 часов), чтобы скопировать их один раз (с помощью робокопии), и я ненавижу делать это снова. Что я могу сделать, чтобы ускорить это?
Материал находится на внешнем диске USB 2.0.
Я обнаружил, что наиболее эффективный способ скопировать большое количество файлов - это сначала направить их в файлы ISO, а затем скопировать ISO. Таким образом, диск не заботится о выдаче тысяч команд, необходимых для копирования файлов.
Конечно, это зависит от вашей структуры каталогов. Мне посчастливилось создать новый каталог с интервалами 4,7 ГБ, поэтому он значительно облегчил создание VBScript для автоматизации процесса.
источник
Вы почти наверняка почувствуете лучшую общую производительность для последовательности передачи, если сначала упакуете исходные файлы в один архив (tar или сжатый в zip и т. Д.), Затем перенесете архив по сети, а затем распакуете архив в пункт назначения.
Пожалуйста, не забывайте, что при передаче архива по сети вам будет лучше использовать ftp (или другой файлово-ориентированный протокол передачи), чем простую копию файла SMB.
Используя процесс, подобный описанному выше, я регулярно переносил каталоги приложений объемом около 60 ГБ (с примерно 50 000–75 000 файлов) между несколькими географически разделенными центрами обработки данных (США, Европа, Азия). Разница между передачей одного файла за раз и передачей сжатого архива по FTP в 10-40 раз быстрее.
Rsync также может быть вашим другом (как и во многих других сценариях передачи файлов).
Если вы открыты для коммерческих возможностей, вам может пригодиться решение для двоичной потоковой передачи на основе UDP, которое может передавать биты по нескольким потокам UDP. Взгляните на http://www.filecatalyst.com/
источник
Другой вариант - использовать Bittorrent, используя встроенный трекер или DHT. Клиент будет группировать все файлы по блокам (используйте 2MB или больше, если доступно). На приемном конце вы будете получать файлы большими блоками по мере их записи на жесткий диск. Это помогает консолидировать ваши небольшие файлы в куски по 2 МБ, и вы получаете лучшую скорость передачи и
источник