1

我在网络中连接了许多机器(20 多台)。每台机器访问一个中央数据库,查询它,处理查询的信息,然后将结果写入其本地硬盘驱动器上的文件。

在处理之后,我希望能够将所有这些文件(从所有远程机器)“抓取”回主机进行存储。

我想到了三种可能的方法:

(1) 从主机 rsync 到每台远程机器,并“询问”文件

(2) rsync 从每台远程机器到主机,并“发送”文件

(3) 在每台远程机器上创建一个 NFS 共享,主机可以访问和读取文件(这种情况下不需要 'rsync')

其中一种方式比其他方式更好吗?有没有更好的方法我不知道?

所有机器都使用 Ubuntu 10.04LTS。在此先感谢您的任何建议。

4

3 回答 3

1

您可以在主计算机上创建一个NFS 共享并让每台远程计算机安装它。好像工作量少了。

于 2011-02-21T21:03:18.643 回答
1

在性能方面,它实际上是相同的。您仍在通过(相对)较慢的网络连接发送文件。

现在,我会说您采用哪种方法取决于您要处理错误或违规行为的位置。如果您希望责任落在您的处理计算机上,请使用 rsync 回到主计算机;或者相反,如果您希望主要人员负责组装数据并确保一切正常。

至于共享空间方法,我会在主机上创建一个共享,并让其他人写入它。他们可以在处理完成后立即开始,确保文件正确传输,然后验证校验和或其他内容。

于 2011-02-21T21:04:29.467 回答
1

我更喜欢选项(2),因为您知道客户端计算机上的处理何时完成。您可以在所有客户端机器上使用相同的 SSH 密钥,或者在主机上的 authorized_keys 文件中收集不同的密钥。如果主机由于某种原因不可用,它也更可靠,您仍然可以稍后在 NFS 设置中客户端被阻止时同步结果。

于 2011-02-21T21:07:07.207 回答