![最有效的 Linux 备份软件 -> Linux 处理大量文件时](https://linux22.com/image/1244583/%E6%9C%80%E6%9C%89%E6%95%88%E7%9A%84%20Linux%20%E5%A4%87%E4%BB%BD%E8%BD%AF%E4%BB%B6%20-%3E%20Linux%20%E5%A4%84%E7%90%86%E5%A4%A7%E9%87%8F%E6%96%87%E4%BB%B6%E6%97%B6.png)
我有两个 NAS。
我用一个来工作,另一个用作备份。现在我已经设置好了,慢的。运行备份需要星期即使
对于 7 TB 且包含 1,979,407 个文件来说,这似乎也有点奇怪,尤其是当两个系统都是 RAID-5 并且网络都是千兆位时。
我一直在研究 rsync 手册页,但我真的不明白各种拓扑有什么区别。
目前,所有处理都在备份 NAS 上进行,主 NAS 的主卷通过 SMB 本地挂载。我怀疑 SMB 开销让我很头疼,尤其是在处理大量文件时。
我认为我需要在主 nas 上将 rsync 设置为守护进程,然后运行本地 rsync 客户端来连接它,希望这能让我完全避免整个 SMB 中间事件,但除了提到它在那里之外,我几乎找不到关于为什么人们想要使用守护进程模式进行 rsync 的信息。
这是我当前的 rsync 命令行:
rsync -r -progress --delete /cifs/Thecus/ /mnt/Storage/
有什么意见吗?有没有更好的方法/工具来做到这一点?
编辑:
好的,回答其他问题:
“主”NAS 是色卡司 N7700。我安装了额外的模块,可以给我 SSH,它有rsync,但它不在 $PATH 中,我还没有弄清楚如何编辑本地 $PATH,以便在重新启动之间保持不变。
“备份”NAS 是一个 DIY 事物,围绕1.6Ghz 通过主板和Adaptec 硬件 RAID 卡。它运行 CentOS 5,具有完整的桌面环境。它是我运行 rsync 的硬件。(千兆位是通过附加的 PCI 卡实现的)。
进一步编辑:
好的,SSH 上的 rsync 已经运行了(谢谢 lajuette!)。
我不得不在命令行上做一些调整,我使用以下参数运行 rsync:( 注意:我特意不使用 -a,因为我想将所有权更改为本地帐户,以免惊动 SELinux)
rsync -rum --inplace --progress --delete --rsync-path=/opt/bin/rsync [email protected]:/raid/data/Storage /mnt/Storage
看起来效果不错。我看看需要多长时间。
答案1
你是对的:当涉及到大量文件时,SMB 的速度非常慢。
我自己使用 rsync 来同步我的音乐库。
rsync -aum --delete /my/music/library/* 192.168.1.5:/backup/of/music/library/
这样我就告诉 rsync 通过 ssh 进行同步。您需要在目标机器上运行 ssh 服务器(我的情况是 192.168.1.5),并在两台机器上安装 rsync。
以下是对选项的解释:
- -a:列出项目存档所有文件(包括选项rlptgoD)
- -u:更新现有文件,如果它们已经存在,则不要再次复制它们
- -m:修剪空目录
- --delete:删除源上已删除的目标文件
通过标志 -a 继承:
- -r:递归遍历子目录
- -l:将符号链接保留为符号链接
- -p:保留权限
- -t:保留修改时间
- -g:保留组
- -o:保留所有者
- -D:保留设备和特殊文件
这应该可以快速同步您的 NAS。如果您尝试了,请发布您的结果!
答案2
如果您仍然遇到问题,或者其他读者也遇到问题,我建议您查看以下 rsync 选项(除了 lajuette 提到的选项之外,例如非常有用的 -u 选项):
-z(压缩:除非您的网络比 CPU 快得多,否则这可能会节省时间,但您可以测试一下)
--partial-dir='.rsync-partial'(以防连接中断并且您正在传输一个 7 GB 的电影文件,您可以继续从上次中断的地方继续,而不必重新启动;我认为与此不兼容的 --inplace 太危险了)
-v(详细模式 - 仅用于测试/故障排除)
--exclude-from='your-exclude-list-file'(如果您有备份文件、系统文件、缩略图、临时/缓存文件、某些目录等,您不需要备份等,请将它们列在排除文件中,并使用可选的通配符;这可能会减少音量)
--delete 选项非常危险,应谨慎使用,因为如果您不小心删除了一个或多个文件,并且在意识到之前您进行了备份(例如通过 cron 作业),那么您的备份副本也会消失。
应该在 $HOME/.profile 文件中设置/修改 PATH 变量,该变量会在您每次登录时运行。
除此之外,我赞同 MattBianco 的建议,首先尝试找到瓶颈。
希望这可以帮助。
答案3
作为守护进程运行的 rsync 是不安全的,因此它实际上只对您想要公开访问的商店有用。实现方法是让 ssh 在 NAS 上工作,以便您可以nas-device:/path/to/storage
直接 rsync 到,然后从那里您可以调整 ssh 设置以进行优化。
答案4
您知道如何使用硬链接来创建节省空间的时间点备份吗?
这是一篇关于此的文章。 http://www.mikerubel.org/computers/rsync_snapshots/
由于您正在使用 rsync,所以您已经完成一半了,但它可能会对您现有的系统有所帮助。
本质上,您可以存储源数据的很多副本。每个副本看起来都像一个完整的目录结构,但版本之间不会发生变化的文件在磁盘上共享相同的 inode。尽管最简单的解决方案是使用带有 --link-dest 参数的 rsync(如上所述),但其他备份软件也实现了该技术,例如:
- 备份电脑 :: 备份电脑.sourceforge.net
- 回到过去 :: backintime.le-web.org
- rsnapshot :: rsnapshot.org(我个人没有用过这个)