题 为100多个VM Web服务器选择SAN技术


问题

我们在现有平台上遇到了性能问题,所以我转向蜂巢头脑,对此提出第二意见。到目前为止,性能问题与IOPS而不是吞吐量有关。

情景

刀片中心由16个主机组成,每个主机具有64GB RAM。 (这是戴尔M1000e w / M610s,但这可能不相关) 500个虚拟机,所有Web服务器(或相关的Web技术,如MySQL,负载平衡器等),大约90%是Linux,其余是Windows。 Hypervisor是VMWare vSphere。 我们需要提供主机HA,因此本地存储空间不足。因此主机只有一张SD卡可以启动。

一点背景思考

目前我们最多有6台主机(刀片服务器中心将在当前增长的几年内满负荷生产),我们正在运行iSCSI到戴尔MD3220i w / MD1220进行扩展。

我们考虑过的可能选择,以及他们的直接想法:

  • 将VM分布在NFS数据存储区中,并运行满足特定数量VM的性能要求的NFS存储。 NFS似乎比规模更便宜,并且抽象比块级存储更多,因此我们可以根据需要移动它。
  • 添加更多MD3220i控制器/目标。我们担心的是,这样做可能会对VMWare如何处理大量目标产生负面影响。
  • 将所有磁盘从Nearline SAS交换到SSD。这应该完全解决IOPS问题,但是具有明显的副作用,即削减我们的存储容量。它还是非常昂贵的。
  • vSphere 5具有存储设备。我们还没有研究过这么多,但它必须运作良好?

问题

你会在所有这些下运行什么样的存储?它不需要扩展到另一个刀片中心,它只需要为所有这些VM提供相对好的性能。

我不是在寻找“购买SAN x因为它是最好的”答案。我正在寻找各种SAN技术(iSCSI,FC,FCoE,InfiniBand,NFS等),不同类型的存储(SATA,SAS,SSD)以及处理100多个VM存储的方法(整合,分离) ,Sharding等)。

绝对任何想法,链接,指南,指针等都欢迎。我也很想听听我们已经考虑过的上述选项的想法。

非常感谢任何输入!

12月3日更新

到目前为止一些很棒的回复,非常感谢大家!

到目前为止,通过对这个问题的回答,我开始认为以下路线是这样的:

  • 将可用存储分层到VMWare群集,并将VM磁盘放置在适合其工作负载的存储上。
  • 可以使用能够自动管理数据放置到合适存储的SAN。
  • Infiniband看起来是最具成本效益的,可以在主机满负荷的情况下获得所需的带宽。

听起来似乎值得利用主要SAN供应商的售前服务来获取他们对场景的看法。

我将继续考虑这个问题一段时间。同时感激不尽的建议!


15
2018-03-03 18:42




Mellanox还有一个40gbe的交换机,这个交易非常具有爆发性,在$ /性能方面非常接近infiniband。在那一点上,我会考虑一个带有两个40gbe卡的nexenta作为可行的选择。 - tony roth


答案:


良好的VMWare存储平台的关键是了解VMWare生成的负载类型。

  • 首先,由于您托管了大量服务器,因此工作负载通常是随机的。有许多IO流同时进行,并且其中很多都不能成功预先缓存。
  • 其次,它是可变的。在正常操作期间,您可能会看到70%的随机读取,但是当您决定将VM移动到新的数据存储区时,您将看到大量的60GB顺序写入。如果您对架构不太谨慎,这可能会削弱您的存储处理正常IO的能力。
  • 第三,您环境的一小部分通常会产生很大一部分存储工作负载。

