一种适用大规模用户点播的集群式流媒体服务器系统的制作方法

文档序号:7742911阅读:171来源:国知局
专利名称:一种适用大规模用户点播的集群式流媒体服务器系统的制作方法
技术领域
本发明涉及集群式流媒体服务器系统。
背景技术
所谓流媒体是指采用流式传输的方式在Internet (互联网)播放的媒体格式。流媒体又叫流式媒体,它是指用一个视频传送服务器把节目当成数据包发出,传送到网络上。 用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体点播 服务主要包括音频和视频两种服务。目前有很多较为成熟的流媒体点播服务系统,他们可 以满足有限用户的音频和视频的点播需求。但是当这些系统面临大规模用户的点播需求时 就显示出计算能力不足,不能及时响应等缺点。同时目前的很多系统在系统的可扩展性,负 载均衡以及稳定性方面都差强人意。有鉴于此,本发明设计与实现了一种适用于大规模用户点播需求的集群式流媒体 服务器系统(以下简称流媒体系统)。该系统是国家精品课程集成系统中的项目,是国家精 品课程集成系统中所有视频、音频格式的课程内容的服务支撑系统。它可以有效的为大规 模用户的视屏和音频点播需求提供服务。本发明涉及的集群系统是一种高性能计算的计算机系统,它通过一组松散集成的 计算机软件或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看 作是一台计算机。集群系统中的单个计算机通常称为结点,通常通过局域网连接。集群计 算机通常用来改进单个计算机的计算速度和可靠性。本发明实现的集群式流媒体系统采用可扩展流媒体服务器服务能力(包括最大 支持用户数和存储规模)的集群式体系结构。这种体系结构具有很好的扩展性、负载均衡 性能和稳定性,是适应大规模用户的流媒体点播需求的一种新的解决方案。

发明内容
本发明提出了一种适用于大规模用户点播的集群式流媒体服务器系统的实现方 法,这种适用于大规模用户的集群式流媒体服务器系统能够有效的为大量的用户提供视频 和音频内容的点播服务。—种适用于大规模用户点播的集群式流媒体服务器系统,其特征在于含有外部 网络,内部以太网络和光纤存储网络,其中外部网络包括教育网、电信网、网通在内的外部宽带网,内部以太网络,含有一个调度服务器、一个监控服务器和至少一个流媒体服务 器,其中调度服务器,配置有开源数据库软件MySQL,开源缓存软件Squid,开源的服务器 软件Lighttpd,操作系统为Linux,以及一个调度模块、IP数据库和本地负载信息库,所述 调度模块依次按以下步骤进行通过所述外部网络接收用户的IP信息并确认身份后,判断所述用户所在的网络,
从所述本地负载信息数据库调用各所述流媒体服务器结点的负载信息以及负载 均衡算法,选择一个所述流媒体服务器并把所述流媒体该服务器的统一资源地址URL返回 给所述用户,然后通过所述监控服务器周期性的刷新本地负载信息; 流媒体服务器,配置有所述Squid软件和Lighttpd软件,操作系统为Linux,还设 有一个缓存模块、一个存储模块以及一个监控模块探针,并依次按以下步骤进行通过千兆以太网交换机接受从所述调度模块转来的所述用户的点播请求,搜索本 地缓存模块,如命中则通过所述外部宽带网向所述用户发出,如未命中,则把所述用户请求 转发给所述存储模块,所述缓存模块则通过所述光纤存储网中的光纤交换机从本地磁盘阵 列存储中取出目标文件,返回给所述用户,同时把目标文件存于所述缓存模块中,监控服务器,配置有TOB应用服务器软件Tomcat以及所述的MySQL软件,操作系 统为Windows Server,所述监控服务器中的流量监控模块包括部署在所述监控服务器上的 监控端Monitor和部署在各所述调度服务器和所述监控服务器上的监控探针Probe,负责 周期性地把各所述流媒体服务器的当前负载状况汇报给所述监控端Monitor,其中,至少包 括当前结点的CPU、内存、磁盘和网络状态,存储在所述本地负载信息数据库中,供所述调度 服务器使用。本发明主要针对大规模用户点播需求,可以方便的为使用者提供视频和音频内容 的点播服务,采用集群式流媒体体系结构可以快速的响应大规模用户的点播请求。本发明 具有结构简单、吞吐量大、响应快速等优点。从在国家精品课程集成项目中的应用中看,本 发明体现了很高的稳定性和可用性。


