CN101616184A - 冗余数据存储方法 - Google Patents

冗余数据存储方法 Download PDF

Info

Publication number
CN101616184A
CN101616184A CN200910149195A CN200910149195A CN101616184A CN 101616184 A CN101616184 A CN 101616184A CN 200910149195 A CN200910149195 A CN 200910149195A CN 200910149195 A CN200910149195 A CN 200910149195A CN 101616184 A CN101616184 A CN 101616184A
Authority
CN
China
Prior art keywords
node
peer
physical hardware
moves
section point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200910149195A
Other languages
English (en)
Other versions
CN101616184B (zh
Inventor
N·施旺
T·施特劳斯
M·托姆苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of CN101616184A publication Critical patent/CN101616184A/zh
Application granted granted Critical
Publication of CN101616184B publication Critical patent/CN101616184B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及冗余数据存储方法。对等覆盖网络(N)包括多个节点(0、20、50、87、112、140、179、200、211、223、240)。识别所述多个节点中的第一节点(211)在其上运行的物理硬件。确定所述多个节点中在与第一节点(211)不同的物理硬件上运行的至少一个第二节点(240)。将第一节点(211)负责的数据的复制品(203)存储在第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,所述数据的复制品(203)被存储在所述至少一个第二节点(240)上,其中下一个逻辑节点(223)是:参照所述对等覆盖网络(N)的拓扑结构,所述多个节点中与第一节点(211)相邻的一个节点。

Description

冗余数据存储方法
技术领域
本发明涉及一种在对等覆盖网络中进行冗余数据存储的方法,以及一种网络节点和一种执行所述方法的计算机程序产品。
背景技术
对等(=P2P)覆盖网络被用于大量的应用,诸如VoIP(例如Skype)或文件共享(例如eMule)(VoIP=基于因特网协议的语音)。基于共同提供和使用的资源,诸如可扩缩性、自组织、以及容错性的特征由分布式体系结构和数据存储来实现。P2P网络由作为对等体(peer)(即,既作为网络的客户端,也作为服务器)的节点组成。在以下描述中,术语“节点”和“对等体”可被交替地使用。网络的每个节点维护到其它节点的一个或多个逻辑链路,所述链路参照覆盖算法建立,并被用于消息传送。
现有技术的P2P网络基于特定算法构建了逻辑拓扑结构,所述算法对于底层网络基础设施是不可知的。每个节点维护到其它节点的一个或多个链路,所述链路用于以广播方式(无结构的覆盖,例如Gnutella)或者以基于ID的方式(使用分布式哈希表(=DHT)的结构化的覆盖,例如Chord)(ID=标识/标识符)进行消息路由。某些系统使用具有无结构的对等体组的混合体系结构,并且这些组在较大拓扑中是结构化的(例如Skype)。高级的P2P网络实现了分布式数据库(DHT),其需要复制机制来确保在一个节点意外地脱离网络的情况下也可以使所存储的数据得到保存。
P2P网络是完全分散化的。参与到覆盖中的对等体可能在随机的时间以及意外地脱离网络。通过在一些节点上的数据复制进行的冗余存储保证了:即使在对数据负责的对等体已经退出覆盖之后,所述数据仍旧在网络中可用。冗余机制是基于覆盖细节的,例如,在对等体标识符空间中接近的对等体之间的邻居关系。通过在负责数据条目的一个节点上以及在保有备份条目的一个或多个节点上公布数据,实现了数据的高度可用性。通过在多个邻居节点上存储多个复制品,实现了更高的可用性。在基于Chord算法的对等网络中,每个对等体节点根据对等体ID将其负责的资源集合复制到邻居对等体节点上。
DHT通常存储数据的键/值对,而所述键映射到节点的ID空间。在Chord中,每个节点负责存储这些键,其小于等于其自身的ID并且大于其前导的ID。
图1a示出了现有技术的结构化的P2P覆盖网络N,其包括多个节点0、20、50、87、112、140、179、200、211、223、240。具体而言,图1a示出了Chord环N。节点的参考标记0、20、50、87、112、140、179、200、211、223、240意思是同样表示节点0、20、50、87、112、140、179、200、211、223、240的节点ID。在Chord中,节点维持到它们前导和后继节点的直接连接,这导致了环形拓扑。具有节点ID 211的节点对于区间{201,202,...,211}中的所有键负责。因此,具有键ID 203的键/值对存储在节点211上,并且节点211的数据的复制品存储在后继节点223上,如图1a所示。如果节点211脱离网络N,如图1b所示,则节点223成为同样对节点211的ID空间负责,包括键203在内。因此,在网络N中维护了节点211的数据。
WO 2007/138044 A1涉及一种P2P通信设备,例如PDA、台式计算机或者膝上型计算机,其包括存储器,其中存储了P2P通信设备的对等标识指示,所述指示包括明确的、不可修改的一部分以及可修改的一部分(PDA=个人数字助理)。P2P通信设备的用户被授权自由地选择可修改的部分,而不能改变明确的、不可修改的部分(其被确定地分配给用户)。例如,用户被允许选择一字节的值,其将被添加到预定的9字节的UUID的末端,以便构成完整的10字节的UUID(=唯一用户标识符)。这是为了确保与单个用户相关联的两个或多个P2P通信设备在P2P网络中位于彼此靠近的地方。这种邻居定位的优点在于,关于邻居列表的改变的信息以及持续有效(keep-alive)的消息可以在P2P通信设备之间进行快速交换,而不用负担P2P网络之下的IP网络(IP=因特网协议)。这种邻居定位的缺点在于,很可能的是,P2P通信设备经由相同的网络实体(例如路由器)连接于P2P网络。一旦此路由器故障,则所有的P2P通信设备同时被断开。
发明内容
本发明的目的是提供一种在对等覆盖网络中进行冗余存储的改进方法。此外,本发明的另一目的是提供一种对应的网络节点以及一种对应的用于执行该改进方法的计算机程序产品。
通过一种在包括多个节点的对等覆盖网络中进行冗余数据存储的方法实现了本发明的第一目的,所述方法包括以下步骤:识别物理硬件,所述多个节点中的第一节点在所述物理硬件上运行;确定所述多个节点中的至少一个第二节点,所述至少一个第二节点在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外或者作为替代,将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。此外,通过一种包括多个节点的对等网络的第一节点实现了本发明的第二目的,其中所述节点包括控制单元,其适于:识别所述第一节点在其上运行的物理硬件;确定所述多个节点中的至少一个第二节点,所述至少一个第二节点在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外附加或者作为替代,启动将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。并且,通过一种用于在包括多个节点的对等覆盖网络中进行冗余数据存储的计算机程序产品实现了本发明的第三目的,其中所述计算机程序产品,当在所述多个节点中的一个节点上执行时,执行以下步骤:识别所述第一节点在其上运行的物理硬件;确定所述多个节点中的至少一个第二节点,其在与所述第一节点不同的物理硬件上运行;以及,将所述第一节点负责的数据的复制品存储在所述第一节点的下一个逻辑节点上,除此之外或者作为替代,启动将所述数据的复制品存储在所述至少一个第二节点上,其中,所述下一个逻辑节点是:关于所述对等覆盖网络的拓扑结构,所述多个节点中与所述第一节点相邻的节点。
如果复制算法仅基于对于覆盖特定的节点ID,即,无需考虑底层物理硬件(如现有技术系统中的情形),以下是可能的:两个随后的对等体位于相同的物理机器(例如PC(=个人计算机))上。如果该物理硬件故障,则这两个邻居节点同时退出DHT,并且原始数据和复制数据二者均丢失。本发明的实施例解决了现有技术中遇到的此问题。
本发明的实施例引入了一种冗余数据存储算法,其是基于覆盖拓扑细节,但同时考虑到P2P覆盖网络的底层物理硬件。本发明的实施例描述了网络节点(=逻辑对等体),其将与网络节点在其上运行的物理硬件有关的信息包括在P2P系统的冗余数据存储算法中。
在现有技术中,位于相同物理机器(例如,通过操作系统的虚拟化,例如XEN、VMware)的节点不知道这件事,与现有技术不同,本发明的实施例提供了一种冗余数据存储系统,其识别一个或多个网络节点在其上运行的物理硬件,并且考虑了与物理硬件有关的、用于适当的冗余数据存储的此信息。
本发明的实施例提供了一种进行冗余数据存储的安全方式。由于数据复制是防止在节点故障的情况下数据丢失的一种策略,因此根据本发明实施例的复制不会在相同的物理节点上发生。这种情况不会被现有技术的DHT算法所考虑。特别是在小型部署中(例如,包括最多一百个节点的网络),相对于其逻辑ID成为邻居的节点在相同的物理节点(例如在虚拟化环境中,例如VMware、Xen)上托管。在现有技术中,节点的物理硬件被忽视,因此,很可能在硬件故障的情形中数据被丢失。本发明的实施例借助于考虑了节点的物理硬件的冗余数据存储而避免了这种风险。
因此,本发明的实施例在小型部署中特别有帮助,在这样的小型部署中,邻居节点在相同的物理机器上被托管的概率有所增加。由于借助于对物理位置与覆盖节点ID的映射的冗余数据存储的原因,本发明的实施例避免了数据丢失。
本发明的实施例增加了所存储数据的可用性。本发明的实施例提供了:与实际硬件有关的信息被包括在复制策略中。
根据本发明的实施例的新的复制策略可以容易地被包括在已知的用于冗余数据存储的算法中。在硬件故障的情况下成为对于键负责的节点对复制品负责。
本发明的实施例支持对于复制的不同冗余级。并且,如本发明的实施例所呈现的、基于硬件细节对节点ID的分配减少了在硬件故障的情况下数据丢失的风险。
与冗余数据存储算法基于覆盖细节的当前P2P覆盖相反,本发明的实施例提供了一种解决方案,其考虑了针对P2P网络中的覆盖拓扑创建和冗余数据存储的分布式物理硬件基础设施之上的虚拟化解决方案。
此外,本发明描述了针对可以有益地用于诸如服务器群集或纯P2P电话系统的分布式环境中的基础技术的改进。具体而言,此类技术可以被包括在IETF P2P-SIP中(IETF=因特网工程任务组;SIP=会话启动协议)。
在现有技术中,已知的是,将数据的复制品的数量增加得大于相同用户的对等体的数量,以便保护数据使其不会对于单一硬件故障是脆弱的。特别是在具有高DB(=数据库)操作频率的群集部署中,每个复制品导致极大的流量,这可能是不可接受的。而且,在通信网络的部署中,现有技术文献的方法是不实用的,因为具有有限性能的设备(例如,电话、PDA)无法承受存储增加数量的复制品。本发明的实施例避免了这些缺点,因为仅需要再多一个复制品,即,所需的复制品的数量是非常有限的。
通过由所附权利要求指示的本发明实施例实现了另外的优点。
根据本发明的优选实施例,如果在与第一节点相同的物理硬件上运行的一个节点试图加入对等网络,则为加入节点选择节点ID,使得预定义数量的其它节点关于所述对等覆盖网络的拓扑结构位于所述加入节点和所述第一节点之间。由此,在现有技术中已知的加入过程被修改,从而实现了在相同物理硬件上运行的对等体之间的最大距离。在覆盖中的对等体的邻居关系由对等体ID所确定。由此,使ID分配过程成为硬件相关有助于避免以下情况,其中位于相同硬件上的两个对等体成为邻居。
以下是可能的:由具有与群集拓扑有关的信息的登记服务器(enrolment server)分配对等体ID。该登记服务器-优选地是中央服务器-用以下方式分配对等体ID,即,新加入对等体不会与这样的对等体成为邻居,所述对等体与新加入对等体位于相同的硬件上。
然而,在中央实体不可用的部署中,新加入P2P网络的对等体自己,例如随机地,选择其ID。在加入过程期间,对等体联系接纳对等体(admitting peer,其负责将新的对等体集成到拓扑中),并由此知道邻居的拓扑。如果加入对等体的硬件与邻居中的对等体有冲突,则接纳对等体可能决定重定向加入对等体。加入对等体接着选择不同的对等体ID,并试图在别处加入覆盖。由此,根据本发明的实施例,以下是可能的:加入对等体被接纳对等体重定向,以试图关于对等覆盖网络的拓扑结构,在另一位置加入对等覆盖网络。在预定义数量的其它节点关于对等覆盖网络的拓扑结构位于加入节点和第一节点之间之前,加入节点不会被同一个或另一个接纳节点所接纳。
以下是可能的:第一节点探测到与其自身的硬件有关、以及与网络的其它节点有关的信息。该探测的目的是找出多个网络节点中的哪些节点在相同的物理硬件上运行。存在探测物理硬件的若干种可能的方式:
根据本发明的优选实施例,通过从第一节点的平台检索信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者替代地,通过从至少一个第二节点的平台检索信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。所述平台可以使第一节点和/或至少一个第二节点在其上运行的物理硬件,例如,CPU(=中央处理单元)、计算机、网络单元等。所述信息可以例如是与第一节点和/或至少一个第二节点相关联的CPU ID、MAC地址、位置、IP地址、位置等等(MAC=媒体存取控制)。这包括软件应用在网络节点的操作系统的帮助下能够找出的任意信息。例如,MAC地址通常是用于确定物理主机的相对安全的方式,但是,如果使用了硬件虚拟化技术,可能不是这样的情况。
本发明的实施例修改了由Chord对等体执行的复制方法,并由此能够在物理节点故障的情形中提高数据可用性。本发明的实施例将每个对等体节点关联于硬件标识符,例如CPU ID、MAC地址等等,其标识了托管对等体节点的硬件平台。对等体节点使用硬件标识符来复制资源集合,对等体节点对于在不同硬件平台上运行的至少一个对等体节点,优选地是按照拓扑结构(例如按照对等体ID)的最接近的后继者上的一组资源负责。
根据本发明的另一优选实施例,通过从与第一节点相链接或相关联的外部管理单元检索信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,通过从与第二节点相链接或相关联的外部管理单元检索信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。所述外部管理单元还可以是外部群集(cluster)管理实体,其中术语“群集”指代作为网络节点的群集的P2P覆盖网络。
如果外部群集管理实体可用,例如可用于配置节点ID,则外部群集管理实体也可以提供与群集的物理拓扑有关的信息。外部群集管理实体可以是中央登记服务器、引导服务器、或者网络管理和监视服务器。
如果软件应用不能探测到所需的硬件信息,则由节点的管理者对节点进行手动(预先)配置是一种解决方案。优选地,通过从对等网络的网络操作员和/或从第一节点的用户检索相应的信息,确定第一节点在其上运行的所述物理硬件。优选地,所述检索由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,通过从对等网络的网络操作员和/或从至少一个第二节点的用户检索相应的信息,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述检索由第一节点执行。
在优选实施例中,借助于在与第一节点相关联的应用层上的测量,确定第一节点在其上运行的所述物理硬件。优选地,所述确定由第一节点执行。确定第一节点在其上运行的所述物理硬件,除此之外或者作为替代,借助于在与第二节点相关联的应用层上的测量,确定与第一节点在相同的物理硬件上运行的所述至少一个第二节点。优选地,所述确定由第一节点执行。
在应用层上的所述测量可以是应用级探查机制,诸如“ping”消息交换。基于所述ping消息交换,如果其它节点在相同的设备上托管,则节点可以从连接等待时间进行估计。并且,如果节点在相同的硬件上,其它已知的方法可以被用于进行估计:例如,网络协调系统试图通过测量节点间等待时间来获得关于底层网络的知识,而无需对所有链路进行明确测量。这允许当节点在物理拓扑中接近时将节点靠近地放置在逻辑覆盖中。另一示例是Pastry,其通过测量到其它节点的等待时间而针对本地性持续地调节路由表。
根据本发明的另一优选实施例,第一节点将第一节点在其上运行的物理硬件的描述包括到从第一节点发送到第一节点的下一个逻辑节点的P2P消息中,其中所述下一个逻辑节点存储数据的复制品。可能地,第一节点的下一个逻辑节点由下述事实所定义,所述事实为,下一个逻辑节点存储第一节点负责的数据的复制品。下一个逻辑节点检查第一节点在其上运行的物理硬件是否与下一个逻辑节点在其上运行的物理硬件相同。如果第一节点在其上运行的物理硬件与下一个逻辑节点在其上运行的物理硬件相同,则下一个逻辑节点将数据的复制品转发到至少一个第二节点。
ID分配是用于防止相同硬件上的对等体参考P2P覆盖网络的拓扑结构位于彼此相邻的一种方式。由于节点可能随机地故障,实际不是邻居的两个对等体可能在任意时间成为邻居。在某些部署中,在此情形中可能的解决方案是重新分配对等体ID。然而,对对等体ID的重新分配不会总是可能的,此外还可能对于覆盖结构具有不想要的效果。例如,对对等体ID的重新分配还可能意味着对等体负责的键空间(key space)发生改变:很可能对等体变为对完全不同的键/值对负责。对于实际集成的对等体的所需数据传输需要时间和资源,并且可能是不可接受的。
由此,根据本发明的实施例,P2P覆盖网络的复制算法被扩充。通过已经检索的、关于物理硬件的信息的帮助,将复制的数据附加地复制到下一个节点,其在不同硬件上运行,并将变为在硬件故障的情形中对数据负责。
优选地,如果需要冗余数据存储的较高冗余度,则第一节点负责的数据的复制品被存储在许多第二节点上,其中每个第二节点运行在另一物理硬件上,从而存储了复制品并且每个运行在不同的硬件上的第二节点的总数等于预定义的冗余因子。
附图说明
通过阅读当前优选地示例性实施例并结合附图,本发明的这些以及另外的特征和优点将被更好地理解,在附图中:
图1a示出了现有技术的P2P覆盖网络;
图1b示出了现有技术的P2P覆盖网络;
图2示出了根据本发明实施例的P2P覆盖网络;
图3示出了根据本发明实施例在图2中示出的P2P覆盖网络中的冗余数据存储;以及
图4示出了根据本发明实施例在图2中示出的P2P覆盖网络中的冗余数据存储。
具体实施方式
图2示出了根据本发明实施例的P2P覆盖网络。具体而言,图2示出了根据本发明实施例的Chord环N。所述Chord环N包括多个节点0、20、50、87、112、140、179、200、211、223、240,其中参考标记0、20、50、87、112、140、179、200、211、223、240意思是同样表示节点0、20、50、87、112、140、179、200、211、223、240的节点ID。节点的节点ID通过对于覆盖特定的DHT算法被分配,并且例如可以是基于登记服务器的,或者由节点自己随机选择的。每个节点表示Chord环N的一个对等体。
在所述方法的第一步骤,第一节点211确定其正在哪个物理硬件上运行。并且,第一节点211确定Chord环N的其它节点0、20、50、87、112、140、179、200、223、240正在哪个物理硬件上运行。
第一节点211由一个或若干个互连的计算机组成,即,硬件平台、基于硬件平台的软件平台、以及由软件和硬件平台构成的系统平台所执行的若干应用程序。通过执行这些应用程序来提供第一节点211的功能。这些应用程序或这些应用程序中选定的一部分,当在系统平台上执行时,组成了提供路由服务的计算机软件产品,如下文中所述的。另外,所述计算机软件产品由存储介质组成,所述存储介质存储这些应用程序、或应用程序的所述的选定的一部分。
从功能视角看来,第一节点211包括:控制单元,用于控制第一节点的功能;存储介质,用于存储数据;以及接口,用于与其它节点交换信息。
对于对物理硬件的确定,第一节点211可以使用任意可用信息,其有助于识别第一节点在其上运行的物理硬件。以下是可能的:第一节点211通过从其自身的平台收集信息,例如CPU ID、MAC地址、位置、IP地址等等,而检索关于第一节点在其上运行的物理硬件的信息。接着,第一节点211可以从Chord环N的其它节点0、20、50、87、112、140、179、200、223、240收集相应的信息,并比较所收集的信息片。例如,如果第一节点211在其上运行的计算机的CPU ID等于节点223在其上运行的计算机的CPU ID,则第一节点211得出这样的结果:第一节点211在其上运行的物理硬件等同于节点223在其上运行的物理硬件。
除了可从其自身的平台获得例如CPU ID、MAC地址、位置、IP......的信息之外,第一节点211还可以使用借助于手动配置提供的、借助于应用层测量等收集的、从外部管理实体检索的信息,所述手动配置由第一节点211在其上运行的硬件的用户所执行。类似地,其它节点0、20、50、87、112、140、179、200、223、240中的每个均可以使用任意可用信息,其有助于识别该节点在其上运行的物理硬件。以下是可能的:其它节点0、20、50、87、112、140、179、200、223、240中的每个将所收集的、与各个物理硬件有关的信息传送到第一节点211。以下也是可能的:第一节点211访问其它节点0、20、50、87、112、140、179、200、223、240在其上运行的物理硬件,并且从其它节点0、20、50、87、112、140、179、200、223、240收集与它们各自的物理硬件有关的信息段。
对物理硬件分类的此步骤的结果在图2中示出,图2示出了硬件分类以及通过针对节点0、20、50、87、112、140、179、200、211、223、240的不同图标形状来示出所述硬件分类。每个形状表示不同的物理机器。这意味着,节点0、50、140、211和223在第一机器上运行。节点20、112、179和240在第二机器上运行。节点87和200在第三机器上运行。
在现有技术的方案中,存储在节点211上的键/值对203的复制品仅被复制到节点223上,如图1a所示的。如图3所示,当节点211和节点223在相同的硬件上托管时,本发明实施例提供了附加地或可替换地将复制品转发到节点240。
例如通过查询其邻居223、240等,由节点211自身完成确定对于其硬件信息负责的对等体240。可替换地,节点211将其硬件信息包括在P2P消息中,该P2P消息被发送到其逻辑邻居节点223。接着,节点223能够确定对等体211和223在相同的物理硬件上托管。在此情形中,节点223将复制品203从节点223转发到节点240。
对于节点211和223由于硬件故障的原因而退出网络N的情形,如图4所示,节点240仍然保持着键/值对203的拷贝,从而数据203被保持在网络N中。
为了获得甚至更高的冗余因子,第一节点必须触发将复制品存储到在不同硬件上运行的更多数量的对等体上。例如,如果请求冗余因子为三,则第一节点211必须触发的是:复制品数据203也被存储在节点87上。由此,第一节点211负责的复制品数据203被存储在运行于第一硬件(=图2中的圆形)上的节点223、运行于第二硬件(=图2中的方形)上的节点240、以及运行于第三机器(=图2中的菱形)上的节点87。
在高级实现方式中,可以存在基于硬件的若干冗余级。例如,取决于不同的刀片、机架、服务器机房或数据中心,存储一个复制品可能是有用的。
根据本发明实施例的加入和脱离算法参照现有技术的方案进行修改,以便确保硬件相关的复制品的一致性。在对于根据本发明实施例的加入和脱离算法的以下描述中,假定对等体确定其在哪个硬件上运行的过程已经如上所述那样被完成。
在算法修改的描述中使用了以下缩写:
LR    依赖于逻辑覆盖ID的复制品
HR    依赖于物理硬件的复制品
HRP   HR的位置
NP    邻居对等体
JP    加入对等体
LP    离开对等体
1)加入算法
1a)加入对等体:
如果到JP的直接NP在与JP相同的硬件上被托管,则JP必须确定HRP,其是位于不同硬件上的下一个NP。接着,HR被推送到该对等体。否则,相同的对等体会负责LR和HR二者。在此情形中,仅一个复制品被推送到相应的对等体。
1b)在邻居列表中具有JP的对等体
如果加入位置位于该对等体与其HRP之间,则JP很可能对HRP有影响。在此情形中,每个对等体必须检查其HRP是否已改变。如果HRP已改变,则HR必须被推送到现在位于HRP上的对等体,并且旧的HR必须被删除。
2)离开算法
在邻居列表中具有LP的对等体
如果LP位于该对等体与其HRP之间,或者如果LP在HRP自身之上,则LP也很可能对HRP有影响。在此情形中,每个对等体必须检查其HRP是否已改变。如果HRP已改变,则HR必须被推送到现在位于HRP上的对等体,并且旧的HR必须被删除。

