Cloud Computing – Multiple Physical Computers, One Logical Computer

cloud computing

I know that you can set up multiple virtual machines per physical computer. I'm wondering if it's possible to make multiple physical computers behave as one logical unit?

Fundamentally the way I imagine it working is that you can throw 10 computers into a facility one day. You've got one client that requires the equivalent of two computers worth, and 100 others that eat up the remaining 8. As demands change you're just reallocating logical resources, maybe the 2 computer client now requires a third physical system. You just add it to the cloud, and don't worry about sharding the database, or migrating data over to a new server.

Can it work this way?

If yes, why would anyone ever do things like hand partition their database servers anymore? Just add more computing resources. You scale horizontally with the hardware, but your server appears to scale vertically. There's no need to modify your application's supporting infrastructure to support multiple databases etc.

Best Answer

Sounds a LOT like grid-computing, try to have a look at this: http://en.wikipedia.org/wiki/Grid_computing

The cloud-services available will also let you do some sorts of this, eg. S3 Storage from Amazon, where you just upload your data to a large "bucket" and they will move the data around on their multiple machines - you still just use your "filepointer" (key) to access it.

You can even multiplex your data through something they call CloudFront (http://aws.amazon.com/cloudfront/) but its meant as a "content delivery network" providing you will loads of fast webservers sending data to millions of users. Many largescale websites use these already.

Regarding transparency with a program running which needs more power, you can either program something that will transfer the job/relay it - but you will some sort of distribution mechanism to handle it. Either as part of your operatingsystem or if its more application based, just applications working together in a "computergrid/farm".

Most large 3D rendering programs suchs as MAYA and 3D Studio MAX has "Renderfarm" software too. You place all your physical hardware machines in a network and "enable them as rendernodes" and on a "mainserver" you place your projects for rendering. Each node will then request a "job" from the master and they will render pieces of the animations and post the results back to the master/destination afterwards.

Same trick was/is used by the SETI project. http://www.seti.org/

They provide you will a small "screensaver" and this screensaver downloads a bit of data from their giant datacenter - then the programs starts to crunch on the data downloaded. Once done analyzing it uploads the results to the master and requests a new one. All happends without you do anything but install the "node".

This way the thousands of computers running this little client will help in a giant grid network.

If everyone had a "grid computer operating system" you would never know what or who or howmuch was running on your computer - that could bring up some interesting security issues + if your system got "hacked".. what then? is the whole network down or just your grid access?

For reference, please look up "THE BORGS" and "STAR TREK" too... LOL!

Related Topic