3

Im learning about OpenStack and understand that resources of a single compute node can be allocated and shared between multiple vm instances. If we assume that I have a single application that requires resources exponentially and runs on a single vm instance. Is it possible to allocate multiple compute node resources for the single vm instance so the application is able to use more resources?

To make it more simple, I would like to be able to dedicate multiple compute nodes resources for a single application.

  • No but you might be able to combine multiple VM instances using a [single system image](http://en.wikipedia.org/wiki/Single_system_image) OS. – Andrew Domaszek Nov 28 '14 at 00:07
  • is it possible to combine bare metal servers (No VMS) using SSI? reading the wiki and about OpenSSI it sounds like a possible think to do. –  Nov 28 '14 at 00:29
  • Yes, however, it's more of a research topic than a valid architecture choice for most applications. You're much better off dividing your application into multiple chunks that can be independently processed and pipelining or otherwise dividing the workload. – Andrew Domaszek Nov 28 '14 at 00:33

1 Answers1

1

No, the current implementation of openstack doesn't allow to allocate multiple compute node resources for a single VM. You can imagine openstack compute nodes as an abstraction layer over one of the virtualization hypervisor supported by openstack (Here you can read the list of hypervisors supported https://wiki.openstack.org/wiki/HypervisorSupportMatrix ). Any of them allow to create vm using resources of multiple compute nodes.

If you have an application that requires resources exponentialy resource you could redesign it in order to distribute the computation over several node. There are many approaches in order to do it. For example if the application manages a lot of data you can try to use a big data framework as hadoop. For example if the application need many cpu resource you can use a message passing framework(example: http://www.open-mpi.org/ ) in order to syncronize the application distributed over several vm.

If you want you can distribute this application redesigned for using several VMs using openstack.

NoNoNo
  • 1,963
  • 14
  • 20
  • I think hadoop would be the best option since my application is going to record videos from multiple live streams. Another option is to deploy the application on one server until the resources are exhausted then deploy a new server and send the traffic to it. –  Nov 27 '14 at 23:57
  • You can also mix these solutions in order to achieve more benefit. Hadoop is used very ofter for batch application ( http://en.wikipedia.org/wiki/Batch_processing ) and not for real-time application like record videos. You can have one or multiple vm in order to record videos and a lot of hadoop servers used to store, manage and trasform videos. – NoNoNo Nov 29 '14 at 00:28