0

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

我想做的是拥有一个目录和该目录的 100 个虚拟副本。如果应用程序需要对该目录中的任何文件进行更改,则只有在那时才开始创建原始文件夹的不同副本。

所以我的想法是:所有 100 人都开始使用同一个目录(但他们每个人都认为他们有自己的副本,并且不知道更好)。随着变化的出现,Linux/SAN 可能会拥有多达 100 个原始副本(现在略有不同)。

这样的事情可能吗?

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

提前致谢!

4

2 回答 2

0

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

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

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

于 2013-02-08T01:50:47.827 回答
0

您使用的是哪个版本的 Endeca?MDEX7 引擎具有集群能力,其中领导者和追随者节点都从同一组文件中读取,因此只要文件是共享的(例如通过 NAS),那么您可以在由同一组支持的不同机器上运行多个引擎的索引文件。只有领导节点才能更改文件以保持更改的一致性,然后集群协调器将在更改准备好“获取”时通知跟随节点。

在 MDEX 6 系列中,如果索引文件是只读的,您可能会获得类似的结果。V6 中的索引通常会在另一台机器上进行,并且一旦新索引准备好,通常会替换目标索引文件集。如果您需要进行部分更新,这对您没有帮助。

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

于 2013-02-21T19:34:45.357 回答