QNAP单向同步RTRR与rsync对比

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服务器”时,作业设置页面主要区别如下表所示。

设置内容RTRRrsync
选择文件夹:
添加配对文件夹可以设置多对配对文件夹只能设置一对配对文件夹
计划:
作业计划往本地:可选(计划程序、在作业后运行、无计划)
往远端:额外增加实时同步选项
可选(计划程序、在作业后运行、无计划)
规则-筛选器:
筛选器可配置无该选项
规则-策略:
使用TCP BBR拥塞控制往本地:无该选项
往远端:可勾选
往本地:无该选项
往远端:可勾选
文件和文件夹名称冲突选项往本地:无该选项
往远端:可选(跳过或重命名)
无该选项
检查文件内容可勾选,默认为未勾选状态可勾选,默认为勾选状态
复制ACL和扩展属性可勾选往本地:无法勾选
往远端:可勾选
不创建快照往本地:强制勾选
往远端:可勾选
往本地:无该选项
往远端:可勾选
应用目标权限(根据目标操作系统的默认权限修改文件权限)无该选项可勾选
暂停Hyper Data Protector中的脱机重复数据删除往本地:无该选项
往远端:可勾选
无该选项
规则-选项:
连接超时、重试次数、重试间隔可配置无该选项
RTRR与rsync单向同步作业设置页面对比

从设置页面看来,RTRR相比rsync主要增加了实时同步、文件筛选器、自定义超时时间等功能。

运行机制对比

除了设置页面的选项区别之外,两种同步方式的一些具体机制也有所不同。

文件内容检查机制

准备一个文件夹,包含3张大小为68.6MiB的位图文件,文件夹总大小为205MiB。使用RTRR和rsync两种方式,在“检查文件内容”选项开启和关闭时,分别尝试在已经进行一次成功同步的情况下再次进行同步。下表为测试后HBS 3中显示的“已传输的大小”数据值。对比显示,当开启“检查文件内容”选项时,RTRR需要传输完整的文件内容来完整检查文件差异,而rsync只需传输少量文件信息来进行文件对比;当关闭“检查文件内容”时,RTRR无需传输文件内容,而rsync反而会无条件传输文件内容。

两种同步方式的“检查文件内容”机制并不相同,因此,若需要快速进行增量同步,使用RTRR时应当关闭“检查文件内容”选项,使用rsync时则应开启。这也解释了该选项在两种同步方式下默认值不同的原因。

RTRRrsync
“检查文件内容”开205.99MiB125B
“检查文件内容”关0B206.04MiB
两种同步方式分别在开关“检查文件内容”的情况下,第二次同步所传输的数据大小(HBS 3中显示值)

文件变化判定机制

在已经完成一次同步的情况下,尝试修改文件内容但保持文件大小、修改时间不变,或是保持文件内容不变但调整修改时间,然后再次进行同步。同步结果如下表所示。

测试结果显示,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的强大功能。

留言

有想法?请给我们留言!您的留言不会直接显示在网站内。