一种处理流媒体数据的方法技术

技术编号:2861455 阅读:194 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种处理流媒体数据的方法,该方法为:根据源媒体文件的码率确定在一个磁盘上连续存放固定大小的数据子块的数量Chunk_w;以数据子块为单位分割接收的源流媒体数据;按数量Chunk_w将多个数据子块组织为一个数据单元,并生成每N-1个数据单元的校验数据单元;将每N-1个数据单元及其校验数据单元分别记录在不同的磁盘上;以及:根据媒体文件的码率确定在一个磁盘上能够连续读取数据子块的数量Chunk_r;根据数量Chunk_r和数据单元包含的数据子块数量,计算读完一个数据单元需要进行的读取次数并得到各次实际需要读取的数据子块数量,且保证各次实际需要读取的子块数量大致相等;按各次实际需要读取的子块数量从磁盘读取媒体文件的每一个数据单元。

【技术实现步骤摘要】

本专利技术涉及独立冗余磁盘阵列(RAID)技术,尤其涉及在独立冗余磁盘阵列中处理流媒体数据的方法
技术介绍
RAID技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会受到损坏硬盘的影响。RAID的分级1.RAID0级,无冗余无校验的磁盘阵列。数据同时分布在各个磁盘驱动器上,没有容错能力,读写速度在RAID中最快,但因为任何一个磁盘驱动器损坏都会使整个RAID系统失效,所以安全系数反倒比单个的磁盘驱动器还要低。一般用在对数据安全要求不高,但对速度要求很高的场合。2.RAID1级,镜象磁盘阵列。每一个磁盘驱动器都有一个镜像磁盘驱动器,镜像磁盘驱动器随时保持与原磁盘驱动器的内容一致。RAID1具有最高的安全性,但只有一半的磁盘空间被用来存储数据。主要用在对数据安全性要求很高,而且要求能够快速恢复被损坏的数据的场合。3.RAID 0+1级,吸收了上述两种标准的优点,是数据分割和镜像的结合。这种配置至少需要4块硬盘,成本也将大大高于前者。它的工作方式是数据块1写到磁盘1,数据镜像写到磁盘2;数据块2写到磁盘3,数据镜像写到磁盘4;数据块3写到磁盘1,数据镜像写到磁盘2......依此类推。在资源的占用方式上与RAID1一样,硬盘使用率只有50%,但它是真正的“安全性”加“高性能”。4.RAID2级,纠错海明码磁盘阵列。磁盘驱动器组中的第一个、第二个、第四个......第2n个磁盘驱动器是专门的校验盘,用于校验和纠错,例如七个磁盘驱动器的RAID2,第一、二、四个磁盘驱动器是纠错盘,其余的用于存放数据。使用的磁盘驱动器越多,校验盘在其中占的百分比越少。RAID2对大数据量的输入输出有很高的性能,但少量数据的输入输出时性能不好。RAID2很少实际使用。5.RAID3和RAID4,奇校验或偶校验的磁盘阵列。不论有多少数据盘,均使用一个校验盘,采用奇偶校验的方法检查错误。任何一个单独的磁盘驱动器损坏都可以恢复。RAID3和RAID4的数据读取速度很快,但写数据时要计算校验位的值以写入校验盘,速度有所下降。RAID3和RAID4的使用也不多。6.RAID5级,无独立校验盘的奇偶校验磁盘阵列。同样采用奇偶校验来检查错误,但没有独立的校验盘,校验信息分布在各个磁盘驱动器上。RAID5对大小数据量的读写都有很好的性能,被广泛地应用。RAID磁盘阵列适配卡RAID可以由软件或硬件实现。软件RAID是纯软件实现的,它运行于服务器的CPU中,占用一定的内存和CPU资源,因此软件RAID对服务器的整体性能有所影响。硬件RAID是由磁盘阵列适配器实现的。硬盘阵列适配器上具有独立输入/输出处理器(IOP),所有的RAID操作都在IOP完成,不占用服务器的资源。硬件阵列适配器分担了软件RAID中原本服务器要完成的工作,因此硬件RAID比软件RAID有更高的运行效率。硬件RAID又可以分为内部硬件RAID和外部硬件RAID。内部硬件RAID是安装于服务器内部PCI槽的一种设备,通常称之为PCI RAID卡。业界的许多磁盘阵列供应商,如Adaptec、LSI、IBM、Intel等都有相关的RAID卡产品。RAID卡一般采用IOP+专用的小型计算机系统接口(SCSI)控制芯片来实现。随着硬件技术的发展,IOP处理器已经从较早的i960发展到今天的80321,PCI的标准从PCI 2.1发展到PCI-X,SCSI的标准也从较早的SCSI-1发展到了SCSI-3。现有的基于PCI RAID卡的流媒体服务器基本都采用商用的RAID卡和商用的操作系统及其文件系统,在流媒体的具体应用中呈现出以下缺点1、现有的RAID卡只支持最大128KB的分条单元(Stripe_unit)。这种配置对于间歇式的、小文件的读写访问是有效的,但对流媒体这种需要高并发、大流量连续性地读磁盘的应用却显得无能为力。现有的RAID卡只能导致磁头频繁地处于寻道定位过程中。2、现有的RAID卡在访问磁盘的时候,最大只能以4KB的粒度发起对磁盘的读写。在通用的文件系统下,4KB的粒度已经能够满足普通的应用。但在流媒体应用中,4KB的粒度却难以满足多用户并发的点播需求。3、通用的文件系统不能实现媒体文件在磁盘上按区存放的策略。综上所述,简单地利用现有的技术开发流媒体服务器,磁盘和SCSI总线的带宽能力不能得到充分的发挥,媒体数据读取能力低。
技术实现思路
本专利技术的目的在于提供,以解决现有RAID技术在流媒体应用中存在处理数据能力低的问题。实现本专利技术的技术方案,用于将源媒体文件的流媒体数据记录在由N个磁盘构成的独立冗余磁盘阵列中,以及从该独立冗余磁盘阵列中读取流媒体数据;该方法包括向磁盘写入流媒体数据和/或从磁盘读取数据A、向磁盘写入流媒体数据包括步骤根据源媒体文件的码率确定在一个磁盘上连续存放固定大小的数据子块的数量Chunk_w;以所述数据子块为单位分割接收的源流媒体数据; 按数量Chunk_w将多个数据子块组织为一个数据单元,并生成每N-1个数据单元的校验数据单元;将每N-1个数据单元及其校验数据单元分别记录在不同的磁盘上;B、从磁盘读取流媒体数据包括步骤根据媒体文件的码率确定在一个磁盘上能够连续读取数据子块的数量Chunk_r;根据数量Chunk_r和所述数据单元包含的数据子块数量,计算读完一个数据单元需要进行的读取次数并得到各次实际需要读取的数据子块数量,且保证各次实际需要读取的子块数量大致相同;按所述各次实际需要读取的子块数量从磁盘读取媒体文件的每一个数据单元。根据上述方法以数据子块的大小作为最小存储单位将磁盘划分为多个存储块(block),由多个存储块组成磁盘的一个分条单元(Stripe_unit),该分条单元中存储块的数量Stripe_depth不少于数量Chunk_w;并由各磁盘对应的一个分条单元构成一个分条(Stripe),该一个分条至少存储N-1个数据单元及其校验数据单元。所述一个分条存储多个N-1个数据单元及其校验数据单元,即每一个分条单元存储多个数据单元或校验数据单元。所述固定大小的数据子块为64KB。媒体文件的码率越大,则使数据单元所包含的数据子块越多。所述数量Stripe_depth为32~256。生成每N-1个数据单元的校验数据单元时,分别将各数据单元相对应的数据子块进行校验运算得到多个校验数据子块,由该多个校验数据子块构成校验数据单元。所述N个磁盘作为一个单一的逻辑设备以统一的逻辑块地址进行访问。将高码率的媒体文件存储在磁盘磁道的内圈,即持续吞吐量低的区域;将低码率的媒体文件存储在磁盘磁道的外圈,即持续吞吐量高的区域,以提高整个系统的有效吞吐量。确定在一个磁盘上能够连续读取数据子块的数量还参考系统分配的缓存资源。计算读完一个数据单元需要进行的读取次数时,如果结果为小数,则将整数部分加1作为本文档来自技高网
...

