单个 NFS 服务器到冗余 NFS 存储

单个 NFS 服务器到冗余 NFS 存储

目前,我们有 6 台安装了 Proxmox VE 的物理主机。这些主机正在运行许多虚拟机。大多数是 Windows Server 2008 R2。主机是具有中央 RAID5 存储的 Intel Blade 服务器,可以访问 Intel 共享 LUN。中央存储与其中一个刀片服务器物理连接,包含 VM 的所有磁盘映像。VM 主机通过中央 NFS 存储访问这些虚拟机的磁盘映像。由于此 NFS 主机只有一台机器,我们无意中创建了单点故障。例如,如果 NFS 主机由于某种原因无法启动,则所有 VM 都无法访问其磁盘映像,也无法运行。

主要问题是如何以及使用什么软件将此 NFS 存储位置转换为冗余的(可能同步到另一个)存储设备,而不会对现有 VM 磁盘映像造成任何损害。它可以是一个类似故障转移的系统,当一个 NFS 主机关闭时,另一个 NFS 主机接管。消除此 SPoF 的最佳解决方案是什么?

答案1

冗余 NFS(事实上,任何冗余存储并非易事。
如果您真的希望它运行良好,请计划在此方面投入大量时间(和资金)。

通常,您有两种选择:

选项 1:购买冗余存储设备

这是最快捷(通常也是最昂贵的)的选择。选择一家能够生产具有冗余功能的存储设备的供应商,满足您的需求,给他们公司信用卡,并尽量不要在发票上留下痕迹。

这种方式的两个主要好处是速度快(你可以得到一个预先构建的解决方案,只需按照手册就可以推出)并且有支持(如果你遇到问题,你可以打电话给供应商并大喊直到他们解决问题)。


选项 2:自行构建

该网站很好地概述了如何使用 Debian Linux 构建冗余 iSCSI/NFS 集群。它是 2009 年的,但原理是合理的。
关于如何构建此类环境的具体分步说明超出了 Server Fault 的范围,但我可以粗略地概述您需要的内容:

  • 共享(或复制)存储
    为了在存储层上实现冗余,您需要让相同的数据可从多个位置访问 - 通过实时复制,或将所有内容连接到共享磁盘池。SAN
    是满足共享存储要求的常用方法。这仍然是一个单点故障,但是当您将所有鸡蛋放在其中一个篮子里时,请确保这是一个非常好的篮子。
    如果您选择采用这种方式,DRBD 或 ZFS 复制可以满足复制存储的要求 - 它可能比 SAN 便宜,而且这两种技术都已经发展到非常可靠的状态。
  • 多个“前端”系统
    现在您已经解决了存储问题,您需要使其通过冗余“前端”系统进行访问 - 这些是运行 NFS 服务器(或您用来向客户端提供磁盘的任何设备)的机器。
    您至少需要两个,运行高可用性/故障转移软件,这样如果/当您失去一个时,另一个可以接管。IP 故障转移是这里的“简单”选项(如果一个盒子出现故障,另一个将承担“实时”IP 地址)。
  • 存储的多个物理路径
    如果所有东西都通过一条线路传输,世界上所有的存储冗余都帮不了你。
    你需要确保客户端机器有多条物理路径来返回存储前端,否则,发生故障的交换机将让你陷入你试图摆脱的单点故障局面。

构建自己的冗余存储通常比供应商解决方案花费的时间更长,而且您需要自己支持它(这意味着您需要熟悉所涉及的技术)。
主要优势是成本(您通常可以比供应商提供的解决方案更便宜地构建环境)和灵活性(您可以定制解决方案以满足您的需求并与环境的其他部分集成 - 例如您的备份系统)。


无论如何你都需要的东西

你会需要测试计划*在投入生产之前。
理想情况下,你应该在开始构建之前就拥有它(了解你要防范的故障将有助于你设计你的系统)。

测试的目的是证明,即使出现最严重的故障,也不会导致数据丢失(理想情况下,也不会因为存储无法访问而导致停机)。
您可能找不到或测试每一个可能出现的故障场景,但请写下您能想到的所有场景并确保对其进行测试。您不会希望等到实际生产使用的第一天才发现备用计算机中丢失一个磁盘会导致主计算机崩溃——那时修复已经太晚了。

相关内容