是否可以将一台大型虚拟机跨越多台物理商品服务器?
以下是我们的用例:
- 我们需要实现一个具有 64 GB RAM 的 32 处理器数据库服务器
- 我们没有如此容量的物理服务器
- 我们确实有很多资源较少的服务器。
是否有技术或(更好的)产品可以让我们利用这些服务器创建具有所需容量的虚拟机?比如说,我们能否将 8 台物理 4 处理器机器(每台 8 GB RAM)组合成一个 32 处理器“逻辑单元”(每台 64 GB RAM),并设置一个使用所有这些容量的 Oracle 服务器?
在发布这个问题之前,我们阅读了类似的问题,但没有找到答案。
也许,现在有人可以给我们一点提示?
答案1
有一款商业产品来自ScaleMP称为 vSMP。它允许您将多个 x86 系统聚合到一个虚拟实例中。虽然我以前从未亲自尝试过,但我曾听过他们的演示。如果我没记错的话,要实现此功能需要满足特定要求,并且您需要获得一些额外的硬件(Infiniband 用于快速、低延迟互连)。它也可能花费不少钱!
答案2
没有办法获得与单台 32 处理器机器完全相同的功能……使用多台独立的服务器。最好的办法是研究集群或网格计算。如果做得正确,您可以获得相当的性能……以及更高级别的高可用性。您的很多问题还取决于您的“数据库”类型。Microsoft SQL Server 的工作方式与 MySQL 或 Oracle 有很大不同……并且可扩展性也完全不同。
或者...您可能需要考虑让某人为您做数据库...比如使用 EC2 RDS...
遗憾的是,没有办法将多台物理服务器组合在一起并在其上安装 VMware,最终得到一个超级强大的虚拟服务器。
答案3
“TheCompWiz”很有帮助地回答了您的问题。
我仍然想说,是的,您可以构建一个虚拟机管理程序,允许单个虚拟机跨越多个物理主机,并且它可以在一切正常运行的情况下“正确”运行该虚拟机。
但是,即使物理主机之间有非常好的高速网络,这种东西的性能也会非常糟糕,运行速度比单个主机中可以容纳的小型虚拟机慢得多。您必须通过拦截客户操作系统和应用程序执行的每一次内存读取或写入来模拟单个虚拟机的缓存一致性属性,这将使内存访问成本增加数千倍甚至数百万倍。
因此,没有一家商业虚拟机管理程序供应商能够实现这一点。它已经在实验室中进行了试验。没有人愿意用它来制造产品。
再次强调这一点,寻求集群解决方案。
答案4
VMWare 可以。它被称为 DRS,即分布式资源调度程序。它允许您组合 16 台服务器的资源。然后您可以将该总数分配给一个或多个虚拟环境。