移动大量文件的最快方法?

我必须移动320,000个文件,80,000个文件夹(仅100 Gb)的数据。 一些文件大于1GB,但大部分都小于1KB。

我已经看过复制文件速度最快的方法,但是我不确定这些文件有多么有用,我的问题不是关于纯传输速度,而是真的关于Windows能够如何快速处理32万个文件的IO。

你认为我会看到使用xcopy,robocopy,teracopy或fastcopy的速度好处吗?

我们花了很长时间(12小时以上)复制一次(使用robocopy),而且我讨厌再次这样做。 我能做些什么来加快速度?

东西在USB 2.0外部驱动器上。

像robocopy这样的东西将是你最好的select。 USB驱动器不能处理大量的IO开始。

我使用robocopy将数百万个小文件推送到USB驱动器。 这需要时间,但它完成了工作。

正如mrdenny所说,Robocopy将是最好的,部分原因是它的稳健性。 如果您确定要移动的文件清洁,我可以提供的最佳build议是确保防病毒软件在被移动时被禁用。 你真的不想让所有这些文件被扫描的开销。

显然,这里比所有提到的方法都快。 更快,但不太灵活:-) 如果将文件放在单独的分区上,则可以将整个分区复制到目标磁盘。

我不熟悉任何用于这项工作的免费Windows工具(支持VSS的工具将是完美的),但是确保您可以启动Ghost CD或Partition Magic CD,或启动Linux独立CD。 在Linux中,你只需要dd分区,或者ntfsclone如果这恰好是一个NTFS分区。

如果我是你,我会改变外部硬盘火线,速度传输比USB2快很多。

我想也许把文件打包成一个“tar”,然后传输文件会节省一点时间。 因为它减less了I / O时间,因为你只需要复制1个巨大的文件,相比之下,数千个文件,它也消耗更less的资源,我相信(在复制阶段)。 或者,您可以将焦油stream直接传输到USB驱动器。

我发现复制大量文件的最有效方法是首先将它们stream入ISO文件,然后复制ISO。 通过这种方式,磁盘不需要发出复制文件所需的数千个命令。

当然这取决于你的目录结构。 我很幸运有一个4.7GB的间隔创build一个新的目录,所以它创build了一个VBScript,使过程自动化更容易。

如果您首先将源文件打包到单个存档(tar或压缩到zip等)中,然后通过networking传输存档,然后将存档解压到目的地。

请不要忘记,当您通过networking传输档案时,您最好使用ftp(或其他面向文件的传输协议)而不是简单的SMB文件副本。

使用上述过程,我经常在多个地理位置分散的数据中心(美国,欧洲,亚洲)之间传输大约60GB(大约50,000-75,000个文件)的应用程序目录。 一次传输一个文件和通过FTP传输一个压缩文件的速度差10-40倍。

Rsync也可以成为你的朋友(就像在许多其他文件传输场景中一样)。

如果您愿意接受商业select,那么基于UDP的二进制stream媒体解决scheme可以推送多个UDPstream,对您来说可能是有价值的。 看看http://www.filecatalyst.com/

另一个select是使用BitTorrent使用内置跟踪器或DHT打开。 客户端将所有的文件分组在一起(如果可用,使用2MB或更大)。 在接收端,当您将文件写入硬盘驱动器时,您将收到大块文件。 这有助于将您的小文件整合到2MB块中,从而获得更好的传输速率