• 那是云首页
  • 快捷导航
  • 更多
    设为首页收藏本站
  • |

#楼主# 2022-3-20 09:06

跳转到指定楼层
【老骥伏枥-虎年大礼包】不同品牌NAS之间实现数据同步备份的问题


提出问题的背景

前几年的大礼包都是基于嵌入式linux逆向工程讲解关于破解不同品牌的NAS固件。今年的礼包我们暂时不谈破解,而是讨论linux系统内的一个相当重要的应用软件。在广大坛友都上手使用了各种品牌的NAS系统之后,就提出了“不同品牌NAS之间实现数据同步备份”这样一个应用方面的问题。这个问题的提出是必然现象,因为NASNetwork Attached Storage:网络附属存储)按字面简单说就是连接在网络上,具备资料存储功能的装置,因此也称为“网络存储器”。它是一种专用数据存储服务器。它以数据为中心,当然数据同步备份是一个必不可少的必备功能。

其实各种品牌的NAS都会提供自己的专有的同步备份功能,在用户GUI界面设计上,有些品牌做的比较好,有些比较差。但它们都不能保障对于不同品牌NAS之间实现数据同步备份。针对这个问题,笔者进行了一些研究和测试,现在就把自己的一些体会与广大坛友们分享一下。目的是为了进行教学, 研究和技术交流。

第一讲
介绍rsync跨平台差分备份工具软件

rsync是以GNU通用公共许可证发行的自由软件[1]。现有的各种品牌的NAS基本上都是基于Unix/Linux系统开发的。就算是各种品牌的NAS自己专有的同步备份功能,大多数也都是基于rsync这款强有力的工具软件开发的。但NAS厂商在开发用户GUI界面时,都没有把兼容其他品牌的NAS系统的功能解决好;或者说就根本没有考虑要做兼容其他品牌的NAS系统的问题。

rsync的初始版本发表于1996年6月19日,到目前已有超过25年的历史了。它的原作者是:安德鲁·垂鸠(Andrew Tridgell)与保罗·麦可拉斯(PaulMackerras)。开发者是:韦恩·大卫森(Wayne Davison)。目前的稳定版本是:3.2.3(2020年8月6日,18个月前)。该款工具软件能同步更新两处计算机的文档与目录,并适当利用差分编码以减少数据传输量。rsync中的一项同类工具软件不常见的重要特性是每个目标的镜像只需传送一次。 rsync可以拷贝/显示目录内容,以及拷贝文档,并可选压缩以及递归拷贝。在常驻模式(daemon mode)下,rsync预设监听TCP的873端口,以原生rsync传输协定,或者透过远端shellRSH或者SSH提供文档。 SSH模式下,rsync用户端执行程序必须同时在本地和远端机器上存在。

rsync实用程序使用由澳洲电脑程序师安德鲁·垂鸠(Andrew Tridgell)发明的算法,在当接受端的设备已经有相同结构(例如档)但不同版本时,有效地通过通讯连线将结构传输。在他1999年的博士论文《Efficient Algorithms for Sorting and Synchronization[2]中,详细介绍了rsync的设计、实现与性能。

接受端将档拷贝打散成固定大小为 的不重叠片段,并对每个片段计算两个校验和:MD4散列函数与一个较弱的旋转哈希。它将这些校验和送给发送者。通讯协议版本30(与rsync版本3.0.0一并发行)现在使用MD5散列函数以替代MD4[3]

发送者对位于其版本的档中每个大小为S 的片段计算轮替校验和,即使是重叠的片段。这可被有效的计算透过特别的轮替校验和算法:如果bit 位n n+S-1的轮替校验和是 R,从bitn+1 n+S的轮替校验和可从 Rbit n,以及bit n+S 计算出而不需要真正去检验中间的bit 位。因此,如果bit 125的轮替校验和已被算出,那计算bit 226的轮替校验和可完全依靠之前的校验和与bit 1bit 26算出。

rsync使用的旋转哈希来自于马克艾德勒(Mark Adler)的adler-32校验和算法。该算法也被用于zlib,而它本身也基于Fletcher校验算法。

发送者其后以接收者送来的一组轮替校验和比较它自己的轮替校验和以决定是否任何匹配存在。如果是的话,它便透过计算匹配区块的MD4校验和与接受端送来的MD4校验和比较来验证匹配。

