AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 68270
In Process
Pablo
Pablo
Asked: 2009-09-24 21:32:38 +0800 CST2009-09-24 21:32:38 +0800 CST 2009-09-24 21:32:38 +0800 CST

通过 smb 加速 rsync

  • 772

我正在通过 SMB 将 Linux 机器备份到 NAS。我在本地安装了 NAS,然后我 rsync 了很多数据(100GB 左右)。我相信这需要很长时间才能完成:超过 12 个小时。一旦复制了所有内容,我预计会更快,因为每天几乎没有任何变化。

有没有办法加快这个速度?

我在想也许 rsync 认为它正在使用本地硬盘并使用校验和而不是时间/大小比较?但我没有找到强制时间和日期比较的方法。还有什么我可以检查的吗?

backup
  • 7 7 个回答
  • 30325 Views

7 个回答

  • Voted
  1. Evan Anderson
    2009-09-24T22:36:25+08:002009-09-24T22:36:25+08:00

    我认为您对 rsync 算法以及如何应用该工具有误解。

    Rsync 的性能优势来自于进行增量传输——也就是说,只移动文件中更改的位。为了确定更改的位,源主机和目标主机必须读取文件并比较块校验和以确定哪些位发生了更改。这是 rsync 的“神奇”部分——rsync 算法本身。

    当您使用 SMB 安装目标卷并使用 rsync 从 Linux“视为”本地源和本地目标(都安装在该计算机上)复制文件时,大多数现代 rsync 版本会切换到“整个文件”复制模式,并关闭增量复制算法。这是一个“胜利”,因为启用 delta-copy 算法后,rsync 将读取整个目标文件(通过来自 NAS 的线路)以确定文件的哪些位已更改。

    使用 rsync 的“正确方法”是在一台机器上运行 rsync 服务器,在另一台机器上运行 rsync 客户端。每台机器都会从自己的本地存储中读取文件(应该非常快),同意文件的哪些位已更改,并且只传输这些位。他们使您使用 rsync 数量的捏造的“cp”。你可以用'cp'完成同样的事情,它可能会更快。

    如果您的 NAS 设备支持运行 rsync 服务器(或客户端),那么您就是在做生意。如果您只是要通过 SMB 将其挂载到源计算机上,那么您不妨使用 'cp' 来复制文件。

    • 33
  2. crantok
    2009-10-14T13:33:39+08:002009-10-14T13:33:39+08:00

    听起来时间戳是您的问题,因为此页面涉及:

    http://www.goodjobsucking.com/?p=16

    建议的解决方案是添加

    --modify-window=1
    

    到 rsync 参数。

    • 7
  3. Starfish
    2011-08-17T09:33:11+08:002011-08-17T09:33:11+08:00

    是的,你可以加快速度。您需要使源或目标看起来像一台远程机器,例如将其寻址为“ localhost:”。

    您声明您正在本地安装 SMB 共享。这使得源或目标看起来像 rsync 的本地路径。rsync 手册页指出源和目标是本地路径的副本将复制整个文件。这在手册页中“--whole-file”选项的段落中有所说明。因此,不使用 delta 算法。使用 " localhost:" 解决方法将恢复 delta 算法功能并加快传输速度。

    • 5
  4. parkamark
    2010-11-28T08:09:47+08:002010-11-28T08:09:47+08:00

    以为我会把我的2p扔在这里。

    我的兄弟刚刚在他的办公室网络上安装了 Buffalo NAS。他现在正在查看异地备份,因此如果办公室被烧毁,至少他的所有商业文件仍然在其他地方(数百英里之外)。

    我的第一个障碍是让他拥有的 VPS(一个小型​​ Linux 虚拟专用服务器,没有什么太强大)以 VPN 用户的身份拨入他的宽带路由器(他为此使用 DrayTek),这样它本身就可以成为其中的一部分他的 VPN,因此它可以以安全的方式直接访问 NAS。得到了排序和出色的工作。

    接下来的问题是将文件从 NAS 传输到 VPS 服务器。我首先进行了 Samba 挂载,然后遇到了与您描述的完全相同(甚至更糟)的问题。我做了一个空运行的 rsync,它花了 1 小时 30 多分钟才弄清楚要传输哪些文件,因为正如 Evan 所说,在这种方法下,另一端不是 rsync,所以它必须做很多归档Samba 挂载上的系统调用/读取(通过 PPTP/隧道连接,往返时间约为 40 毫秒)。完全行不通。

    我几乎不知道 Buffalo 实际上运行了一个 rsync 守护进程,因此,使用它来代替,对于总计 50Gb 的 87k 文件,整个试运行只需要 1 分 30 秒。显然,要传输 50Gb 的文件(从只有 100k/sec 出站带宽的宽带链路上的 NAS)完全是另一回事(这将需要几天时间)但是,一旦初始 rsync 完成,任何增量备份都应该是油脂减轻(他的数据每天不会有太大变化)。

    我的建议是使用支持 rsync 的体面的 NAS,原因 Evan 上面已经说过了。它会解决你所有的问题。

    • 3
  5. Antoine Benkemoun
    2009-09-24T22:21:13+08:002009-09-24T22:21:13+08:00

    闻起来像你有一个更便宜的 NAS。它也可能来自您的网络带宽......

    “标准”消费级 NAS 在繁重的 IO 方面确实很弱,而这正是您在这里尝试做的。它也可能是连接您的 PC 和 NAS 的廉价交换机,其强度不足以正确处理所有数据包。

    • 0
  6. Rajat
    2009-09-24T22:25:28+08:002009-09-24T22:25:28+08:00

    试试这个,它认为至少能给你 10% 的速度你得到http://www.thegeekstuff.com/2009/09/linux-remote-backup-using-rsnapshot-rsync-utility/

    • 0
  7. dtoubelis
    2011-08-17T10:20:10+08:002011-08-17T10:20:10+08:00

    有两个潜在的问题来源 - 您使用了不正确的命令行选项,或者您的 NAS 存在时间戳问题(或两者都有:-)。请查看此线程“rsync 到 NAS 每次都复制所有内容”以获取更多信息。

    • 0

相关问题

  • 总大小(磁盘)与总大小(媒体)

  • 社区对备份解决方案的意见

  • 无法读取不同 LTO-3 驱动器上的 LTO-3 磁带

  • 使用 TSM 备份时跳过硬链接

  • 使用 rsync 维护名称更改的目录的副本

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve