![OpenStack 单个虚拟机实例的多个计算节点资源分配](https://linux22.com/image/646921/OpenStack%20%E5%8D%95%E4%B8%AA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%AE%9E%E4%BE%8B%E7%9A%84%E5%A4%9A%E4%B8%AA%E8%AE%A1%E7%AE%97%E8%8A%82%E7%82%B9%E8%B5%84%E6%BA%90%E5%88%86%E9%85%8D.png)
我正在学习 OpenStack,并了解到单个计算节点的资源可以在多个虚拟机实例之间分配和共享。如果我们假设我有一个应用程序,它需要的资源呈指数级增长,并且在单个虚拟机实例上运行。是否可以为单个虚拟机实例分配多个计算节点资源,以便应用程序能够使用更多资源?
为了使其更简单,我希望能够为单个应用程序专用多个计算节点资源。
答案1
不可以,openstack 的当前实现不允许为单个虚拟机分配多个计算节点资源。您可以将 openstack 计算节点想象为 openstack 支持的虚拟化管理程序之一的抽象层(您可以在此处阅读支持的管理程序列表https://wiki.openstack.org/wiki/HypervisorSupportMatrix)。其中任何一个都允许使用多个计算节点的资源来创建虚拟机。
如果您的应用程序需要大量资源,您可以重新设计它,以便将计算分布在多个节点上。有很多方法可以做到这一点。例如,如果应用程序管理大量数据,您可以尝试使用大数据框架作为 hadoop。例如,如果应用程序需要许多 CPU 资源,您可以使用消息传递框架(例如:http://www.open-mpi.org/) 来同步分布在多个虚拟机上的应用程序。
如果您愿意,您可以分发这个经过重新设计的应用程序,以便使用 openstack 的多个虚拟机。