云计算中虚拟机的放置需要考虑数据中心节点资源大小情况吗

看你怎么理解使用资源之和了。如果使用资源之和是指配置给所有VM的资源之和,这句话就是伪命题。因为很多情况下host是可以被overcommit的,也就是,一个1T内存,80个CPU的物理机上可以同时运行10个128G内存,8个vCPU的虚拟机,只要所有虚拟机并不是完全用掉了分配的所有资源。如果那句话是指所有活跃资源,也就是这些VM的所有vCPU都在全负荷运行,并且所有的内存都分配给了VM里面的APP使用,那么这句话是正确的。因为一升汽油怎么的也不可能当成两升来用。所以,所谓云计算是无法成为创造资源的魔法师的。当然你在使用无论公有云还是私有云的时候,都有管理datacenter的软件来帮你分配你所需的资源,从还有空余资源的host上帮你分配。不过如果你想要一个超过128个vCPU,超过4T内存的虚拟机的话,目前还是做不到的,因为x86 host的上限就是这个。另外,一切的透明,都是一定是有人/软件来维护的。具体到datacenter,维护的就是软件+人。软件管schedule,人负责去rack里面维护真实的机器。你看即使牛如黑客帝国里的the matrix,不也是要有物理的人们被插在机器上嘛。
■网友
既然是云计算,就别总盯着一个虚拟机了。早点做好程序的Scale Out设计,部署成基于PAAS和SAAS的才可以更好的适应新的环境。如果是这样,就不用关心每个节点的情况了。如果程序还是采用原先的Scale Up方式,那么单虚拟机部署只适合将多个低负载的程序共享在同一个节点上,并提供保护能力。并不能提供更好的运行资源。
■网友
解释下上面@高鹏 说的第二段对虚拟机来说,cpu和内存资源都是当前所在节点提供的,不能向其他节点借用,所以它的实际可用资源最大值就是当前所在节点的物理值(cpu和内存)。如果想跨越节点整合cpu和内存,那么首先网络速度是致命的慢(相对于cpu和内存),其次运算构架需要分布式运行,这不是虚拟机擅长的事。用虚拟机是为了节约资源减少浪费(一个节点运行多个系统),如果要跨节点运行的话请参考大数据平台(如hadoop)。


    推荐阅读