I have 5 computer systems in our small office. From my basic understanding of Virtualization technology, I think I can virtualize the 5 systems into one big virtual system. I wish to confirm this.

So, for example, if I have 3 GB of RAM and 2 cores on each system, my question is:-

  1. Can I make one big virtual system which will have 15 GB of RAM (3 * 5 sysems) and 10 cores?

  2. If the answer to the above question is yes, which is the best free and Opensource software/hypervisor to do this? Can Oracle VirtualBox be a good candidate?

I am a beginner in Virtualization technology so please pardon if the questions are too simplistic/nonsense.

  • are you looking to join the compute power of the workstations into one single "computer" or to get one powerful server, and place the loads of the 5 PCs you have on it, in VMs? – dyasny May 29 '12 at 9:16
  • what type of system you are going to virtualize desktops server web servers, database servers ? – B14D3 May 29 '12 at 9:24
  • Yes, I am looking to join/add the compute power of the 5 desktops into one big powerful virtual computer. The system that I want to virtualize are simple desktops system with 2-4 GB of RAM and dual core processors. They are not servers, simple desktop systems. – Anuroop May 29 '12 at 9:30
  • 1
    Then you already have your answer. Multiple machines can be joined into computational clusters to perform a specific task, but they cannot share resources to run, for example, one large VM, that uses the resourses of all the hypervisors simultaneously. @TomTom mentioned there actually are such products, but I doubt they are the common hypervisor types, nor do they use stock hardware (RDMA was mentioned) – dyasny May 29 '12 at 16:03

If you are talking about adding their computing power together to make one big supercomputer, then no (that isn't virtualization, that is cluster/distributed computing, and would require specially written software that would take advantage of that environment). Virtualization is the exact opposite, taking one computer with a large amount of resources, and subdividing them amongst smaller applications (which avoids wasting resources. Not many things require a dozen GB of RAM or more, for example). Servers typically use Microsoft Hyper-V (which comes with recent editions of Windows Server), or VMWare ESXi (a free, mature hypervisor, but the management tools will cost you lots of $$$).

What you may be thinking of is Desktop Virtualization, where the actual desktops for each worker are thin clients/dumb terminals, which then connect to the central server where all of the users' programs are being run. This is similar to Terminal Services.

Edit: To elaborate a bit more, I am not aware of any hypervisors that "pool" resources from client machines. This question is somewhat analogous to the question of "If I have 4 cores running at 2GHz, can I combine them into an 8GHz processor?". The general answer in both cases is no. Of course, there are specialized exceptions, such as some kind of multiple-host VM, or a massively-parallel distributed application. But if this was so simple, why don't big companies like Microsoft pool all of their computing resources into a giant computer with thousands of cores and terabytes of memory? The answer: you can't.

| improve this answer | |
  • Thanks for bringing that point out. I missed to describe my aim. My aim to virtualize the 5 systems was to make a big super computer AND to avoid wasting of resources because those 5 desktops are rarely used to their full capacity. But I don't understand if virtualizing 5 system into one big system is possible, why can't that one big super computer be really powerful? – Anuroop May 29 '12 at 9:17
  • Unfortunately, it doesn't work like that. Some applications, such as 3ds Max, let you set up a render farm and distribute processing work amongst computers. So in that case, your described setup would work. However, it would be the program itself that batches out work, the computers themselves would never actually combine in any way. – Bigbio2002 May 29 '12 at 9:19
  • Ok, I see your point... though still confused. So can we conclude that virtualizing 5 systems into one big system is theoretically possible but the one big system will not be really powerful, i.e. it will not be equivalent to a 15 GB 10 core physical system. – Anuroop May 29 '12 at 9:22
  • -1 for simply false information. THere are 2 hyper visors on the market that CNA do that - have one virtual machine span multiple physical ones. They are EXPENSIVE though and it makes no sense on stock computers, especially as the infrastructure is expensive too (shared memory = infiniband). So, while your statement is right for 95% of the cases, it is simply false from a logical point of view. – TomTom May 29 '12 at 9:24
  • That is incorrect. You cannot combine computing resources in a straightforward manner such as what you proposed. It IS possible for a specifically designed application to massively scale in parallel, but again, the application would have to be specifically designed to be distributed. – Bigbio2002 May 29 '12 at 9:25

There actually IS something that does that. It's called "Virtualization for Aggregation". This usually requires hardware that meets a certain level of features, so typical small office machines may not work.

There are more details here: https://askubuntu.com/a/344174/185697

| improve this answer | |

You actually can now, although it requires InfiniBand which may be out of your price range.

The only one that I know that can do this is ScaleMP (http://www.scalemp.com/)

Basically it makes all the servers appear as 1 VM and then you install onto that and run whatever power-/memory-hungry application you need to run.

By leveraging the InfiniBand interconnects you can get relatively high speed access to RAM and disk on other servers.

| improve this answer | |

You may want to check Apache Mesos. it seems like Mesos implemented similar idea. http://incubator.apache.org/mesos/

I just heard about it but didn't try it.

| improve this answer | |
  • Thanks. I had a look at Mesos and from the initial reading of documents it does not seem to fit my requirement where I want to club many computers as one big super computer. – Anuroop Apr 14 '13 at 13:56

Yes, you can. Also you will need less total RAM and CPU power, since virtual systems will re-use idle capacity.

Virtualbox is not a recommended solution for server virtualization. You need to check Vmware, Xen, Linux KVM or Hyper-V to chose one that fits you.

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.