UrBackup Server 2.4.x 管理手册中文版(四)架构

本篇内容比较简单,简述 UrBackup 的基本架构。

我们想要更好地学习 UrBackup ,那么对它的基本架构一定要有个直观的了解。


UrBackup 的架构

UrBackup 分为服务端和客户端两大部分(C/S架构)。

服务端负责发现和备份客户端,在存储空间耗尽或存在太多备份时删除备份,同时还可以生成统计信息和管理客户端设置。

客户端则侦听服务端指令,比如告诉它应该构建一个文件列表,或者服务端想要下载哪个文件。

此外服务端还会开启一个通道,客户端可以在该通道上请求服务端开始备份,或者更新客户端的特定设置。


纯手绘架构图,供大家参考学习。


3.1 服务端架构

服务端分为核心接口两个部分。


目前服务端接口只支持 Web 界面的管理方式。

Web 界面可通过 FastCGI(端口 55413)和 HTTP(端口 55414)访问。

你可以利用 FastCGI 端口使 Web 界面通过 SSL 来访问(例如使用 apache )。

有关详细信息,请参阅第 4.2 节。


服务端核心部分由多个不同任务的线程组成。

一个线程发现新客户端,另一个则检查客户端是否需要备份,而其他线程向客户端发送 ping 包以检查它们是否在线,或者向它们发送当前的备份状态。

还有一个线程则用于更新文件统计信息或删除旧备份。

正是因为 UrBackup 服务端由多线程任务组成,所以使用现代多核 CPU 会更高效(核数越多越好!)。


3.2 客户端架构

客户端分为核心进程接口进程


接口进程用于显示托盘图标和对话窗口,同时向核心进程发送设置和命令。

客户端核心进程在 UDP 端口 35622 上侦听来自服务端的广播消息,并在收到消息后将带有其名称的消息返回给服务端,名称使用的是 Windows 计算机名称。

它在 TCP 端口 35623 上侦听来自客户端接口进程和服务端的命令,并在 TCP 端口 35621 上侦听来自服务端的文件请求。

服务端在其命令端口上与每个客户端建立永久连接,客户端可以使用该连接请求备份或更改其设置。

客户端核心进程负责构建要备份的目录中所有文件的列表。

此列表在 UrBackup 客户端目录中创建为 urbackup/data/filelist.ub

为了加速目录列表的创建,要备份的目录会通过 Windows 变更日志被不断监视,Windows 变更日志只能用于整个分区。

因此,当某个卷的目录被第一次添加时,UrBackup 客户端核心进程就会将这个卷上的所有目录条目读取到 urbackup/backup_client.db 的客户端数据库文件中。

当卷被成功创建了索引之后,此数据库就会不断更新以便时刻与文件系统同步。

因此,如果卷发生了较大变化,数据库更新就会变得比通常更为频繁。

这不会带来很大的性能损失,因为仅仅是目录列表保存在数据库中。

更新每 10 秒发生一次,或者在请求文件列表时进行。

服务端从客户端获取文件列表,并通过客户端内置的文件服务下载变更的或新增的文件来开始备份。

映像备份仅可使用命令端口完成。


小结

本节内容灰常简短,主要是根据管理员手册中的理论部分向大家展示。

了解了 UrBackup 的基本架构,对于我们更深入地了解它的工作机制和原理是很有帮助的。

在接下来的篇章中,很多程序工作的方式也是基于本篇所述的架构原理。

本节只涉及理论内容,故没有特别的测试实践过程,在之后的篇章中就会有大量的动手过程。

如果你有什么不明白的地方,也可以随时回过头来再反复研究一下。

OK,今天就先到这儿吧,今晚不加班庆祝一下,打工人不再 996 了!


扫码关注@网管小贾,阅读更多

网管小贾的博客 / www.sysadm.cc



提交评论

安全码
刷新

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接