NFS 存储 VMware 磁盘映像的最佳文件系统选择

NFS 存储 VMware 磁盘映像的最佳文件系统选择

目前,我们使用 iSCSI SAN 作为多个 VMware ESXi 服务器的存储。我正在研究在 Linux 服务器上使用 NFS 目标来存储其他虚拟机。如果其他操作系统(如 OpenSolaris)能够带来显著的优势,我也愿意接受这种想法。

哪种基于 Linux 的文件系统支持非常大的连续文件(如 VMware 的磁盘映像)?或者,人们如何发现 OpenSolaris 上的 ZFS 适合这种工作负载?

(这个问题最初在 SuperUser 上提问;如果您知道如何操作,请随意将答案迁移到这里)。

答案1

我真的建议您看看 ZFS,但要获得不错的性能,您需要选择一个专用设备作为 ZFS 意向日志 (ZIL)。基本上,这是一个小型设备(几 GB),可以非常快速地写入(20-100K IOPS),这让 ZFS 可以立即确认写入已同步到存储,但最多需要等待 30 秒才能真正将写入提交到池中的硬盘。如果发生崩溃/中断,ZIL 中任何未提交的事务都会在安装时重播。因此,除了 UPS 之外,您可能还需要一个带有内部电源/超级电容器的驱动器,以便在断电时任何待处理的 IO 都可以进入永久存储。如果您选择不使用专用的 ZIL 设备,写入可能会有高延迟,从而导致各种问题。假设您对 Sun 的 18GB 写入优化 SSD“Logzilla”不感兴趣,价格约为 8200 美元,那么存在一些更便宜的替代品:

  • DDR 驱动 X1- 4GB DDR2 + 4GB SLC Flash 位于专为 ZIL 使用而设计的 PCIe x1 卡中。写入到 RAM;如果断电,它会在超级电容器供电的 <60 秒内将 RAM 同步到 NAND。(50k-300k IOPS;直接售价 2000 美元,.edu 售价 1500 美元)
  • 英特尔 X25-E 32GB 2.5 英寸 SSD(SLC,但没有超级电容,3300 写入 IOPS);[亚马逊售价 390 美元][11]
  • OCZ Vertex 2 Pro 40GB 2.5 英寸 SSD(超级电容,但 MLC,20k-50k 写入 IOPS);亚马逊 435 美元

一旦设置好 OpenSolaris/Nexenta + ZFS,就有多种方法可以在 OpenSolaris 和 ESX 机箱之间移动块;哪种方法适合您,很大程度上取决于您现有的基础设施(L3 交换机、光纤卡)和您的优先级(冗余、延迟、速度、成本)。但由于您不需要专门的许可证来解锁 iSCSI/FC/NFS 功能,因此您可以评估您拥有的任何硬件,然后选择您最喜欢的:

  • iSCSI 目标(CPU 开销;OpenSolaris 中不支持 TOE)
  • 光纤通道目标(光纤卡并不便宜)
  • NFS(VMWare + NFS 可能比较挑剔,最多只能挂载 32 个)

如果你不能花 500 美元进行评估,可以测试是否ZIL 已禁用看看 ZIL 是否是瓶颈。(很可能是)。不要在生产中这样做。除非您有大量 RAM 和用于 L2ARC 的 SSD,否则暂时不要使用 ZFS 重复数据删除。一旦设置好,它肯定会很棒,但您一定要尝试做一些NFS 调优在使用重复数据删除之前。一旦您使其饱和 1-2 Gb 链接,8gb FC、10gigE 和 infiniband 就有增长机会,但即使是为了评估,每种方法都需要大量投资。

答案2

我不会这么做。根据我的经验,Linux(特别是 CentOS 3/4/5)通常不是 NFS 服务器的好选择。我曾使用过多个 Linux,发现在负载下,延迟和吞吐量往往会下降,原因我们永远无法弄清楚。

在我们的案例中,我们连续比较了 Linux 的性能、Solaris(在 Ultra-SPARC 上)和 NetApp;两者的结果都以同类性能为依据,并且都含糊地表示“当服务器处于负载状态时,工程师几乎没有抱怨延迟”。我们多次尝试调整 Linux NFS 服务器;NetApps 和 Solaris 系统都按出厂设置运行。由于所涉及的 Solaris 和 NetApp 系统都比较老,因此可以说 Linux 服务器具有所有优势,但仍然无法令人信服。

如果您有时间,那么值得尝试在相同的硬件上安装 OpenSolaris(现在 Solaris 确实太贵了)、Linux 以及一两个 BSD 变体,然后对它们进行比赛。如果您能提出一些性能指标(例如,在商店外托管的 VM 中的磁盘 I/O 计数),那么这可能会成为一份有趣的白皮书或互联网文章。(如果您有时间的话。)

关于 NFS 的总体情况,NetApp 的员工多次告诉我,他们的基准测试显示 NFS 只会使虚拟机的性能降低 5% 到 10%——如果你的应用程序对这个问题足够敏感,那么你首先就不应该对其进行虚拟化。

但我应该承认,经过这么多的时间和精力,我们的非本地生产虚拟机存储全部由 iSCSI 提供支持,其中大部分来自 NetApp。

答案3

我们使用 OpenSolaris 2009/06 和 RAID 10 ZFS 配置为我们的 VMWare ESXi 服务器提供 NFS。到目前为止,它能够很好地满足我们的需求。我们使用的是 SATA Raid 类型的驱动器(Seagate ES.2 1TB 驱动器)。但我们仍需要进行一些调整。

答案4

在深入研究 ZFS 之前,您可能需要考虑 ZFS ARC 中仍然存在的 3 年以上的错误......

http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6522017

(这个很讨厌,因为它也会超出虚拟机管理程序的虚拟机限制!)

相关内容