我正在切换托管服务提供商,需要将数百万个上传的文件传输到新服务器。所有文件都在同一个目录中。是的。你没看错。;)
过去我这样做过:
- 压缩源服务器中的所有文件
scp
新服务器的 zip- 解压
- 将目录移动到适当的位置
- 无论出于何种原因,我从第 1 步开始的拉链总是将路径与它们一起带走,并要求我进行 mv。
我最后一次这样做大约需要 4-5 天才能完成,这大约是我现在所拥有的 60%。
我希望有更好的方法。你有什么建议?
文件结构是散列的。像这样的东西:AAAAAAAAAA.jpg
-ZZZZZZZZZZ.txt
这是我们正在折腾的一个想法:
根据 3 个字母前缀将拉链分成大量的迷你拉链。就像是:
AAAAAAAAAA.jpg - AAAZZZZZZZ.gif => AAA.zip
理论优点:
- 可以加快传输速度,允许同时传输多个 zip
- 可以限制因传输失败而损失的时间。(等待 2 天转移最终失败是可怕的)
理论缺点:
- 可能会大大减慢初始 zip 的速度,因为 zip 必须通过通配符 (
AAA*
) 查找文件,这可能会通过一次运行多个 zip 线程来抵消,使用所有 CPU 而不是只使用一个。 - 复杂?
我们也考虑过 rsync 和 scp,但担心手动传输每个文件的费用。而且由于远程服务器是空的,我不需要担心已经存在的东西。
你怎么看?你会怎么做?
(是的,我最终会将这些移动到 Amazon S3,我只是将它们运送到一个磁盘,但与此同时,我昨天需要它们!)