在SAN上使用目录副本的多个应用程序

问题描述:

我有一个基于文件的搜索引擎的应用程序(Endeca)。一个客户拥有Linux 100服务器,全部连接到相同的SAN(速度非常快,光纤通道)。目前,这100台服务器中的每一台都使用相同的一组文件。目前,每台服务器都有自己的索引副本(大约4个演出,因此总共有400演出)。在SAN上使用目录副本的多个应用程序

我想要做的是拥有一个目录,以及该目录的100个虚拟副本。如果应用程序需要对该目录中的任何文件进行更改,那么只有这样才会开始创建原始文件夹的独特副本。

所以我的想法是这样的:所有100开始使用相同的目录(但他们都认为他们有自己的副本,并不知道更好)。随着更改的进行,Linux/SAN可能会拥有多达100份(现在略有不同)的原始版本。

是这样的可能吗?

我正在研究这种方法的原因是为了减少文件传输时间和磁盘空间。我们只需将4个索引文件复制一次到SAN并创建虚拟副本。如果没有更改进来,我们只会使用4演出而不是400.

在此先感谢!

这里最好的解决方案是利用SAN级别的“重复数据删除”功能。不同的供应商可能有不同的称呼它,但是这是我讲的:

https://communities.netapp.com/community/netapp-blogs/drdedupe/blog/2010/04/07/how-netapp-deduplication-works--a-primer

所有100“虚拟”副本将利用SAN在同一个物理磁盘块。如果对文件的特定副本进行更改,SAN将只需分配新块。然后将为此副本分配一个新块,但剩余的99个副本将继续使用旧块 - 从而显着减少磁盘空间要求。

您正在使用哪种版本的Endeca? MDEX7引擎具有群集功能,其中领导节点和从节点都从同一组文件中读取数据,只要这些文件是共享的(比如通过NAS),那么可以让多个引擎在不同机器上运行,并支持同一组的索引文件。只有领导者节点才能够改变文件以保持变化一致,随后的节点将在变更准备好“拾取”时由集群协调员通知。

在MDEX 6系列中,如果索引文件是只读的,您可能可以实现类似的功能。 V6中的索引通常会发生在另一台机器上,并且一旦新索引准备就绪,索引文件的目标集合通常会被替换。这虽然不会帮助你,如果你需要部分更新。

Netapp重复数据删除听起来很有趣,Endeca从未测试过功能,所以我不确定会遇到什么样的问题。