首页 | Linux 基础 | 资讯动态 | Linux 应用 | Linux 服务器 | Linux 开发 | Linux 安全 | 专题 | 联盟论坛
  当前位置:主页>Linux 服务器>文章内容
Linux 服务器集群系统
来源:IBM developerWorks 作者:章文嵩 发布时间:2007-05-22  

LVS 集群的体系结构

本文主要介绍了 LVS 集群的体系结构。先给出 LVS 集群的通用体系结构,并讨论了其的设计原则和相应的特点;最后将 LVS 集群应用于建立可伸缩的 Web、Media、Cache 和 Mail 等网络服务。

1. 引言
在过去的十几年中,Internet 从几个研究机构相连为信息共享的网络发展成为拥有大量应用和服务的全球性网络,它正成为人们生活中不可缺少的一部分。虽然 Internet 发展速度很快,但建设和维护大型网络服务依然是一项挑战性的任务,因为系统必须是高性能的、高可靠的,尤其当访问负载不断增长时,系统必须能被扩展来满足不断增长的性能需求。由于缺少建立可伸缩网络服务的框架和设计方法,这意味着只有拥有非常出色工程和管理人才的机构才能建立和维护大型的网络服务。

针对这种情形,本文先给出 LVS 集群的通用体系结构,并讨论了其的设计原则和相应的特点;最后将 LVS 集群应用于建立可伸缩的 Web、Media、Cache 和 Mail 等网络服务。

2. LVS 集群的通用体系结构
LVS 集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。

为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。一般来说,LVS 集群采用三层结构,其体系结构如图1所示,三层主要组成部分为:

* 负载调度器(load balancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个 IP 地址(我们可称之为虚拟 IP 地址)上的。
* 服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有 WEB、MAIL、FTP 和 DNS 等。
* 共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。

调度器是服务器集群系统的唯一入口点(Single Entry Point),它可以采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。在IP负载均衡技术中,需要服务器池拥有相同的内容提供相同的服务。当客户请求到达时,调度器只根据服务器负载情况和设定的调度算法从服务器池中选出一个服务器,将该请求转发到选出的服务器,并记录这个调度;当这个请求的其他报文到达,也会被转发到前面选出的服务器。在基于内容请求分发技术中,服务器可以提供不同的服务,当客户请求到达时,调度器可根据请求的内容选择服务器执行请求。因为所有的操作都是在 Linux 操作系统核心空间中将完成的,它的调度开销很小,所以它具有很高的吞吐率。

服务器池的结点数目是可变的。当整个系统收到的负载超过目前所有结点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载。对大多数网络服务来说,请求间不存在很强的相关性,请求可以在不同的结点上并行执行,所以整个系统的性能基本上可以随着服务器池的结点数目增加而线性增长。

共享存储通常是数据库、网络文件系统或者分布式文件系统。服务器结点需要动态更新的数据一般存储在数据库系统中,同时数据库会保证并发访问时数据的一致性。静态的数据可以存储在网络文件系统(如 NFS/CIFS)中,但网络文件系统的伸缩能力有限,一般来说,NFS/CIFS 服务器只能支持3~6个繁忙的服务器结点。对于规模较大的集群系统,可以考虑用分布式文件系统,如 AFS[1]、GFS[2.3]、Coda[4] 和 Intermezzo[5] 等。分布式文件系统可为各服务器提供共享的存储区,它们访问分布式文件系统就像访问本地文件系统一样,同时分布式文件系统可提供良好的伸缩性和可用性。此外,当不同服务器上的应用程序同时读写访问分布式文件系统上同一资源时,应用程序的访问冲突需要消解才能使得资源处于一致状态。这需要一个分布式锁管理器(Distributed Lock Manager),它可能是分布式文件系统内部提供的,也可能是外部的。开发者在写应用程序时,可以使用分布式锁管理器来保证应用程序在不同结点上并发访问的一致性。

负载调度器、服务器池和共享存储系统通过高速网络相连接,如 100Mbps 交换网络、Myrinet 和 Gigabit 网络等。使用高速的网络,主要为避免当系统规模扩大时互联网络成为整个系统的瓶颈。

Graphic Monitor 是为系统管理员提供整个集群系统的监视器,它可以监视系统的状态。Graphic Monitor 是基于浏览器的,所以无论管理员在本地还是异地都可以监测系统的状况。为了安全的原因,浏览器要通过 HTTPS(Secure HTTP)协议和身份认证后,才能进行系统监测,并进行系统的配置和管理。

2.1. 为什么使用层次的体系结构

层次的体系结构可以使得层与层之间相互独立,每一个层次提供不同的功能,在一个层次可以重用不同的已有软件。例如,调度器层提供了负载平衡、可伸缩性和高可用性等,在服务器层可以运行不同的网络服务,如 Web、Cache、Mail 和Media等,来提供不同的可伸缩网络服务。明确的功能划分和清晰的层次结构使得系统容易建设,以后整个系统容易维护,而且系统的性能容易被扩展。

2.2. 为什么是共享存储

共享存储如分布式文件系统在这个 LVS 集群系统是可选项。当网络服务需要有相同的内容,共享存储是很好的选择,否则每台服务器需要将相同的内容复制到本地硬盘上。当系统存储的内容越多,这种无共享结构(Shared-nothing Structure)的代价越大,因为每台服务器需要一样大的存储空间,任何的更新需要涉及到每台服务器,系统的维护代价会非常高。

共享存储为服务器组提供统一的存储空间,这使得系统的内容维护工作比较轻松,如 Webmaster 只需要更新共享存储中的页面,对所有的服务器都有效。分布式文件系统提供良好的伸缩性和可用性,当分布式文件系统的存储空间增加时,所有服务器的存储空间也随之增大。对于大多数 Internet 服务来说,它们都是读密集型(Read-intensive)的应用,分布式文件系统在每台服务器使用本地硬盘作 Cache(如2Gbytes的空间),可以使得访问分布式文件系统本地的速度接近于访问本地硬盘。

共4页: 上一页 1 [2] [3] [4] 下一页
 
如果您对本文有任何疑问或者建议,请到论坛讨论区发表您的意见: >> 论坛入口
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
  热点文章
·Linux系统下Apache服务器设置与
·在Linux x86上安装Oracle数据库1
·Linux操作系统下IPTables配置方
·Linux系统下SVN服务器的搭建过程
·Linux架设代理服务器(1)
·Linux系统下的Oracle数据库编程
·Linux下免费数据库PostgreSQL开
·高端Linux操作系统服务器技术之
·在Ubuntu Linux 上架设Web服务器
· 在 Linux 上构建 Web spider
·Debian Linux操作系统下启动远程
·用LVS在Linux上搭建负载均衡的集
  相关文章
·如何在你的Linux机器上安装运行O
·Linux集群的安装与并行计算
·ORACLE数据库的启动和关闭
·Oracle数据库的备份与恢复
·如何在Oracle里用存储过程定期分
·关于MySQL数据库的存储引擎详细
·搭建Linux下的Squid代理服务器(
·详细解析Apache服务器实现的用户
·Linux系统下实现多线程客户/服务
·Linux系统下Apache服务器设置与
·Linux系统下代理服务器安装调试
·Samba使Linux成为“文件服务器”

本站信息源至:互联网络,均为学习,交流所用,如有版权问题,请联系我们.
站长QQ:397422079 E_mail:riechelr_hl@unix5.com
转载本站内容请注明原作者名.谢谢!