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


此外,存储硬件技术的发展也促使从无共享的集群向共享存储的集群迁移。存储区域网(Storage Area Networks)技术解决了集群的每个结点可以直接连接/共享一个庞大的硬盘阵列,硬件厂商也提供多种硬盘共享技术,如光纤通道(Fiber Channel)、共享 SCSI(Shared SCSI)。InfiniBand 是一个通用的高性能 I/O 规范,使得存储区域网中以更低的延时传输 I/O 消息和集群通讯消息,并且提供很好的伸缩性。InfiniBand 得到绝大多数的大厂商的支持,如 Compaq、Dell、Hewlett-Packard、IBM、Intel、Microsoft 和 SUN Microsystems 等,它正在成为一个业界的标准。这些技术的发展使得共享存储变得容易,规模生产也会使得成本逐步降低。

2.3. 高可用性

集群系统的特点是它在软硬件上都有冗余。系统的高可用性可以通过检测节点或服务进程故障和正确地重置系统来实现,使得系统收到的请求能被存活的结点处理。

通常,我们在调度器上有资源监测进程来时刻监视各个服务器结点的健康状况。当服务器对 ICMP ping 不可达时或者探测她的网络服务在指定的时间没有响应时,资源监测进程通知操作系统内核将该服务器从调度列表中删除或者失效。这样,新的服务请求就不会被调度到坏的结点。资源监测进程能通过电子邮件或传呼机向管理员报告故障。一旦监测进程到服务器恢复工作,通知调度器将其加入调度列表进行调度。另外,通过系统提供的管理程序,管理员可发命令随时可以将新机器加入服务来提高系统的处理性能,也可以将已有的服务器切出服务,以便对服务器进行系统维护。

现在前端的调度器有可能成为系统的单一失效点(Single Point of Failure)。一般来说,调度器的可靠性较高,因为调度器上运行的程序较少而且大部分程序早已经遍历过,但我们不能排除硬件老化、网络线路或者人为误操作等主要故障。为了避免调度器失效而导致整个系统不能工作,我们需要设立一个从调度器作为主调度器的备份。两个心跳(Heartbeat)进程[6]分别在主、从调度器上运行,它们通过串口线和 UDP 等心跳线来相互定时地汇报各自的健康状况。当从调度器不能听得主调度器的心跳时,从调度器通过ARP欺骗(Gratuitous ARP)来接管集群对外的 Virtual IP Address,同时接管主调度器的工作来提供负载调度服务。当主调度器恢复时,这里有两种方法,一是主调度器自动变成从调度器,二是从调度器释放 Virtual IP Address,主调度器收回 Virtual IP Address 并提供负载调度服务。这里,多条心跳线可以使得因心跳线故障导致误判(即从调度器认为主调度器已经失效,其实主调度器还在正常工作)的概论降到最低。

通常,当主调度器失效时,主调度器上所有已建立连接的状态信息将丢失,已有的连接会中断。客户需要向重新连接,从调度器才会将新连接调度到各个服务器上,这对客户会造成一定的不便。为此,IPVS 调度器在 Linux 内核中实现一种高效状态同步机制,将主调度器的状态信息及时地同步到从调度器。当从调度器接管时,绝大部分已建立的连接会持续下去。

3. 可伸缩 Web 服务

基于 LVS 的 Web 集群的体系结构如图2所示:第一层是负载调度器,一般采用 IP 负载均衡技术,可以使得整个系统有较高的吞吐率;第二层是 Web 服务器池,在每个结点上可以分别运行 HTTP 服务或 HTTPS 服务、或者两者都运行;第三层是共享存储,它可以是数据库,可以是网络文件系统或分布式文件系统,或者是三者的混合。集群中各结点是通过高速网络相连接的。

对于动态页面(如 PHP、JSP 和 ASP 等),需要访问的动态数据一般存储在数据库服务器中。数据库服务运行在独立的服务器上,为所有 Web 服务器共享。无论同一 Web 服务器上多个动态页面访问同一数据,还是不同 Web 服务器上多个动态页面访问同一数据,数据库服务器有锁机制使得这些访问有序地进行,从而保证数据的一致性。

对于静态的页面和文件(如 HTML 文档和图片等),可以存储在网络文件系统或者分布式文件系统中。至于选择哪一种,看系统的规模和需求而定。通过共享的网络文件系统或者分布式文件系统, Webmaster 可以看到统一的文档存储空间,维护和更新页面比较方便,对共享存储中页面的修改对所有的服务器都有效。

在这种结构下,当所有服务器结点超载时,管理员可以很快地加入新的服务器结点来处理请求,而无需将 Web 文档等复制到结点的本地硬盘上。

有些 Web 服务可能用到 HTTP Cookie,它是将数据存储在客户的浏览器来追踪和标识客户的机制。使用 HTTP Cookie 后,来同一客户的不同连接存在相关性,这些连接必须被发送到同一 Web 服务器。一些 Web 服务使用安全的 HTTPS 协议,它是 HTTP 协议加 SSL(Secure Socket Layer)协议。另有些Web服务可能使用安全的 HTTPS 协议,它是 HTTP 协议加 SSL 协议。当客户访问 HTTPS 服务(HTTPS 的缺省端口为 443)时,会先建立一个 SSL 连接,来交换对称公钥加密的证书并协商一个 SSL Key,来加密以后的会话。在 SSL Key 的生命周期内,后续的所有 HTTPS 连接都使用这个 SSL Key,所以同一客户的不同 HTTPS 连接也存在相关性。针对这些需要,IPVS调度器提供了持久服务的功能,它可以使得在设定的时间内,来自同一 IP 地址的不同连接会被发送到集群中同一个服务器结点,可以很好地解决客户连接的相关性问题。

4. 可伸缩媒体服务

基于 LVS 的媒体集群的体系结构如图3所示:第一层是负载调度器,一般采用 IP 负载均衡技术,可以使得整个系统有较高的吞吐率;第二层是 Web 服务器池,在每个结点上可以运行相应的媒体服务;第三层是共享存储,通过网络文件系统/分布式文件系统存储媒体节目。集群中各结点是通过高速网络相连接。

IPVS 负载调度器一般使用直接路由方法(即 VS/DR 方法,将在以后文章中详细叙述),来架构媒体集群系统。调度器将媒体服务请求较均衡地分发到各个服务器上,而媒体服务器将响应数据直接返回给客户,这样可以使得整个媒体集群系统具有很好的伸缩性。

媒体服务器可以运行各种媒体服务软件。目前,LVS 集群对于 Real Media、Windows Media 和 Apple Quicktime 媒体服务都有很好的支持,都有真实的系统在运行。一般来说,流媒体服务都会使用一个TCP连接(如 RTSP 协议:Real-Time Streaming Protocol)进行带宽的协商和流速的控制,通过 UDP 将流数据返回客户。这里,IPVS 调度器提供功能将 TCP 和 UDP 集中考虑,保证来自同一客户的媒体 TCP 和 UDP 连接会被转发到集群中同一台媒体服务器,使得媒体服务准确无误地进行。
共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
转载本站内容请注明原作者名.谢谢!