我知道你可以在每台物理计算机上设置多个虚拟机。 我想知道是否有可能使多个物理计算机performance为一个逻辑单元?
从根本上来说,我认为它的工作原理就是有一天你可以把10台电脑扔进设施。 你有一个客户需要相当于两台计算机的价值,另外有100个客户需要剩余的8台。随着需求的变化,你只是重新分配逻辑资源,也许2台计算机客户端现在需要第三个物理系统。 您只需将其添加到云中,不必担心分片数据库或将数据迁移到新服务器。
它可以这样工作吗?
如果是的话,为什么有人会做手工分割他们的数据库服务器呢? 只需添加更多的计算资源。 您可以使用硬件进行水平缩放,但是您的服务器似乎可以垂直缩放。 没有必要修改你的应用程序的支持基础设施来支持多个数据库等
听起来很像网格计算,试着看看这个: http : //en.wikipedia.org/wiki/Grid_computing
可用的云服务也可以让你做一些这样的事情,例如。 来自Amazon的S3 Storage,您只需将数据上传到一个大型的“存储桶”中,然后将数据移到多台计算机上 – 您只需使用“文件指针”(key)即可访问它。
您甚至可以通过他们称之为CloudFront( http://aws.amazon.com/cloudfront/ )的数据来复用您的数据,但它的意思是作为“内容交付networking”,为您提供大量快速的Web服务器向数百万用户发送数据。 许多大型网站已经使用这些。
关于需要更多权力的程序运行的透明度,您可以编写一些能够转换作业/转发作业的程序 – 但是您可以通过某种分配机制来处理它。 无论是作为您的操作系统的一部分,或者如果它更多的应用程序,只是在“computergrid / farm”中一起工作的应用程序。
像MAYA和3D Studio MAX这样的大型3D渲染程序也有“Renderfarm”软件。 您将所有物理硬件机器放置在networking中,并将其作为“渲染节点”,并在放置项目进行渲染的“主服务器”上进行。 然后,每个节点都会向主服务器请求一个“作业”,然后他们将渲染animation片段,然后将结果发送回主/目的地。
SETI项目使用了同样的技巧。 http://www.seti.org/
他们提供了一个小型的“屏幕保护程序”,这个屏幕保护程序从他们的巨型数据中心下载一些数据 – 然后程序开始closures下载的数据。 完成分析后,将结果上传到主服务器并请求一个新服务器。 所有没有你做的事情只能安装“节点”。
这样,运行这个小客户端的数千台计算机将在一个巨大的电网中提供帮助。
如果每个人都有一个“网格计算机操作系统”,那么你永远不会知道你的计算机上运行着什么或多less人,如果你的系统遭到黑客攻击,那么这可能会带来一些有趣的安全问题。 是整个networking下降还是只是你的网格访问?
作为参考,请看“THE BORGS”和“STAR TREK”… LOL!
这是可以做到的,但不是“把它们扔到那里,挂上硬件,自动工作”(至less不是我所知道的)。 你会想configuration一个服务器作为代理(在互联网的服务器端)和每个服务器上的应用程序。 因此,用户login到代理,将其传递给应用程序服务器。 然后,应用程序服务器负责所有处理器密集型的工作(简单地将数据从一端传递到另一端不像处理器密集型)。 然后,应用程序可能会与数据库服务器进行通信。
思杰以这种方式工作。
尽pipe它是专门用于科学计算的,但贝奥武夫集群大约是这样。
此外,OpenVMS拥有(是的,有)集群能力,共享磁盘和内存,我认为它已经移植到Ultrix,现在已经死了(也许惠普将它移植到HPUX,谁知道)