基于流媒体服务器集群副本放置策略的研究

2012-08-08 02:31杨显钧姜浩然
网络安全与数据管理 2012年16期
关键词:视频文件副本集群

杨显钧 ,徐 林 ,姜浩然

(1.四川大学 计算机学院,四川 成都610064;2.中兴通讯股份有限公司,北京100085)

1 研究背景及意义

随着计算机网络的发展和软硬件水平的提升,作为多媒体与网络结合的产物,流媒体技术应运而生。流媒体技术的核心主要集中在流媒体服务器方面。随着用户需求多样化、信息海量化和交互实时化,服务器性能逐渐成为用户需求的瓶颈。如何在保证现有的硬件条件下有效地解决大量用户访问产生的服务器性能瓶颈,是目前乃至今后需要着力解决的课题。

对此,有学者提出了集群的概念。服务器集群是将许多较为廉价服务器通过网络和相关软件连接起来,用以提供比单一服务更稳定、更高效、更具扩展性的服务平台,使整个系统更加健壮,从而解决单点故障可能带来的问题。

本文采用服务器集群的方式均衡用户服务请求,使每台服务器负载最优,保证了服务器可以有效地向用户提供服务。Red5流媒体服务器提供了一种开源模式的集群架构,为了更好地模拟用户需求,本文改进了Red5流媒体服务器的集群架构,以调度服务器为中心进行负载均衡调动,通过负反馈机制根据流媒体服务器负载量值计算权值,以此分配用户请求的策略进行负载均衡。对于视频文件的存储,为了节省存储空间和对用户点播请求进行分流,对基于Zipf的点播分布规律的两阶段副本放置算法进行改进,从而达到对用户请求分流的目的。

2 流媒体服务器集群及其相关改进

流媒体服务器要处理众多的用户请求,并且要保证响应速度,它还要具有传输数据量大、持续时间长的特点。在这种情况下,服务器集群就发挥了优势。它将许多较为廉价的服务器通过网络和相关软件连接起来,用以提供比单一服务更稳定、更高效、更具扩展性的服务平台,集群部署可以增加整个系统的健壮性,更好地解决单点故障带来的问题。集群具有主动容错性、负载均衡性等优点[1],一方面当集群中的某个节点出现问题,不能正常工作时,它的任务会自动转移到其他正常工作的节点上,继续为用户提供服务。另一方面将流媒体的服务均匀分配到各个服务器上,合理地利用各个流媒体服务器的资源,能更好地为用户提供服务。

对此,Red5技术提供了一套服务器集群解决方案。在Red5环境中,边服务器会将相同范围的用户请求分配到同一源服务器,所有源服务器上需要存储相同视频,边服务器采用轮询方式分配用户请求。这种方式存在负载不均衡、存储效率低等问题。本文在此集群方案基础上,对Jabber系统进行了改进并提出了一种更简洁实用的方案,如图1所示。

在这个方案中,调度服务器实时监控服务节点的负载状况,使调度相关策略在调度服务器上实施,从而将具体服务与请求调度分离。在此基础上,调度器动态采集流媒体服务器的负载。其核心思想就是充分合理利用每台服务器的剩余处理能力,将热门影片合理复制到各个流媒体服务器上,使热门影片有多个副本,这样可以达到用户点播请求分流的作用,而点播次数低的视频文件则少存储几份,以此达到节省服务器空间的目的。

3 流媒体服务器集群中的副本放置

流媒体服务器集群中的视频存储问题关键在于副本放置。其原理是为了解决集群环境下单台服务器负载过重的问题。具体而言,就是对某些点播频繁的视频进行复制,将其副本放置到其他服务器,以达到分流的目的;当视频访问热度下降时,还要考虑删除副本,以节省存储空间。副本放置的相关算法有阈值算法、两阶段算法、背包问题算法[2]等,这些算法中有些可以应用在大型视频点播系统中,但算法过于复杂,甚至没有考虑到视频点播概率的动态变化[3]。针对上述情况,本文采用了基于Zipf分布规律的副本放置策略,这样既达到均衡效果,也节省了存储空间。

3.1 基于Zip f点播分布规律的副本产生策略

研究统计[4]表明,视频的点播类型的服务近似服从Zipf分布,即20%的节目将吸引80%左右的用户点播,而剩下80%的节目仅有20%左右的人点播。即将视频文件按流行度排序为 L1,L2,L3,…,Ln,则各个节目的点播概率可设为 pi=P{X=Mi}(i=1,2,3,…,n),满足:

