(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf_第1页
(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf_第2页
(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf_第3页
(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf_第4页
(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机软件与理论专业论文)可扩展高并发流媒体系统研究与设计.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

可扩腱商并发流媒体系统研究,设计 摘要 摘要 流媒体技术受到了人们越束越多的关注,在带来机遇的同时,也带来了挑战。如 何提高流媒体系统的并发性能和可扩展性,来为大量用户提供高质量的流媒体服务体 验,成为了一个迫切要解决的问题。 在服务器上,磁盘i o 成为限制系统性能的主要因素之一,本文通过对流媒体数 据存取特点的研究,使用d i r e c ti o 、异步i o 、t m p f s 内存文件系统、缓存管理等 技术构建了了专用的磁盘读写系统,而且通过实践证明了其对提高服务器性能的有效 性。由于服务器硬件能力的限制,基于中央服务器模式的流媒体系统的扩展性不佳, 而采用p 2 p 的方式,可以利用客户端的资源来进行相互间媒体数据的共享,从而分散 服务器的绝大部分压力,使得整个系统的可扩展性得到极大的提高,为此本文结合 i p t v 应用的特点,在现有p 2 p 直播系统的基础之上,设计和实现了面向机顶盒客户 端的p 2 p 直播系统。此外在i p t v 系统中,操作界面直接面向用户,良好的界面可影 响用户的收看体验,本文还设计和实现了一个面向机顶盒嵌入式环境的浏览器,给 i p t v 系统提供灵活而美观的用户界面。 关键词:流媒体,机顶盒,磁盘i o ,可扩展性,i p t v ,浏览器 中图分类号:t p 3 7 可扩展商并发流媒体系统研究与设计a b s t r a c t a b s t r a c t s t r e a m i n g m e d i at e c h n o l o g ya t t r a c t sm o r ea n dm o r ea t t e n t i o n s w h e nb r i n g s o p p o r t t m i t i e s ,i ta l s ob d n g sc h a l l e n g e s h o wt oi m p r o v et h ec o n c u r r e n c ya n ds c a l a b i l i t yo f s t r e a m i n gm e d i as y s t e mt op r o v i d eh i g hq u a l i t ys e r v i c e st ol a r g en u m b e ro fu s e r si sa p r e s s i n gp r o b l e mn e e dt ob es o l v e d d i s ki oc a p a b i l i t yi so n eo ft h eb o t t l e n e c k sw h i c hl i m i t st h ec a p a b i l i t yo fs t r e a m i n g m e d i as e r v e r t h i sp a p e ri n t r o d u c ead e d i c a t e dd i s ka c c e s ss y s t e mf o rs t r e a m i n gs y s t e m , b a s e do nt h ea n a l y s e so ft h ec h a r a c t e r i s t i c so fd a t aa c c e s so fs t r e a m i n gm e d i aa n dt h e i n t e g r a t i o no fs e v e r a lt e c h n o l o g i e si nl i n u xs u c ha sd i r e c ty o ,a s y n c h r o n o u si o , t m p f s - m e m o r yf i l es y s t e ma n dc a c h em a n a g e m e n t a n dp r a c t i c er e s u l ts h o w st h a tt h i s d e d i c a t e dd i s ka c c e s ss y s t e mn o t a b l yi m p r o v et h ec o n c u r r e n c yo fs y s t e m b e c a u s eo ft h e h a r d w a r er e s t r i c to fs t r e a m i n gs e r v e r , t h es e a l a b i l i t yo fc e n t r a ls t r e a m i n gs e r v g ti sn o tg o o d t h ep e e r _ t o p e e rt e c h n o l o g ym a k e su s eo fs p a r ea b i l i t yo fc l i e n t st os h a r em e d i ad a t aw i t h e a c ho t h e r , t h u ss i g n i f i c a n t l yr e d u c et h es t r e s so fs t r e a m i n gs e r v e r a n da c c o r d i n gt ot h e c h a r a c t e r i s t i c so fi p t vs y s t e ma n da n a l y s i so fc u r r e n tp 2 ps t r e a m i n gs y s t e m s w ed e s i g n a n di m p l e m e n tap 2 pb a s e dl i v es t r e a m i n gs e r v e rf o rs t bc l i e n t s b e s i d et h es t r e a m i n g m e d i at e c h n o l o g y , u ia l s op l a y sa ni m p o r tr o l ei ni p t vs y s t e m ag o o du im a k e su s e r s e x p e r i e n c eo fe n j o yi p t vs e r v i c eb e t t e r s ow ea l s od e s i g na n di m p l e m e n tab r o w s e rf o r s t b ,w h i c hp r o v i d eaf l e x i b l ea n dg o o d - l o o k i n gu it ou s e r k e y w o r d s :s t r e a m i n gm e d i a , s t b ,d i s ki o ,s c a l a b i l i t y ,i p t ub r o w s e r 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,小包含其他人或其它机构已经发表或撰写过的 研究成果。其他同志对本研究的启发和所做的贡献均已在论文中作了明确的声明 并表示了谢意。 作者签名:经堕鎏日期:型z :蛰 论文使用授权声明 本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此 规定。 作者签名:缝l 堡造导师签名:堕焦建同期:2 1 1 兰! 可扩展高并发流媒体系统研究i 设计第一帝绪论 第一章绪论 1 1 流媒体技术的发展和现状 传统的多媒体数据,必须要在本地机器上下载完毕,才能使用播放器进行浏览观 看。多媒体包含的大数据量使得单个多媒体文件少则几十兆比特,多则上百兆甚至上 千兆,这种先下载后播放的方式需要用户花费巨大的时间代价才能享受到多媒体内 容,为了能让用户得到更好的体验,流媒体技术 1 1 1 2 1 应运而生。流媒体使得多媒体信 息通过网络技术进行流式传输,客户端可以边下载边播放,大大减少了启动延时,也 节省了客户端用于存放多媒体数据的空间。 较早推出商用的流媒体技术的是p r o g r e s s i v en e t w o r k 公司,即现在的 r e a l n e t w o r k s 3 1 ,它与1 9 9 4 年成立,早期的产品r e a l a u d i o 可以流式播放音频。在1 9 9 5 年,x i n g 推出了第一个采用流媒体技术的音视频播放系统,s r e a m w o r k s 。不过随着市 场的变化,r e a l n e t w o r k s 因为稳定的品质和使用方便的特色,逐渐统一了流媒体系统 的市场,并购了x i n g 公司,推出了广泛流行的r e a l p l a y e r 系统。 随着宽带网络的普及和多媒体技术的发展,流媒体技术的运用越来越广泛。有很 多企业都推出了各自的流媒体产品( 流媒体服务器和流媒体播放器) ,如m i c r o s o f t 的 w i n d o w sm e d i as e r v e r 和w i n d o w sm e d i ap l a y e r ,r e a l n e t w o r k s 的h e l i xs e r v e r 和 r e a l o n ep l a y e r ,a p p l e 的d a r w i ns t r e a m i n gs e r v e r 4 和q u i c k t i m ep l a y e r 等等。此外还 有一些专业级的流媒体服务器,如c i s e oi p t v 、n c u b em e d i a c u b e 、s u nm e d i a c e n t e r 和h pm e d i a s t r e a m 等。 由于流媒体用户数的迅猛扩大,传统的客户端服务器模式的流媒体系统架构在应 付海量用户的时候已经显出了疲态,而p 2 p 技术与流媒体技术的结合有效地改善了这 些情况。c o o l s t r e a m i n g 5 是最早采用p 2 p 技术的网络直播系统之一,在2 0 0 4 年试运 行时,最多有4 0 0 0 用户同时在线,这证明了当i j 的网络有足够的带宽支持大规模的 流式播放,并且还表现出了在p 2 p 系统中观看的人越多,系统能提供的节目质量越好 的特点。而后又有更多的p 2 p 网络直播系统涌现,如p p l i v e 6 】、p p s t r e a m i n g 7 , t v a n t s 8 等,这些后起之秀拥有更强的能力,如在2 0 0 6 年春节晚会中,在p p l i v e 系 统中,同时2 0 万以上的用户享受了直播服务,这在集中式服务模式中是难以想象的。 1 2 流媒体技术基础知识 流媒体技术是网络技术、多媒体技术、通信技术等综合运用的产物。 1 2 1 编解码技术 音视频的编解码技术是流媒体得以应用的重要条件之一。没经过压缩的原始码流 码率巨大,有几十兆甚至上百兆比特,这样的媒体流在现有的网络设施上无法有效传 输。而编解码技术把码流压缩到了网络可以承受的码率,从而使流媒体有了可行性。 i t u t 与i s o i e c 是制定视频编码标准的两大组织,1 1 u t 致力于电信应用,它的 可扩展高并发流媒体系统研究j 设计第一辛绪论 标准包括了h 2 6 1 【9 】、h 2 6 2 1 0 、h 2 6 3 1 1 1 】、h 2 6 4 1 1 2 】,主要应用与实施视频通信领 域,如会议电视;m p e g 系统标准是由i s o i e c 制定的,包括了m p e g i 1 3 】、 m p e g 2 1 0 、m p e g 4 1 2 1 4 等,针对消费类应用,主要应用于视频存储、广播电视、 因特网或无线网上的流媒体等。两个组织也共同指定了一些标准,h 2 6 2 标准等同于 m p e g 2 的视频编码标准,而目前最热门的h 2 6 4 标准则是m p e g 一4 的第l o 部分。 视频编码的标准发展如下图所示: h ;i | 。h 耐、,融柏s 桕 d 栩畦 r r u - t 。l 嚣t ;旧小斗。卟:s a ”l s f a n d o ! d s j o i n t 蜜匕w 舭9 i t u t m p e g s ) a n d a r d s m p e g m 畸,i 淼:,| * 麓葛j s t a n d a r d s - i ilil 9 8 81 0 9 01 9 钾1 9 9 41 9 9 61 9 9 82 0 0 02 0 0 2 拍 图1 1 视频编码标准发展 下面按时问顺序,介绍视频编码标准的发展过程: l 2 6 1 视频编码标准: h 2 6 1 是i t u t 为在综合业务数字网( i s d n ) 上开展双向声像业务( 可视电话、视频 会议) 而制定的,速率为6 4 k b s 的整数倍。h 2 6 1 只对c i f 和q c i f 两种图像格式进 行处理,每帧图像分成图像层、宏块组( g o b ) 层、宏块( m b ) 层、块( b l o c k ) 层来处理。 h 2 6 1 是最早的运动图像压缩标准,它详细制定了视频编码的各个部分,包括运 动补偿的帧间预测、d c t 变换、量化、熵编码,以及与固定速率的信道相适配的速率 控制等部分。 i p e g 一1 : m p e g - 1 是i s o 开发的第一个视频压缩算法。主要应用是数字媒体上动态图像与 音频的存储与检索,如速率为1 1 5 m b p s 、采用s i f 分辨率( 3 5 2 ( 2 4 0 2 9 9 7 f p s 或者 3 5 2 ( 2 8 8 2 5f r s ) 的v c d 。m p e g - 1 与h 2 6 1 相似,不过编码器一般需要更高的性 能,以便支持电影内容的较高运动性而不是典型的可视电话功能。 h 2 6 2 视频编码标准( 又称m p e g 2 ) : 由m p e g - i 扩充而来,支持隔行扫描。使用十分广泛,几乎用于所有的数字电视 系统,适合标清和高清电视,适合各种媒体传输,包括卫星、有线、地面等,都能有 效地传输。 h 2 6 3 视频编码标准: 2 町扩展商并发流媒体系统研究吁设计第一章绪论 h 2 6 3 是最早用于低码率视频编码的i t u t 标准,是i t u t 为低于6 4 k b s 的窄 带通信信道制定的视频编码标准。它是在h 2 6 1 基础上发展起来的,其标准输入图像 格式可以是s q c i f 、q c i f 、c i f 、4 c i f 或者1 6 c i f 的彩色4 :2 :o 亚取样图像。 h ,2 6 3 与h 2 6 1 相比采用了半象素的运动补偿,并增加了4 种有效的压缩编码模式。 随后出现的第二版( h 2 6 3 + ) 及h 2 6 3 + + 增加了许多选项,使其具有更广泛的适用性。 m p e g - 4 : m p e g 一4 1 6 1 由i s o 提出,以延续m p e g 2 的成功。一些早期的目标包括:提高 容错能力以支持无线网、对低比特率应用进行更好的支持、实现各种新工具以支持图 形对象及视频之间的融合。大部分图形功能并未在产品中受到重视,相关实旌主要集 中在改善低比特率压缩及提高容错性上。 h 2 6 4 视频编码标准: h 2 6 4 是由i s o i e c 与i t u t 组成的联合视频组( j v t ) 制定的新一代视频压缩编 码标准。1 9 9 6 年制定h 2 6 3 标准后,i t u t 的视频编码专家组( v c e g ) e 始了两个方 面的研究:一个是短期研究计划,在h 2 6 3 基础上增加选项( 之后产生了h 2 6 3 + 与 h 2 6 3 + + ) :另一个是长期研究计划,制定一种新标准以支持低码率的视频通信。长期 研究计划产生了h 2 6 l 标准草案,其目标是研制出新的压缩标准,与以前的任何标准 相比,效率要提高一倍,同时具有简单、直观的视频编码技术,网络友好的视频描述, 适合交互和非交互式应用( 广播、存储、流煤体) 。 2 0 0 1 年,i s o 的m p e g 组织认识到h 2 6 l 潜在的优势,随后i s o 与i t u 丌始 组建包括来自i s o i e cm p e g 与i t u tv c e g 的联合视频组( j v t ) ,j v t 的主要任务 就是将h 2 6 l 草案发展为一个国际性标准。于是,在i s o i e c 中该标准命名为 a v c ( a d v a n c e dv i d e oc o d i n g ) ,作为m p e g 4 标准的第1 0 个选项;在i t u t 中证式 命名为h 2 6 4 标准。该标准在2 0 0 3 年3 月正式获得批准。 国内也在孕育着一个新的视频编码标准- - a v s ( a u d i o v i d e o c o d i n gs t a n d a r d ) 【1 5 】。 a v s 是中国具有自主知识产权的第二代信源编码标准。在2 0 0 3 年1 2 月1 8 1 9 同举行 第7 次会议上,工作组完成了a v s 标准的第一部分( 系统) 和第二部分( 视频) 的草 案最终稿( f c d ) ,和报批稿配套的验证软件也已完成。2 0 0 4 年1 2 月2 9 同,全国信 息技术标准化技术委员会组织评审并通过了a v s 标准视频草案。2 0 0 5 年1 月,a v s 工作组将草案报送信息产业部。3 月3 0 日,信产部仞审认可,标准草案视频部分进入 公示期。2 0 0 4 年度第一季度( 第8 次全体会议) 正式开始“数字版权管理与保护”标准 的制定,目前已近尾声。2 0 0 5 年初( 第1 2 次全体会议) 完成了第三部分( 音频) 草 案。a v s 的产业化步伐在标准制订过程中已经开始,目l i i 正处在大规模产业化的启动 期。 1 2 2 传输方式 流媒体的主要特点就是流式传输数据,有了经过复杂编码处理的媒体数据后,还 需要选择合适的传输方式,把它传输到客户端。下面对传输的方式做简单介绍。 i p 网络可以提供三种基本的传输方式:单播、组播以及广播。而流媒体服务器与 町扩展高并发流媒体系统研究与设计第一章绪论 客户端之间也主要利用这些基本方式进行媒体流的传输。单播指的是主机之间一对一 的通信模式,网络中的交换机和路由器对数据只进行转发而不进行复制;组播主机之 间一对一组的通信模式,网络选择性复制和转发组播数据,只有加入同一个组播组的 主机才可以接收到数据;广播是主机之自j 一对所有的通信模式,网络对组播数据进行 复制和转发,所以主机都可以收到。在目前的网络设旋中,只有单播是被完全支持的, 组播和广播由于其特性不易被管理,还无法在大规模的网络,如i n t e r n e t 中得到实际 运用。 根据上面几种传输模式的特点,流媒体在提供点播服务时,都是采用单播的传输 方式,保证了用户需要数据的个性化;在提供直播时,可以采用组播的方式,利用较 少的资源就可以让大量用户接收到所需的数据;在提供时移时,由于每个用户所需数 据根据所选择的时间点不同而不同,采用的也是单播的方式。 上面讲的是底层采用的网络协议,而为了满足流媒体应用这样实时性要求高的应 用的需要,出现了t c p i p 之上针对实时流传输的应用层协议。这些协议中比较重要 的是 r t p 1 6 】、r t c p 1 7 】、r t s p 1 8 】。实时传输协议r t p ( r e a l t i m e t r a n s p o r t p r o t o c 0 1 ) ,是针对i n t e r n e t 上多媒体数据流的一个传输协 议, 由i e t f ( i n t e m e t 工程任务组) 作为r f c l 8 8 9 发布。r t p 被定义为在一对一或一对 多的传输情况下工作,其目的是提供时间信息和实现流同步。r t p 的典型应用建立在 u d p 上,但也可以在t c p 或a t m 等其他协议之上工作。r t p 本身只保证实时数据的 传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控 制,它依靠r t c p 提供这些服务。实时传输控制协议r t c p ( r e a l t i m e t r a n s p o r t c o n t r o lp r o t o c 0 1 ) :负责管理传输质量在当前应用进程之间 交换控制信息。在r t p 会话期间,各参与者周期性地传送r t c p 包,包中含有已发送 的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息 动态地改变传输速率,甚至改变有效载荷类型。r t p 和r t c p 配合使用,能以有效的 反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。r t s p ( r e a l t i m es t r e a m i n gp r o t o c 0 1 ) 是实时流协议,它负责控制流媒体应用中的会话,可 以和多种数据传输方式相绑定,而r t p r t c p 是其中使用较多的一种传输方式。特别 的,在m p e g 2 标准中,提出了传输流t s ( t r a n s p o r ts t r e a m ) ,它主要应用于实时传 送的节目,可以从任意部分开始解码。 在一般的集中式服务模式中,一台或者多台流媒体服务器承担了所有客户端的控 制和数据传输的压力,在客户端数量不是很多,而且服务器的硬件和网络条件十分充 足的条件下,往往可以得到较好的服务效果,但随着宽带网络的发展,越来越多的用 户系统享受到流媒体服务,这时集中服务模式带来的可扩展性较差的弊端就显现出 来。一方面可以尽量挖掘服务器的资源来提高并发性,另一方面则可以采用分布式的 系统服务把压力分担到客户端,从而提高系统的可扩展性。在p 2 p 的视频系统中, 改集中式服务模式中流媒体服务器提供所有数据的特性,由客户端来进行媒体数据的 转发,用我为人人,人人为我的方式来支持海量用户。p 2 p 的传输方式是在i p 网络单 播的基础上,构建了一层覆盖网( o v e r l a y ) ,媒体数掘的传输由覆盖网中的各个节点 4 町扩展高并发流媒体系统研究畸设计第一章绪论 进行转发。覆盖网的组织方式多种多样,如在应用层组播( a p p l i c a t i o nl a y e rm u l t i c a s t ) 2 4 1 1 2 5 2 6 2 7 中,每个节点都成为了一个应用层的路由器,这些节点通过特定的协 议形成了组播树,节点负责把自身收到的数据都转发给与它直接连接的下游节点;而 在c o o l s t r e a m i n g 这类p 2 p 系统中,覆盖网是一个网状的松散结构,每个节点都和若 干个邻居节点之间进行数据的传输。 1 3 论文工作及组织 本人在硕士期间所做的工作主要是采取各种技术提高流媒体系统的并发服务性 能。在集中服务模式的流媒体系统中,由于计算机技术发展的不平衡,磁盘i o 成为 影响整套系统并发能力的瓶颈,本人在研究了流媒体数据传输和数据获取行为的基础 上,使用内存文件系统、d i r e c ti 0 、异步i 0 等技术构建了一套适用于带时移直播、 点播的专用磁盘读写系统,有效提高了流媒体服务器的并发能力和服务质量。由于服 务器本身的硬件资源的限制,使用以上方法对于流媒体系统性能的提升也收到了限 制,在集中服务模式中,所有压力都由服务器承担,造成了整套系统的可扩展性较差, 因此我们寻求用p 2 p 的方式来提升流媒体系统的性能。再把p 2 p 技术和i p t v 的需求 相结合后,我们独立设计并开发了面向机顶盒客户端的p 2 p 直播系统,有效地提高了 系统地扩展性,可以为大量用户提供服务。除了做底层的流媒体系统外,我们了解到 对于m t v 的最终用户来说,友好的操作界面也十分重要,因此我还设计并实现了适 于嵌入式机顶盒环境的浏览器,可以显示标准的h t m l 页面,与服务器系统相结合, 给用户提供整套良好的流媒体体验。 论文内容分为五章: 第一章绪论,简要说明了流媒体技术的昨天和今天,以及其中包含的一些基础知 识。 第二章介绍了一套流媒体专用磁盘读写系统,在对操作系统现有的磁盘读写机制 与流媒体应用中的数据读写需求的矛盾的分析中,综合利用各种技术设计和实现专用 磁盘读写系统。 第三章介绍了使用p 2 p 技术实现的直播系统一c l e a rl i v e ,与现有的p 2 p 直播系统 不同,它主要面向的是i p t v 应用中的机顶盒客户端。 第四章介绍的是适用于机顶盒嵌入式环境的浏览器,为i p t v 用户提供友好的界 面。 可扩展高并发流媒体系统研究j 设计第二章面向机顶盒终端德p 2 p 直播系统 第二章流媒体专用磁盘读写系统 2 1 流媒体专用磁盘读写系统的应用背景 在商用i p l v 系统中,对流媒体服务器有着很高的并发要求,需要同时服务大量用 户。从流媒体服务器对资源的使用情况来看,它既是c p u 密集型又是v o 密集型应用, 只有充分综合利用服务器的资源才能到达高并发能力。在现实环境下,各种计算机技 术的发展是不平衡的,服务器c p u 、i o 等资源的可用性存在着较大的差别,根据传 统的木桶理论,最难以有效利用的资源会限制整个系统的性能。磁盘i o 作为系统中 速度相对很慢的一个组件,极大地影响了整个系统的并发能力。如何有效使用磁盘存 储,就成为了提高流媒体服务器并发性能的重要部分。我们注意到流媒体应用中的数 据访问有着区别与其他一般应用的特点,结合利用计算机理论中的缓存技术,可以有 效提高流媒体服务器的i o 能力。 下面就如何提高系统的磁盘i o 能力进行具体的分析。 2 1 1 采用缺省磁盘读写模式的普通流媒体系统的问题分析 应用程序通过操作系统提供的接口对磁盘数据进行访问。操作系统的缺省磁盘管 理策略可以较好地满足大多数应用的需要。 操作系统缺省磁盘读写模式有着下面一些特点: 1 ,对磁盘的访问是面向文件的。即应用程序按文件的逻辑去使用磁盘,总是在某 个文件上施加特定的操作。 2 ,采用文件缓存机制。操作系统把最近读写的数据放在系统管理的文件系统缓存 中,对文件的操作会先经过文件缓存,只有必要的时候彳实际操作磁盘设备。 比如当应用程序需要从文件中读取数据,操作系统会先检查这部分数据是否在 缓存中,如果在其中,就把指定的数据直接返回给应用程序,否则先磁盘设备 发起读请求;当应用程序需要向文件中写入数据时,操作系统先把这部分数据 放到缓存中,并不立即写到磁盘设备,只有当缓冲区需要更新的数据( d i r t y d a t a ) 累积到了一定数量后,才会集中向磁盘发起一批写请求。文件缓存机制 通过使用空闲内存,用空间换取时间,提高了系统磁盘i o 性能。 3 ,默认文件读写方式是同步的。也就是读写操作会等完成以后才会返回,而在调 用这些读写操作期间,程序处在等待状态,不进行别的有效处理。 虽然系统默认的磁盘读写模式可以满足绝大多数应用的需求,但具体使用到流媒 体系统上,就表现出了一定的局限性。 流媒体系统对于磁盘的读写有着和一般应用不一样的特点: 1 长时间。在一般的应用中,磁盘读写是较短时i 丑j 内的突发行为,而流媒体节目 需要长时间地给客户端提供数据流,所以对应的磁盘读写操作也是长时间的 2 大吞吐量。流媒体包含大量数据信息,原始的码率会达到几十兆以上,即使经 6 可扩展高并发流媒体系统研究与设计第二三章面向机项盒终端德p 2 p 直播系统 过复杂的压缩算法处理,也会在几兆左右,又由于需要给大量用户提供服务, 总的磁盘吞吐非常可观。 3 实时性。流媒体数据的实时性要求很强,数据包必须在规定时间内达到,否则 会影响播放效果。 4 数据读取的延续性。媒体流有着时间上的延续性,数据传输是按照时间顺序依 次进行,对应到数据读取也是按时间顺序。 从上面这些特点,可以知道流媒体系统采用操作系统默认磁盘读写方式时,存在 着一些潜在的问题: 1 在服务大量用户的时候,会造成系统的不稳定,其原因在于默认的文件缓存机 制具有突发性,特别是进行磁盘写操作的时候,对累积的大量磁盘请求的批处 理占用了大量的c p u 资源,影响到对用户提供的数据流的稳定性,使得数据的 实时性要求无法满足,从而影响服务质量。 2 默认文件缓存机制采用的是l r u ( l e a s tr e c e n t l yu s e d ) 的算法【2 0 】,会从缓存中 淘汰掉最少被使用到的数据,但是这样的原则对流媒体不太合适,根掘流媒体 的数据读取延续性的特点,可以设计出更贴切的算法来提高缓存的命中率。 3 默认的磁盘读写模式是面向文件的,但是流媒体应用中需要更高层的操作,例 如在直播时移服务中,需要以面向频道的方式来进行处理。 此外流媒体服务器需要支持服务有点播、直播、时移等。流媒体服务器中的一个 主要模块( 数据发送模块) 就是获取数据并发送给客户端,而这三种模式对于数掘读 写的要求又不一样。在点播服务器中,一部电影可以存放在单个文件中,根据客户端 的播放请求读取特定的数据;在直播服务器中,可以把从原始数据源收到的数据直接 就发送客户端,而不必从文件中读取;在时移服务器中,情况变的复杂一些,既需要 根据客户端请求读数据,又需要持续地把数据写入磁盘,而且时移需要支持的时间跨 度较大( 比如7 天) ,操作系统支持的单个文件长度又有限,因此一个频道就会对应 着若干文件。 因此提供一个易于使用的数据访问接口,面向更高层的操作,而不是像默认磁盘 读写模式的面向文件操作,可以在很大程度上减小数据发送模块的复杂度,也提高整 个系统的可靠性。 综上所述,为了提高流媒体系统使用磁盘i o 的效率以及便于上层应用使用,我 们设计了一套适合流媒体服务器的专用磁盘读写系统。专用磁盘读写系统提供类似 文件系统的接口,让上层进行流媒体数据的存储和获取。 2 2 流媒体专用磁盘读写系统的设计 2 2 1 流媒体专用磁盘读写系统的设计目标 流媒体专用磁盘读写系统要达到下面这些目标: 可扩展高并发流媒体系统研究i 设计第二章面向机项钮终端德p 2 p 直播系统 1 通用性。针对目前主流的l i n u x 操作系统进行设计,不涉及特别的硬件,使得流媒 体服务器可以在广泛的平台上运行。 2 高效。能够把磁盘系统的能力最大程度上发挥出来。 3 稳定性。在进行大吞吐量的磁盘读写时,对系统资源的占用( 主要是c p u 和内存) 情况要保持相对稳定,以减小大吞吐对系统产生的波动,提高服务质量。 4 易用性。为流媒体服务器中的各种数据处理模块提供便于使用的数据访问接口。 2 2 2 包含专用磁盘读写系统的流媒体服务器架构 下面是使用了专用磁盘读写系统以后的整套流媒体服务器的架构。包括点播服务 器和带时移直播服务器。 f = = j 交j 数掘1 i 叫嫌体数据 、,一, f l j 户管理模块l 图2 1 点播服务器架构图 8 用 统 可扩展高并发流媒体系统研究,设计第三章面向机顶盒终端德p 2 p 直播系统 ( 三徽蓑篙1 厂可丁再丽一 ;j 一 媒体数攒坝处理模块 媒体数莸l :发送模块一 f f ,1 罨数据j 客户端“插数 l f :i i。髯, i :,p , l j 量t 频道管理模块 缓冲块 t :理梭块 义f l 读写幔块 国 。 图2 2 带时移直播服务器架构图 2 2 3 专用磁盘读写系统的架构 专用磁盘读写系统采用c s ( 客户端服务器) 架构,包含了一个媒体数据缓存服务 器和若干个缓存客户端。 客户端分为三类; 1 直播数据写客户端 a ) 功能:专用磁盘读写系统中提供给外部模块进行频道数据写入操作的接 口模块,通过它来创建一个频道,并向频道中写入数据。 b ) 模块间关系:在媒体数据预处理模块中被使用,连接了媒体数据预处理模 块和媒体数据缓存服务器模块。 2 直播数据读客户端 a ) 功能:专用磁盘读写系统中提供给外部模块进行频道数据读取操作的接 口模块,通过它来打开已有的频道,并从频道中获取数据,以提供给媒体 9 x u 可扩展高并发流媒体系统研究,设计 第二三章面向机顶盒终端德p 2 p 直播系统 数据发送模块进行数据发送。 b ) 模块阃关系:在媒体数据发送模块中被使用,连接了媒体数据发送模块和 媒体数据缓存服务器模块。 3 点播数据读客户端 a ) 功能:专用磁盘读写系统中提供给外部模块进行影片数据读取的接口模 块,通过它来打开影片,从中获取数据,以提供给媒体数据发送模块进行 数据发送。 b ) 模块问关系:在媒体数据发送模块中被使用,连接了媒体数据发送模块和 媒体数据缓存服务器模块。 媒体数据缓存服务器分为三个子模块: 1 应用管理模块 用它来处理不同应用类型( 如点播、直播时移) 客户端的请求。它按服务类 型分为两个子模块:影片管理模块( 点播) ,频道管理模块( 直播时移) 。 钔影片管理模块 i 功能:在系统中每部影片都有一个数据文件和对应的索引文件组成。 影片管理模块的作用是接收点播数据读客户端的请求,必要时通过索 引进行数据块的定位,通过调用缓存管理模块提供的功能,进行数据 块的处理。 i i 模块间关系:接收点播数据读客户端的请求,调用缓存管理模块的接 口获取数据块。 b 1 频道管理模块 i 功能:在系统中单个频道的数据由若干个数据文件组成,同时还有 每个数据文件对应的索引文件,以及可对这些索引文件进行检索的频 道索引。频道管理模块的作用是接收直播客户端的请求,通过一系 列的索引,把用户请求的数据定位到具体的数据文件中,再通过调用 缓存管理模块提供的接口,进行数据块的处理。 i i 模块间关系:接收直播客户端的请求,调用缓存管理模块的接口来获 l o 可扩展商并发流媒体系统研究0 设计第三章面向帆项盒终端德p 2 p 直播系统 取或者写入数据块。频道索引由媒体数据预处理模块进行维护。 2 缓存管理模块 a ) 预备知识:系统中的媒体数据文件按照数掘块的形式束组织,对媒体数 据文件的读取和写入也都是以数据块为单位进行,块状数据处理可以尽量 减小i o 操作。缓存块是在系统内存中分配,每个缓存块都可以存放一个 数据块。 b ) 功能:缓存块管理模块维护所有的缓存块,为媒体数据文件中的数据块 分配缓存块,被分配到缓存块的数据块,在以后的访问中,可以直接使用 在内存中的数据,不需要访问硬盘。由于物理内存容量有限,媒体文件 中的数据块只有一部分可以被分配到,当需要存放新的数据块时,缓存块 管理模块会在当i i 的缓存池中选出最不会使用到的数据块,把它占有的缓 冲块释放出来,用于存放新的数据块。 c ) 模块间关系:频道管理模块通过调用缓存管理模块的接口,来向媒体数 据文件中写入数据块或从媒体数据文件中读取数据块;缓存管理模块会向 文件读写模块发起数据块的读写请求,由文件读写模块把文件中的数据块 读取并放到缓存块中,或者把缓存块中的数据写入到实际的文件中。 d ) 采用的技术: i 基于t m p f s 和内存文件映射的内存使用:在缓存块管理模块中,缓存 块不像一般的程序通过m a l l o e 等类似调用来获得,而是通过l i n u x 系 统中的t m p f s 文件系统以及内存文件映射机制来实现。在考虑下面几 点要求的前提下,结合t m p f s 文件系统和和内存文件映射来表示缓存 块: 1 缓存块管理需要大量的内存,来达到较高的缓冲命中率。 2 缓存块需要可以高效地在不同模块之间共享。 3 在通常的3 2 位系统上,进程的可用地址空间是2 g b ,而商用服务 器的内存可以超过这个数目,需要有效使用系统的内存。 t m p f s 是基于系统内存的文件系统,也就是说在t m p f s 下的文件实际上 都存放在系统内存中。而且t m p f s 可以充分利用服务器的内存资源, 可扩展高并发流媒体系统研究与设计第三章面向机顶龠终端德p 2 p 直播系统 不会有2 g b 的限制。再加上内存文件映射技术,可使得:1 ,在不同 的模块间,通过对在t m p f s 中的同一个文件的映射,就可以实现数据 的共享;2 内存文件映射是动态的,可以随时建立和撤销,既可以使 用到巨大的系统内存,又不会造成进程的地址空| 日j 不足。 i i 缓存管理:缓存管理主要是为有价值( 被多次使用的可能性大) 的 数据块分配缓存块,从另一个方面也就是要把缓存块从最没价值( 对 多次使用的可能性小) 的数据块中释放出来。在为新的数据块分配缓 存块时,如果缓存块不足,就需要用数据块淘汰算法选择出一块最不 会被使用到的数据块,把它占用的缓存块释放出来,用来存放新的数 据块。对于缓存算法的研究,也已经有比较多的算法,立n 2 1 1 1 2 2 1 1 2 3 , 但其中都只涉及了点播情况下的研究,我们在借鉴这些算法的基础 上,对对直播时移的情况做了扩充。淘汰算法要选择最晚被用到的数 据块。用流来表示某个用户观看直播时移时候的状态,主要关注当f i i 使用的数据块在媒体文件中所处的位置。在正常播放状态下,媒体流 获取数据的顺序是依次往后,数据块的下次访问时间可以用它与i j i 面 邻近的流之间的距离来表示,距离越远就越晚会被用到。为了较快地 找出最晚被使用到的数据块,先找出单个媒体文件中最晚访问的数据 块,再从所有这样的数据块中选出最终的最晚访问的数据块。同时注 意到夹在两个流之间的数据块,最靠后面的数据块必然比前面的要晚 访问,所以只要比较每个相邻流之间最靠后的数据块就可以了。 3 文件读写模块 a ) 功能:文件读写模块的作用是接收上层发起的数据块读写请求,把数据 块从文件中读出,放到缓存块中,或者把数据块的内容从缓存块中写入到 文件。 b ) 模块间关系:被缓存管理模块调用,进行实际的媒体数据文件的数据块 读写。与缓存管理模块在不同的线程中运行。 c ) 采用的技术:在文件读写模块中,采用了两个技术,d i r e c t i o 和异步 i o 。 i d i r e c t 方式的磁盘i o 绕过了系统的文件系统缓存,把文件读写请 可扩展高并发流媒体系统研究吁设计 第三审面向机顶龠终端德p 2 p 直播系统 求直接交给磁盘,这可以避免在使用l i n u x 下默认的文件系统缓存机 制时,对流媒体系统的服务质量造成的影响。在使用文件缓存时, l i n u x 会尽量地使用内存作为缓存,来达到通用情况下较好的磁盘吞 吐性能,但是这有两点地方会对流媒体系统的服务质量造成影响:1 , 只有当缓存中的脏数据较多时,才会发起大量写请求,把数据刷新到 实际的磁盘文件中,这样的写操作带有很强的突发性,会在这段时间 内占用大量的系统资源,从而对别的应用造成影响,特别是对流媒体 服务这样时间敏感的应用,会使得短时臼j 内数据处理能力不足,影响 服务质量:2 ,流媒体应用中的磁盘读写规律有着其自身的特点,默 认的文件系统缓存是针对一般的用途,因而不能达到最好的效果。通 过d i r e c ti o ,我们可以构造自己的适合流媒体应用的缓存机制,提 高服务器的性能。 i i 异步i o 的主要特征就是操作请求的发起和操作结果的获得是分开 的。主要优点有:数据处理和i o 操作重叠进行,有利于提高c p u 的 使用率;在同步i o 中,只有一个请求完成了以后,才能进行下一次 请求,磁盘的性能不能很好表现出来,而通过异步i 0 可以使得磁盘 设备的请求管道中总是保持一定量的请求,有利于提高其利用率。把 异步f o 与d i r e c ti o 的直接把读写请求发送给磁盘设备的特点相 结合,我们通过控制发送请求的频率来控制磁盘的吞吐量,使磁盘 系统对整个流媒体系统的影响保持在一个较低的水平。 2 2 4 处理流程 在介绍专用磁盘读写系统的架构、组成后,我们再用动态的流程来描述系统运行 时的状况。 先说明直播时移系统中的流程。 2 2 4 1 直播时移处理流程 下面按照媒体数据的接收和发送两条线索分别进行描述( 由于本文主要介绍赢播 时移专用磁盘读写系统,对于c l e a r l i v e s e r v e r 中其他模块处理流程的描述会比较简 略) 。 当媒体数据被接收时,c l e a r l i v e s e r v e r 中的各个模块会进行下面这些流程的处理 可扩展商并发流媒体系统研究l j 设计第二三章面向机顶盒终端德p 2 p 直播系统 ( 如图2 3 ) : l 吧社t 墨宙上 书一令啦剥 q 班 媒体数掘馒处理模块 频道管璋以及缓订菅瑚戎块 媒体数据缓存暇务器 文件谚写模块 图2 3 直播时移系统数据接收处理总流程图 1 媒体数据预处理模块: a )从原始数据源接收直播数据 b )把数据进行处理,如判断是否是关键帧,记录接收时间等 c )把数据放到从媒体数据缓存服务器得到的缓冲块队列的队头缓冲块中( 缓 冲块用于存放最新接收的数据,队列中有若干个缓冲块) d 1如果队头缓冲块数据已经满了,通过直播数据写客户端向媒体数据缓存服 务器写入最新的数据块,然后调整缓冲块队列一把队头缓冲块移到队尾( 缓 1 4 可扩展高并发流媒体系统研究与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论