我正在实施WD My Book Live Duo的备份过程。 该设备configuration有软件RAID0。 备份源目录是设备的根目录,目标是同一文件系统内的一个目录(适当注意避免备份文件本身的recursion复制)。 备份文件有一层encryption(源文件是明文),需要比NAS能够提供更多的计算能力。 因此,在同一networking中的服务器上执行耗费CPU的操作。
NAS正在通过NFS导出两个目录。 一个是只读的,包含整个文件系统(它是备份源),另一个是读写(它是备份根目录)。 configuration细节在post结尾处陈述。
备份服务器使用encfs作为encryption层,使用encfs rsnapshot执行备份。
问题是:备份的第一步是将上一个备份目录的cp -al到一个新的目录中,需要大约两个小时才能完成。
到目前为止,我已经在NFS服务器端执行了以下testing:
cp -al操作需要五分钟 dd /dev/zero ~/test.tmp显示的吞吐量非常接近100 MiB / s top显示CPU消耗低。 然而, 平均负荷很高(〜4) iperf传输速率为1000 Mpbs,因此networking链路正在以预期的满容量运行 vmstat 1显示非常高的wa (等待IO)值(〜80-90%) ping -M do mybackuptestingping -M do mybackup )似乎没有任何影响 async导出似乎没有任何效果 以下testing已经在NFS客户端进行了:
dd /dev/zero /e/test.tmp (已encryption)显示与dd /dev/zero /b (未encryption)相同的吞吐量。 所以encryption层似乎不成问题。 传输速率是〜30 MiB / s,这是相当低的,艰难的。 使用SMB来执行这个testing会得到类似的结果 top显示CPU消耗低。 负载平均值低于2(服务器有2个核心) vmstat 1显示系统几乎空闲 tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768挂载选项似乎没有任何影响 configuration文件
NFS服务器
# /etc/exports # 'mybackup' is the name of the backup server / mybackup(ro,sync,no_subtree_check,no_root_squash,crossmnt) # This export has to be explicitly declared to enable clients to access /DataVolume/b /DataVolume mybackup(ro,async,no_subtree_check,no_root_squash) # This is the backup root. /DataVolume/b mybackup(rw,async,no_subtree_check,no_root_squash)
NFS客户端
# /etc/fstab # 'ewnas' is the name of the NAS ewnas:/ /r nfs auto,noatime,tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768 0 0 ewnas:/DataVolume/b /b nfs auto,noatime,tcp,hard,intr,nfsvers=3,rsize=32768,wsize=32768 0 0
我已经坚持了几天了。 任何贡献将非常感激。
提前致谢,
吉列尔莫
你有没有尝试rsync,看看是否性能更好?
rsync -Paz --exclude-from 'rsync-exclude.txt' fromssh@server:path tossh@server:path
参考讨论