在两个NFS 1Gb / s文件夹之间移动9千万个文件(270GB)的最快方法

时间:2017-02-04 05:49:35

标签: rsync nfs

我需要将9000万个文件从NFS文件夹移动到第二个NFS文件夹,两个到NFS文件夹的连接都使用相同的eth0,即NFS服务器的1Gb / s,不需要同步,只移动(覆盖如果它存在)。我认为我的主要问题是文件数量,而不是总大小。最好的方法应该是每个文件对NFS文件夹的系统调用较少的方式。

我尝试了cp,rsync,最后http://moo.nac.uci.edu/~hjm/parsync/ parsync首先花了10个小时生成12 GB gzip的文件列表,花了40个小时后没有复制任何文件,它一直工作到10个线程,直到我取消了它并开始调试,我发现它正在使用-vvv选项(使用rsync)对每个文件(来自列表)再次进行调用(stat?):

[sender] make_file(accounts/hostingfacil/snap.2017-01-07.041721/hostingfacil/homedir/public_html/members/vendor/composer/62ebc48e/vendor/whmcs/whmcs-foundation/lib/Domains/DomainLookup/Provider.php,*,0)*

parsync命令是:

 time parsync  --rsyncopts="-v -v -v" --reusecache --NP=10 --startdir=/nfsbackup/folder1/subfolder2 thefolder /nfsbackup2/folder1/subfolder2

每个rsync都有以下形式:

rsync --bwlimit=1000000 -v -v -v -a --files-from=/root/.parsync/kds-chunk-9 /nfsbackup/folder1/subfolder2 /nfsbackup2/folder1/subfolder2

已挂载NFS文件夹:

server:/export/folder/folder    /nfsbackup2   nfs      auto,noexec,noatime,nolock,bg,intr,tcp,actimeo=1800,nfsvers=3,vers=3 0 0

知道如何指示rsync将列表中已有的文件从nfs复制到nfs2文件夹吗?或者任何有效制作此副本的方法(每个文件一个系统调用?)

1 个答案:

答案 0 :(得分:1)

我曾经遇到过同样的问题,我发现最好只运行一个find命令并单独移动每个文件。

cd /origin/path
find . | cpio -updm ../destination/
  

-u命令将覆盖现有文件