rsync 备份数据的底层原理
作者:互联网
rsync 备份数据的底层原理
- rsync+inotify=》制作异地镜像站点(实时同步)
目的 : 为异地备份做好准备工作
rsync传递数据可以简单总结为三步
- 先验证用户身份
- 检查源路径到底需要传哪些文件,默认quick check算法
- 传输
rsync命令有上百个选项,主要分为两大类 :
- 一类是检测,检测是在源目录里面进行的。如果改变检测机制,一般情况下,会增加数据校验的可靠性,降低检查的效率。
- 还有一类是传输(比如要不要改变传输文件的属性),传输只传输源目录数据改动的部分。在源目录中,需要通过算法得出数据变化的部分,在目标目录中,也需要算法计算拼接出新的完整数据,覆盖到原文件。
相比scp进行数据备份,rsync更加耗费cpu资源。
关于检测
- quick check算法原理 : 只比较Modify(stat命令中修改文件内容的时间)和传输文件的大小,从远程拿到目标路径下所有文件的Modify和传输文件的大小,跟本地模块下的文件进行校验。
- -c选项是改变了默认的quick check算法,采用hash算法来校验文件内容,从远程拿到目标路径下所有的文件,在源服务器中把拿到的文件的内容全部读一遍,进行数据的校验。
- 大多数检查选项的调整,都会提升数据传输的可靠性,降低传输数据的效率。
关于传输
- 传输只传输源目录数据改动的部分,目标目录收到源目录传输过来的数据后,会把本机的文件内容读出来,再把源目录传输过来的新的数据内容读出来,通过算法重新拼接成一份新的数据。
- rsync总结
- 耗费cpu资源
- 源路径如果是频繁改动的,rsync不适合
- 不适合同步大文件
标签:文件,rsync,备份,源目录,传输,算法,数据,底层 来源: https://blog.csdn.net/Yosigo_/article/details/115827997