我有一个 Scalar EC2 集群,并且想要一种在所有实例之间同步文件的简单方法。
例如,我在一个实例上的 /var/www 中有一堆文件,我希望能够识别所有其他主机,然后 rsync 到每个主机以更新它们的文件。
ls /etc/aws/hosts/app/
返回所有其他实例的 IP 地址
10.1.2.3 10.1.33.2 10.166.23.1
想法?
我有一个 Scalar EC2 集群,并且想要一种在所有实例之间同步文件的简单方法。
例如,我在一个实例上的 /var/www 中有一堆文件,我希望能够识别所有其他主机,然后 rsync 到每个主机以更新它们的文件。
ls /etc/aws/hosts/app/
返回所有其他实例的 IP 地址
10.1.2.3 10.1.33.2 10.166.23.1
想法?
正如 Zach 所说,您可以使用S3。
来自http://jets3t.s3.amazonaws.com/applications/synchronize.html
Usage: Synchronize [options] UP <S3Path> <File/Directory>
(...) 或:同步 [选项] DOWN
UP : Synchronize the contents of the Local Directory with S3. DOWN : Synchronize the contents of S3 with the Local Directory ...
如果您不需要跨节点文件锁定,我会推荐上述解决方案。这很简单,每个系统都可以从一个中心位置提取数据。
如果您需要更多的跨节点锁定:
一个理想的解决方案是使用 IBM 的GPFS,但 IBM 不只是放弃它(至少现在还没有)。尽管它是为高性能互连而设计的,但它也能够用于较慢的连接。我们用它作为 NFS 的替代品,它的速度非常快(大约是 NFS 的 3 倍)。可能有类似的东西是开源的,但我不知道。编辑:OpenAFS可能适用于在许多 EC2 实例上构建集群文件系统。
您是否评估过使用 NFS?也许您可以将一个实例专用为 NFS 主机。