Jump to content

Recommended Posts

Posted
I think instead you're maybe thinking of "cloud" computing,

 

Nope, I know each physical machine needs an OS. And then on that OS it has a VM.

 

Any what I want to do is share that VM with the other 2 machines so they're all chipping in.

Posted
What are you using (which OS) to run Xen on?

 

I've found CentOS to be very easy to use.

 

Think the best thing I can do it get three similar spec'd machines and try it, using 2 as the VM servers and one as the central storage.

 

For performance, I figure it's best to have storage local to the processor running each VM, unless you have a decent SAN to hand. I mirror whole volumes between machines with DRBD. Okay, this means you spend more on harddrives, but I still figure that's less these days than fancy SAN networking equipment.

 

On a sub-topic, anyone know of any virtualization courses I can go on?

 

Didn't manage to convince the bursar that VM World in Las Vegas was a vital training opportunity...

 

--

David Hicks

Posted
Any what I want to do is share that VM with the other 2 machines so they're all chipping in.

 

All three machines are contributing to the processing of that (general-purpose) VM, you mean? As in you want to stick three PCs together with Ethernet cable, do some clustering magic and run Windows as a VM on top of your new "three processor" machine? As far as I know, this isn't possible. The communications bandwidth and latency available between your machines is the limiting factor - that's why processors and RAM are very tightly coupled. Admittedly, there are probably ways to get around this, but it would involve a specialist OS and application software written with clustering in mind, and maybe a different instruction set than 80x86 (i.e. the kind of thing the Transputer was designed to be).

 

Is the above an accurate description of what you're trying to accomplish? What task do you want to get your super-computer cluster to do? If it's to do something like serve web pages then you have one machine act as a load balancer, controlling which of the other machines gets to process each incoming HTTP request.

 

If you want a fun/cheap way to practice at this, without having to buy a stack of hardware, then Amazon EC3 (and similar services) is worth a look. If you're just trying to write a bit of software to run in a distributed manner then maybe Google Python-based service is what you need.

 

--

David Hicks

  • 2 weeks later...
Posted

As I read this your talking about 2 OS's across 3 hardware platforms with even load spreading across it rather than 2 live environments and an idle backup.

 

If that is the case then your going the wrong way at this. Yes it can be done but its expensive VERY VERY expensive and I can see no real world scenario outside of the Eve online server where this is necessary or even desirable.

 

As posted above the bandwidth requirement to share tasks at a process level is just too intensive your talking infiniband technology with a custom written or heavily customised OS to make it work and even then unless your doing very compute heavy tasks on it its never going to pay back the investment.

 

If redundancy a transparent failover is your goal then you want to VM your Individual servers in a standard Windows environment config ie. DC1, DC2, Print server, Fileserver, Exchange, Web, SIMS. You buy 2-4 powerful multiprocessor servers or a bladeserver pick a virtualisation environment such as hypervisor VMware or Xen and run your 7 virtual servers on that hardware from shared fault tolerant storage and in the event any of your physical servers crashes your users will because the VM management software will start the VMs that were running on the failed server on one of the healthy servers increasing load on them possibly leading to some slowdown for users but no loss of service.

 

You could also cluster critical services using windows clustering technology across your Virtual servers so that in the event of one of them failing your services are also unafected.

 

If you really need the raw processing power of multiple machines then your better staying away from virtualisation altogether. Even with the hardware support maturing as soon as you bring the word virtual into it you are not making the most efficient possible use of your hardware. You should look into compute clusters and render farm technology. Many of the universities have papers detailing the development of they're computation farms. From design documents for purposebuilt systems from IBM or for in house efforts built from off the shelf hardware such as beowulf clusters.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...