负载均衡与责任分离
假设我们有一个使用Apache Web服务器托管几千个网站的一个Web基础设施,任何拥有那么多网站的人都可能已经水平升级到了某种程度,如在四台服务器上托管500个网站。这种做法有几个问题。
·任何一台机器发生故障都意味着这500个网站将关闭。
·Apache在处理那样多的网站的时候是很可怕的,它需要很长时间才能重新启动一台服务器。
·每一台服务器的利用率可能都非常高。
我们做过一些推测。但是,让我们假设上述问题在我们虚构的环境中都是真实的。这个问题有两个解决方案。
负载均衡在这种情况下不是很好的解决方案。正如上面提到的那样,负载均衡设置需要那个应用程序保持在一个中心的、共享的位置。在这些服务器上的2000个网站都能够做到这一点是不可能的。一个好的负载均衡器能够跟踪入网的请求,并且总是把这些请求发回到同一台后台服务器。这种做法有一点帮助。但是,如果服务器断开连接,这些客户端必须重新进行身份识别。而且,负载均衡最适合升级支持水平升级的具体应用程序。
在Apache托管太多的网站的情况下需要采取责任分离的方法。理想的情况是,我们想看到每个Apache实例不超过100个网站。你不会遇到Apache故障,因为它有许多开放的设置文件(也许每一个虚拟主机都有一个设置文件),你不需要处理负载均衡问题。这取决于硬件,但是,你很有可能在一台服务器上运行四个至五个虚拟机。这样你可以再一次在一台服务器上托管500个网站。请等一下,那是我们以前曾达到的利用水平,只不过有了虚拟化的开销和五个操作系统实例额外需要的内存和处理器要求。确实如此,但是,每组100个网站使用的资源是不同的。
当我们进行水平升级的时候,我们通过利用服务器上的VMWare软件中的自动迁移功能可以实现更好的服务器利用率。你越多地进行的水平升级,优化的机会就越多。如果你与某些类型的集群管理软件一起使用Xen软件,可以建立同样的规则。免责声明:事实上,你可能需要在这个组合中增加一台服务器以处理未来的增长。
简言之,使用虚拟化技术进行水平升级比使用物理服务器升级更容易,能够得到随意调整工作负荷的好处。能够分成许多小部分的水平升级将提供更大的灵活性和多台虚拟机升级战略的好处。然而,一个单个的、重要任务的应用程序适当地支持一个负载均衡的设置,负载均衡可能是你最佳的选择。
阅读推荐
相关文章