2010-07-03 44 views
2

我有一個Scalr EC2集羣,並且想要一個簡單的方法來跨所有實例同步文件。如何rsync到所有Amazon EC2服務器?

例如,我在一個實例的/ var/www中有一堆文件,我希望能夠識別所有其他主機,然後rsync以便每個主機更新其文件。

LS的/ etc/AWS /主機/應用程序/

返回所有其他實例中的IP地址

10.1.2.3 10.1.33.2 10.166.23.1

想法?

+2

我不想問一個明顯的問題,但爲什麼不把它存儲在S3上呢? – 2010-07-08 14:50:47

回答

2

正如扎克說你可以使用S3

  • 您可以下載多個客戶端之一,將驅動器映射到S3。 (搜索S3和webdav)。
  • 如果我要走這條路線,我會設置一個包含我所有共享文件的S3存儲桶,並在cronJob中使用jetS3將每個節點的本地驅動器同步到存儲桶(下拉S3存儲桶更新)。然後,因爲我通常使用eclipse & ant來構建,我會創建一個ANT作業來部署更新到S3存儲桶(將更新推送到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 
... 

我會推薦上述方案,如果你不」 t需要跨節點文件鎖定。這很容易,每個系統都可以從中心位置獲取數據。

如果您需要更多的跨節點鎖定:

一個理想的解決方案是使用IBM的GPFS,但IBM不只是把它送人(至少目前還沒有)。即使它是專爲高性能互連而設計的,但它也可以用於較慢的連接。我們用它作爲NFS的替代品,速度非常快(比NFS快大約3倍)。也許有類似的東西是開源的,但我不知道。編輯:OpenAFS可能適用於在許多EC2實例上構建羣集文件系統。

你使用NFS評估過嗎?也許你可以將一個實例作爲NFS主機。

相關問題