发送者稍后传送给接收者不与接收者方任何区块匹配的档的那些部分,以及如何合并这些区块到接收者版本的组装指令。在实际上,这产生了与发送者端档一模一样的拷贝。

如果发送者与接收者档版本有许多区段相同,该公用程序只需传送相对小部分的资料以将档同步。

rsync演算法构成rsync应用程序核心并最佳化两台设备间TCP/IP的传输同时,rsync应用程序也支援其他种显著增进档传输或备份的重要功能。他们包括在发送端与接收端个别利用zlib进行区块区块间压缩解压缩,以及支援通讯协定如ssh。该协定让加密传输兼具压缩与效率,透过rsync演算法产生的差分资料变得可能。除ssh以外,stunnel亦可被利用于创造加密通道以保全被传输的资料。

第二
简介rsync的使用

现有的各种品牌的NAS产品中都已经安装了rsync这个强大的工具。只是因为rsync软件并不提供GUI界面的应用,所以小白和菜鸟们可能并不知道它的存在。如果你没有遇到不同品牌的NAS产品之间的数据同步备份的问题,当然也就不需要了解和学习如何使用命令行rsync的使用了。

要通过命令行使用rsync你必须与NAS建立一个shell的连接。通常是使用sshNAS建立起一个shell 的连接。具体如何做,要根据你的NAS系统说明来操作。因为这里我们要讲的是rsync的使用,我们假设你已经与NAS建立一个shell 的连接。

rsync,代表remote  sync,是一个即可以远程也可以本地文件同步工具。它使用一种算法,通过仅移动已更改的文件部分来最小化复制的数据量。

在本中,我们将回顾使用 rsync 时的最简单和基本的一些语法,解释如何使用 rsync 与远程系统同步,以及其他可用的选项。为了练习使用 rsync 在本地和远程系统之间同步文件,您需要两台NAS机器分别充当本地设备和远程设备。这两台NAS可以是虚拟专用服务器、虚拟机、容器或实体NAS,只要它们已正确配置即可。

了解 rsync 语法,rsync 的语法与其他软件类似,例如 sshscp cp

我在这里暂时以威联通系统为例来做介绍如何使用rsync。假设威联通NAS系统的ssh账号也是adminIP地址是192.168.x.x,目录卷在/share/Public,则通过运行以下命令连接到威联通的NAS系统:


通过运行以下命令切换到您的主目录,我在这里先讲本地的数据同步备份,然后再过度到讲远程数据同步备份命令。

[~]# cd/share/Public  假设这跟目录是你的威联通系统的供你学习rsync命令用的实验用的主目录,你的屏幕就是如下样子。

[/share/Public ]#

然后创建一个测试目录:
[/share/Public]#  mkdir dir1

创建另一个测试目录:
[/share/Public]#  mkdir dir2

再来添加一些测试文件:
[/share/Public]#  touch dir1/file{0..9}

现在有一个名为 dir1 的目录,其中包含 10 个空文件。你可以使用ls命令自行查看。

您还有一个名为 dir2 的空目录。要将 dir1 的内容同步到同一系统上的 dir2,您将运行 rsync 并使用-a 标志,它是一个组合标志,代表“归档”。此标志以递归方式同步并保留符号链接、特殊和设备文件、修改时间、组、所有者和权限。是推荐使用的标志。

[/share/Public]#  rsync  -a  dir1/  dir2

请注意,在这个命令的语法中,第一个参数的末尾有一个斜杠 (/),这个尾部斜杠表示 dir1 的内容。如果没有尾部斜杠,将会包括dir1目录,将被放置在 dir2 中。结果将创建一个如下所示的层次结构:

~/dir2/dir1/[ file]

另一个提示是在执行 rsync 命令之前仔细检查你的参数。 rsync 提供了一种通过传递 -n --dry-run 选项来执行此操作的方法。 -v 标志,意思是“详细”,也是获得适当输出所必需的。您将在以下命令中组合 an v 标志。例如:

[/share/Public]#  rsync -anv dir1/ dir2

输出:
sendingincremental file list
./
File0
file1
file2
file3
file4
file5
file6
file7
file8
file9

现在将该输出与删除尾部斜杠时收到的输出进行比较,如下所示:

[/share/Public]#  rsync  -avn  dir1  dir2

