我有一个应用程序(Endeca),它是一个基于文件的搜索引擎。客户拥有Linux 100服务器,所有服务器都连接到同一个SAN(非常快,光纤通道)。目前,这100台服务器中的每台服务器都使用相同的文件集。目前,每个服务器都有自己的索引副本(大约4演出,总共400演出)。
我想要做的是拥有一个目录,以及该目录的100个虚拟副本。如果应用程序需要对该目录中的任何文件进行更改,那么只有这样才能开始创建原始文件夹的不同副本。
所以我的想法是这样的:所有100个开始使用相同的目录(但他们都认为他们有自己的副本,并且不知道更好)。随着变化的出现,Linux / SAN可能会拥有最多100份(现在略有不同)的原件。
这样的事情可能吗?
我正在研究这种方法的原因是减少文件传输时间和磁盘空间。我们只需要将4个gig索引文件复制一次到SAN并创建虚拟副本。如果没有变化,我们只使用4演出而不是400演出。
提前致谢!
答案 0 :(得分:0)
这里最好的解决方案是利用SAN级别的“重复数据删除”功能。不同的供应商可能会以不同的方式称呼它,但这就是我所说的:
所有100个“虚拟”副本将使用SAN上的相同物理磁盘块。如果对文件的特定副本进行了更改,SAN将只需要分配新块。然后将为此副本分配一个新块,但剩余的99个副本将继续使用旧块 - 从而大大减少磁盘空间需求。
答案 1 :(得分:0)
您使用的是什么版本的Endeca? MDEX7引擎具有集群功能,其中领导者和关注者节点都从同一组文件中读取,因此只要文件被共享(比如通过NAS),那么您可以让多个引擎在由同一组支持的不同计算机上运行索引文件。只有领导节点才能更改文件以保持更改的一致性,当更改准备好“拾取”时,集群协调器将通知关注节点。
在MDEX 6系列中,只要索引文件是只读的,您就可以实现类似的功能。 V6中的索引通常发生在另一台机器上,并且一旦新索引准备好,通常会替换目标索引文件集。如果您需要进行部分更新,这对您无济于事。
Netapp重复数据删除听起来很有趣,Endeca从未测试过这个功能,所以我不确定你会遇到什么样的问题。