目前,我们使用 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
(这个很讨厌,因为它也会超出虚拟机管理程序的虚拟机限制!)