基于彼得森图的存储网络系统及数据读写方法
技术领域
本发明涉及一种由分布式存储节点构成的网络存储技术,尤其涉及一种基于彼得森(Peterson)图的存储网络系统及数据读写方法,其将基本的分布式存储网络和Peterson图存储网络相结合,可提供不同可靠性等级的存储应用。
背景技术
目前信息技术领域已经从面向计算为中心的架构,转向以存储为中心的架构。这样的转变是随着互联网络的逐步发展壮大而日益产生的海量信息产生的,海量信息面临着处理、存储、共享等问题。本发明是围绕海量信息分布式存储进行方法设计的。
从20世纪80年代中期就有研究人员提出利用网络上的分布式主机提供文件服务的思路,并进行了试验,到目前为止,这些尝试形成了各种开源性的分布式文件系统,其中比较著名的是由SUN支持的LUSTRE文件系统、IBM支持的OPENAFS文件系统和Google的GFS文件系统。这些系统的特征是文件元数据的集中存储和文件数据的分散存储及服务。
21世纪初开始,出现了以P2P思路实现存储的研究,其中比较典型的是OceanStore文件系统和Granary文件系统。这些系统的特征是使用单一的DHT结构,解决了单点故障问题,但性能上往往不太能满足应用的需求。
分布式文件系统是集群系统,也比较适合企业网范围,近期出现面向广域网的数据访问,但存在单点故障等问题;P2P广域存储的扩展性较好,但存在性能不佳的问题。
另外,Peterson图是由10个节点组成的固定结构,见图2所示,其特点是每个节点的度等于3,任何两个节点之间的距离不大于2,其用于并行计算领域,具有非常高的可靠性。
发明内容
鉴于上述问题,本发明的目的在于提供基于Peterson图的存储网络系统及其数据读写方法。其将P2P等基本的分布式网络存储和Peterson图网络存储的可靠性相 结合,可提供不同可靠性等级的存储应用,同时利用Peterson图网络存储提供的良好媒体数据迁移不动性,解决大量媒体数据迁移问题,并结合DHT技术的可用性和鲁棒性,屏蔽集群存储结构的单点故障和P2P广域存储的性能问题。
为实现本发明的上述目的,本发明的基于Peterson图的存储网络系统,其特征在于,由基本的分布式存储网络和Peterson图存储网络组成,
所述基本的分布式存储网络是集群分布式存储网络或基于DHT的P2P存储网络,由n个存储节点构成,其中,n大于10,该网络满足一定的存储可靠性要求(下边以RDHT表示),并具有其自身的存储分级能力,其构成和存取机制可以采用现有技术中已有的结构;
所述Peterson图存储网络在所述存储节点集合中根据策略(例如:带宽、可靠性、处理能力、节点的度或者节点间的距离、存储容量的一个函数)选择10个节点(或配置)而形成,如图2所示,该图具有良好的节点度和节点间距离特征,即每个节点的度都大于等于3,节点间的距离小于等于2,Peterson图存储网络的数据存储具有一定的数据可靠性和数据迁移不动性等良好性质。
另外,为实现本发明的上述目的,本发明的基于Peterson图的存储网络系统的数据读写方法包括应用写数据的方法和读数据的方法,
其中,所述基于Peterson图的存储网络系统包括基本的分布式存储网络和Peterson图存储网络,所述应用指存储网络之外的实体,可以是软件、应用程序或客户端程序。
所述应用写数据的方法包括如下步骤:
1)所述应用发出携带QoS参数的写数据请求的步骤:请求中包括QoS参数、数据标识和数据,形式如write(QoS参数,数据标识,数据),所述QoS参数定义为两类指标:数据可靠性指标和数据类型指标,每个指标可定义为若干级别,为了便于系统实现,在设计上可将这两类指标分别定义为一个32位字的高16位和低16位;
2)所述基于Peterson图的存储网络系统接收上述写数据请求的步骤:所述基于Peterson图的存储网络系统的一个中心节点或分布式存储节点接收所述应用发出的上述写数据请求,
所述中心节点是指通过dns服务或其他寻址方式找到的专用服务器,所有的写数据请求都发送到该中心节点;
3)解析所述写数据请求的步骤:包括解析QoS参数,分解为数据可靠性指标(下 面以Rapplication表示)和数据类型指标(下面以Tapplication表示);
4)执行写数据的步骤,该步骤进一步包括如下步骤:在基本的分布式存储网络执行元数据写和媒体数据写操作;当RDHT<Rapplication时,在Peterson图存储网络中执行元数据写和媒体数据写操作,其中,RDHT是基本的分布式存储网络的可靠性指标,
该步骤4)中,当在Peterson图存储网中执行元数据写和媒体数据写操作而进行存储时,要判断在基本的分布式存储网络和Peterson图存储网络存储中存放数据标识的节点号是否一致(即,nodeid(DHT,data_id)==nodeid(Peterson,data_id),其中,nodeid(x,data_id)表示在x存储中存放data_id数据的节点号),如果一致,则在Peterson图中选取距离与存放数据标识一致的节点号对应的节点为两跳的6个节点中选择一个节点(例如节点编号与本节点编号最近的一个节点)存储数据(包括元数据和媒体数据),如果不一致,则在Peterson图中计算出的节点中直接存储元数据和媒体数据;
当Tapplication(比如大于5,表示大型媒体文件)为数据迁移最小化类别时,则依据度量算法(带宽最大、时延最小等)选择Peterson图中的一个节点存储媒体数据。
所述读数据的方法包括如下步骤:
1)元数据的数据查找定位步骤,可在基本的分布式存储网络和Peterson图存储网络上并行进行,这样可以防止其中的一个出现故障的情况,结果取最早返回的一个应答即可;
2)媒体数据读取的步骤,指得到元数据之后,如果元数据包括媒体数据多个复制位置(多个存储节点)的情况下,针对找到的存储节点进行某个方面性能(时延、可用带宽等)的比较,取最优的节点进行服务。
与现有的存储网络的结构和方法相比,本发明具有下列优点:
(1)将P2P网络存储、Peterson图网络存储的可靠性相结合,提供不同可靠性等级的存储应用;
(2)利用Peterson图网络存储提供的良好媒体数据迁移不动性,解决大量媒体数据迁移问题;
(3)结合DHT技术的可用性和鲁棒性,屏蔽集群存储结构的单点故障和P2P广域存储的性能问题。
附图说明
图1是基于Peterson图的存储网络系统的示意图。
图2是表示Peterson图节点编号的示意图。
图3是基于Peterson图的DHT(chord环)存储网络系统的示意图。
图4是北京市区县图。
具体实施方式
下面结合附图和具体实施例对本发明的基于Peterson图的存储网络系统及其数据读写方法作进一步地描述。
图1所示是本发明的基于Peterson图的存储网络结构,由基本的分布式存储网络和Peterson图存储网络组成。
其中基本的分布式存储网络是集群分布式存储网络或基于DHT的P2P存储网络,由n个存储节点构成。该网络满足一定的存储可靠性要求(下边以RDHT表示),并具有其自身的存储分级能力,其构成和存取机制能够在文献中找到,这部分内容不作为本发明的保护部分,因此不再详细描述。
其中Peterson图存储网络在存储节点集合中根据策略(例如:带宽、可靠性、存储容量的一个函数)选择10个节点(或配置)而形成。
图2是表示图1中的Peterson图节点编号的示意图。如图2所示,该图具有良好的节点度和节点间距离特征,表1以及表2中分别列出了Peterson图节点度和节点间距离,从表格中可以看出每个节点的度都为3,节点间的距离小于等于2。Peterson图存储网络的数据存储具有一定的数据可靠性和数据迁移不动性等良好性质。
表1:Peterson图的各节点度
节点编号 |
节点度 |
1 |
3 |
2 |
3 |
3 |
3 |
4 |
3 |
5 |
3 |
6 |
3 |
7 |
3 |
8 |
3 |
9 |
3 |
10 |
3 |
表2:Peterson图节点间距离
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1 |
0 |
1 |
2 |
2 |
1 |
1 |
2 |
2 |
2 |
2 |
2 |
1 |
0 |
1 |
2 |
2 |
2 |
1 |
2 |
2 |
2 |
3 |
2 |
1 |
0 |
2 |
2 |
2 |
2 |
1 |
2 |
2 |
4 |
2 |
2 |
1 |
0 |
1 |
2 |
2 |
2 |
1 |
2 |
5 |
1 |
2 |
2 |
1 |
0 |
2 |
2 |
2 |
2 |
1 |
6 |
1 |
2 |
2 |
2 |
2 |
0 |
2 |
1 |
1 |
2 |
7 |
2 |
1 |
2 |
2 |
2 |
2 |
0 |
2 |
1 |
1 |
8 |
2 |
2 |
1 |
2 |
2 |
1 |
2 |
0 |
2 |
1 |
9 |
2 |
2 |
2 |
1 |
2 |
1 |
1 |
2 |
0 |
2 |
10 |
2 |
2 |
2 |
2 |
1 |
2 |
1 |
1 |
2 |
0 |
另外,本发明的数据读写方法包括应用写数据的方法和读数据的方法,其中应用指存储网络之外的实体,可以是软件、应用程序或客户端程序。
其中,应用写数据的方法包括:应用发出携带服务质量QoS(Quality of Service)参数的写数据请求、存储网络接收写数据请求、解析写数据请求、执行写数据等4个操作步骤:
1)应用发出携带QoS参数的写数据请求,形式如write(QoS参数,数据标识,数据),这里将QoS参数定义为两类指标:数据可靠性指标和数据类型指标,每个指标可定义为若干级别,在设计上可将这两类指标分别定义为一个32位字的高16位和低16位,这样便于系统实现;
2)基于Peterson图的存储网络系统接收写数据请求,指存储网的一个中心节点或分布式存储节点接收应用发出的写数据请求;
3)解析写数据请求,包括解析QoS参数,分解为数据可靠性指标(下边以Rapplication表示)和数据类型指标(下边以Tapplication表示);
4)执行写数据包括如下步骤:在基本的分布式存储网络执行元数据写和媒体数据写操作;当RDHT<Rapplication时,在Peterson图存储网络中执行元数据写和媒体数据写操作;
当在Peterson图存储网络中存储时,要判断nodeid(DHT,data_id)==nodeid(Peterson,data_id)(nodeid(x,data_id)表示在x存储中存放data_id 数据的节点号),如果相等,则在Peterson图中选取距离该点两跳的6个节点中选择一个节点(例如节点编号与本节点编号最近的一个节点)存储数据(包括元数据、媒体数据);
当Tapplication(比如大于5,表示大型媒体文件)为数据迁移最小化类别时,则依据度量算法(带宽最大、时延最小等)选择Peterson图中的一个节点存储媒体数据;
另外,读数据的方法包括元数据的查找定位、媒体数据读取等步骤:
1)元数据的数据查找定位,可在在基本的分布式存储网络和Peterson图存储网络上并行进行,这样可以防止其中的一个出现故障的情况,结果取最早返回的一个应答即可;
2)媒体数据读取,指得到元数据之后,如果元数据包括媒体数据多个复制位置(多个存储节点)的情况下,针对找到的存储节点进行某个方面性能(时延、可用带宽等)的比较,取最优的节点进行服务。
下面是本发明提供基于Peterson图的存储网络系统及数据读写方法的一个具体应用实施例。
实施例1
下面结合应用场景说明基于Peterson图的存储网络系统及数据读写方法。如图4所示,本发明提供的一个应用场景:假定在X(比如,北京)城市某存储服务运行公司根据市区、郊县(每个区县部署2台,北京市共有15个区县)等地部署了30台存储节点(服务器),每个节点的接口均为1Gbps的以太网卡,这些存储节点之间是IP层互通的,并按照chord算法形成环网,如图3所示;另外,该公司在部署其中的10个节点时,选取的是具有节点之间带宽均为>500Mbps的良好链路连接的,这10个节点配置成Peterson图结构,其编号按图2所示,按图2中连线,如图3所示。假定该存储网络提供16个等级的存储可靠性(8个等级使用分布式存储网络提供,8个等级需要分布式存储网络和Peterson存储网络一起提供)和两类数据类型(一般文件,大型媒体文件)的存储。
下面以图3为基础说明本实施例1中的数据读写方法。
分读写普通数据和读写大型媒体数据两种情形进行说明:
本发明的数据读写方法根据存储可靠性级别要求和文件类型指标要求确定在Peterson存储网中是否需要进行存储。在该实施例中可将分布式存储网的存储可靠性定位5,5以上的等级都在peterson图存储网络中存储;另外就文件类型而言,也是可从数字定义上看出的,比如文件类型6以上由peterson图存储网络中存储。
(1)读写普通数据
先说明数据写的方法:假定一名用户提交1个普通文件(example1.doc)的写操作,QoS参数为等级2、一般文件。则分布式存储网首先确定example1.doc元数据的存放节点(假定是11号节点),另外根据example1.doc文件的内容,通过对内容中各字的异或操作结果、校验和等计算数据id(比如3428),则根据3428假定由17号节点存储,则用户提交的example1.doc内容存储于17号节点,在11号节点中记录的元数据中将记下17号节点。
数据读的方法:假定用户要读取example1.doc文件,则提交读请求,在分布式存储网络和Peterson存储网络中查找,则根据数据写的结果,仅有分布式存储网络(Peterson存储网中的查找是失败的)能够找到11号节点存放着example1.doc的元数据,根据元数据中记录的内容位置17号节点,则从17号节点读取数据内容。
(2)读写大型媒体数据
先说明数据写的方法:假定一名用户提交1个大型文件(example2.vob)(大小为4GB)的写操作,QoS参数为等级9、大型文件。则分布式存储网首先确定example2.vob元数据的存放节点(假定是13号节点),另外根据example2.vob文件的内容,通过对内容中各字的异或操作结果、校验和等计算数据id(假定对文件进行切块,切成4块,每块1GB,得到的id分别为1236、3428、4590、6571),则根据这些id假定由14、15、17、20号节点存储,则用户提交的example2.vob内容分别存储于这些节点,在13号节点中记录的元数据中将记下14、15、17、20号节点。
另外根据等级9和大型文件类型,确定在Peterson存储网络中也需要进行存储,然后例如通过对文件名的散列(或称哈希)函数计算,令得到example2.vob的元数据的节点为5号节点,另外根据example2.vob文件的内容计算数据id(同上),则根据这些id假定由1、3、7、8号节点存储,则用户提交的example2.vob内容分别存储于这些节点,在5号节点中记录的元数据中将记下1、3、7、8号节点。
数据读的方法:假定用户要读取example2.vob文件,则提交读请求,在分布式存储网络和Peterson存储网络中查找,则根据数据写的结果,分布式存储网络和Peterson存储网中分别找到13号、5号节点存放着example1.doc的元数据,根据元数据中记录的内容位置14、15、17、20号节点以及1、3、7、8号节点,根据带宽和时延分别判定各块的最佳读取节点,假定结果是14、3,7,20,则从14、3,7,20号节点读取数据内容。
说明文档中的其他内容针对本专业领域内的普通技术人员,均可进行技术实现,这里不再赘述。