我有一个 Linux 计算机网络,就我所做的事情而言,它们都是彼此的克隆。有一个“主”节点,所有其他节点定期使用同步目录rsync
(轮流,而不是同时)。每台机器都有自己的rsyncd
运行和相同的rsyncd.conf
。
我的同步例程让每个客户端节点rsync
像这样调用客户端:
$ rsync -a --delete masternode::syncdir/ /path/to/local/syncdir/
注意这是与主服务器的直接连接rsyncd
,而不是使用 ssh。
我的问题是:由于我rsyncd
已经在每个客户端上运行,通过调用本地实例而不是文件路径作为目标参数,重复同步操作是否会更有效率?即
$ rsync -a --delete masternode::syncdir/ localhost::syncdir/
rsync
我从未见过在两个实例之间这样使用的例子rsyncd
;我没有看到任何迹象表明它不被允许/支持,但我不能确定它在这个由两个服务器加上一个客户端在它们之间调解操作的配置中如何工作(或是否工作)。
我假设流量仍然经过客户端进程(当目标服务器是本地时这并不重要)但两台服务器是否“看到”另一端的服务器并相应地提高效率,例如利用它们可能从以前的运行中缓存的文件元数据?(或者这无论如何都会发生,无论他们是否“知道”他们正在与另一个服务器实例对话?)
希望得到一个可以深入探讨“如何”的答案。