Claims (11)

1.一种用于在包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等覆盖网络(N)中进行冗余数据存储的方法,所述方法包括以下步骤:
识别物理硬件,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的第一节点(211)在所述物理硬件上运行;
确定在与所述第一节点(211)不同的物理硬件上运行的所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240);以及
将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:关于所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的节点。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括以下步骤:如果在与所述第一节点(211)相同的物理硬件上运行的节点加入所述对等覆盖网络(N),则为加入节点选择节点标识符,使得预定义数量的其它节点关于所述对等覆盖网络(N)的拓扑结构位于所述加入节点和所述第一节点(211)之间。
3.根据权利要求2所述的方法,其特征在于,所述方法进一步包括以下步骤:通过登记单元将所述节点标识符分配给所述加入节点。
4.根据权利要求2所述的方法,其特征在于,所述方法进一步包括以下步骤:由接纳节点将所述加入节点重定向,以便在关于所述对等覆盖网络(N)的拓扑结构的另一位置加入所述对等覆盖网络(N),从而所述预定义数量的其它节点关于所述对等覆盖网络(N)的拓扑结构位于所述加入节点和所述第一节点(211)之间。
5.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:通过从所述第一节点(211)和/或所述至少一个第二节点(240)的平台分别检索信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
6.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:通过从与所述第一节点(211)和/或所述至少一个第二节点(240)相链接的外部管理单元分别检索信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
7.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:借助于从所述对等网络(N)的网络操作员和/或所述第一节点(211)的用户和/或所述至少一个第二节点(240)检索相应信息,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
8.根据权利要求1所述的方法,其特征在于,所述方法包括以下步骤:借助于在所述对等覆盖网络(N)的应用层上的等待时间测量,识别所述第一节点(211)在其上运行的所述物理硬件和/或确定所述至少一个第二节点(240)。
9.根据权利要求1所述的方法,其特征在于,所述方法进一步包括以下步骤:
由所述第一节点(211)将所述第一节点(211)在其上运行的物理硬件的描述包括到从所述第一节点(211)发送到所述第一节点(211)的下一个逻辑节点(223)的对等消息中,所述下一个逻辑节点(223)存储数据的复制品(203);
由所述下一个逻辑节点(223)检查所述第一节点(211)在其上运行的物理硬件是否与所述下一个逻辑节点(223)在其上运行的物理硬件相同;以及
如果所述第一节点(211)在其上运行的物理硬件与所述下一个逻辑节点(223)在其上运行的物理硬件相同,则由所述下一个逻辑节点(223)将所述数据的复制品(203)转发到所述至少一个第二节点(240)。
10.一种包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等网络(N)的第一节点(211),其中所述节点包括控制单元,其适于:识别所述第一节点(211)在其上运行的物理硬件;确定在与所述第一节点(211)不同的物理硬件上运行的所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240),其在与所述第一节点(211)不同的物理硬件上运行;以及,将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上,除此之外或者作为替代,启动将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:关于所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的节点。
11.一种用于在包括多个节点(0、20、50、87、112、140、179、200、211、223、240)的对等覆盖网络(N)中进行冗余数据存储的计算机程序产品,其中所述计算机程序产品,当在所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的一个节点上执行时,执行以下步骤:
识别所述第一节点(211)在其上运行的物理硬件;
确定所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中的至少一个第二节点(240),其在与所述第一节点(211)不同的物理硬件上运行;以及
作为将所述第一节点(211)负责的数据的复制品(203)存储在所述第一节点的下一个逻辑节点(223)上的附加或者作为替代,启动将所述数据的复制品(203)存储在所述至少一个第二节点(240)上,其中,所述下一个逻辑节点(223)是:参照所述对等覆盖网络(N)的拓扑结构,所述多个节点(0、20、50、87、112、140、179、200、211、223、240)中与所述第一节点(211)相邻的一个节点。
CN2009101491955A 2008-06-27 2009-06-26 冗余数据存储方法 Active CN101616184B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP08290624A EP2139205B1 (en) 2008-06-27 2008-06-27 Method of redundant data storage
EP08290624.9 2008-06-27

