并行组播网络文件系统的制作方法

文档序号:7671447阅读:180来源:国知局
专利名称:并行组播网络文件系统的制作方法
技术领域
本发明涉及一种并行组播网络文件系统,用于改进网络存储系统的性能。该技术利用网络文件系统(Nre)的通信协议和并行组播技术形成数据文件的批量分发和储存机制,在批量数据存储处理时,可以改善网络存储系统的性能,如视频点播(VoD),网络电视, 视频会议和视频监控系统等。
背景技术
多媒体应用常需要跨越不同的平台和文件系统并可以快速、并发、安全地访问视频文件,通常NFS分布式文件系统被用于实现该功能,但其性能只是导出存储系统的文件系统性能的一部分,而且目前的NFS实现方案中,由于NFS服务器有限的网络、CPU、内存、磁盘I/O资源等多种因素的限制,NFS服务器所能提供的带宽很有限。近年来,随着便宜而且易于扩展的视频分发服务器集群的广泛采用,带宽问题已变得越来越严重,这种集群对总带宽需求的增长速度远远超过了服务器集群可提供的带宽,特别是在VoD应用中,经常是多个用户几乎在同一时间请求访问相同的内容。另外,NFS当前的实现方案也不能很好的应用于多媒体流服务,因为它们不提供任何有保证的时间延迟,因而难于提供令人满意的用户体验。NFS第4版相较于NFS的早期版本有多项改进,特别是提供了集成的安全性和锁定框架以及迁移和复制功能,但是,单服务器性能上的瓶颈仍然存在。将文件集合分布在多个 NFS服务器上有助于绕开这个局限,但会增加系统管理成本,而且没有解决多个客户端同时访问同一个文件或目录的可扩展性问题,而后者是当今高性能应用的关键要求。近年来,将分布的NFS服务器聚集到一个单一的文件系统影像的技术取得了一些进展,但这些系统无法输出一些常用的第三方文件系统。并行网络文件系统(pNFQ通过扩展NFS第4版的次要版本(minor version),试图提供并行的文件服务方案。但它仍然没有解决一些多媒体应用中(如视频点播)多个用户在同一时间请求访问相同内容等问题。

发明内容
针对当前NFS的这些问题,本发明公开了一种以网络组播为基础的并行组播网络文件系统(parallel multicasting network file system,以下简称 pmNFS),通过在当前现有的网络文件系统基础上,引入并行组播技术,来提高多媒体内容的分发性能。本发明的任务是这样来完成的,一种并行组播网络文件系统,其特征在于以一个标准网络文件系统为基础,一个并行扩展部分用于消除标准网络文件系统的性能瓶颈,一个组播扩展部分用于消除存储磁盘I/O性能瓶颈;对控制数据和文件数据使用分离的传输通道以允许数据由多个客户端并行地传输到多个服务器端;利用组播来合并多个服务的流媒体数据流,以整合和减少I/O调用,从而消除存储磁盘I/O性能瓶颈;使用前向纠错机制用来提高组播的可靠性;校验值被计算后写入到磁盘存储,实现文件存储和传输误差校正的集成;利用缓冲区管理和磁盘I/O调度来提供顺序写入和组播的内存管理。在本发明的一个具体的实施例中,所述的并行组播网络文件系统还包括一个媒体存储子系统和一个媒体分发子系统;所述的媒体存储子系统包括一个导出本地文件系统, 它专为批量数据存储和分发应用而优化,一个NFS第4版服务器,但通过在并行和组播的扩展以及相应的客户端一道来执行控制和文件管理操作以实现数据批量写入和组播分发,一个存储和分发管理器来管理数据批量写入和组播分发,以及一系列数据存储硬盘用来存储用户数据;所述的媒体分发系统,包括一个NFS第4版客户端,但通过在并行和组播的扩展和相应的服务器一道来执行控制和文件管理操作以实现数据批量写入和组播分发,一个专为存储定制的驱动程序来支持数据批量写入和组播方式来实现可扩展的存储I/O吞吐量; 一个写入和分发服务器用于整合批量数据的写入或分发。在本发明的另一个具体的实施例中,对所述的控制数据的传输通道使用TCP协议,对文件数据的传输通道使用UDP协议。在本发明的又一个具体的实施例中,所述的导出本地文件系统提供一个文件系统接口,支持但不限于如下操作打开/关闭(Open/Close),删除(Delete)、统计(Mat)、读/ 写 / 找(Read/Write/Seek)、打开会话 / 关闭会话(Oper^ession/Closekssion)、播放 / 录音 / 定速 / 暂停(Play/Record/^etSpeed/Pause)、同步(Sync)。在本发明的还有一个具体的实施例中,所述的存储和分发管理器具有一个传输误差校正功能块,包括将每个播放文件分为多个具有固定数据包数的组播组;每个小组都有固定的数据包数和编码前向纠错数据包数;每个数据包由组索引及包索引来识别;前向纠错校验值被计算后写入到磁盘存储,编码后的数据块和文件数据一同存储;按文件发送的顺序存储编码后的数据块,发送时循环遍历相关文件并发送相应的数据块。本发明由于采用上述技术方案后,具有的效果通过对控制数据和文件数据使用分离的传输通道,允许数据由多个客户端并行地传输到多个服务器端,通过将1/0分布于跨越客户端和存储设备之间的存储网络带宽,消除了单台服务器的瓶颈。在并发访问相同文件时,组播(multicast)技术被用来合并多个服务的数据流以增强文件分发性能,对流媒体应用,文件发布的存储1/0性能瓶颈被有效的去除。


图1为本发明的并行组播网络文件系统架构图。图2为本发明的数据传输过程中使用前向纠错机制的示意图。
具体实施例方式下面结合图1、图2和案例就软件系统构成和实现方法详细说明。构架并行组播网络文件系统(pmNFS)总体结构如附图1所示。特别是, 标准网络文件系统(如当前的NFS第4版),用于文件1/0。·并行NFS扩展,用于消除NFS的性能瓶颈。 组播NFS扩展,用于整合和减少1/0调用,消除存储磁盘1/0性能瓶颈。 对控制数据和文件数据示意分离的传输通道。
控制数据传输通道使用TCP协议,文件数据传输通道使用UDP协议。 在数据传输中使用前向纠错机制(FEC)来提高组播的可靠性。播放频道管理 多个播放频道 每个频道的播放带宽可能会有所不同 每个播放频道可以支持一个或多个视频 用户可以单独订阅每个播放频道组播组管理·每个播放文件分为多个具有固定数据包数的组播组 每个小组都有固定的数据包数和FEC数据包数 每个数据包由组基指数(group index)及包基指数(packet index)来识别。播放会话管理 通过NFS的组播扩展(pmNFS)提供控制机制。眷一旦收到文件的读请求,每个播放会话的设置(包括会话和文件的元信息)将发送到NFS客户端。 会话信息还可以由播放管理器通过会话公告协议(SAP)进行宣布。 会议和文件信息包括如下属性〇组播地址和端口号〇文件元数据(文件名,文件长度,文件在存储系统等布局)〇视频特性(压缩设置等)文件组播 组播操作如下〇发件者连续周期性地发送多组文件。接受者订阅组播,获得必要的文件数据块来构建文件,然后退出组播。〇接受者不断地调整到一个组播地址。随着时间的推移,发件者推送接受者感兴趣的不同文件组,接收者丢弃任何不需要的文件。 所有频道同时(同步)播放 对每个播放会话,每个频道按顺序播出文件 每个频道周期性的开始播出会话集成的文件存储和传输误差校正文件数据的传输过程如附图2所示。校验值被计算后写入到磁盘存储。如果预先计算和写入这个文件的时间是可以接受的,编码后的数据块可以和文件数据一同存储。 相对于传统的从RAID类型的系统中读取数据时,其中的奇偶校验信息只有在磁盘发生错误时才读取,我们也会阅读冗余错误恢复信息并发送。这将节省重复计算和磁盘访问时间 (磁盘访问是主要因素)。对于最高性能要求,可以预先计算所有数据块,并按文件发送的顺序存储它们。发送时只需循环遍历相关文件并发送相应的数据块。但是,如果n>>k, 将FEC块保持在内存或磁盘上则可能会比原始文件占用更多的空间。数据包标头数据包标头包含以下信息序列号,文件标识符,文件长度,FEC组标识符,FEC组索引,和(n,k)的编码k值。每个文件发送时被赋予一个唯一的ID。因此,每个传输块是由一组唯一的〈文件ID,FEC组ID,FEC组索引〉参数来标示。具有指数0到k_l的数据包是原始文件块,而具有指数k到n-1的数据包则是编码块。序列号随每个数据包发送递增。 文件的长度则包含在标头中,接收器一旦收到首包并读取标头信息后可以配留相应的内存结构以便跟踪数据包的接收。同样,k值也包含在标头中,接收器便可获知本组的大小(文件长度除以k)。相对于包括文件的长度和k值在每一个数据包中,我们也可以通过波段外的其它方式送出这些值。然而,将它们通过波段内传送,并将元信息嵌入到数据包尾部,我们可以将接收器调到一个给定的组播地址和端口便可以开始接受数据而不需要更多知识。这样的实施假设所有的数据包具有固定的大小。此大小值不必包括在数据包标头-接收器只需检测它接收到的第一个数据包大小。(n,k)编解码器中的η值也不用传输, 因为接收器并不需要。pmNFS API 功能pmNFS提供但不限于以下这些API功能 打开 / 关闭(Open/Close) 删除(Delete) 统计(Stat) 读 / 写 / 找(Read/Write/^eek) 打开会话 / 关闭会话(Oper^ession/Clos必ession) 播放 / 录音 / 定速 / 暂停(Play/Record/ktSpeed/Pause) 同步(Sync)pmNFS非播放操作· MSA的客户端发送一个文件信息请求到服务器· MSA服务器获得不透明的文件系统文件布局图· MSA服务器将文件布局图传送到客户端· MSA的客户端将其传送到布局驱动程序· MSA便可以直接通过数据路径访问数据了。pmNFS播放操作· MSA的客户端发送一个文件信息请求到服务器· MSA服务器将信息发送到文件系统和播放管理器。 如果所要求信息在播放名单中,则进入下一步骤。否则,播放管理器将决定是否应当为其安排播放。如果是这样,将其放在未来的播放队列中,否则进行正常的NFS操作。· MSA服务器从文件系统中获得文件组播信息,包括文件名,文件大小,文件校验,组播频道,和播放时间表等· MSA文件服务器将组播信息传输到客户端· MSA的客户端将其传送到布局驱动程序· MSA客户端准备接收播放文件。pmNFS文件播放管理 根据文件受欢迎程度,确定将其通过单播或组播的方式进行传送。最受欢迎的 N个文件可定为最优先的组播文件。
根据下列因素,将文件动态地分配到不同的频道〇人气〇大小〇流速度要求〇用户信息 不同的频道将被分配有不同的带宽和播放周期。 人气的测量是实时进行的。播放管理器收集从分发服务器的访问请求的统计信息。分发服务器将请求统计信息发送到NFS服务器。流型媒体内容写入方法本发明中,我们通过递增方式写入不同来源的会话数据流。应用的场景包括监控系统,视频会议,以及医疗影像的数据纪录。通常将多个数据流同时摄入到存储系统中。目的是为了有效地实时将多媒体内容写入到存储系统。多媒体数据流 会话(session)—个写入会话包括多个流的并发写入。 数据流块(streaming chunks)—个多媒体文件是由一个或多个流块,每块包括固定播放时间的内容。 数据块(data blocks)本地文件系统(比如SELF)可以使用大数据块。每个流块存放在多个连续的物理块。 元数据(Matadata)具有适当的结构通用于会话,数据流,和数据块,包括 会话 ID 会话到流的映射(流ID)參流ID 数据流到数据流块的映射眷数据流块播放时间 数据流块的ID 数据流块的长度 数据流块的位置和范围(首块和块的数量) 访问控制眷媒体特性写入的内存管理内存包括固定和非固定存储。固定存储(pag印ool),由配置参数决定,用于存放缓存数据,非固定存储(malloc池)则被本地文件系统用于元数据和i节点(inode)的缓存。 缓存允许本地文件系统实施后写(和预读)机制。一旦应用程序的缓冲区被复制写入到固定存储时,从应用的角度来看写入请求便完成了。本地文件系统然后通过发出I/O指令到磁盘设备驱动程序(后写)来将新缓存中的脏数据块刷写到磁盘,调度完成写入请求。在此应用中,磁盘I/O调度器只是保证周期性的写入。每次从每个数据流写入一个数据流块。 时间周期决定了每个写入的数据流的块大小。在读取一个大文件时,为了利用磁盘读写的并行性,本地文件系统预先读取数据到其缓冲区,必要时同时并行地发出I/O请求到尽可能多的磁盘来达到存储交换器所允许的带宽。同样,不再访问的脏数据缓存区中的数据,也可并行写入磁盘。这种方法允许用磁盘子系统所支持的统合速率来读取或写入数据从/到单一文件。最好本地文件系统能识别顺序,反顺,以及各种形式的条带访问模式。应用场景方案1 监控系统的数据存储假设 案例一每个数据流存储为一个独立的文件。所支持的流的数量上取决于可用的写入资源。以下是一个例子1. 100条流,每条流具有2Mb/s的数据速率;消耗2(ib/S的带宽。2.如果以600秒长度作为一个数据流块,则块大小=1. 2GB的或150MB。3.缓冲区大小>=600*2 = 120*100Mb = 120Gb = 15GB. ±夬越小则缓冲区越小。4.磁盘的I/O带宽消耗=20/100*2 = 0. 4Gb/s的带宽(包括镜像写入)。 案例二 交错式存储,即多个(N)的数据流存储为一个文件。如果数据流块的大小保持大致相同,缓冲区大小则可降低1/N。 如果没有NFS的客户端介入操作,视频内容可通过RTP写入到存储设备。 存储设备怎样了解有关会话信息则不在这个应用程序考虑的范围内。操作 客户端通过控制数据传输通道发送信息给服务器启动写入会话。 服务器响应并通过控制数据传输通道送回文件的元数据(文件布局信息等)。 客户通过数据通道开始发送数据流到存储设备。写缓冲区分别拦截数据流。 每600秒,每个写缓冲区将被复制到固定存储。 本地文件系统然后通过发出I/O指令到磁盘设备驱动程序(后写)来将新缓存中的脏数据块刷写到磁盘,调度完成写入请求。 每个数据流块包括600秒数据流的内容。每个流块是一个条带,并写入到磁盘上。它是作为一个连续的块序列来写入到磁盘的主体位置。随后,存储设备类似地将其写入到辅助位置(镜像)。 只有在主体位置写入成功,那么该设备规划下一个流块的写入。方案2 视频会议的数据存储假设 存储设备是视频组播节点的一部分。但它只是听。· 一个会话内容包括一个音频流和多个视频流。音频流可以与每个视频流交错。 如果没有NFS的客户端介入写入操作,视频内容可通过RTP写入到存储设备。 案例一每个数据流存储为一个独立的文件。所支持的流的数量上取决于可用的写入资源。1. 100条流,每条流具有2Mb/s的数据速率;消耗2(ib/S的带宽。2.如果以600秒长度作为一个数据流块,则块大小=1. 2GB的或150MB。3.缓冲区大小>=600*2 = 120*100Mb = 120Gb = 15GB. ±夬越小则缓冲区越小。4.磁盘的I/O带宽消耗=20/100*2 = 0. 4Gb/s的带宽(包括镜像写入)。〇案例二 交错式存储,即多个(N)数据流存储为一个文件。如果数据流块的大小保持大致相同,缓冲区大小则可降低1/N。操作 存储设备获得对视频会议的会话信息。 服务器通过控制数据传输通道发送文件的元数据(文件布局信息等)。(客户端如不需要可以丢弃) 客户通过文件数据传输通道开始发送数据流到存储设备。存储设备将数据流按需要存放到缓冲区。·每600秒,每个写缓冲区将被复制到固定存储。 本地文件系统然后通过发出I/O指令到磁盘设备驱动程序(后写)来将新缓存中的脏数据块刷写到磁盘,调度完成写入请求。 每个数据流块包括600秒数据流的内容。每个流块是一个条带,并写入到磁盘上。它是作为一个连续的块序列来写入到磁盘的主体位置。随后,存储设备类似地将其写入到辅助位置(镜像)。 只有在主体位置写入成功,那么该设备规划下一个流块的写入。磁盘I/O调度的读取过程假设 基于人气或SLA服务类别,例如,〇高100个文件㈧;保证最少延迟(比如< 100秒)〇中100个文件,保证次少延迟(< 200秒)。50 (Bi)-50 (B2)轮换。〇低其它延迟要求(< IOOn秒),每一次服务多达50个文件(Cl到Cn)·由数据流管理器来决定哪一个文件使用组播或单播来传送。操作 阅读过程通过多轮周期不同的方式来完成。对于上面的例子中所述的情况第一轮A-B1-C1第二轮A-B2_C2第三轮A-B1_C3第三轮A-B2_C4第η轮A-B2_Cn第n+1 轮A-Bl-Cl 对每个硬盘,访问调度器将使用扫描方法来访问相应的流块的A-Bi-Cj (在每一轮访问每个数据流块的顺序应重新安排)。 尽可能保持顺序阅读。访问调度器将决定每个硬盘上数据流块读取序列。 所有硬盘并行读取。磁盘I/O调度的写入过程 如果读操作出现的话,写操作比读操作具有较低的优先级。 同时有m条不同数据速率的数据流。 每个流分为固定时间内容(比如600秒)的数据流块。因此,数据流块大小则是不固定的。每个数据流块将使用一定数量连续的物理块,例如,Dl和D2,...,和Dm,来写入。
写入数据块Di的写入任务将比最低优先级的读取任务(比如Ci)优先级还低, 如果有的话,它会蔓延到每一轮。 调度器将与阅读任务(如有)一起安排写入任务,包括以下两个子任务〇每个数据流块包括600秒数据流的内容。每个流块是一个条带,并写入到磁盘上。它是作为一个连续的块序列来写入到磁盘的主体位置。〇随后,存储设备类似地将其写入到辅助位置(镜像)。
权利要求
1.一种并行组播网络文件系统,其特征在于以一个标准网络文件系统为基础,一个并行扩展部分用于消除标准网络文件系统的性能瓶颈,一个组播扩展部分用于消除存储磁盘I/O性能瓶颈;对控制数据和文件数据使用分离的传输通道以允许数据由多个客户端并行地传输到多个服务器端;利用组播来合并多个服务的流媒体数据流,以整合和减少I/O 调用,从而消除存储磁盘I/O性能瓶颈;使用前向纠错机制来提高组播的可靠性;校验值被计算后写入到磁盘存储,实现文件存储和传输误差校正的集成;利用缓冲区管理和磁盘I/ 0调度来提供顺序写入和组播的内存管理。
2.根据权利要求1所述的并行组播网络文件系统,其特征在于还包括一个媒体存储子系统和一个媒体分发子系统;所述的媒体存储子系统包括一个导出本地文件系统,它专为批量数据存储和分发应用而优化,一个NFS第4版服务器,但通过在并行和组播的扩展以及相应的客户端一道执行控制和文件管理操作以实现数据批量写入和组播分发,一个存储和分发管理器来管理数据批量写入和组播分发,以及一系列数据存储硬盘用来存储用户数据;所述的媒体分发系统,包括一个NFS第4版客户端,但通过在并行和组播的扩展以及相应的服务器一道来执行控制和文件管理操作以实现数据批量写入和组播分发,一个专为存储定制的驱动程序来支持数据批量写入和组播方式来实现可扩展的存储I/O吞吐量;一个写入和分发服务器用于整合批量数据的写入或分发。
3.根据权利要求1所述的并行组播网络文件系统,其特征在于对控制数据的传输通道使用TCP协议,对文件数据的传输通道使用UDP协议。
4.根据权利要求2所述的并行组播网络文件系统,其特征在于所述的导出本地文件系统提供一个文件系统接口,支持但不限于如下操作打开/关闭、删除、统计、读/写/找、 打开会话/关闭会话、播放/录音/定速/暂停、同步。
5.根据权利要求2所述的并行组播网络文件系统,其特征在于所述的存储和分发管理器具有一个传输误差校正功能块,包括将每个播放文件分为多个具有固定数据包数的组播组;每个小组都有固定的数据包数和编码前向纠错数据包数;每个数据包由组索引及包索引来识别;前向纠错校验值被计算后写入到磁盘存储,编码后的数据块和文件数据一同存储;按文件发送的顺序存储编码后的数据块,发送时循环遍历相关文件并发送相应的数据块。
全文摘要
一种并行组播网络文件系统,用于改进网络存储系统的性能。以一个标准网络文件系统为基础,一个并行扩展部分用于消除标准网络文件系统的性能瓶颈,一个组播扩展部分用于消除存储磁盘I/O性能瓶颈;对控制数据和文件数据使用分离的传输通道以允许数据由多个客户端并行地传输到多个服务器端;利用组播来合并多个服务的流媒体数据流,以整合和减少I/O调用,从而消除存储磁盘I/O性能瓶颈;使用前向纠错机制来提高组播的可靠性;校验值被计算后写入到磁盘存储,实现文件存储和传输误差校正的集成;利用缓冲区管理和磁盘I/O调度来提供顺序写入和组播的内存管理。优点通过在当前现有的网络文件系统基础上,引入并行组播技术,来提高多媒体内容的分发性能。
文档编号H04L12/18GK102158344SQ201110131000
公开日2011年8月17日 申请日期2011年5月20日 优先权日2011年5月20日
发明者鲁为民 申请人:苏州安源汇信软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1