How to build a single virtual machine on top of multiple computers? [duplicate]

Is there a way to run Linux operating system on a virtual machine which aggregates the resources of physical machines on the local network and acts as a single super-computer? If possible, how?

Thanks.


Solution 1:

I think you would be looking at something like a LVS or a beowolf cluster;

"Linux Virtual Server is a highly scalable and highly available server built on a cluster of real servers. The architecture of server cluster is fully transparent to end users, and the users interact with the cluster system as if it were only a single high-performance virtual server."

Linux Virtual Server

"One of the main differences between Beowolf and a Cluster of Workstations (COW) is that Beowulf behaves more like a single machine rather than many workstations."

Beowolf

Realistically whatever you use you are going to subject to the problems of distributed computing which are concurrent access to data and maintaining consistency across the nodes. That generally has the result as the other poster mentioned that some more specific technology is more suitable such as distributed file-systems, or grid implementations.

Solution 2:

It is possible, yes. That is to say, it is possible to run a Linux operating system on multiple computers and present them as a single logical system with pooled physical resources.

That is the easy part, the how, however, is a bit more complex. What, precisely do you wish to accomplish?

To keep to the letter of the question, creating an infrastructure for the presentation of a logical single system I would look into OpenSSI. SSI stands for Single System Image.

In keeping with the spirit, there are a wide array of non-SSI but clustered system options available, which returns to my earlier question regarding intended outcome.

A word of warning: most cluster solutions, OpenSSI included, require a fair bit of kernel development before being released. This results in the "finished" product relying on an older kernel than is perhaps available for a cluster-less Linux distribution of your choice. OpenSSI, for example, is using the 2.6.12 Linux kernel currently.

Solution 3:

MOSIX (and openMosix) could be used to achieve this, but I do not know of its current state.

Solution 4:

As already mentioned, OpenMOSIX, OpenSSI, and (not mentioned) Kerrighed are single-system image clusters, i.e. they provide the illusion of one big SMP system. This is great for parallel tasks that spawn multiple processes with a minimum of interaction and little disk IO, since load balancing will distribute them across different nodes. I'm unsure about the status on these projects, OpenMOSIX is dead, and OpenSSI seems less than vibrant, with lots of stagnant web pages.