Publications (2)

Publication Number Publication Date
CN101616184A true CN101616184A (zh) 2009-12-30
CN101616184B CN101616184B (zh) 2013-08-28

Family

ID=39884330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009101491955A Active CN101616184B (zh) 2008-06-27 2009-06-26 冗余数据存储方法

Country Status (4)

Country Link
US (1) US8126849B2 (zh)
EP (1) EP2139205B1 (zh)
CN (1) CN101616184B (zh)
WO (1) WO2009156263A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034739A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 一种分布式存储系统及其更新和查询方法
CN103810061A (zh) * 2014-01-28 2014-05-21 河南科技大学 一种高可用云存储方法
CN105659213A (zh) * 2013-10-18 2016-06-08 日立数据系统工程英国有限公司 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8509407B2 (en) * 2009-03-23 2013-08-13 Telefonaktiebolaget Lm Ericsson (Publ) Event identification in peer to peer networks
CN101895482A (zh) * 2009-05-18 2010-11-24 华为技术有限公司 对点到点技术网络的逻辑拓扑信息进行抽象的方法和装置
US8326798B1 (en) * 2009-09-14 2012-12-04 Network Appliance, Inc. File system agnostic replication
US8874505B2 (en) * 2011-01-11 2014-10-28 Hitachi, Ltd. Data replication and failure recovery method for distributed key-value store
US8782364B2 (en) 2011-12-13 2014-07-15 Hewlett-Packard Development Company, L.P. Determining availability of data elements in a storage system
CN102868682B (zh) * 2012-08-21 2015-02-25 北京邮电大学 一种流媒体资源共享的方法和装置
US9680659B2 (en) * 2012-08-27 2017-06-13 Ricoh Company, Ltd. Obtaining, managing and archiving conference data
EP2944069B1 (en) * 2013-01-10 2019-03-13 Telefonaktiebolaget LM Ericsson (publ) Connection mechanism for energy-efficient peer-to-peer networks
US9210219B2 (en) 2013-07-15 2015-12-08 Red Hat, Inc. Systems and methods for consistent hashing using multiple hash rings
US10303567B2 (en) * 2013-08-15 2019-05-28 Entit Software Llc Managing database nodes
US10412158B2 (en) * 2016-07-27 2019-09-10 Salesforce.Com, Inc. Dynamic allocation of stateful nodes for healing and load balancing
US10698780B2 (en) * 2016-08-05 2020-06-30 Nutanix, Inc. Implementing availability domain aware replication policies
JP7074018B2 (ja) * 2018-10-22 2022-05-24 日本電信電話株式会社 分散処理システムおよび分散処理方法
JP7149313B2 (ja) * 2020-09-28 2022-10-06 株式会社日立製作所 記憶システム及びその制御方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073209A (en) * 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
GB0002972D0 (en) * 2000-02-09 2000-03-29 Orange Personal Comm Serv Ltd Data handling system
US20020083163A1 (en) * 2000-10-26 2002-06-27 Metilinx Multi-platform optimization model
US6771666B2 (en) * 2002-03-15 2004-08-03 Meshnetworks, Inc. System and method for trans-medium address resolution on an ad-hoc network with at least one highly disconnected medium having multiple access points to other media
WO2003037009A1 (en) * 2001-10-23 2003-05-01 Meshnetworks, Inc. System and method for providing a congestion optimized address resolution protocol for wireless ad-hoc networks
US6928476B2 (en) * 2002-08-23 2005-08-09 Mirra, Inc. Peer to peer remote data storage and collaboration
US8005918B2 (en) * 2002-11-12 2011-08-23 Rateze Remote Mgmt. L.L.C. Data storage devices having IP capable partitions
US20050108276A1 (en) * 2003-11-13 2005-05-19 Ramani Sriram Methods and system for dynamic database content persistence and information management
US7904913B2 (en) * 2004-11-02 2011-03-08 Bakbone Software, Inc. Management interface for a system that provides automated, real-time, continuous data protection
US20080130516A1 (en) * 2004-12-21 2008-06-05 Electronics And Telecommunications Research Institute P2p Overplay Network Construction Method and Apparatus
CN1328879C (zh) * 2005-01-26 2007-07-25 北京大学 基于数据分块冗余和虚拟化存储的在线备份方法
US8365301B2 (en) * 2005-02-22 2013-01-29 Microsoft Corporation Peer-to-peer network communication
US20060190715A1 (en) * 2005-02-22 2006-08-24 Microsoft Corporation Peer-to-peer network information retrieval
US7849303B2 (en) * 2005-02-22 2010-12-07 Microsoft Corporation Peer-to-peer network information storage
US7656810B2 (en) * 2005-03-25 2010-02-02 Microsoft Corporation System and method for monitoring and reacting to peer-to-peer network metrics
ATE463917T1 (de) * 2006-02-21 2010-04-15 Microsoft Corp Topologieverwaltung in peer-to-peer datenverteilungswolken
US9047310B2 (en) * 2006-02-22 2015-06-02 Microsoft Technology Licensing, Llc Reliable, efficient peer-to-peer storage
US20070230468A1 (en) * 2006-03-31 2007-10-04 Matsushita Electric Industrial Co., Ltd. Method to support mobile devices in a peer-to-peer network
DE102006024982A1 (de) 2006-05-29 2007-12-13 Nokia Siemens Networks Gmbh & Co.Kg Peer-to-Peer-Kommunikationseinrichtung, Verfahren zum Bilden einer Peer-to-Peer-Identifikationsangabe und Verfahren zum Betreiben eines Peer-to-Peer-Kommunikationsnetzwerks
US8041942B2 (en) * 2006-09-05 2011-10-18 Panasonic Corporation Robust peer-to-peer networks and methods of use thereof
CN101170572A (zh) * 2006-10-23 2008-04-30 日电(中国)有限公司 基于p2p sip技术实现的多媒体网络通信系统
US20080147821A1 (en) * 2006-12-19 2008-06-19 Dietrich Bradley W Managed peer-to-peer content backup service system and method using dynamic content dispersal to plural storage nodes
US8090792B2 (en) * 2007-03-08 2012-01-03 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage
US8762664B2 (en) * 2007-08-30 2014-06-24 Red Hat, Inc. Replicating cache nodes in a cluster

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103034739A (zh) * 2012-12-29 2013-04-10 天津南大通用数据技术有限公司 一种分布式存储系统及其更新和查询方法
CN105659213A (zh) * 2013-10-18 2016-06-08 日立数据系统工程英国有限公司 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复
CN105659213B (zh) * 2013-10-18 2018-12-14 株式会社日立制作所 无共享分布式存储系统中的目标驱动独立数据完整性和冗余恢复
CN103810061A (zh) * 2014-01-28 2014-05-21 河南科技大学 一种高可用云存储方法
CN103810061B (zh) * 2014-01-28 2017-05-31 河南科技大学 一种高可用云存储方法

