专利名称:一种基于p2p和云存储实现跨节点存储的方法和装置的制作方法
技术领域:
本发明属于数据通信领域。本发明综合运用P2P、云存储技术,实现了一种适应跨域的海量存储节点之间快速共享大文件的技术方案。
背景技术:
存储是⑶N网络的重要组成部分,因为⑶N的核心能力就是为用户提供就近服务,需要在网络边缘缓存大量的文件。随着CDN所承载的视频业务向高清、3D、海量视频文件趋势发展,对存储的容量和效率要求也越来越高,且存储设备更新率极高,大约一年就要全部更新一次。家庭用户的宽带提速带来了新的业务需求,片源码率至少要提高两倍以上,影片数量翻倍,则可以推算出存储成本为几亿计。高昂的存储成本压力使得CDN提供商纷纷寻找新的存储解决方案。基于文件切片的全网分布式存储是新的解决方案之一。这类方案的核心思想是将一个大文件切片以后,切片文件分散存放在全网不同的物理位置的设备上。对一个覆盖全国的CDN网络来说,这些设备分散在不同的城域网中。当用户请求这个文件时,由一台设备从全网多个节点调度切片文件进行组装并提供用户服务,或多台保存这个文件切片的设备同时为用户提供服务。方案不仅要求单点具备海量存储能力,还要求高效的跨域传送能力,以免产生服务时延。云存储技术在2010年基本发展成熟,能够提供商用产品。云存储是指通过集群应用和分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问。云存储的核心是应用软件与存储设备相结合,通过应用软件来实现存储设备向存储服务的转变。目前云存储技术能够解决本地单点海量数据存储的问题,但尚无解决跨域存储的全网云存储方案。
发明内容
鉴于以上,本发明提出一种基于P2P和云存储实现跨节点存储的方法和装置。本发明所涉及的英文缩写定义如下:Q)N:Content Delivery Network,内容分发网络。通过将内容分布到离用户最近的地方实现面向大规模用户的就近服务。CDN分发的内容可包括文件内容和流媒体内容。cache:CDN的边缘服务设备,直接向用户提供服务,从用户的角度,它表现为服务器设备,如流媒体服务器或者Web服务器。P2P =Peer to Peer,点对点通信技术。P2P Client:P2P 客户端程序。P2P Tracker:P2P 索引服务器。本发明提出的一种基于P2P和云存储实现跨节点存储的方法,包括以下步骤:外部的内容源注入业务系统,P2P中心节点对源文件进行P2P切片处理;中心节点本地执行P2P本机缓存,通过云存储访问客户端发起本地云存储写入请求,中心节点本地云存储执行写入操作,更新本地目录,中心节点P2P客户端发起P2P全网分发操作,向全网各P2P节点传送文件;节点P2P客户端收到文件,向本地云存储系统发起文件写入请求,本地云存储执行写入操作,更新本地目录。本发明提出的一种基于P2P和云存储实现跨节点存储的装置,其中:业务系统包括流媒体服务器,所述流媒体服务器包括:P2P客户端;云存储访问客户端;保存单元,配置于保存本地目录;流化处理单元,配置于接收外部访问请求,根据所述外部访问请求查询保存单元,当查询到本地保存要访问的流媒体内容时,调用云存储访问客户端;当查询到本地未保存要访问的流媒体内容时,调用P2P客户端;P2P系统包括:P2P切片服务器,对原始上传的流媒体内容文件进行P2P切片;P2P索引服务器,耦合于P2P切片服务器,完成内容切片后在全网存储位置的索引;P2P客户端,耦合于使用P2P服务的具体业务服务器,完成P2P的分片查询、传输以及内容文件的重新组装;单点云存储系统包括:云存储设备,存储文件内容;云存储访问客户端,是使用云存储进行读写时调用的代理软件;元数据服务器,将云存储设备存储的内容,在存储层面进行物理分片,并将这些物理分片的地址进行存储索引。目前的云存储技术只有单点存储方案,本发明利用P2P技术实现了全网跨节点的云存储。文件跨域存储、跨域共享和调度。不同物理位置的云存储资源全网共享、统一管理。对调用存储资源的具体业务设备来说,可以通过本地目录查询本地云存储中的文件,也可以通过P2P系统获得其他物理位置的文件。本发明利用P2P技术实现了跨域调度,因此对业务侧来说,可以把分布在不同物理位置的存储设备所构成的存储系统看成一个大的本地存储系统,需要跨域调度的工作由P2P系统完成。而P2P的调度过程是整个大网云存储系统内部过程,对业务侧来说是不可见的。
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是示出本发明通过P2P技术实现跨域文件存储和调度的装置架构示意图。图2是本发明通过P2P技术实现跨域内容存储的流程示意图。图3是本发明通过P2P技术实现跨域内容调度的流程示意图。
具体实施例方式现有技术是单点云存储,即云存储系统只能为本地业务系统提供存储服务。本发明是通过一种方法使分布在不同物理位置的多个单点云存储能经过网络传送形成统一的存储能力,类似于分布式存储。这种方法就是P2P,P2P系统提供了分布式内容索弓I能力和跨域文件传送能力。本发明引入P2P技术实现全网云存储,从而降低存储成本,或利用闲置存储设备,解决目前某些需要大量存储资源的业务系统存储成本高、容量难以线性扩展的问题。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。图1是示出本发明通过P2P技术实现跨域文件存储和调度的装置架构示意图。该装置中采用云存储解决单点存储问题,采用P2P技术解决跨域文件共享调度问题。对上层业务系统(仍以CDN系统为例)来说,整个网络中的存储可以看做一个黑盒子,只需进行标准文件读写操作,无需考虑文件存储管理、跨域调度等底层问题。本领域技术人员应该可以理解,本发明不限于⑶N业务系统,对其他业务系统也适用。图1所示装置包括:⑶N业务系统10、P2P系统20以及单点云存储系统30 (虚线框内的部分)。下面将结合附图对各个系统进行详细说明。⑶N业务系统10包括⑶N流媒体服务器11 (cache),⑶N业务系统10描述了云存储+P2P系统的构成,以及作为全网存储解决方案在这个系统中的定位和主要接口关系。其中,CDN流媒体服务器11包括流化处理单元、云存储访问客户端、P2P客户端以及保存单元。保存单元配置于保存本地目录。流化处理单元配置于接收外部访问请求,根据所述外部访问请求查询保存单元,当查询到本地保存要访问的流媒体内容时,则调用云存储访问客户端;当查询到本地未保存要访问的流媒体内容时,则调用P2P客户端。P2P系统20包括P2P切片服务器21 (P2P Slice Server)、P2P索引服务器22 (P2PTracker)以及 P2P 客户端 23 (P2P Client)。各模块功能描述如下:P2P切片服务器21对原始上传的流媒体内容文件进行P2P切片。P2P索引服务器22耦合于P2P切片服务器21,完成流媒体内容切片后在全网存储位置的索引。P2P客户端根据该索引查询获取全网内保存所访问内容的云存储系统,调用该云存储系统的云存储访问客户端以获取流媒体内容。P2P客户端23耦合于流媒体服务器11,根据索引完成P2P的分片查询、传输以及流媒体内容的重新组装。单点云存储系统30包括云存储访问客户端31 (Storage Client)、元数据服务器32 (Metadata Server)以及云存储设备 33 (Storage)。各模块功能描述如下:云存储访问客户端31是使用云存储进行读写服务时需要调用的代理软件。元数据服务器32将云存储设备33存储的流媒体内容,比如P2P分片后的分片文件,在存储层面进行物理分片,并将这些物理分片的地址进行存储索引。云存储访问客户端根据该索引查询获取本地保存的内容。云存储设备33是具体的存储设备,配置于保存文件内容。在云存储系统中,存储设备可以是不同的存储硬件设备。在具体实施中,云存储访问客户端31是以软件模块形式存在的。CDN流媒体服务器11 (cache)和运行P2P客户端23的P2P Peer服务器都要安装云存储访问客户端31,用来对本地云存储系统进行读、写、查询等操作。CDN业务系统10在提供服务时会先将内容从单点云存储系统30或者P2P系统20中读取到本地磁盘,再提供给用户。当⑶N业务系统10向本发明所述全网云存储系统请求一个流媒体内容文件时,先通过本地目录查询本地单点云存储系统30是否有需要的内容,如果本地命中,则通过storage client 31向外读取;如果本地未命中,则CDN业务系统10调用P2P Client 23从其他节点的单点云存储系统30读取所需文件。由此可见,本发明充分发挥P2P技术固有的全网文件管理和快速调度优势,结合云存储技术,一方面提高单点存储容量和吞吐能力,另一方面通过实时远程调度响应业务系统文件要求,降低本地存储容量需求,从而大大降低全网总存储容量需求。以上系统模型中涉及3个关键接口:接口 l:cache 11对本地云存储系统30进行文件读出、查询,或运行P2P Client23的服务器对本地云存储系统30进行写入、读出、查询。接口 I对cache 11和P2P Client23来说是一样的。接口 2:是跨域P2P传送协议。这个接口是P2P系统内部接口。接口 3:cache 11在本地未命中的情况下向P2P系统20请求获取相关内容文件。接口 4:P2P Client 23将从其他节点获取的内容进行P2P解封装、重组后提供给cachell。图2是本发明通过P2P技术实现跨域内容存储的方法流程示意图,是CDN业务系统在内容预发布时采用的业务流程,强调了内容进入CDN后先经过P2P系统进行切片处理,然后向中心节点本地云存储写入内容,再向其他⑶N cache设备的本地云存储写入内容。仍以CDN业务系统为例,当然,该方法流程也适用其他业务系统。图2中中心节点和普通节点均指⑶N系统而言,通常⑶N系统会分层部署:中心节点-区域节点-边缘节点。我们把区域节点和边缘节点统称为普通节点。外部的内容源注入业务系统后,P2P中心节点对源文件进行P2P切片处理。中心节点本地执行P2P本机缓存操作,通过云存储访问客户端发起本地云存储写入请求,中心节点本地云存储执行写入操作。本地存储完成后,更新本地目录。中心节点P2P客户端发起P2P全网分发操作,向全网各P2P节点传送文件。节点P2P客户端收到文件后,向本地云存储系统发起文件写入请求,本地云存储执行写入操作。本地存储完成后,更新本地目录。图3是本发明通过P2P技术实现跨域内容调度的流程示意图,描述的是CDN系统向用户提供服务,当用户请求某个内容时的服务流程。图中流媒体服务器框中是CDN的cache设备所包括的模块,本发明的模块可以以软件模块的方式存在于某些设备中。在该流程中,用户请求内容本地命中情况下,流媒体服务器通过内置的云存储访问客户端向本地云存储读取内容,而未命中情况下通过P2P系统查询内容所在位置,进而远程读取的过程。为方便流程描述,以流媒体服务系统从云存储系统读取流视频文件为例进行流程描述。用户向CDN业务系统发起内容访问请求,系统将其调度到某一台流媒体服务器上进行服务。流媒体服务器查询本地目录。如果本地命中,则通过云存储访问客户端向本地云存储系统发起文件读取请求。即云存储访问客户端从元数据服务器获取物理分片的地址,根据所述地址从云存储设备执行文件读出操作。流媒体服务器将内容文件流化处理后提供给用户。
如果本地未命中,则通过流媒体服务器上的P2P客户端向P2P系统发起文件请求。P2P系统执行跨域文件调度。P2P服务器从多个跨域节点得到文件切片后进行P2P解封装、文件组装。即云存储访问客户端调用P2P客户端,由P2P客户端从P2P索引服务器获取流媒体内容切片在全网存储位置的索引,根据所述索引调用云存储访问客户端。由云存储访问客户端在本地执行文件读出操作。提供给流媒体服务器。流媒体服务器将内容文件流化处理后提供给用户。进一步,P2P服务器还向本地云存储写入文件。本地云存储执行写入操作。本地云存储写入完成后,更新本地目录。本发明提出一种引入P2P技术实现跨域云存储文件共享和传送的方案,可实现云存储资源全网跨域。具有至少如下之一的优点:利用P2P技术进行跨域文件调度,实现全网存储资源对上层业务系统统一视图、统一管理。同一节点的各业务服务器共享相同的云存储文件系统命名空间,不同节点的各业务服务器通过P2P系统共享文件,避免造成局部内容重复存储的问题。云存储的文件存储功能与P2P的文件传送功能互相独立,P2P系统通过云存储代理访问云存储系统,两部分功能内部的技术复杂度和实现方式对另一部分没有任何影响。在内容分发过程中,无需考虑对内容格式、协议、播放器等进行适配,适配工作由流媒体服务系统来做。实施例本发明所述方法可用于任何业务系统的全网文件存储、共享。一个典型应用就是用于流媒体⑶N。正如图2、图3所示应用流程。具体部署时,单点云存储系统采用X86架构存储服务器设备(包括元数据服务器和数据存储服务器)以及以太网交换机设备组成。元数据服务器高度为2U,可前置12块硬盘。数据存储服务器高度4U可前置24块硬盘,元数据服务器与数据存储服务器通过以太网交换机连接,元数据服务器和数据存储服务器在与应用系统(Cache服务器)IP可达即路由互通的网络条件下即可为业务系统提供存储服务。在配置网络连接时一般需要划分2个网段:数据流网段和控制流网段。作为对详细描述的结论,应该注意本领域的技术人员将会很清楚可对优选实施例做出许多变化和修改,而实质上不脱离本发明的原理。这种变化和修改包含在所附权利要求书所述的本发明的范围之内。
权利要求
1.一种基于P2P和云存储实现跨节点存储的方法,包括以下步骤: 外部的内容源注入业务系统,P2P中心节点对源文件进行P2P切片处理; 中心节点本地执行P2P本机缓存,通过云存储访问客户端发起本地云存储写入请求,中心节点本地云存储执行写入操作,更新本地目录,中心节点P2P客户端发起P2P全网分发操作,向全网各P2P节点传送文件; 节点P2P客户端收到文件,向本地云存储系统发起文件写入请求,本地云存储执行写入操作,更新本地目录。
2.根据权利要求1所述基于P2P和云存储实现跨节点存储的方法,在实现跨节点存储之后,还包括内容调度的流程,包括以下步骤: 当业务系统接收到内容访问请求时,将其转发给流媒体服务器,流媒体服务器查询本地目录; 如果本地命中,则向本地云存储系统发起文件读取请求,流媒体服务器获取云存储系统读出的内容文件,进行流化处理后返回给用户; 如果本地未命中,则向P2P系统发起文件请求,P2P系统执行跨域文件调度,P2P服务器从多个跨域节点得到文件切片后进行P2P解封装、文件组装,提供给流媒体服务器,流媒体服务器将内容文件流化处理后返回给用户。
3.根据权利要求2所述基于P2P和云存储实现跨节点存储的方法,P2P服务器从多个跨域节点得到文件切片后进行P2P解封装、文件组装,还包括以下步骤: P2P服务器向本地云存储写入文件,本地云存储执行写入操作,更新本地目录。
4.一种基于P2P和云存储实现跨节点存储的装置,其中: 业务系统包括流媒体服务器,所述流媒体服务器包括: P2P客户端; 云存储访问客户端; 保存单元,配置于保存本地目录; 流化处理单元,配置于接收外部访问请求,根据所述外部访问请求查询保存单元,当查询到本地保存要访问的流媒体内容时,调用云存储访问客户端;当查询到本地未保存要访问的流媒体内容时,调用P2P客户端; P2P系统包括: P2P切片服务器,对原始上传的流媒体内容文件进行P2P切片; P2P索引服务器,耦合于P2P切片服务器,完成流媒体内容切片后在全网存储位置的索弓I ; P2P客户端,耦合于使用P2P服务的具体业务服务器,根据索引完成P2P的分片查询、传输以及内容文件的重新组装; 单点云存储系统包括: 云存储设备,存储文件内容; 云存储访问客户端,是使用云存储进行读写时调用的代理软件; 元数据服务器,将云存储设备存储的内容,在存储层面进行物理分片,并将这些物理分片的地址进行存储索引。
5.根据权利要求4所述基于P2P和云存储实现跨节点存储的装置,其中:流媒体服务器通过第一接口对本地云存储系统进行文件读出、查询,或运行P2P客户端的服务器对本地云存储系统进行写入、读出、查询; P2P系统内部的第二接口,是跨域P2P传送协议; 流媒体服务器在本地未命中的情况下通过第三接口向P2P系统请求获取相关内容文件; P2P客户端通过第四接口将从其他节点获取的内容进行P2P解封装、重组后提供给流媒体服务器。
全文摘要
本发明提出一种基于P2P和云存储实现跨节点存储的方法和装置。外部的内容源注入业务系统,P2P中心节点对源文件进行P2P切片处理;中心节点本地执行P2P本机缓存,通过云存储访问客户端发起本地云存储写入请求,中心节点本地云存储执行写入操作,更新本地目录,中心节点P2P客户端发起P2P全网分发操作,向全网各P2P节点传送文件;节点P2P客户端收到文件,向本地云存储系统发起文件写入请求,本地云存储执行写入操作,更新本地目录。本发明实现了全网云存储。文件跨域存储、跨域共享和调度。不同物理位置的云存储资源全网共享、统一管理。
文档编号H04L29/08GK103166991SQ20111041563
公开日2013年6月19日 申请日期2011年12月14日 优先权日2011年12月14日
发明者孙颖, 雷葆华, 蔡永顺, 陈晓益, 张洁, 王峰 申请人:中国电信股份有限公司