下面将通过参照附图详细描述本发明的示例性实例,使本领域的普通技术人员更 清楚本发明的上述及其他的特征和优点,附图中,图1为流媒体服务器系统体系结构示意图;图2为服务器工作流程图;图3为用户与各服务器各结点间数据流图;图4为流媒体服务器结点内部以及与存储磁盘阵列间数据流图;图5为流媒体系统的存储系统体系结构图;图6为存储模块的体系结构示意图;图7为调度部分示意图。图8为监控模块内部结构。
具体实施例方式本发明提出的流媒体系统包括以下三类节点调度服务器结点、流媒体服务器结 点和监控服务器结点。所述调度服务器结点,用于根据用户的IP信息判断其所属的网络,将用户分配到 合适的流媒体服务器上,使用户获得质量最好的服务;并对各个流媒体服务器进行负载均 衡,防止个别结点负载过重造成服务质量下降;
所述流媒体服务器结点,用于对用户直接提供流媒体服务,并通过缓存软件提高 访问和传输速度,以及对服务器的存储系统进行管理;所述监控服务器结点,用于通过部署在流媒体服务器结点上的监控探针,获得该 流媒体服务器结点当前的负载信息,并将这些信息保存在本地的数据库中,供调度系统的 调度算法参考;同时提供内部访问的Web查询页面,供开发人员查询系统资源占用情况。所述调度服务器结点上部署一个调度模块。所述流媒体服务器结点上部署一个缓存模块、一个存储模块、一个监控模块探针。所述监控服务器结点上部署一个监控模块的监控接收端。所述调度模块,用于根据用户的IP信息判断其所属的网络,将用户分配到合适的 流媒体服务器上;并负责各个流媒体服务器的负载均衡,防止个别结点负载过重造成服务 质量下降。所述缓存模块,用于为用户提供宽带流媒体服务,通过调度、缓存等技术,提高系 统资源的利用率,从而提高用户感受;所述存储模块,用于连接所述缓存服务模块和SAN(存储域网络,Storage Area Network,下简称SAN)存储系统,并为用户提供宽带流媒体服务并管理SAN存储系统;所述监控模块探针,用于监控所述流媒体服务器结点当前的负载情况,并发送给 监控接收端。所述监控模块的监控接收端,用于接收所有流媒体服务器结点的负载状况,并将 这些信息保存在本地数据库中,供调度服务器作为负载均衡算法的数据,供管理员查询和 使用。所述调度服务器结点的配置软件为MySQL (—种开源的数据库软件)、Squid (—种 开源的缓存软件)、Lighttpd (—种开源的服务器软件),操作系统为Linux。所述流媒体服务器结点的配置软件为Squid、Lighttpd,操作系统为Linux。
所述监控服务器结点的配置软件为MySQLJomcat ( 一种常用的TOB应用服务器软 件)、JDK(Java语言的开发套件),操作系统为Windowsserver 2003。下面本发明将结合说明书附图来详细说明流媒体系统的的具体实施方式
。通过这 些附图,更容易本领域的普通技术人员了解本发明的设计和实现的过程。图1显示了流媒体系统的体系结构示意图。从网络角度来看,流媒体系统分为 三个网络系统外部网络、内部以太网络和光纤存储网络。外部网络指外部网络指面向 Internet的带宽资源,包括教育网、电信和网通三种资源;内部以太网络采用千兆以太网 络,负责流媒体系统内部各个结点之间的通信和传输;光纤存储网络是SAN(存储域网络) 存储系统专用的存储网络。如前所述,图1显示了流媒体系统的三类功能结点调度服务器结点、流媒体服务 器结点和监控服务器结点。调度服务器结点一方面根据用户的IP信息判断其所属的网络 (教育网、电信还是网通),将用户分配到合适的流媒体服务器上,使用户获得质量最好的 服务;另一方面要对各个流媒体服务器进行负载均衡,防止个别结点负载过重造成服务质 量下降。流媒体服务器结点对用户直接提供流媒体服务,并通过缓存软件提高访问和传输 速度,以及对服务器的存储系统进行管理。监控服务器结点通过部署在流媒体服务器结点 上的监控探针,获得该流媒体服务器结点当前的负载信息并将这些信息保存在本地的数据库中,供调度系统的调度算法参考;同时提供内部访问的Web查询页面,供开发人员查询系 统资源占用情况。图2中给出了流媒体系统中服务器的工作流程。解释如下 用户从点播到实际收看到视频的过程如下1.用户访问媒体门户网站2.门户网站将媒体URL以html页面的形式返回给用户3.用户根据感兴趣的媒体内容,按照其URL访问调度服务器
4.调度服务器选择一个合适的服务器,并将其URL返回给用户5.用户使用4得到的URL访问相应的流媒体服务器6.流媒体服务器按照用户请求推送流媒体文件数据 服务器内部的工作过程如下(不包括门户网站交互部分)1.调度服务器接收到用户的请求2.调度服务器一方面根据用户IP选择网络,另一方面根据从监控服务器获得的 各流媒体服务器结点的负载信息调用负载均衡算法,选择一个合适的服务器并将其URL返 回给用户3.流媒体服务器缓存模块根据接收到的用户请求,搜索本地缓存,如命中则向用 户推送数据4.如未命中,则将用户请求转给下层的存储模块,并通过存储模块从其本地磁盘 阵列存储系统中取出目标文件,返回给用户,同时把目标文件缓存在本地的缓存池中。5.监控服务器定时通过部署在各流媒体服务器上的监控探针获得该流媒体服务 器当前的负载信息,存储在其本地数据库中供调度服务器或管理人员使用或查看图3显示了用户与各服务器间的数据流图。图4显示了流媒体服务器节点内部以 及与存储磁盘阵列间的数据流图。如图4中所示,最终返回给用户的是流媒体数据,它可能 来自本地缓存池,也可能是来自通过存储模块从存储磁盘阵列获得的流媒体数据。其中缓 存模块的设计和实现过程在图5显示。图5为流媒体系统的存储系统体系结构图。其中包括缓存模块、存储模块以及SAN 存储系统三个主要部分。其中SAN存储系统前面已经介绍,对于存储模块将在附图6中介 绍,这里主要介绍缓存模块。缓存模块需要维护本地缓存池,以及与用户和存储模块进行通 信。当用户请求到来时,缓存模块首先在本地的缓冲池中搜索目标文件,如果本地命中,就 直接把目标文件返回给用户,否则缓存模块把请求转给下层的存储模块,并通过存储模块 从SAN存储系统中取出目标文件,返回给用户,同时把目标文件缓存在本地的缓存池中。本系统采用Squid作为缓存软件。Squid是一个高性能的代理缓存服务器,可以 用来缓冲Internet数据,Squid支持FTP (文件传输协议)、gopher (网际Gopher协议)和 HTTP (超文本传输协议)协议。和一般的代理缓存软件不同,Squid用一个单独的、非模块 化的、1/0(输入输出)驱动的进程来处理所有的客户端请求。我们采用Squid作为缓存软 件主要基于以下几方面的考虑(1)功能强大,配置简单。Squid作为一款高性能的缓存软 件,完全可以满足我们项目需要,而且其配置文件结构简单,易于上手;(2)软件成熟,易于 维护。Squid作为一款开源软件,已经推出多个稳定版本,而且有很多组织和个人为其提供 维护、升级;(3)开源且免费,能够节约大量资金,且免费获得最新的软件版本,避免程序错误带来的困扰。图6为存储模块的体系结构示意图。存储模块内部结构可以分为4个模块,SAN模块、http模块、管理模块、数据库模块。存储流媒体文件,主要有SAN模块完成,同时需要数 据库模块记录流媒体文件的具体存储位置,以便于访问和管理;提供http流媒体服务,主 要有http模块完成,同时需要SAN模块提供流媒体文件;管理流媒体文件,主要由管理模块 完成,同时需要更新SAN模块上的文件以及数据库模块里的表项;数据库模块负责记录流 媒体文件的详细信息。本系统采用Iighttpd作为HTTP服务器软件。Iighttpd是一款的开源软件,可以提 供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web服务器环境。同时具有 非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。本系统采用Iighttpd 主要的原因有以下三个(1)更快的速度;更少的资源占用率;(2)支持更多的同时访问人 数,这对于流媒体服务十分重要。(3)开源且免费,能够节约大量资金,且免费获得最新的软 件版本,避免程序错误带来的困扰。图7示出了系统调度部分的示意图。调度模块接收到用户的请求后,根据用户IP 和自身的负载均衡算法逻辑,返回给用户合适的URL(统一资源定位符);并周期性的从监 控服务器数据库读取各流媒体服务器结点当前的负载信息,写入本地数据库供负载均衡算 法调用。调度模块需要安装MySQL (—种开源的数据库软件),MySQL-server (MySQL的服 务器软件)以及MySQL-devel (MySQL的开发端软件)等包。启动MySQL,建立数据库ipnew 负责存储调度模块的调度信息。在数据库ipnew下建立表ipnew用于存储用户的IP地址; 表server用于存储流媒体系统的服务器信息;表overload用于存储流媒体系统的服务器 的负载信息,比如系统时间、CPU使用信息、内存使用信息、网络使用信息以及输入输出信息 等;表log用于记录系统工作日志。调度模块采用一段C语言编写fastcgi程序(CGI,Common Gatawayinterface的 一种实现方式)程序来实现对用户请求IP及请求Url的解析,然后在本地数据库中查询得 到IP类型及服务器负载情况,然后根据这些信息选择一个当前网络类型与用户相同且负 载最轻的一个作为服务结点,并生成新的url (统一资源定位符)返回302应答(Http 302 Found应带,即客户请求的文档在其他地方,其地址由临时性的URL给出)。图8为监控模块内部结构示意图。监控模块包括部署在监控服务器结点上的监控 端Monitor和部署在流媒体系统各服务器结点(如前所述的调度服务器、流媒体服务器和 监控服务器)上的监控探针Probe。监控探针Probe负责周期性将各流媒体服务器结点的 负载状况汇报给监控端Monitor,具体包括监控当前结点的CPU,内存,磁盘,和网络的状态 等;监控端Monitor将这些信息存在本地的数据库中,供调度模块的调度算法参考,同时提 供内部访问的Web查询页面,供开发人员查询系统资源占用情况。
权利要求
一种适用于大规模用户点播的集群式流媒体服务器系统,其特征在于含有外部网络,内部以太网络和光纤存储网络,其中外部网络包括教育网、电信网、网通在内的外部宽带网,内部以太网络,含有一个调度服务器、一个监控服务器和至少一个流媒体服务器,其中调度服务器,配置有开源数据库软件MySQL,开源缓存软件Squid,开源的服务器软件Lighttpd,操作系统为Linux,以及一个调度模块、IP数据库和本地负载信息库,所述调度模块依次按以下步骤进行通过所述外部网络接收用户的IP信息并确认身份后,判断所述用户所在的网络,从所述本地负载信息数据库调用各所述流媒体服务器结点的负载信息以及负载均衡算法,选择一个所述流媒体服务器并把所述流媒体该服务器的统一资源地址URL返回给所述用户,然后通过所述监控服务器周期性的刷新本地负载信息;流媒体服务器,配置有所述Squid软件和Llghttpd软件,操作系统为Linux,还设有一个缓存模块、一个存储模块以及一个监控模块探针,并依次按以下步骤进行通过千兆以太网交换机接受从所述调度模块转来的所述用户的点播请求,搜索本地缓存模块,如命中则通过所述外部宽带网向所述用户发出,如未命中,则把所述用户请求转发给所述存储模块,所述缓存模块则通过所述光纤存储网中的光纤交换机从本地磁盘阵列存储中取出目标文件,返回给所述用户,同时把目标文件存于所述缓存模块中,监控服务器,配置有WEB应用服务器软件Tomcat以及所述的MySQL软件,操作系统为Windows Server,所述监控服务器中的流量监控模块包括部署在所述监控服务器上的监控端Monitor和部署在各所述调度服务器和所述监控服务器上的监控探针Probe,负责周期性地把各所述流媒体服务器的当前负载状况汇报给所述监控端Monitor,其中,至少包括当前结点的CPU、内存、磁盘和网络状态,存储在所述本地负载信息数据库中,供所述调度服务器使用。
全文摘要
一种适用于大规模用户点播的集群式流媒体服务器系统属于流媒体服务技术领域,其特征在于,含有三类服务器结点调度服务器用于根据用户的IP信息判断其所属的网络,将用户分配到合适的流媒体服务器上,使用户获得最好服务,并对各个流媒体服务器进行负载均衡;流媒体服务器对用户直接提供流媒体服务,并通过缓存软件提高访问和传输速度,以及管理服务器的存储系统;监控服务器通过部署在流媒体服务器结点上的监控探针,获得该流媒体服务器结点当前的负载信息,并将这些信息保存在本地数据库中,同时提供内部访问的Web查询页面,供开发人员查询系统资源占用情况。本发明为使用者提供视频和音频内容的点播服务,结构简单,使用方便。
文档编号H04L29/06GK101841526SQ20101011764
公开日2010年9月22日 申请日期2010年3月4日 优先权日2010年3月4日
发明者刘文杰, 叶银, 张天乐, 都志辉 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1