【技术保护点】
一种处理流媒体数据的方法,用于将源媒体文件的流媒体数据记录在由N个磁盘构成的独立冗余磁盘阵列中,以及从该独立冗余磁盘阵列中读取流媒体数据;该方法包括向磁盘写入流媒体数据和/或从磁盘读取数据:A、向磁盘写入流媒体数据包括步骤: 根据源媒体文件的码率确定在一个磁盘上连续存放固定大小的数据子块的数量Chunk_w;以所述数据子块为单位分割接收的源流媒体数据;按数量Chunk_w将多个数据子块组织为一个数据单元,并生成每N-1个数据单元的校验数据单元;   将每N-1个数据单元及其校验数据单元分别记录在不同的磁盘上;B、从磁盘读取流媒体数据包括步骤:根据媒体文件的码率确定在一个磁盘上能够连续读取数据子块的数量Chunk_r;根据数量Chunk_r和所述数据单元包含 的数据子块数量,计算读完一个数据单元需要进行的读取次数并得到各次实际需要读取的数据子块数量,且使各次实际需要读取的子块数量大致相等;按所述各次实际需要读取的子块数量从磁盘读取媒体文件的每一个数据单元。

【技术特征摘要】
1.一种处理流媒体数据的方法,用于将源媒体文件的流媒体数据记录在由N个磁盘构成的独立冗余磁盘阵列中,以及从该独立冗余磁盘阵列中读取流媒体数据;该方法包括向磁盘写入流媒体数据和/或从磁盘读取数据A、向磁盘写入流媒体数据包括步骤根据源媒体文件的码率确定在一个磁盘上连续存放固定大小的数据子块的数量Chunk_w;以所述数据子块为单位分割接收的源流媒体数据;按数量Chunk_w将多个数据子块组织为一个数据单元,并生成每N-1个数据单元的校验数据单元;将每N-1个数据单元及其校验数据单元分别记录在不同的磁盘上;B、从磁盘读取流媒体数据包括步骤根据媒体文件的码率确定在一个磁盘上能够连续读取数据子块的数量Chunk_r;根据数量Chunk_r和所述数据单元包含的数据子块数量,计算读完一个数据单元需要进行的读取次数并得到各次实际需要读取的数据子块数量,且使各次实际需要读取的子块数量大致相等;按所述各次实际需要读取的子块数量从磁盘读取媒体文件的每一个数据单元。2.如权利要求1所述的方法,其特征在于,以数据子块的大小作为最小存储单位将磁盘划分为多个存储块(block),由多个存储块组成磁盘的一个分条单元(Stripe_unit),该分条单元中存储块的数量Stripe_depth不少于数量Chunk_w;并由各磁盘对应的一个分条单元构成一个分条(Stripe),该一个分条至少存储N-1个数据单元及其校验数据单元。...

【专利技术属性】
技术研发人员:朱浩颖彭华
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1