为VMWare平台构建存储的最佳方法是从基础开始。

  • 您需要能够为大型随机读取工作负载提供服务,这意味着更小的更快的驱动器以及可能的SSD。大多数现代存储系统允许您根据访问方式自动移动数据。如果您打算使用SSD,您需要确保使用它。它应该作为一种逐步减少热点的方式。无论您是否使用SSD,能够将所有工作放在所有驱动器上都是有益的,因此具有某种存储池的东西将是有益的。
  • 您需要能够为间歇性大写操作提供服务,这种写入并不关心底层驱动器的主轴速度,但确实关心控制器堆栈的效率和缓存大小。如果您有镜像缓存(除非您愿意在控制器发生故障时返回备份,否则这不是可选的),用于镜像的两个缓存之间的带宽通常会成为大型顺序写入的瓶颈。确保您获得的任何内容都具有用于写入缓存的高速控制器(或集群)互连。尽可能多地使用尽可能多的端口来获得高速前端网络,同时保持实际价格。良好前端性能的关键是将存储负载放在尽可能多的前端资源上。
  • 您可以通过拥有低优先级存储层以及精简配置来严重降低成本。如果您的系统没有自动将单个块迁移到便宜的大/慢速驱动器(如近线SAS或具有7200 RPM和2TB +大小的SATA),请尝试手动执行。大型慢速驱动器是存档,备份,某些文件系统甚至是低使用率服务器的绝佳目标。
  • 坚持存储是VAAI集成的,以便VMWare可以解除分配VM的未使用部分以及数据存储。

13
2018-03-05 14:56



那里有一些很好的评论,谢谢。绝对值得去考虑一下。 - SimonJGreen


我的大型VMWare部署是基于10GbE的NFS和iSCSI。这意味着服务器中的双端口10GbE HBA以及存储头。我是这个基于ZFS的存储的粉丝。在我的情况下,它是围绕商业 的NexentaStor,但有些人选择自己动手。

在此上下文中,基于ZFS的存储的主要功能是ARC / L2ARC缓存功能,允许您进行分层存储。最活跃的数据将作为第二层在RAM和SSD存储中找到方向。从10k或15k SAS驱动器运行主存储池也是有益的。

这是分析和理解您的工作负载的另一个案例。与能够分析存储模式并帮助您规划的人合作。在ZFS / NexentaStor方面,我喜欢 PogoStorage。如果没有这种洞察力,传输方法(FC,FCoE,iSCSI,NFS)可能无关紧要。您是否对现有基础架构进行了监控?现在I / O活动是什么样的?


9
2018-03-03 23:39



出于好奇,这些部署有多大?什么样的工作量? - SimonJGreen
多个主机。最大的有90个混合使用的VM,包括Linux,Windows infra(文件/ AD / Exchange),VDI和数据库系统。存储单元上的RAM很高(96GB +),我在企业级SSD上有1.2TB的L2ARC读缓存。 - ewwhite
你必须在这里原谅我的无知,并且要明确我不怀疑你做的是正确的事情。为什么存储单元中有那么多RAM?它用于缓冲区吗? - SimonJGreen
啊,我刚读过ZFS和ARC / L2ARC。那是很棒的酱:) - SimonJGreen


关键问题是:“瓶颈在哪里?”你提到IOPS,但是这是否意味着你肯定地认为磁盘本身是瓶颈,或者只是说SAN端口没有以容量运行,或者VM比你想要的更加流行?

如果您已经确定磁盘是限制因素,那么切换到NFS或infiniband或任何不会为了您的性能而蹲下的东西 - 您需要SSD(或至少在混合中使用SSD的分层存储)或一捆完整的锭子(自从世界步进电机生产被冲入海洋以来,这种解决方案最近变得更加昂贵)。

但是,如果你不是百分之百地确定瓶颈在哪里,你需要首先找到 - 根据其他人的猜测,或多或少地随机更换存储基础设施的一部分不会是非常有效(特别是考虑到实施任何变更的成本)。


8
2018-03-03 23:18



