Назад | Перейти на главную страницу

Самый быстрый способ переместить большое количество файлов?

Мне нужно переместить около 320 000 файлов, 80 000 папок (всего 100 Гб) данных. Некоторые файлы имеют размер> 1 ГБ, но большинство - <1 КБ.

Я смотрел на Самый быстрый способ копирования файлов но я не уверен, насколько это будет полезно, моя проблема не в чистой скорости передачи, а в том, насколько быстро Windows может справиться с вводом-выводом 320000 файлов.

Как вы думаете, я увижу преимущества в скорости при использовании xcopy, robocopy, teracopy или fastcopy?

Нам потребовалось много времени (12 часов +), чтобы скопировать их один раз (с использованием robocopy), и я очень не хочу делать это снова. Что я могу сделать, чтобы это ускорить?

Все находится на внешнем диске USB 2.0.

Что-то вроде robocopy будет вашим лучшим выбором. Для начала USB-накопители не справляются с большим количеством операций ввода-вывода.

Я загружал миллионы небольших файлов на USB-накопители и с них с помощью robocopy. На это нужно время, но он выполняет свою работу.

Как сказал mrdenny, лучше всего подойдет Robocopy, отчасти из-за его надежности. Лучший совет, который я могу предложить, если вы уверены в чистоте перемещаемых файлов, - это убедиться, что антивирусное программное обеспечение отключено во время их перемещения. Вам действительно не нужны накладные расходы на сканирование всех этих файлов.

Очевидно, есть более быстрый способ, чем все упомянутые здесь. Быстрее, но менее гибко :-) Если вы поместили файлы в отдельный раздел, вы можете скопировать весь раздел на целевой диск.

Я не знаком с каким-либо бесплатным инструментом Windows для этой работы (инструмент с поддержкой VSS был бы идеальным), но наверняка вы можете загрузиться с Ghost CD, Partition Magic CD или загрузиться с автономного компакт-диска Linux. В Linux вы просто dd раздел, или ntfsclone если это раздел NTFS.

На вашем месте я бы сменил внешний жесткий диск на Firewire, скорость передачи данных намного выше, чем у USB2.

Я думаю, что упаковка файлов в один «tar» с последующей передачей файлов сэкономит немного времени. Потому что это уменьшает время ввода-вывода, поскольку вы копируете только 1 гигантский файл, по сравнению с тысячами файлов, он также потребляет меньше ресурсов, я считаю (на этапе копирования). Или вы можете направить поток tar прямо на USB-накопитель.

Я обнаружил, что наиболее эффективный способ скопировать большое количество файлов - сначала передать их в файлы 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. Клиент сгруппирует все файлы вместе в блоки (используйте 2 МБ или больше, если доступно). На принимающей стороне вы будете получать файлы большими блоками по мере их записи на жесткий диск. Это помогает объединить ваши небольшие файлы в блоки по 2 МБ, и вы получите лучшую скорость передачи и