Also Published As

Publication number Publication date
WO2009156263A1 (en) 2009-12-30
CN101616184B (zh) 2013-08-28
EP2139205B1 (en) 2012-10-31
US8126849B2 (en) 2012-02-28
EP2139205A1 (en) 2009-12-30
US20090327364A1 (en) 2009-12-31

Similar Documents

Publication Publication Date Title
CN101616184B (zh) 冗余数据存储方法
EP2139202B1 (en) Method of providing a successor list
Manku et al. Symphony: Distributed hashing in a small world
EP1876788B1 (en) Distributed Hashing Mechanism for self-organizing networks
Zöls et al. On hierarchical DHT systems–An analytical approach for optimal designs
WO2007149338A2 (en) Methods, devices and architectures for establishing peer-to -peer sessions
KR20110021931A (ko) 라우팅 경로를 결정하는 방법
El-Ansary et al. An overview of structured overlay networks
JP2008140388A (ja) 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法
Janson et al. A self-stabilizing locality-aware peer-to-peer network combining random networks, search trees, and dhts
Alveirinho et al. Flexible and efficient resource location in large-scale systems
Zghaibeh et al. Sham: scalable homogeneous addressing mechanism for structured P2P networks
Sacha et al. A service-oriented peer-to-peer architecture for a digital ecosystem
Ribe-Baumann Combining resource and location awareness in dhts
Antonopoulos et al. A Multi-Ring Method for Efficient Multi-Dimensional Data Lookup in P2P Networks.
Setia Distributed Hash Tables (DHTs) Tapestry & Pastry
Abdallah et al. Fair load balancing under skewed popularity patterns in heterogeneous dht-based p2p systems
Dobre A cluster-enhanced fault tolerant peer-to-peer systems
Dobre et al. DistHash: A robust P2P DHT-based system for replicated objects
Leslie et al. Replication strategies for reliable decentralised storage
Al-Dmour Comparison of file sharing search algorithms over peer-to-peer networks
Rout et al. A centralized server based cluster integrated protocol in hybrid p2p systems
Iancu et al. A self-adapting peer-to-peer logical infrastructure, to increase storage reliability on top of the physical infrastructure
Albrecht et al. Dependable peer-to-peer systems withstanding dynamic adversarial churn
Shin et al. A proximity-based self-organizing hierarchical overlay framework for distributed hash tables

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant