在一台VMWare主机服务器上运行100个虚拟机


24

我使用VMWare已有很多年了,运行几十个生产服务器时几乎没有问题。但是我从未尝试在单个物理主机上托管超过20个VM。这是想法:

  1. 精简版Windows XP可以拥有512MB的RAM和4GB的磁盘空间。
  2. 5,000美元让我得到了一台8核服务器级计算机,配备64GB RAM和四个SAS镜像。
  3. 由于上述服务器可容纳100个上述VM,因此我的硬件成本仅为每个VM 50美元,这非常好(比在GoDaddy或任何其他托管商店租用VM便宜)。

我想看看是否有人能够使用VMWare实现这种可扩展性?我做了一些测试,遇到了一个奇怪的问题。一旦启动20个虚拟机,虚拟机性能就会开始急剧下降。同时,主机服务器未显示任何资源瓶颈(磁盘处于99%空闲状态,CPU利用率低于15%,并且有大量可用RAM)。

如果您能分享有关扩展VMWare或任何其他虚拟化技术的成功案例,我将不胜感激!


4
您打算使用哪种VMware产品?ESX?ESXi的?服务器?
wzzrd 2009年

2
您可以轻松地以256运行XP,特别是在轻载任务中。微软要求64,但128是“足够的” technet.microsoft.com/zh-cn/library/bb457057.aspx
Matt Rogish 2009年

1
您从哪里购买服务器?我想要一个:)
沃伦

1
仅5000美元,你能卖给我两个吗?:)
Taras Chuhay 09年

您的托管服务器中有“这一数量的cpu”,每个VM都会获得一部分。加上esxi将产生开销:每秒切换多次,例如“切换到该VM,对其进行管理,切换到下一个等等”。这意味着每个虚拟机将仅获得总cpu的一小部分。VM越多,您对cpu的划分就越多(并且您添加的开销也就越多,这意味着实际上不是拥有100个vm,而是拥有更多的虚拟机)。
Olivier Dulac

Answers:


15

是的你可以。即使对于某些Windows 2003工作负载,只要384MiB就足够了,所以512MiB还是一个不错的估计,尽管有点高。RAM应该不成问题,CPU也不应该成问题。

100个VM有点陡峭,但这是可行的,尤其是在VM不会很忙的情况下。我们可以在一台ESX服务器上轻松运行60台服务器(Windows 2003和RHEL)。

假设您正在谈论VMware ESX,您还应该知道它能够过量使用内存。VM几乎不会使用其全部指定的内存比率,因此ESX可以向VM分配比可用RAM更多的内存,并运行比“正式”拥有RAM实际更多的VM。

您的瓶颈很可能不是CPU或RAM,而是IO。VMware在其市场营销中拥有大量的IOPS,但是当一推再推时,SCSI预留冲突和有限的带宽将使您陷入僵局,直到您逼近VMware吹嘘的IOPS。

无论如何,我们不会遇到20个VM性能下降的情况。您正在使用哪个版本的ESX?


谢谢Wzzrd!我目前正在使用VMWare Server 2.0,但计划很快尝试ESX。我一直在非常仔细地观察所有主机阵列上的I / O,而使它达到最大极限的唯一方法是一次重新启动多个guest虚拟机。当guest虚拟机正在执行较少的工作量或保持空闲时,主机磁盘将处于99%空闲状态。因此,我怀疑除了CPU和IO之外,还有其他原因导致所有VM变慢。顺便说一句,它们急剧减速-打开“开始”菜单需要20秒,如果我在VM中运行任务管理器,则任务管理器需要90%的CPU-很奇怪!
丹尼斯·卡什金

2
那是因为您正在使用VMware Server。VMware Server是在另一个平台(最常见的是Linux)之上的虚拟化平台,而ESX是裸机虚拟化平台。在概念和执行方式上都大不相同。
wzzrd

令人遗憾的是,当补丁日为100 vm时,您将同时重新启动许多垫板;)而且补丁本身很难。当心一个服务包-那是真正的痛苦开始的时候;)
TomTom

不要再自欺欺人地认为裸机是很特别的事情。ESXi只是精简版的Linux。是的,Linux。
dresende 2012年

2
@dresende。不,不是。相信我。
wzzrd 2012年

11

像这样的大型环境的一个主要问题是灾难预防和数据保护。如果服务器死机,则100个VM随之死机。

您需要计划VM的某种故障转移,并计划某种“额外的VM”管理,以在发生故障时保护您的VM。当然,这种冗余意味着增加了成本-这可能是为什么很多次直到在实践中看到其收益(没有它)后才批准这种支出的原因。

还要记住,VM主机只是几个单一故障点之一:

  • 网络-如果VM主机的网卡出现故障怎么办?
  • 内存-如果VM主机的大部分内存坏了怎么办?
  • CPU-如果CPU内核死亡,那么VM会发生什么?
  • 电源-只有一根或两根电源线吗?
  • 管理端口-假设您无法进入VM的主机管理?

