我有大量数据可以在全球4到5个站点保持同步,每个站点大约有半个TB。这会每天更改(添加或更改)大约1.4千兆字节,并且数据可以在四个站点中的任何一个处更改。
很大一部分(30%)的数据是重复的软件包(也许是打包的JDK),因此解决方案必须包含一种方法,即在本地计算机上存在这样的事情。抓住他们,而不是从其他网站下载。
版本控制不是问题,这不是代码库本身。
我只是感兴趣,是否有任何解决方案(最好是开源)接近这样的事情?
我使用rsync的宝贝脚本不再削减芥末,我想做更复杂,更智能的同步。
由于
编辑:这应该是基于UNIX的:)
答案 0 :(得分:12)
答案 1 :(得分:5)
听起来像BitTorrent的工作。
对于每个站点的每个新文件,创建一个bittorrent种子文件并将其放入可通过Web访问的集中式目录中。
然后每个站点下载(通过bittorrent)所有文件。这将使您获得带宽共享和自动本地副本重用。
实际配方将取决于您的需要。 例如,您可以为每个主机上的每个文件创建1个bittorrent种子,并将种子文件的修改时间设置为与文件本身的修改时间相同。既然你每天都会这样做(每小时?),最好使用像“make”这样的东西(重新)为新的或更新的文件创建种子文件。
然后将所有主机文件从所有主机复制到集中位置(“tracker dir”),并选择“仅在更新时覆盖”选项。这将为您提供所有文件的所有最新副本的一组torrent种子。
然后每个主机下载所有种子文件(再次,“覆盖如果更新设置”)并开始所有种子文件的bittorrent下载。这将下载/重新下载所有新的/更新的文件。
Rince并重复,每天。
顺便说一下,正如你在评论中所说的那样,没有“自己下载”。如果文件已存在于本地主机上,则将验证其校验和,并且不会进行下载。答案 2 :(得分:2)
Red Hat Global Filesystem的内容如何,以便整个结构在每个站点上分成多个设备,而不是在每个位置都进行复制?
或许是商业网络存储系统,例如来自LeftHand Networks(免责声明 - 我不知道成本,也没有使用它们。)
答案 3 :(得分:1)
你有很多选择:
答案 4 :(得分:1)
检查超级灵活....它非常酷,没有在大规模环境中使用它,但在3节点系统上它似乎完美。
答案 5 :(得分:0)
听起来像是Foldershare
的工作答案 6 :(得分:0)
您是否尝试过rsync(http://samba.anu.edu.au/ftp/rsync/dev/patches/detect-renamed.diff)的detect-renamed
补丁?我自己没有尝试过,但我想知道它是否会检测到不仅重命名,还会检测重复文件。如果它不会检测到重复的文件,那么,我想,有可能修改补丁来实现这一点。