Combine several physical servers into 1 virtual server

The current virtualisation splits one big physical server into smaller virtual servers. But is it possible to combine several physical servers into 1 virtual server ?

UPDATE: We have several different systems which require their own server to perform CPU intensive jobs. What we are trying to do is to create 2 virtual servers spread across 6-8 smaller capacity servers. The virtualization software we investigated takes 1 big physical server and slices into 2-3 smaller capacity servers.

We are also looking into dynamically increasing CPU of virtual servers, so that we could use full CPU capacity when one of them is using less capacity.

Is this idea utopian ?


Solution 1:

What you're describing is cluster computing (i.e. Google "Beowulf Cluster"). It doesn't behave quite the way you're describing (i.e. it won't pretend to be one OS, exactly, and you'll need some kind of job scheduler/dispatcher to tell which machines to run which processes unless you've specifically written your code to use the MPICH libraries are something similar to automatically distribute across all machines).

The reason that it doesn't work like a simple "this is just one OS" interface is because you don't want to conceal (and thus inhibit tuning around) the gigantic latencies (in terms of processing cycles) involved in having bits of memory retrieved across a network.

For code that is single-threaded, but needs to be dispatched from a central location, there are small tools such as "dsh" designed to allow you to parallelize jobs easily across multiple machines via SSH.

Without more specifics about what you're trying to do, it's difficult to offer more precise advice.