仅举几例:庞大的VM基础架构需要仔细注意防止数据丢失和VM丢失。


2
听大卫。您将需要N + 1配置,这意味着您至少需要一台备用空闲计算机,该计算机能够在另一台计算机出现故障时承担所有工作负载。我的建议是由两台服务器组成的群集,该群集可以平均分配负载,但如果一台计算机出现故障,则可以独立处理所有工作负载。
詹森·皮尔斯

4

没有在生产中说明其可行性,但是有一个非常有趣的NetApp演示,其中由于对常见VM进行重复数据删除,它们在30分钟内使用很少的磁盘空间在32个ESX主机(每个主机170个)上提供5440 XP桌面。图片

http://www.youtube.com/watch?v=ekoiJX8ye38

我的猜测是您的限制来自磁盘子系统。您似乎已经相应地考虑了内存和CPU使用率。


3

从来没有做过-但我保证您将花费比存储更多的钱来获得足够的IOP以支持比服务器硬件更多的IOP。如果所有100个IOP同时处于活动状态,则需要大量IOP。听起来不是负面的,但您是否还考虑过要在一个篮子里放很多鸡蛋(听起来像是在寻求单服务器解决方案?)


2
我肯定会创建多个“篮子”并设置一些自动备份。如今,使用SSD驱动器可以轻松解决I / O瓶颈。我一直在生产中使用160GB的Intel MLC驱动器,它们非常出色。基本上,您获得的随机I / O性能是顶级SAS驱动器的5倍(在简单RAID配置中)。
丹尼斯·卡什金

1

我最担心单个主机上有100个VM的CPU争用。您必须记住,处理器未进行虚拟化,因此每台计算机都必须等待对cpu的访问。通过查看ESXTOP,您可以开始看到竞争。VMWare工程师告知%RDY字段中超过5的任何内容都是非常糟糕的。

根据我的经验,我在一台主机上运行了大约30-40台服务器(做得并不多)。


1

我在VMWare Server 1.0.6(在Windows 2003下)上有10台主机,它会定期遇到IO问题(如果每晚的构建与其他内容重叠,那么它们就会出现问题)。从Windows升级到ESXi U3后,我们发现性能问题消失了(夜间构建不再失败)。

另请注意,尽管SSD的IO速率比旋转的介质高得多,但在某些情况下这种情况不成立,例如某些类型的写入模式(散布在驱动器上的大量小写入操作会降低性能,除非控制器具有智能写缓冲缓存,可以很好地执行分散写操作)。

如果遇到问题,建议您调查/测试将SWAP文件保存在不同的驱动器上。


1

如果您要这样做,那么我强烈建议您使用新的英特尔“ Nehalem” Xeon 55xx系列处理器-它们旨在运行VM,它们的额外内存带宽也将极大地帮助您。哦,如果您可以使用更多的磁盘,而不是少数的大型磁盘,那将有很大帮助。如果您也可以在3.5U4之上使用ESX v4。


1

我在装有16G内存的计算机上有20台运行512M内存的XP VM。少于此数目,它们交换到磁盘上,这成为了瓶颈。这些始终是活动的XP VM。

VMware及其OverCommit功能应允许您将更多内存推入每台XP计算机。相似的机器将共享相同的页面,因此可以减少磁盘写入。我想研究一下我们的设置,以尝试添加更多计算机,因为我们的XP VM正在执行10-20兆的连续磁盘流量。


1

我们无法在VMWare Server上实现100个满意的宾客,但是随后发现ESXi做得更好。因此,如果您使用ESXi和一台像样的服务器(几个磁盘镜像来分发I / O,几个I7芯片和64GB RAM),那么看起来100个XP虚拟机似乎不是问题。最终用户没有明显的延迟,并且主机资源没有用尽(最热门的是CPU,但通常至少有70%空闲)。

PS。当我们在使用VMWare Server时,这个问题是由我发回的。


0

上次我检查时,假设每个VM一个vCPU,VMware建议ESX每个处理核心不超过4个VM。

这表明管理开销已成为一个因素。

我非常感兴趣,看看您是否真的可以在8核盒子上达到4倍的倍数。


1
那是ESX 3.5U2之前的版本-更新2的配置最大值文档说8出于一般目的,但对于VDI工作负载则增加到11。我敢肯定,我发现有些东西无法通过Update 3或4将VDI建议提高到19。对于vSphere,该限制现在为20。从VMware的官方文档中搜索VMware ESX Configuration Maximums。
赫尔维克,2009年

我的虚拟机大多数时候都保持空闲状态。人们每天可能会连接几次以运行某些轻量级软件。我已经确认,这些虚拟机在空闲时会在主机上产生非常小的CPU开销(20个虚拟机基于双四核系统的CPU利用率总计达到9%)。您能记住每个CPU限制四个VM的合理性吗?他们在考虑Web服务器或桌面OS实例吗?
丹尼斯·卡什金
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.