输出:
sendingincremental file list
dir1/
dir1/file0
dir1/file1
dir1/file2
dir1/file3
dir1/file4
dir1/file5
dir1/file6
dir1/file7
dir1/file8
dir1/file9

看出不同的地方了吗?此输出现在表明目录本身已被传输,而不仅仅是目录中的文件。

接下来就要讲讲使用 rsync 与远程NAS设备做数据备份同步的命令了。

游客,如果您要查看本帖隐藏内容请回复

如果您正在传输尚未压缩的文件,例如文本文件,您可以通过使用 -z 选项添加压缩来减少网络传输:(仅仅给出语法规则,就不举例了。)
rsync -az  source  destination

上述如何使用rsync命令实现本地NAS和远程NAS之间数据备份同步,所谓的本地和远程我们还可以把本地理解为“发起方”,把远程理解为“接收方”。虽然两方都需要rsync这个应用工具,但仅仅在本地一方使用命令操作就可以解决所有的备份同步问题了。远程一方无需做任何操作。这正是我讲解命令时特意强调了“推送”与“拉取” 操作功能的目的。由此你也应该能体会出来为什么现有的各种品牌的NAS都使用rsync作为备份同步核心工具的原因了吧。

由于NASYUN的篇幅限制,请看楼下,第 【威联通与群晖之间数据备份同步实践范例】,精彩继续!

评分

参与人数 1贡献 +1 收起 理由
心愿 + 1 很给力!

查看全部评分

最自然的一种表达方式,即是不写赞赏语,红色赞赏按钮就在那,大家懂的。
那是云论坛 - 国内知名的NAS交流平台
http://www.nasyun.com
分享淘帖
回复 印象

使用道具

f541883216 发表于 2022-3-20 09:07 来自 加拿大

【第三讲】威联通与群晖之间数据备份同步实践范例

本帖最后由 f541883216 于 2022-3-21 09:11 编辑

第三讲

威联通与群晖之间数据备份同步实践范例


本讲将以实例解说如何利用rsync命令实现威联通与群晖之间的数据备份同步。首先需要讲两种NAS正确地配置。要确认开启SSHD服务。为了让坛友们便于理解,我下面分开来讲解。首先说说威联通的配置,因为威联通NAS系统集成做的比较规范还,所有对于提供rsync的工作环境基本无需任何的附加配置,仅仅需要确认开启SSHD服务即可。

如下是威联通TS-453B系统开启SSHD服务的截图。
截图202203200926067198.jpg

接下来说说群晖的配置,这里我是以群晖DSM6.1.3系统为例。当然也需要确认开启SSHD服务。
截图202203200927336646.jpg

我在测试时发现,系统的admin账号和任何自己创建的账号,都有设定了home目录在/var/services/homes/的对应目录下, 但是在该处并没有生成实际存在的目录。请看如下截图:
004.jpg

为了构建完备的我在rsync的工作环境。我在/volume1目录下创建了一个homes目录。然后在/var/services目录先创建一个软连接指向/volume1/homes目录。具体命令如下:

admin @DSM613:~  cd  /volume1
admin @DSM613:/volume$ sudo  mkdir  homes
admin @DSM613:/volume$ sudo  chmod 777  homes
admin @DSM613:/volume$ mkdir homes/admin
admin @DSM613:/volume$ cd /var/services
admin @DSM613:/var/services $ ln -s /volume1/ homes  homes

完成上述命令后,使用ls 命令的截图如下:
005.jpg

这样就完成了群晖DSM6.1.3系统提供rsync的工作环境的全部配置。

写到这里我要啰嗦评论几句了。威联通NAS系统在基础工具集成方面的规范化方面,笔者认为做的比较到位。群晖NAS系统不知道是“故意”还是“疏忽”了这方面的考量?因为rsync的工作环境在NAS系统中反正对于用户是“不透明”的存在。根据笔者自身的经验,威联通NAS系统可能侧重点面向“企业级”用户,使用者的技术水平相对比较高,为了产品的名誉,在基础工具集成方面的规范化方面就要考虑的比较细致一些。群晖NAS系统可能侧重点面向“个人及家庭”用户,使用者的技术水平相对比较低,产品的关注点在用户GUI界面上。而对于用户看不到的基础工具集成方面的规范化要考虑的粗糙一点。以上仅仅是笔者根据自身经验的评论,如有不妥之处敬请批评指正。

