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

我一直在使用VMWare多年,运行几十个生产服务器,几乎没有问题。 但我从来没有尝试在一台物理主机上托pipe超过20个虚拟机。 这是这个想法:

  1. 一个精简版的Windows XP可以支持512MB的RAM和4GB的磁盘空间。
  2. 5000美元让我有一个8核心服务器类的机器与64GB的内存和四个SAS镜像。
  3. 由于上面提到的100个虚拟机都适合这台服务器,我的硬件成本只有50美元,比起在GoDaddy或任何其他主机商店租用虚拟机便宜得多。

我想看看有没有人能够用VMWare来实现这种可扩展性? 我做了一些testing,碰到了一个奇怪的问题。 一旦启动了20个虚拟机,虚拟机性能就会急剧下降。 与此同时,主机服务器不会显示任何资源瓶颈(磁盘空闲99%,CPU使用率低于15%,并且有足够的空闲RAM)。

如果你能分享你的成功故事,扩展VMWare或其他虚拟化技术,我将不胜感激!

    是的你可以。 即使对于一些只有384MiB的Windows 2003工作负载也是如此,所以512MiB是一个相当不错的估计,不pipe高一点。 内存不应该是一个问题,CPU也不应该。

    100台虚拟机是有点陡峭,但它是可行的,特别是如果虚拟机不会很忙。 我们可以在单台ESX服务器上轻松运行60台服务器(Windows 2003和RHEL)。

    假设你在谈论VMware ESX,你也应该知道能够过度使用内存。 虚拟机几乎没有使用他们完全指定的内存配额,所以ESX可以提供比可用数量的内存更多的虚拟机,并运行更多的虚拟机。

    很可能你的瓶颈不会是CPU或RAM,而是IO。 VMware在其营销中拥有大量的IOPS,但是当推动力上升时,SCSI预留冲突和有限的带宽将阻止你死去,然后你会接近IOPS VMware VMware的吹嘘。

    无论如何,我们没有遇到VM性能下降的问题。 你使用的是什么版本的ESX?

    像这样一个大环境的一个主要问题就是防灾和数据保护。 如果服务器死亡,那么100个虚拟机就会死亡。

    您需要计划虚拟机的某种故障转移,并计划某种“额外虚拟机”pipe理,以便在发生故障时保护您的虚拟机。 当然,这种冗余意味着成本的增加 – 这也许是为什么许多时候这样的支出在实践中看不到它的好处之后才被批准。

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

    • networking – 如果VM主机的网卡出现故障,该怎么办?
    • 内存 – 如果虚拟机主机的内存块变坏,该怎么办?
    • CPU – 如果CPU内核死亡,那么VM会发生什么?
    • 电源 – 是否只有一个或两个电源电缆?
    • pipe理端口 – 假设你不能进入虚拟机的主机pipe理?

    这只是less数几个:大规模虚拟机基础架构需要注意防止数据丢失和防止虚拟机丢失。

    但是有一个非常有趣的NetApp演示,他们在大约30分钟内在32个ESX主机(每个主机有170个)上configuration5440个XP桌面,由于对常见虚拟机进行重复数据删除,磁盘空间非常小图片

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

    我的猜测是你的限制来自磁盘子系统。 你似乎已经占据了相应的内存和CPU使用量。

    从来没有这样做 – 但我承诺你将花更多的时间在存储上获得足够的IOP来支持许多虚拟机,而不是在服务器硬件上。 如果所有100个同时处于活动状态,则需要很多IOP。 不要听起来消极,但你也认为你在一个篮子里放了很多鸡蛋(听起来你是单一的服务器解决scheme?)

    我最担心的是在一台主机上有100个VM的CPU争用。 你必须记住,处理器没有虚拟化,所以每台机器都必须等待访问CPU。 通过查看ESXTOP,你可以开始看到争用,我曾经被告知VMWare Engineers在%RDY字段中超过5的任何内容都是非常糟糕的。

    根据我的经验,我已经看到在一台主机上运行大约30-40台服务器(不是太多)。

    我在VMWare服务器1.0.6(在Windows 2003下)有10个主机,它会定期运行到IO问题(如果夜间构build与其他事物重叠,那么他们会有问题)。 从Windows升级到ESXi U3后,我们发现性能问题消失了(每晚构build不再失败)。

    还要注意的是,尽pipeSSD比旋转介质具有更高的IO速率,但在某些情况下,这种情况并不成立,例如某些types的写入模式(散布在驱动器中的大量小写操作会导致性能下降,除非控制器具有智能写caching,在分散写入方面做得很好)。

    如果遇到问题,我build议在不同驱动器上调查/testingSWAP文件。

    如果你打算这样做,那么我强烈要求你使用新的Intel Nehalem Xeon 55xx系列处理器 – 它们被devise用来运行虚拟机,它们的额外的内存带宽也会有很大的帮助。 哦,如果你可以使用更多,更小的磁盘而不是less数,大的 – 这将有很大的帮助。 如果您也可以使用3.5U4以上的ESX v4。

    我有20个东西的XP虚拟机运行与512M的RAM每台机器16G的RAM。 不到这一点,他们交换到磁盘,并给出了瓶颈。 这些永远是活跃的XP虚拟机。

    VMware和它的OverCommitfunction应该允许你推动更多的RAM到每台XP机器上。 类似的机器将共享相同的页面,这样可以减less磁盘写入。 这是我想看看我们的设置,以尝试添加更多的机器,因为我们的XP虚拟机正在做10-20M的连续磁盘stream量。

    我们无法在VMWare服务器上获得100个快乐的客人,但后来发现ESXi做得更好。 所以,如果你使用ESXi和一个体面的服务器(几个磁盘镜像来传播I / O,几个I7芯片和64GB内存),看起来100个XP vms是不成问题的。 最终用户没有明显的延迟,主机资源也不会超出(最热的是CPU,但通常至less有70%的空闲)。

    PS。 当我们与VMWare服务器苦苦挣扎的时候,这个问题是由我回来的。

    上次我查了一下,假设每个虚拟机有一个vCPU,VMwarebuild议每个ESX的处理核心只有4个虚拟机。

    这表明pipe理费用成为一个因素。

    我很感兴趣,看看你能否在8核心盒子上实现4倍的效果。