其中 θ是分布曲线的偏斜度,θ∈[0.271,1]。

在实际情况中可以令副本占据磁盘空间的70%,此时集群系统中副本数和请求的分配达到最优状况。用ni表示视频文件i副本的个数,fi表示视频文件i的大小,ns表示服务器的数量,Cvi表示可用磁盘容量,如下式:

其中,ni必须为整数,由于服务器有数量限制,每台服务器上不能放置相同文件的两个副本,因此ni必须小于 ns。

由以上公式可以近似预测出副本的数目。为了解决重复计算的问题,本文规定,在排序时只排序不同的文件,副本由原本产生,不会由副本产生副本。

3.2 基于Zip f点播分布规律的副本放置策略

在放置副本过程中,根据实际环境特点,衡量服务器的负载要综合考虑服务器会面临的各种情况[5]。本文以3个指标进行衡量:产生聊天室的数量C、当前流媒体服务器的磁盘空间大小Q以及该服务器上所有视频文件的点播概率之和P。通过这3个指标可以预测以后的服务器的负载状况,如下公式:

w1、w2、w3为权值。根据以上公式可以计算出服务器的可能负载。如果副本数量ni=ns,则将每个服务器上依次放置。如果 ni

流程描述如下:

(1)根据Zipf分布计算副本数量;

(2)如果 ni=ns,则转 到步 骤(5),如果 ni

图2 副本计算与放置流程

(3)根据式(3)计算各个服务器的可能负载;

(4)根据ss的值从小到大给服务器排序,依次放置副本,如果该服务器上已经存在该视频文件的副本,则放弃放置,标记成放置成功,直到副本数为ni-1。转到步骤(6);

(5)向服务器中依次放入副本,如果已经存在该视频文件副本则放弃放置,标记成放置成功,直到副本数为ns-1;

(6)结束。

3.3 视频副本清理策略

为体现视频热度的变化,需要根据每天的点播情况改变视频热度,保证热度低的视频副本不过多地占用服务器空间,需定期进行清理[6]。具体而言,就是根据该检索数据库中的视频信息表,判断当天的视频点播是否达到阈值,如果未达到则在总的点播次数上减去相应值,表示该影片的热度下降,反之则加上当天的点播次数,表示热度上升。如果该热度小于删除的阈值,则向流媒体服务器发送删除命令。流程如图3所示。

本文深入研究了Red5流媒体服务器集群相关技术以及现有的Red5集群解决方案,发现其中的不足,采用了一种基于Zipf分布规律的副本放置策略和负反馈动态负载均衡调度相结合的方式对用户请求进行分流,以提高系统服务质量,并将该方法成功应用于某市中小学心理康复综合社会救助服务系统。该平台旨在建立中小学生心理康复综合社会援助技术支撑体系和辅导体系。该方法不仅适应于上述平台,同时对其他的负载均衡集群系统也具有一定的借鉴及参考意义。此外,随着用户信息和资源文件增长,在保证服务器数据安全性的基础上,如何确保其健壮性,引入云计算平台并实现海量数据的分布式存储,进而更好地对平台提供技术上的支持,达到更高的可用性,将是下一步研究的重点。

图3 副本删除流程

[1]李子民.基于LVS的集群动态负载均衡算法研究[D].成都:电子科技大学,2009.

[2]周航.大规模流媒体服务系统存储调度研究[D].合肥:中国科学技术大学,2007.

[3]姜琳.流媒体服务器的存储策略[D].上海:复旦大学,2010.

[4]宋晓华,黄河清,曹元大.基于用户访问统计特性的流媒体文件复制策略[J].南京理工大学学报,2007,31(50):617-621.

[5]姜浩然,徐林.基于RTMP的流媒体服务器的研究[J].计算机与数字工程,2011,39(10):104-108.

[6]陈世明.基于Lucene与RTMP的学生心理健康实时视讯平台的设计与实现[D].成都:四川大学.2011.

猜你喜欢
视频文件副本集群
流媒体视频文件相似性识别的方法
随心定制视频文件的缩略图
海上小型无人机集群的反制装备需求与应对之策研究
使用卷影副本保护数据
面向流媒体基于蚁群的副本选择算法①
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
勤快又呆萌的集群机器人
分布式系统数据复制的研究
视频网格中自适应热度变化的条块化存储