接下来回到正题,继续讲威联通与群晖之间数据备份同步实践范例。现在我们的威联通与群晖都确认配置好了,可以使用rsync基础工具了。我们就可以按照第二讲中介绍的一些rsync命令的语法进行这两个不同品牌NAS之间实现数据同步备份了。

在做数据备份同步的时候,所有的操作命令只需要在某一台NAS(所谓的本地)上操作即可。另一台NAS(所谓的远程)上是不需要任何操作的,就是在那里等待即可。我在讲解rsync命令的语法时是两边的操作命令都做了介绍,那是为了让大家细致了解rsync工具的强大功能。但实际应用中坛友们自己可以根据喜好,在某一台NAS执行操作命令即可。

由于篇幅的限制,我就不再赘述和做截图了。请坛友们按照第二讲的例子自己体验吧。


第四讲

铁威马TOS系统与万由U-NAS系统之间数据备份同步实践范例


上一讲以实例解说了如何利用rsync命令实现威联通与群晖之间的数据备份同步。这一讲我们要再给一个粗粗地讲解一下“名不见经传”的品牌铁威马TOS系统与万由U-NAS系统之间数据备份同步实践的范例。为什么要选择这个范例呢?其实核心的问题是要说,不论什么品牌的NAS系统,知名品牌也好,名不见经传品牌也好,在数据备份同步问题上,都离不开rsync这个基础工具。也正是因为这个原因,我们才可以方便地实现不同品牌NAS之间实现数据同步备份。

与上一讲一样,首先需要讲两种NAS正确地配置。要确认开启SSHD服务。

那就先说铁威马NAS系统的配置,我这次是以TOS4.2.08系统为例,请看如下截图:
006.jpg

我在测试时发现,这些“名不见经传”的品牌NAS系统也和群晖系统一样,在基础工具集成方面的规范化方面做的很差。应为这一讲仅仅是粗粗的范例,对于不影响操作的细节部分,就不一一例举和修正了。有这方面需求的坛友们,可以自行解决。

接下来说说万由U-NAS系统的配置,这个系统更是粗糙,SSHD服务是默认开启的,根本不用配置。但它也有存在与群晖系统一样不规范的问题,做实验时,最后也修正一下。以免实验不成功。

让我们试试以万由U-NAS系统为本地把/mnt/nas/data/download目录中的所有数据同步到铁威马TOS4.2.08系统中的/mnt/public目录中去。请看截图:
007.jpg

注意:因为铁威马NAS系统的SSHD服务使用非标准的端口,我们在rsync命令操作中会使用-e ‘ssh –p 9222’ 这个选项来解决这个问题。

查看铁威马NAS一侧的数据,可以看到数据全部据备份同步完成。请看截图:
008.jpg

接下来让我们再试试以铁威马TOS4.2.08为本地把/mnt/public目录中的所有数据同步到万由U-NAS系统的/mnt/nas/data/download目录中去。当然我们可以先删除清空/mnt/nas/data/download目录,但也可以不用清空数据。因为rsync的算法会以最优的方法实现数据同步备份。请看如下截图:
009.jpg

查看万由NAS一侧的数据,可以看到数据全部据备份同步完成。请看截图:
010.png

由于NASYUN的篇幅限制,请看楼下,【结束语】,精彩继续!

回复 支持 1 反对 0 印象

使用道具 举报

f541883216 发表于 2022-3-20 09:07 来自 加拿大

【结束语】

本帖最后由 f541883216 于 2022-3-21 09:28 编辑

结束语


很高兴能与大家分享此次的经验。本教程中详细讲解了不同品牌NAS之间实现数据同步备份的问题的各种细节技术详情。本教程中的引用都在“参考文献”中注明了出处。

在实践范例环节的第三讲和第四讲,分别以比较流行的品牌“威联通与群晖”和名不见经传的品牌“铁威马与万由”给出了实际操作的具体方法。其实,目前就笔者的经验来看,任何品牌的NAS系统都可以利用rsync这个强有力的工具,实现数据同步备份。例如:威联通,群晖,西数的mybooklive, myCloud, unRAID, freeNAS,等等。

目前的问题是,rsync这个工具没有GUI操作界面。它是一个命令行操作的工具,另外利用shell 的ssh建立连接时,还需要输入远程端的密码。对于不习惯使用命令行操作的小白和菜鸟就会感觉不方便。

