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

25 virtualization virtual-machines scalability host vmware-esx

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

  1. 精简版的 Windows XP 可以使用 512MB 的 RAM 和 4GB 的磁盘空间。
  2. 5,000 美元为我买了一台 8 核服务器级机器,配备 64GB 内存和四个 SAS 镜像。
  3. 由于上面提到的 100 个虚拟机适合这个服务器,我的硬件成本仅为每个虚拟机 50 美元,这非常好(比在 GoDaddy 或任何其他托管商店租用虚拟机便宜)。

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

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

wzz*_*zrd 15

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

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

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

您的瓶颈很可能不是 CPU 或 RAM,而是 IO。VMware 在他们的营销中吹嘘大量的 IOPS,但是当迫不得已时,SCSI 预留冲突和有限的带宽会让您在接近 VMware 吹嘘的 IOPS 之前就死了。

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

  • 那是因为您使用的是 VMware Server。VMware Server 是另一个平台(最常见的是 Linux)之上的虚拟化平台,而 ESX 是一个裸机虚拟化平台。非常不同,无论是在概念上还是在执行方式上。 (2认同)
  • @德雷森德。不,不是。相信我。 (2认同)

Mei*_*Mei 11

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

您需要计划 VM 的某种故障转移,并计划某种“额外的 VM”管理,以在发生故障时保护您的 VM。当然,这种冗余意味着增加成本——这可能就是为什么很多时候这样的支出直到在实践中看到它的好处之后才被批准(因为它的缺席)。

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

  • 网络 - 如果 VM 主机的网卡出现故障怎么办?
  • 内存 - 如果 VM 主机的一块内存坏了怎么办?
  • CPU - 如果 CPU 内核死掉,那么虚拟机会发生什么?
  • 电源 - 是否只有一根或两根电源线?
  • 管理端口 - 假设您无法访问 VM 的主机管理?

这只是一些:庞大的 VM 基础架构需要仔细注意防止数据丢失和防止 VM 丢失。

  • 听大卫。您将需要 N+1 配置,这意味着您至少需要一台备用空闲机器,如果另一台机器出现故障,该机器能够吸收所有工作负载。我的建议是一个两台服务器的集群,它可以平均分配负载,但如果一台机器出现故障,它可以独立处理所有工作负载。 (2认同)