一、Rsync
Rsync(remote synchronize),顾名思义,可以知道这是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的 “Rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
Rsync 本来是用于替代rcp的一个工具,目前由rsync.samba.org维护,所以rsync.conf文件的格式类似于samba 的主配置文件。Rsync可以通过rsh或ssh使用,也能以daemon模式去运行,在以daemon方式运行时Rsync server会打开一个873端口,等待客户端去连接。连接时,Rsync server会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,以后则就只需进行增量备份。
Rsync支持大多数的类Unix系统,无论是Linux、Solaris还是BSD上都经过了良好的测试。此外,它在windows平台下也有相应的版本,如cwRsync和Sync2NAS等工具。
Rsync的基本特点如下:
-
1.可以镜像保存整个目录树和文件系统;
-
2.可以很容易做到保持原来文件的权限、时间、软硬链接等;
-
3.无须特殊权限即可安装;
-
4.优化的流程,文件传输效率高;
-
5.可以使用rsh、ssh等方式来传输文件,当然也可以通过直接的socket连接;
-
6.支持匿名传输。
二、Unison
Unison是windows和unix平台下都可以使用的双向文件同步工具,它能使两个文件夹(本地或网络 上的)保持内容的一致。 unison 拥有其它一些同步工具或文件系统 的相同特性,但也有自己的特点:
-
1、跨平台使用;
-
2、对内核和用户 权限 没有特别要求;
-
3、unison 是双向的,它能自动 处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
只要是能连通的两台主机 ,就可以运行 unison ,可以直接使用 socket 连接或安全的 ssh 连接方式,对带宽 的要求不高,使用类似 rsync 的压缩传输协议。
Unison双向同步的一个缺点是,对于同名文件在两个同步文件夹中都被修改时,unison是不会去同步的,因为unison无法判断以那个为准.
三、DRBD
DRBD的特点:
-
1、 DRBD是一种块设备
-
2、 可用于高可用集群(HA)
-
3、 通过网络实现块设备数据实时镜像
-
4、 类似于一个网络RAID-1
所 谓DRBD,是分布式复制块设备,是一种通过TCP/IP网络实现块设备数据实时镜像的方案。,可以被用于高可用(HA)之中.它类似于一个网络 RAID-1功能.当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上.以相同的形式记录在一个文件系统中.
本地(主节点)与远程主机(备节点)的数据可以保证实时同步.当本地系统出现故障时,远程主机上还会保留有一份相同的数据,可以继续使用.
在高可用(HA)中使用DRBD功能,可以代替使用一个共享盘阵.因为数据同时存在于本地主机和远程主机上,
切换时,远程主机只要使用它上面的那份备份数据,就可以继续进行服务了。
总结:
Rsync、Unison和DRBD三个软件,虽然都是同步备份数据的工具,但是各有其功能。
Rsync只支持单向同步,但是其同步速度是三者之中最快的,正确的说其同步速度是其他两者所无法比拟的。同时,rsync+inotify的搭配使用可以达到实时触控同步更新文件。
Unison支持双向同步,对内核和用户权限没有要求,但是其同步速度特别慢,经常出现超时情况。
DRBD用于高可用(HA),类似于一个网络RAID-1功能,速度也比较慢。
通过安装配置rsync、unison和drbd三个软件,同时测试其功能,发现三者各有其优势。不能单纯的评价谁优谁劣,应该针对用户的用途进行选择使用工具。