QNAP品牌NAS(Network attached storage,网络附加存储)上提供的HBS 3工具可用于在NAS之间之间同步文件。若在两台QNAP NAS之间同步文件,常用的有RTRR和rsync两种方式。其中RTRR是QNAP的专有协议,rsync则是Linux系统上一款快速、功能全面的文件复制工具。那这两种方式有什么具体区别,应当选择哪种方式来进行同步工作呢?本文将实测两种同步方式的设置选项和运行机制区别。
本文测试所用的本地NAS系统版本为QuTScloud c5.1.5.2651,HBS 3版本为v23.0.0921。远端NAS系统版本为QTS 5.1.5.2679,HBS 3版本为v24.0.0304。
设置选项对比
设置选项上,最明显的区别是只有RTRR支持双向同步,而rsync只支持单向同步(QNAP将远端向本地的单向同步称为“活动同步”,但本文仍将两个方向的单向同步统称为“单向同步”)。除此之外,在单向同步下,两者的设置页面也存在差异。
在HBS 3上创建单向同步任务,目标设置为“远程NAS”(即RTRR)和“远程rsync服务器”时,作业设置页面主要区别如下表所示。
设置内容 | RTRR | rsync |
选择文件夹: | ||
添加配对文件夹 | 可以设置多对配对文件夹 | 只能设置一对配对文件夹 |
计划: | ||
作业计划 | 往本地:可选(计划程序、在作业后运行、无计划) 往远端:额外增加实时同步选项 | 可选(计划程序、在作业后运行、无计划) |
规则-筛选器: | ||
筛选器 | 可配置 | 无该选项 |
规则-策略: | ||
使用TCP BBR拥塞控制 | 往本地:无该选项 往远端:可勾选 | 往本地:无该选项 往远端:可勾选 |
文件和文件夹名称冲突选项 | 往本地:无该选项 往远端:可选(跳过或重命名) | 无该选项 |
检查文件内容 | 可勾选,默认为未勾选状态 | 可勾选,默认为勾选状态 |
复制ACL和扩展属性 | 可勾选 | 往本地:无法勾选 往远端:可勾选 |
不创建快照 | 往本地:强制勾选 往远端:可勾选 | 往本地:无该选项 往远端:可勾选 |
应用目标权限(根据目标操作系统的默认权限修改文件权限) | 无该选项 | 可勾选 |
暂停Hyper Data Protector中的脱机重复数据删除 | 往本地:无该选项 往远端:可勾选 | 无该选项 |
规则-选项: | ||
连接超时、重试次数、重试间隔 | 可配置 | 无该选项 |
从设置页面看来,RTRR相比rsync主要增加了实时同步、文件筛选器、自定义超时时间等功能。
运行机制对比
除了设置页面的选项区别之外,两种同步方式的一些具体机制也有所不同。
文件内容检查机制
准备一个文件夹,包含3张大小为68.6MiB的位图文件,文件夹总大小为205MiB。使用RTRR和rsync两种方式,在“检查文件内容”选项开启和关闭时,分别尝试在已经进行一次成功同步的情况下再次进行同步。下表为测试后HBS 3中显示的“已传输的大小”数据值。对比显示,当开启“检查文件内容”选项时,RTRR需要传输完整的文件内容来完整检查文件差异,而rsync只需传输少量文件信息来进行文件对比;当关闭“检查文件内容”时,RTRR无需传输文件内容,而rsync反而会无条件传输文件内容。
两种同步方式的“检查文件内容”机制并不相同,因此,若需要快速进行增量同步,使用RTRR时应当关闭“检查文件内容”选项,使用rsync时则应开启。这也解释了该选项在两种同步方式下默认值不同的原因。
RTRR | rsync | |
“检查文件内容”开 | 205.99MiB | 125B |
“检查文件内容”关 | 0B | 206.04MiB |
文件变化判定机制
在已经完成一次同步的情况下,尝试修改文件内容但保持文件大小、修改时间不变,或是保持文件内容不变但调整修改时间,然后再次进行同步。同步结果如下表所示。
测试结果显示,RTRR(“检查文件内容”关)同步时,以修改时间为判断依据,若修改时间发生变化则传输整个文件。rsync(“检查文件内容”开)同步时,同样以修改时间为判断依据,但若文件内容没有变化则无需传输整个文件。理论上,原版rsync在使用--checksum
命令行参数时,能够根据文件的校验和来判断文件内容是否变化,而不依赖修改日期和大小,且“检查文件内容”选项描述为“当文件日期、大小和名称都相同时,另外检查文件内容”,该描述显然与实际情况不符,可能当前版本存在bug。
传输方式 | 源文件内容是否变化 | 源文件修改时间是否变化 | 已传输的大小(HBS 3显示数值) | 目标文件是否更新 |
RTRR(“检查文件内容”关) | 是 | 否 | 0B | 未更新 |
RTRR(“检查文件内容”关) | 否 | 是 | 68.66MiB | 更新 |
rsync(“检查文件内容”开) | 是 | 否 | 13B | 未更新 |
rsync(“检查文件内容”开) | 否 | 是 | 33.34KiB | 更新 |
增量同步机制
rsync的增量传输功能非常出名,它可以只传输文件不同的部分,从而大大减少网络传输的数据量。准备一个包含3张位图文件的文件夹进行同步(每个文件大小为68.6MiB),在同步完毕后,我在源文件夹内的其中一个位图文件中绘制一个10*10像素的纯色矩形后再次同步,来考验两者增量数据传输的能力。
RTRR在关闭“检查文件内容”的情况下传输大小为68.66MiB,与文件大小接近。rsync在开启“检查文件内容”的情况下传输大小为124.45KiB。这说明RTRR在检测到文件发生变化时需要传输整个文件,而rsync只需要传输变化了的部分。
结论
RTRR作为QNAP的专有同步协议,具有一些与QNAP设备紧密配合的功能,能够实现实时单向同步等功能,相比rsync使用更便捷。rsync拥有先进的增量传输功能,在文件部分变化时能够只需传输变化的部分,传输效率较高;但rsync在QNAP设备中只能根据修改日期和大小判断文件是否需要同步,缺少根据文件校验和判断的选项,存在一定的局限,并没有完全发挥rsync的强大功能。
留言
有想法?请给我们留言!您的留言不会直接显示在网站内。