是否可以将一个巨大的VM跨越多个物理商品服务器?


11

是否可以将一个大型虚拟机跨多个物理商品服务器?

这是我们的用例:

  • 我们需要实现一个具有64 GB RAM的32处理器数据库服务器
  • 我们没有这样容量的物理服务器
  • 我们确实有很多具有较小资源的服务器。

是否有一项技术或(更好的)产品可以让我们利用这些服务器来创建具有所需容量的VM?说,我们是否能够将8台物理4处理器计算机(每台计算机具有8 GB的RAM)组合到一个具有64 GB RAM的32处理器“逻辑单元”中,并设置使用所有这些容量的Oracle服务器?

在发布此问题之前,我们阅读了类似的问题,但未找到答案。

也许有人可以给我们一个提示吗?


2
这不是您问题的答案,但是很奇怪,没有人建议您查看软件限制。如果您的公司为中型企业构建应用程序,那么在我看来,问题显然是软件限制,软件架构师和设计人员可能没有想到具有数十亿记录或庞大的临时表或过程的数据库,为慢速查询创建一些自检和错误报告,这是解决问题的方法...考虑x86的3.3GB限制

Answers:


7

ScaleMP提供了一种名为vSMP 的商业产品。它允许您将多个x86系统聚合到一个虚拟实例中。我以前从未亲自尝试过此操作,但是我一直在看他们的演讲。如果我没记错的话,这有一些特殊的要求才能起作用,并且您需要获得一些其他硬件(用于快速,低延迟互连的Infiniband)。也可能要花一分钱!


1
ScaleMP不能模拟x86环境。您将永远无法让Windows或任何其他标准x86 OS在虚拟环境中运行。您唯一支持的版本是建立在SMP类型体系结构上的各种版本的Linux。在这种类型的建筑中,有多种口味。甚至免费的。
TheCompWiz

OP并未具体说明其他要求。我只回答了我可以从他/她的职位中学到的东西。
ryanlim

1
这看起来很酷。我怀疑一个32核盒子(可能带有2个16核AMD芯片)可能比带有Infiniband的集群便宜,但是我们走了。此解决方案获得更多的吹牛权利。
汤姆·奥康纳

9

无法获得与一台具有32个处理器的计算机完全相同的功能……具有多个单独的服务器。最好的选择是看集群或网格计算。如果做对了,您最终将获得可比的性能……以及更高水平的高可用性。您的很多问题还取决于您的“ db”类型。Microsoft SQL Server的工作方式与MySQL或Oracle截然不同...可扩展性也完全不同。

或者...您可能要考虑让某人为您做数据库...就像使用EC2 RDS ...

可悲的是,无法将多个物理服务器组合在一起并在其上拍打vmware,最终得到一个单一的超级强大的虚拟服务器。


TheCompWiz,谢谢您的回答。好的,如果答案取决于我的数据库类型,则将其设为Oracle或Microsoft SQL Server。通过这些更正,仍然不可能吗?是的,我们了解EC2,但是我们完全需要Oracle或Microsoft SQL Server来测试我们为客户提供的软件产品的问题...
user54614 2010年

另外,为什么只考虑vmware?我们不介意其他任何虚拟机监控程序...
user54614 '09 / 09/17

遍历多个服务器的能力是巨大的物流梦night……更不用说设备之间缺乏可用带宽。考虑一下CPU的速度...然后您需要做的所有事情都会减慢该过程...例如CPU->总线-> PCI-bridge->网卡->以太网电缆->网络堆栈-> ...甚至在到达其他服务器之前?您不想等待1秒钟就能添加1 + 1。群集通常能够执行此操作,因为在“作业”中分配了任务,并且将任务发布给了执行该任务中所有任务的计算节点...
TheCompWiz 2010年

...,然后将答案发送回管理节点。Windows没有。无法设置甚至尝试执行此操作的虚拟X86环境(或X86_64)。
TheCompWiz 2010年

2
@ user54614-您绝对无法通过将机器捆绑在一起来复制其方案。我建议与您的客户和Oracle支持人员交谈,以查明并找出问题所在。
克里斯·索普

-1

“ TheCompWiz”有用地回答了您的问题。

我仍然要说的是,您可以构建一个虚拟机管理程序,该虚拟机管理程序允许单个VM跨越多个物理主机,并且可以在所有功能正常运行的情况下“正确”运行该VM。

但是,即使在物理主机之间建立了非常好的高速网络,这种事情的性能也将是非常糟糕的,它的运行速度要比安装在其中一个主机中的较小的VM慢得多。您必须通过拦截来宾OS和应用程序执行的每个内存读取或写入操作,来模拟单个VM的缓存一致性属性,这会使成千上万个(甚至数百万个)内存访问成本成倍增加。

因此,没有任何商业管理程序供应商可以启用这种功能。已经在实验室尝试过了。没有人愿意用它来制造产品。

为了再次强调这一点,请寻找群集解决方案。


但是,如果我们提供的软件产品对大多数客户而言效果很好,但无法在庞大客户的环境中正常工作,该客户在具有64 GB RAM的32进程Oracle服务器上运行我们的应用程序。我们想在我们的环境中重现这种失败。
user54614 2010年

2
我对您的软件一无所知,但是32处理器和64GB RAM发生了什么,而2处理器和8 GB RAM却没有发生?如果在该级别上确实存在可重复的错误,那么这就是Oracle / OS / driver / IO /硬件问题。
gravyface

您将永远不会获得管理程序来遍历物理机器。它们仍然被限制在机器的物理核心内。话虽这么说...我敢打赌,您可以构建一个与很久以前的古老庞然大物类似的大型机类型体系结构...但是您永远不会在其上运行任何x86。
TheCompWiz 2010年

1
您的庞大客户应该拥有该怪物数据库服务器的第二个QA实例。如果他们没有可用的,那确实是他们的问题。在15年的IT工作中,我从未见过有人期望软件供应商能够复制其基础架构(除非它是服务合同的一部分,明确说明了这一点,并且客户为此付费)。尤其是在该基础架构深奥的时候(尽管如今,戴尔可以为22核美元的服务器提供32核64 GB的服务器)。
rmalayter

ScaleMP(scalemp.com)呢?
user54614 2010年

-2

VMWare确实如此。它称为DRS或分布式资源调度程序。它允许您组合16个服务器的资源。然后,您可以将总数分发到一个或多个虚拟环境。


不,这根本不是DRS所做的。DRS使群集中的一台自动vMotion机器甚至可以在主机节点之间加载。它决不以任何方式从一个虚拟机访问多个主机。
EEAA
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.