Linux集群系统是当代许多公司采用的解决方案,Linux集群通过多台机器连接起来,处理复杂的问题。可以将同构或者异构的计算机连接起来,协同完成特定的任务。这样就构成了集群。LVS是Linux virtual server的缩写,他的意思是Linux虚拟机服务。本文主要介绍的是基于Linux下的集群系统。
LVS的媒体集群:
基于LVS的媒体集群的体系结构如图3所示:***层是负载调度器,一般采用IP负载均衡技术,可以使得整个系统有较高的吞吐率;第二层是Web服务器池,在每个结点上可以运行相应的媒体服务;第三层是共享存储,通过网络文件系统/分布式文件系统存储媒体节目。集群中各结点是通过高速网络相连接。
图3:基于LVS的媒体集群
IPVS负载调度器一般使用直接路由方法(即VS/DR方法,将在以后文章中详细叙述),来架构媒体集群系统。调度器将媒体服务请求较均衡地分发到各个服务器上,而媒体服务器将响应数据直接返回给客户,这样可以使得整个媒体集群系统具有很好的伸缩性。
媒体服务器可以运行各种媒体服务软件。目前,LVS集群对于Real Media、Windows Media和Apple Quicktime媒体服务都有很好的支持,都有真实的系统在运行。一般来说,流媒体服务都会使用一个TCP连接(如RTSP协议:Real-Time Streaming Protocol)进行带宽的协商和流速的控制,通过UDP将流数据返回客户。这里,IPVS调度器提供功能将TCP和UDP集中考虑,保证来自同一客户的媒体TCP和UDP连接会被转发到集群中同一台媒体服务器,使得媒体服务准确无误地进行。
共享存储是媒体集群系统中最关键的问题,因为媒体文件往往非常大(一部片子需要几百兆到几千兆的存储空间),这对存储的容量和读的速度有较高的要求。对于规模较小的媒体集群系统,例如有3至6个媒体服务器结点,存储系统可以考虑用带千兆网卡的Linux服务器,使用软件RAID和日志型文件系统,再运行内核的NFS服务,会有不错的效果。对于规模较大的媒体集群系统,***选择对文件分段(File Stripping)存储和文件缓存有较好支持的分布式文件系统;媒体文件分段存储在分布式文件系统的多个存储结点上,可以提高文件系统的性能和存储结点间的负载均衡;媒体文件在媒体服务器上自动地被缓存,可提高文件的访问速度。否则,可以考虑自己在媒体服务器上开发相应的工具,如缓存工具能定时地统计出最近的热点媒体文件,将热点文件复制到本地硬盘上,并替换缓存中的非热点文件,***通知其他媒体服务器结点它所缓存的媒体文件以及负载情况;在媒体服务器上有应用层调度工具,它收到客户的媒体服务请求,若所请求的媒体文件缓存在本地硬盘上,则直接转给本地媒体服务进程服务,否则先考虑该文件是否被其他媒体服务器缓存;如该文件被其他服务器缓存并且该服务器不忙,则将请求转给该服务器上的媒体服务进程处理,否则直接转给本地媒体服务进程,从后端的共享存储中读出媒体文件。
共享存储的好处是媒体文件的管理人员看到统一的存储空间,使得媒体文件维护工作比较方便。当客户访问不断增加使得整个系统超载时,管理员可以很快地加入新的媒体服务器结点来处理请求。
Real公司以其高压缩比的音频视频格式、Real媒体服务器和媒体播放器RealPlayer而闻名。Real公司正在使用以上结构将由20多台服务器组成的LVS可伸缩Web和媒体集群,为其全球用户提供Web和音频视频服务。Real公司的高级技术主管声称LVS击败所有他们尝试过的商品化负载均衡产品[7]。
【编辑推荐】
- Linux集群原理与安装配置汇总
- “懒惰”Linux集群管理员的11个秘诀
- 图文详解 文件柜内DIY自己的Linux集群机
- 大型Linux集群的安装节点和管理
- 大型Linux集群简介和硬件配置
- 高性能Linux集群基础知识