这是场景 - 我必须保留一小部分数据(大约 200gb)。这些基本上是共享的 VHD 映像,用作我们许多 VM 的主映像 - 然后它们在差异磁盘中运行。整个集合“大部分是只读的”。更详细地说:存在并使用的文件永远不会改变。我可能会删除文件(绝对不使用时)并添加新文件,但是曾经存在的文件会设置读取保护,并且直到它被淘汰为止。
显然,我需要尽可能多的正常运行时间。到目前为止,我们通过在每个 Hyper-V 服务器上都有这个本地目录来运行它。现在我想把它转移到我们的存储结构中。由于“它必须存在”,我非常想要一个无共享架构。
DFS 将是完美的——文件永远不会改变,所以复制会很好地工作。文件夹可以复制到多个服务器,所有服务器都可以从那里引用它们。现在,hyper-V 支持 SMB,这可能是将它们隔离在多个服务器上的好主意——我们尝试进入存储更加集中的场景。
Server 2012 支持 always on shares,但似乎这只适用于后面的集群磁盘。对于只读文件存储,有什么办法可以解决这个问题吗?所有文档都指向共享 JBOD 之类的东西——但这会让我对文件系统损坏敞开心扉。我真的打算在这里完全分开,垂直 - 2 台服务器,都只为此配备 SSD,都有自己的 2000W 独立 USV,都有足够的带宽来处理扔给他们的所有东西(请注意,每个人都认为这是 10G - 这会与一个不错的 Infiniband 骨干网相比,速度慢且昂贵)。真正的症结在于,这显然是一种边缘情况——因为文件在使用时只读取一次。
我不认为这是可行的。不使用共享磁盘就无法实现故障转移透明性。另一个节点如何在不使用锁的情况下知道第一个节点正在服务哪些文件?
我脑海中唯一能想到的其他选择是在 vSphere 内部使用 Fault Tolerance,但这在处理能力、网络带宽和延迟方面有非常高的要求。我从未遇到过任何人在小于专用 10gig 管道上进行容错。
您是否考虑过像小型 NetApp 文件管理器之类的东西 - 它们有两个“头”,一个在故障情况下接管另一个,并且在足够短的时间内不会导致断开连接。我们广泛使用它们,并且从未因文件管理器的问题而中断。不过它们不是免费的 ;)