绝对正确,我总是认为发布问题的人做了他们的功课。但是,经过相当多的性能咨询后,我大多放弃并说添加更多或更快的驱动器,然后98%以上的问题得到解决。另外2%的人超额认定。 - tony roth
“我总是认为发布问题的人做了他们的功课” - baaaaaad假设...... - womble♦
这个答案是完美的。在很多场合,我已着手解决像这样的问题,我对这个问题有一些先入为主的观念。当我得知我对这个问题不够了解时,十分之九会以泪水结束。仔细分析,确定瓶颈是什么,然后继续。您可以向“hive mind”寻求帮助,也可以向SAN供应商寻求帮助。此外,如果您在分析时遇到问题,NetApp和/或EMC将很乐意帮助您确定统计数据,然后为您调整解决方案。两者都有很好的软件来做到这一点。 - SvrGuy
我把这个诊断基于。的综合输出 esxtop 在所有主机上(显示磁盘利用率),获取总CMD / s并将其与我们使用的SAN上的基准进行比较。将基准测试结果作为标题时,总CMD / s始终很高。从科技的角度来看,固态硬盘绝对是一个不错的选择,它们仍然是昂贵的GB /£。虽然有分层存储,但可能是一个解决方案。在旁注/ FYI,根据最近的新闻稿,我收到的WD已经恢复到磁盘上的生产水平。 - SimonJGreen
SAN的基准测试是如何完成的?限制因素 可以 仍然是网络,而不是磁盘本身。但是,至少你已经有了一个基准,但是,如果你想开始玩不同的东西来让事情跑得更快,这一点至关重要。 - womble♦


如果你想要iscsi或nfs,那么你需要一些10 / 40gb端口或infiniband,这是迄今为止最便宜的选择,但infiniband的本机存储解决方案似乎有限。问题是刀片中心的模块有哪些选择,通常是8gb fc或10 \ 1gbe,也许是infiniband。请注意,infiniband可以与nfs一起使用,并且在性能\价格方面没有任何内容可以关闭。如果刀片中心支持qdr infiniband我会用某种类型的linux主机与qd infiniband tca通过nfs这样做。这是描述这一点的好链接 http://www.zfsbuild.com/2010/04/15/why-we-chose-infiniband-instead-of-10gige

但是如果刀片中心可以支持qdr infiniband并且你可以买得起本机infiniband那么那就是你应该选择的解决方案。

目前你可以得到40gbe开关便宜得多(这是一个奇怪的想法)然后10gbe开关,但我怀疑你是刀片中心将支持。


4
2018-03-03 19:14



这些是刀片中心的连接选项: dell.com/us/enterprise/p/poweredge-m1000e/pd Infiniband确实看起来不错,而且在这个客户虚拟机的数量上,成本是合理的。你会做什么SAN方面? - SimonJGreen
dell支持infiniband应该是你的解决方案。 - tony roth
并不像戴尔有任何基于IB的存储,所以我认为这种选择在这种情况下可能是一个拉伸。 Sun和SGI都有基于IB的SAN不确定成本是多少。 - tony roth
他们不提供IB存储,但他们确实提供IB连接。我对使用其他存储供应商没有任何疑虑,在这方面我们对戴尔不感兴趣。 - SimonJGreen
那么sun或sgi都会为你找到解决方案,不知道当前的型号是什么。 - tony roth


本地存储空间?我对本地RAID 5上的写入吞吐量感到非常满意 - 与DRBD8镜像到我的XEN机器的集群伙伴......(但当然这是“不支持”)。

除此之外,我很确定mySQL是你的性能问题(我从未见过更糟糕的数据库)。尝试将其调整和/或尝试将整个数据库放入文件系统缓存中(用于读取访问)...


-3
2018-03-04 21:40



OP具有现有的VMWare解决方案,并且与无盘主机一起运行。本地存储没有意义。 - ewwhite
本地存储可能还包括使用本地存储刀片。但我认为VMWare不会支持这一点。 - Nils
我不相信戴尔提供本地存储刀片 - 而且我不确定我是否见过其他人。我见过连接到单个刀片的驱动器刀片,不能为刀片中的任何人提供存储。你需要一个互连,它本质上是一个机箱本地SAN,对吗? - mfinni
对不起@Nils,我很确定你没有正确地阅读这个问题。 - SimonJGreen
Nils - 查看D2200sb:“机箱背板提供与相邻c-Class服务器刀片的PCI Express连接,无需任何额外电缆即可实现高性能存储访问....使用HP P4000 Virtual SAN设备软件(VSA)将D2200sb转换为iSCSI SAN,供机箱中的所有服务器和网络上的任何服务器使用。“ - mfinni