Cache服务器直接访问Internet完成。所以,这种方法对Cache集群系统特别有效。
Cache服务器采用本地硬盘来存储可缓存的对象,因为存储可缓存的对象是写操作,且占有一定的比例,通过本地硬盘可以提高I/O的访问速度。Cache服务器间有专用的多播通道(Multicast Channel),通过ICP协议(Internet Cache Protocol)来交互信息。当一台Cache服务器在本地硬盘中未命中当前请求时,它可以通过ICP查询其他Cache服务器是否有请求对象的副本,若存在,则从邻近的Cache服务器取该对象的副本,这样可以进一步提高Cache服务的命中率。
为150多所大学和地区服务的英国国家JANET Web Cache网在1999年11月用以上LVS结构实现可伸缩的Cache集群[8],只用了原有50多台相互独立Cache服务器的一半,用户反映网络速度跟夏天一样快(学生放暑假)。可见,通过负载调度可以摸平单台服务器访问的毛刺(Burst),提高整个系统的资源利用率。
6.可伸缩邮件服务
随着Internet用户不断增长,很多ISP面临他们邮件服务器超载的问题。当邮件服务器不能容纳更多的用户帐号时,有些ISP买更高档的服务器来代替原有的,将原有服务器的信息(如用户邮件)迁移到新服务器是很繁琐的工作,会造成服务的中断;有些ISP设置新的服务器和新的邮件域名,新的邮件用户放置在新的服务器上,如上海电信现在用不同的邮件服务器public1.sta.net.cn、public2.sta.net.cn到 public9.sta.net.cn放置用户的邮件帐号,这样静态地将用户分割到不同的服务器上,会造成邮件服务器负载不平衡,系统的资源利用率低,对用户来说邮件的地址比较难记。
图5:基于LVS的可伸缩邮件集群
可以利用LVS框架实现高可伸缩、高可用的邮件服务系统。它的体系结构如图5所示:在前端是一个采用IP负载均衡技术的负载调度器;第二层是服务器池,有LDAP(Light-weight Directory Access Protocol)服务器和一组邮件服务器。第三层是数据存储,通过分布式文件系统来存储用户的邮件。集群中各结点是通过高速网络相连接。
用户的信息如用户名、口令、主目录和邮件容量限额等存储在LDAP服务器中,可以通过HTTPS让管理员进行用户管理。在各个邮件服务器上运行SMTP
(Simple Mail Transfer Protocol)、POP3(Post Office Protocol version
3)、IMAP4(Internet Message Access Protocol version 4)和HTTP/HTTPS服务。SMTP接受和转发用户的邮件,SMTP服务进程查询LDAP服务器获得用户信息,再存储邮件。POP3和IMAP4通过LDAP服务器获得用户信息,口令验证后,处理用户的邮件访问请求。这里,需要有机制避免不同服务器上的SMTP、POP3和IMAP4服务进程对用户邮件的读写冲突。HTTP/HTTPS服务是让用户通过浏览器可以访问邮件。
IPVS调度器将SMTP、POP3、IMAP4和HTTP/HTTPS请求流负载较均衡地分发到各邮件服务器上,从上面各服务的处理流程来看,不管请求被发送到哪一台邮件服务器处理,其结果是一样的。这里,将SMTP、POP3、IMAP4和HTTP/HTTPS运行在各个邮件服务器上进行集中调度,有利于提高整个系统的资源利用率。
系统中可能的瓶颈是LDAP服务器,对LDAP服务中B+树的参数进行优化,再结合高端的服务器,可以获得较高的性能。若分布式文件系统没有多个存储结点间的负载均衡机制,则需要相应的邮件迁移机制来避免邮件访问的倾斜。 这样,这个集群系统对用户来说就像一个高性能、高可靠的邮件服务器(例如上海电信只要用一个邮件域名 public.sta.net.cn就可以)。当邮件用户不断增长时,只要在集群中增加服务器结点和存储结点。用户信息的集中存储使得用户管理变得容易,且集群系统有利于提高资源利用率。
7.小结
本文给出LVS集群的通用体系结构,并讨论了它的设计原则和相应的特点;最后将LVS集群应用于建立可伸缩的Web、Media、 Cache和Mail网络服务,并指出了系统架设时应注意的要点。我们将在后续的文章中详细解释LVS集群的技术、实现和应用。
参考文献
1. J.H. Howard. An Overview of the Andrew File System. In Proceedings of
the USENIX Winter Technical Conference, Dallas, TX, USA, February 1998. 2. Kenneth W. Preslan, Andrew P. Barry, Jonathan E. Brassow, Grant M.
Erickson, Erling Nygaard, Christopher J. Sabol, Steven R. Soltis, David C. Teigland, and Matthew T. O'Keefe. A 64-bit, Shared Disk File System for Linux. In Proceeding of 16th IEEE Mass Storage Systems Symposium, San Diego, CA, USA. March 15-18, 1999. 3. Global File System Website. http://www.globalfilesystem.org. 4. Coda File System Website. http://www.coda.cs.cmu.edu. 5. InterMezzo File System Website. http://www.inter-mezzo.org.
6. Alan Robertson, et al.
http://www.linux-ha.org.
Linux High Availability Project.
7. Jerry Glomph Black. LVS testimonials from Real Networks. March 2000.
http://marc.theaimsgroup.com/?l=linux-virtual-server&m=95385809030794&w=2 8. Michael Sparks. Load Balancing the UK National JANET Web Cache
Service Using Linux Virtual Servers. November 1999. http://wwwcache.ja.net/JanetService/PilotService.html.
关于作者
章文嵩,开放源码及 Linux内核的开发者,著名的Linux集群项目--
LVS(Linux Virtual Server)的创始人和主要开发人员。他目前工作于国家并行与分布式处理重点实验室,主要从事集群技术、操作系统、对象存储与数据库的研究。他一直在自由软件的开发上花费大量时间,并以此为乐。