关于GUI操作界面和命令行操作,其实笔者更喜欢命令行操作。笔者大学毕业已经40年了。入学那就更早了。估计现在玩儿NAS的坛友们中有些人在笔者读大学,学习计算机的时候,可能还没有出生呢吧。那个年代的计算机,不但没有GUI界面,甚至连显示器都没有。命令的交互使用的电传打字机。我还记得第一次接触的是“北京计算机一厂”生产的“DJS-130” 计算机。机器要占用40平方米的房间,启动要预热半个小时,不像现在的电脑一按电源开关就启动了。那时要引导系统(不能称为真正的操作系统),就更为麻烦。要在机器的控制板面上,用手拨动开关输入机器代码13种。称作“手拨13条”,用它来操作穿孔纸带机实施启动引导加载系统。然后才能使用电传打字机操作命令与计算机交互。

笔者大学毕业40年来计算机有了天翻地覆的发展,不论是硬件还是软件,操作系统,互联网络。笔者目睹,见证和参与了这一过程。一路走来有太多的反思和感慨。笔者虽然已经退休了,但非常愿意把自己的经验分享给广大的坛友们。你们年轻人是国家的栋梁,笔者衷心地希望你们能学好扎实的计算机理论基础和掌握好先进的计算机技术。使国家更强大,人们更富有。


参考文献:

[1] rsync -维基百科,自由的百科全书
[2] Tridgell, Andrew; Efficient Algorithms for Sorting and Synchronization, February 1999, retrieved 29 September 2009
[3]  NEWS for rsync 3.2.3 (6 Aug 2020).


此文绝对是本人【原创】。如果你对本文的观点有不同意见,可以回帖喷我,本人从不固步自封,固持己见。

回复 支持 2 反对 0 印象

使用道具 举报

f541883216 发表于 2022-3-20 09:08 来自 加拿大

【关于威联通许可证的破解】的消息

本帖最后由 f541883216 于 2022-3-24 09:32 编辑

威联通许可证的破解已经完成有一段时间了,“牛年大礼包的前言中简述了一下”。但由于破解了许可证注册中心,内容过于敏感,为了不给论坛添麻烦。需要等论坛与厂家联系确认能否发表。暂时没有发表。请大家谅解。

由于破解了许可证注册中心,不仅仅是QuTS系统的许可证,而是所有的“威联通”许可证都破解了。

可以实现“自授权”,也可以实现“公共服务器授权”,对于家庭用户还可以实现“OpenWRT路由器内网授权”。

发个截图为证:
000.jpg

点评

基于私有云的 QuTScloud 如果能破解了就爽歪歪了  发表于 2022-4-8 13:06
私有云的 QuTScloud 如果能破解了就爽歪歪了,我折腾的还是付费用unraid 但是app方面 尤其是移动端 还是正经nas厂商的系统易用性比较好 如果把qutscloud能破解了 真就完美啦  详情 回复 发表于 2022-4-8 13:05
大佬,厉害了,帮顶!  详情 回复 发表于 2022-3-25 08:23
回复 支持 2 反对 0 印象

使用道具 举报

unanxtg 发表于 2022-3-20 10:46 来自 中国福建泉州
这个软件好呀,可以跳过WIN系统,直接互相备份了
回复 支持 反对 印象

使用道具 举报

pan985 发表于 2022-3-20 11:16 来自 中国广西南宁
好长的文章,先顶了。回头慢慢看
回复 支持 反对 印象

使用道具 举报

黄小毛 发表于 2022-3-20 11:19 来自 中国广东广州
感谢大佬~~~~~
回复 印象

使用道具 举报

zeroqi2008 发表于 2022-3-20 11:27 来自 中国广东韶关
啥也不说了,感谢楼主分享哇!
大佬v5
回复 支持 反对 印象

使用道具 举报

goatmsm 发表于 2022-3-20 11:32 来自 中国广东珠海
前排进来学习,字数补丁
回复 支持 反对 印象

使用道具 举报

jameswoo 发表于 2022-3-20 11:42 来自 中国广东
终于发了!赶紧排队学习!
回复 支持 反对 印象

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回列表 搜索 官方QQ群
懒人地图| 手机版|小黑屋| 智能生活 , 上那是云 |闽ICP备2020018196号-1 |网站地图