CN105531675A - 分散型分布式计算系统 - Google Patents
分散型分布式计算系统 Download PDFInfo
- Publication number
- CN105531675A CN105531675A CN201380078999.5A CN201380078999A CN105531675A CN 105531675 A CN105531675 A CN 105531675A CN 201380078999 A CN201380078999 A CN 201380078999A CN 105531675 A CN105531675 A CN 105531675A
- Authority
- CN
- China
- Prior art keywords
- node
- file
- task
- transient computer
- virtual machine
- 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
Links
- 238000000034 method Methods 0.000 claims description 46
- 230000004044 response Effects 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 20
- 230000007246 mechanism Effects 0.000 claims description 10
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000001052 transient effect Effects 0.000 claims 26
- 238000010586 diagram Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 22
- 230000006870 function Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 238000011084 recovery Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000010076 replication Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1881—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
一种包括在网络上连接的多个节点的分布式系统。每个节点具有在分布式系统中标识节点的唯一标识符。任务从分布式系统中的任何节点启动并且包括唯一标识符。如果节点接收到包括节点的唯一标识符的任务,则节点执行该任务。每个节点将每个任务存储在日志中。如果节点故障,则在从故障中恢复之后,节点向分布式系统查询由于该故障而没有接收到的任务以及没有完成的任务。任务可以基于通过使用带内访问指定存储与元数据对应的数据的节点的位置的元数据而得到的位置数据来在节点上启动。任务可以包括开启虚拟机以使得IP地址在配置虚拟机的文件中被编码。
Description
技术领域
本发明总体上涉及计算机系统,并且更具体而言涉及用于操作联网的设备或节点的分布式系统的技术。
背景技术
为了提供分布式文件系统的大小和带宽的可扩展性,传统的存储系统将文件的存储分散在分布式存储系统中的多个存储节点上。传统上,虽然存储节点中的文件存储已经被散布,但是,文件系统的管理、处理以及文件元数据被集中在控制节点或任务管理节点中。
在传统的分布式文件系统中,用于定位文件系统内的数据的方法已经使用被当作“带外”或者不由通常用于访问文件系统的协议支持的机制。带外机制的一个示例用在ParaScaleTM分布式存储平台中。在ParaScaleTM分布式存储平台中,集中式任务管理器或主设备打开经由网络文件系统(NFS)导出的挂载点上的文件,使用“stat”操作来获得关于文件的关键信息,并且接着使用文件的关键信息、接收到的诸如为服务器的地址之类的数据位置的可扩展标记语言(XML)信息来在控制节点上传送数据位置服务。ParaScaleTM平台的客户端接着能够使用服务器的地址来启动数据任务。
如上所记载的,传统的分布式文件系统使用负责协调所有节点上的任务的集中式任务管理器。典型地,任务管理器引导其他节点执行任务。虽然这样的配置允许以已知顺序来执行任务,但是,如果任务管理器故障,则分布式文件系统的弹性(resiliency)将受损,因为任务管理器必须在能够启动附加的任务之前从故障中恢复。进而,待定任务的日志传统上已经放置在共享永久性存储器上或者在多个节点之间被复制。因此,任务管理器造成作为针对分布式文件系统的单个故障点的问题。
在分布式系统中,系统中的节点的IP地址分配传统上由动态主机配置协议(DHCP)处理。如果在分布式系统中存在虚拟机,则DHCP造成的问题在于DHCP一般性地向网络中的所有系统分配IP地址。结果,DHCP中存在关于对能够被容易地隔离以仅向存在于分布式系统中的虚拟机提供IP地址的DHCP服务器进行配置的问题。
发明内容
本发明的实施方式总体上涉及一种分布式计算机系统,并且更具体而言,涉及用于在分布式存储系统(这里“集群”)中管理任务的发出的技术,包括用于确定应该启动特定任务的分布式存储系统中的位置、创建具有可靠IP地址的虚拟机的任务、以及分布式存储系统中的任务的错误恢复的技术。
鉴于传统分布式系统中的问题,在本发明的某些实施方式中,配置集群以使得任务能够从集群中的任意节点向集群中的任意其他或所有其他节点发出,并且能够以弹性和容错特性来存储和执行任务。例如,集群采用一致(consensus)算法,诸如用于实现容错分布式系统的Paxos算法,由此能够以已知顺序在集群中的每个节点、节点的子集或所有节点上分发和处理任务。在某些实施方式中,如果节点由于故障等而脱机,并且为脱机节点定义了任务,则当节点回到在线(例如,从故障中恢复)时必须运行该任务。通过使用一致算法,待定任务作为一个或多个有序消息而从集群中的任意节点启动并且广播到集群中的所有节点。例如,可以使用诸如为这里通过引用并入的“PaxosMadeSimpleSIGACTNews,第32卷,第4期(2001年12月),第51-58页,LeslieLamport”中描述的一致算法、或者其变型的一致算法。结果,之前的实施方式有利地提供了允许容错和节点弹性的分散型分布式系统。
另外,在本发明的其他实施方式中,当在集群中的节点上启动开启虚拟机(VM)的任务时,包含虚拟机的具体特性的配置文件被引用,该配置文件包括将由虚拟机使用的介质接入控制(MAC)地址。根据本发明的各种实施方式,将由虚拟机使用的IP地址被编码在MAC地址中。结果,VM能够被给予不与集群中使用的其他IP地址冲突的诸如为IPv4的IP地址,并且不需要依赖于动态主机配置协议(DHCP)服务器来尝试向虚拟机分配IP地址。结果,前述实施方式有利地允许使用MAC地址作为从主机节点通过管理程序(hypervisor)向虚拟机通信IP地址的管道来为虚拟机设置IP地址。
再进一步地,在本发明的又一实施方式中,文件系统具有其中每个文件具有对应的映射文件的、扩展的命名空间,该对应的映射文件具有指定该文件在集群中的数据位置的特殊扩展。通过扩展命名空间以包括用以指定映射文件的特殊扩展,能够使用典型地用于访问存储在文件系统中的数据的诸如为网络文件系统(NFS)v3.1的协议来在文件系统中访问映射文件。然而,映射文件在文件系统的正常目录列表中会不可见。结果,前述实施方式有利地允许使用用于访问数据自身的相同的机制来访问集群中的数据的位置信息。
附图说明
图1为根据本发明的实施方式的集群式计算机系统的框图。
图2为根据本发明的实施方式的客户端的框图。
图3为根据本发明的实施方式的节点的框图。
图4为根据本发明的实施方式的节点的存储设备的详细框图。
图5为根据本发明的实施方式的节点的信道板的框图。
图6为根据本发明的实施方式的节点的处理器板的框图。
图7为根据本发明的实施方式的节点的驱动板的框图。
图8A、8B以及8C为根据本发明的实施方式的客户端对文件系统的访问的框图。
图9A、9B以及9C为根据本发明的实施方式的节点的存储设备的框图。
图10为根据本发明的实施方式的节点的功能框图。
图11A为根据本发明的实施方式的管理表。
图11B为根据本发明的实施方式的任务日志。
图12为根据本发明的实施方式的节点的网络层、任务队列层以及执行层的抽象框图。
图13为根据本发明的实施方式的UUID分配过程。
图14为根据本发明的实施方式的任务执行过程。
图15为根据本发明的实施方式的节点重启过程。
图16示出了根据本发明的实施方式的经编码的MAC地址的结构。
图17为根据本发明的实施方式的IP地址编码示图。
图18为根据本发明的实施方式的管理程序层、MAC/IP层以及虚拟机层的抽象框图。
图19为根据本发明的实施方式的配置过程。
图20为根据本发明的实施方式的文件系统的框图。
图21为根据本发明的实施方式的文件、映射文件以及位置响应的示图。
图22示出了根据本发明的实施方式的文件与映射文件之间的关系。
图23为根据本发明的实施方式的用于更新文件属性和元数据的处理流程。
图24为根据本发明的实施方式的客户端对映射文件的访问的处理流程。
图25为根据本发明的实施方式的客户端对映射文件的访问的更详细的处理流程。
具体实施方式
这里所讨论的实施方式为本发明的一个或多个示例的阐述。由于本发明的这些实施方式参照附图来描述,这里所描述的方法和/或具体结构的各种修改和适应可以变得对本领域技术人员显而易见。依赖于本发明的教导的所有这样的修改、适应、或变形被认为是在本发明的范围内。由此,本描述和附图不应该被认为是限制意义,因为理解到本发明决不限于仅仅其中所示的实施方式。
集群式计算机系统
根据各种实施方式,诸如为集群式存储系统的可扩展的分布式计算机系统(这里称作“集群”)将文件系统中的文件的命名空间和元数据属性与文件的实际数据内容分离。在一个实施方式中,可以实现为服务器的一个或多个节点负责处理文件的命名空间、元数据、以及位置信息。另外,节点负责访问文件系统中的文件并且还可以负责提供物理存储空间。每个节点典型地采用无共享(shared-nothing)的架构,意指每个节点具有至少一个对应的存储设备,该对应的存储设备为本地的或通过存储区域网(SAN)等而附加的,且不被集群中的其他节点共享。
在根据某些实施方式的集群中,文件系统自身横跨集群,并且不物理地关联到集群内的特别的节点或者节点的子集。因此,集群能够在多个维度上缩放。可以添加节点,从而缩放用于伺服存储在文件系统中的文件的容量和带宽。每个节点可以提供处理能力和存储能力两者。此外,可以添加节点以在集群中重分发操作的负载。
在某些实施方式中,用户(例如,客户端计算机系统)可以使用工业标准协议而不修改挂载文件系统,从节点访问集群内的文件,以及执行集群中和/或集群上的其他任务。在某些实施方式中,集群提供全局命名空间,其允许用户查看整个文件系统而不论用于访问文件系统的节点。
因此,在本发明的一个实施方式中的分布式无共享存储系统包括存储与在文件系统中的多个文件相关联的元数据、对象标识符、以及位置信息的节点;以及存储该多个文件的多个节点。集群中的节点能够从客户端接收针对文件系统中的文件的请求并且确定集群内的文件的位置。节点与其他节点通信以确定与文件相关联的元数据、对象标识符、以及位置信息。节点接着使用从集群接收的元数据、对象标识符、以及位置信息来访问文件系统中的文件,以伺服来自客户端的请求。
图1为根据本发明的实施方式的分布式计算机系统(例如,集群)100的图示。集群100包括客户端110和120、节点130、140、150、160、以及170。客户端110和120、以及节点130、140、150、160、以及170使用通信网络180而能够通信地耦合。可选地,可以有一个或多个连接客户端110和120与节点130、140、150、160、以及170的网络。
一般而言,客户端110和120为诸如为个人计算机(PC)、工作站、膝上型计算机、个人数字助理(PDA)、服务器、大型主机等等的计算机系统。客户端110和120被配置成使用诸如为NFS、CIFS、HTTP、FTP等等的文件访问协议来访问远程文件和文件系统。适于实现客户端110和120的计算机系统的一个示例在图2中示出。
节点130、140、150、160、以及170可以为PC、工作站、服务器、大型主机等等。节点在本地文件系统、网络附加存储(NAS)、存储区域网络(SAN)、数据库等等上存储与文件系统中的文件相关联的信息。节点还可以用本地文件系统和数据库的组合来存储与文件系统中的文件相关联的信息。适于实现节点130、140、150、160、以及170的计算机系统的一个示例在图3中示出。然而,节点130、140、150、160、以及170还可以为被配置成存储文件系统中的文件的、任意硬件和/或软件元件。节点130、140、150、160、以及170还实现一个或多个文件系统以存储诸如为NTFS、EXT、XFS等等的文件。
与文件系统中的文件相关联的信息包括命名空间、元数据、对象标识符以及位置信息。命名空间包括在大多数文件系统中常用的分级的基于树的文件路径和命名方案。元数据包括诸如为文件名、权限、大小、类型等等的文件属性。对象标识符为集群范围的全局唯一128比特标识符,用于节点上的基于对象的存储区域(object-basedstoragearea)中的文件的命名和存储。位置信息包括与文件在文件系统中的逻辑和/或物理位置相关联的信息。例如,位置信息可以指定给定节点、附加到节点的对象存储、路径信息等等。
在操作的一个示例中,客户端110向节点150发送针对文件系统中的文件的请求,诸如用以读取文件的请求。节点150接着确定与文件相关联的元数据、对象标识符、以及位置信息并且优选地在其RAM中本地高速缓存这一信息。在这一示例中,节点150确定与文件名相关联的对象标识符并且根据对象标识符确定文件的位置。节点150可以向集群中的客户端110或其他节点发送文件的对象标识符和位置。后面将描述根据本发明的各种实施方式的文件位置操作的详细操作。
根据一个实施方式,节点150可以引用特殊映射文件以确定文件的对象标识符和位置,以定位文件系统中的文件。例如,位置信息可以经由特殊映射文件向节点150指定文件本地存储在节点160上这一情况。节点150接着可以向客户端110提供这一信息以使得客户端110可以直接访问节点160。在某些实施方式中,节点150可以使用基于因特网协议(IP)的传送机制来从其他节点读取文件以及将文件写入其他节点,该传送机制的某些示例为HTTP或NFS交叉挂载。位置信息还可以使用存储在节点150上的文件系统的一部分来引导节点150访问文件。在另一示例性实施方式中,文件的对象标识符和位置可以用于从一个节点访问另一个节点处的文件系统中的文件。例如,位置信息可以引导节点150访问节点160上的文件。
根据各种实施方式,集群100通过节点130、140、150、160、以及170来将与文件系统中的文件相关联的命名空间、元数据以及位置信息与文件的实际存储相分离。因此,各种实施方式提供了使用集群100来增强对文件系统对象的访问,而不论节点内的文件的位置。附加地,在各种实施方式中,追加的节点可以被添加到存储系统中,增加存储容量并且减少存储系统中的文件访问时间。
在某些实施方式中,诸如为因特网协议(IP)地址的网络地址池可以被分派和分配给节点。在节点故障(例如,节点150)之后,节点130和140向起作用的节点(例如,存储节点160)动态地重分配与故障节点150相关联的网络地址(例如,IP地址)。因而,之前使用节点150访问文件的客户端/用户可以透明地移动和/或重定向到新的节点(即,存储节点160)。在再其他实施方式中,故障节点能够查询集群以确定在故障节点宕机(例如,故障)的时间期间是否已经错过任何任务。
图2示出了客户端110的框图,并且客户端120可以具有与客户端110类似的配置。如图2中所示,客户端装置的硬件包括CPU21、易失性或非易失性存储器22(RAM或ROM)、存储设备23(例如,硬盘驱动器、半导体存储器(SSD(固态驱动器))、诸如为键盘和鼠标的输入设备24、诸如液晶监视器和打印机的输出设备25、以及诸如为NIC(网络接口卡)、LAN适配器26-1等等的网络接口(此后,网络I/F26)。
图3示出了节点130的框图,并且节点140、150、160、以及170可以具有与节点130类似的配置。如图3中所示,节点130包括CPU31、易失性或非易失性存储器32(RAM或ROM)、存储设备33(例如,硬盘驱动、半导体存储器(SSD))、诸如为键盘和鼠标的输入设备34、诸如为液晶监视器和打印机的输出设备35、诸如为NIC、LAN适配器36-1、HBA(例如,FC适配器36-2)等等的网络接口(此后,网络I/F36)、以及通过使用定时器电路、RTC等等配置的定时器37。
图4示出了存储设备33的更详细的框图,该存储设备33可以被本地地提供给如图3中的节点130或者可以是经由如图4中的网络5的网络附加存储器(NAS)。节点130具有存储设备33。节点140、150、160、以及170每一个设置有不与集群共享的存储设备33。存储设备33接收从客户端110和120以及还有集群中的其他节点发送的I/O请求,并且响应于所接收的数据I/O请求,访问存储区域17并且向集群100发送数据或响应。
如图4中所示,存储设备33包括至少一个信道板11、至少一个处理器板12(微处理器)、至少一个驱动板13、高速缓存存储器14、共享存储器15、内部开关16、以及存储区域17。信道板11、处理器板12、驱动板13、高速缓存存储器14以及共享存储器15经由内部开关(switch)16彼此能够通信地耦合。
信道板11接收从集群100发送的帧并且针对被包含在接收帧中的请求而向集群100发送包含任务的响应(例如,读数据、读完成报告或者写完成报告、添加存储等)的帧。
处理器板12响应于由信道板11接收的帧中包含的上述数据I/O请求而执行信道板11、驱动板13以及高速缓存存储器14之间的数据传送(使用直接存储器访问(DMA)等等的高速大容量数据传送)的处理。处理器板12执行信道板11与驱动板13之间的数据(从存储区域17中读取的数据或者将写入存储区域17中的数据)的传送(传递)、以及将存储在高速缓存存储器14中的数据的分级(从存储区域17读取数据)及去分级(向存储区域17写入数据)。
高速缓存存储器14使用能够高速访问的RAM(随机访问存储器)来配置。高速缓存存储器14在其中存储将写入存储区域17的数据(此后,称作写数据)、从存储区域17读取的数据(此后,称作读数据)等等。共享存储器15在其中存储用于控制存储设备33的各种类型的信息。
当从存储区域17中读取数据或者将数据写入存储区域17时,驱动板13执行与存储区域17的通信。内部开关使用例如高速纵横开关来配置。经由内部开关16的通信例如按照诸如为光纤通道、iSCSI、TCP/IP等等的协议来执行。
存储区域17包括多个存储驱动器171。每个存储驱动171为例如诸如为SAS(串行附加SCSI)、SATA(串行ATA)、FC(光纤通道)、PATA(并行ATA)、以及SCSI的类型的硬盘驱动器、半导体存储设备(SSD)等等。
存储区域17向服务器系统3提供以通过按照诸如例如为RAID(廉价(或独立)冗余磁盘阵列)等等的方法控制存储驱动171来提供的逻辑存储区域为单位的存储区域17中的存储区域。逻辑存储区域为包括例如RAID组的逻辑设备。
存储设备33向节点130提供使用逻辑设备172配置的逻辑存储区域。存储设备33管理逻辑存储区域与逻辑设备172之间的对应关系(相关性)。基于该对应关系,存储设备33标识对应于逻辑存储区域的逻辑设备172或者标识对应于逻辑设备172的物理设备。在另一可选的实施方式中,存储区域17可以被配置以使得基于对象的存储区域被提供给节点130。
图5示出了信道板11中的每个信道板的硬件配置。如图5中所示,信道板11包括具有用于与服务器系统3通信的端口(通信端口)的外部通信接口(此后,称作外部网络I/F111)、处理器112(包括帧处理芯片和帧传送芯片)、存储器113、以及包括用于与处理器板12通信的端口(通信端口)的内部通信接口(此后,称作内部网络I/F114)。
外部网络I/F111使用NIC(网络接口卡)、HBA(主机总线适配器)等等来被配置。处理器112使用CPU(中央处理单元)、MPU(微处理单元)等等来被配置。存储器113为RAM(随机访问存储器)或ROM(只读存储器)。存储器113在其中存储诸如为微程序、软件、其他操作数据等等的数据。由信道板11提供的各种功能在处理器112读取和执行上述存储在存储器113中的数据时被实现。内部网络I/F114经由内部开关16与处理器板12、驱动板13、高速缓存存储器14、以及共享存储器15通信。
图6示出了处理器板12的硬件配置。处理器板12包括内部网络接口(此后,称作内部网络I/F121)、处理器122、以及其中来自处理器122的访问性能高于共享存储器15的存储器123(本地存储器)(即,对其高速访问是可能的)。存储器123在其中存储微程序。由处理器板12提供的各种功能在处理器122读取和执行存储在存储器123中的微程序时实现。
内部网络I/F121经由内部开关16与信道板11、驱动板13、高速缓存存储器14、以及共享存储器15通信。处理器122使用CPU、MPU、DMA(直接存储器访问)等等来配置。存储器123为RAM或ROM。处理器122能够访问存储器123和共享存储器15两者。
图7示出了驱动板13的硬件配置。驱动板13包括内部网络接口(此后,称作内部网络I/F131)、处理器132、存储器133、以及驱动接口(此后,称作驱动I/F134)。存储器133在其中存储微程序。由驱动板13提供的各种功能在处理器132读取和执行存储在存储器133中的微程序时被实现。内部网络I/F131经由内部开关16与信道板11、处理器板12、高速缓存存储器14、以及共享存储器15通信。处理器132使用CPU、MPU等等来被配置。存储器133例如为RAM或ROM。驱动I/F134与存储设备17进行通信。
图4中未示出的维护设备执行存储设备33的组件的控制和状态监视。维护设备为个人计算机、办公用计算机等等。维护设备18根据需要经由诸如为内部开关16、LAN等等的通信模块来与诸如为信道板11、处理器板12、驱动板13、高速缓存存储器14、共享存储器15、内部开关16等等的存储设备33的组件通信,以从组件获取操作信息等等并且向管理装置19提供信息。另外,维护设备根据从管理装置发送的控制信息和操作信息来执行组件的设置、控制、以及维护(包括软件安装和更新)。
未在图4中示出的管理装置为经由LAN等等能够通信地耦合到维护设备的计算机。管理装置19包括使用GUI(图形用户接口)和CLI(命令行接口)来控制和监视存储设备33的用户接口。维护设备和管理设备功能能够设置有类似于客户端110和120的硬件。
图8A、8B、以及8C图示了根据本发明的各种实施方式的客户端对节点和网络文件系统的访问。参见图8A,客户端系统110使用网络文件系统(NFS)文件访问来与集群中的节点(例如,节点130)通信。节点130包括NFS服务器815并且耦合到文件系统820。参见图8B,客户端系统110使用通用因特网文件系统(CIFS)文件访问来与节点130通信。在图8B中,节点130包括CIFS服务器835并且耦合到文件系统840。参见图8C,客户端系统110使用超文本传送协议(HTTP)文件访问来与节点130进行通信。在图8C中,节点130包括http服务器855并且被耦合到文件系统860。
图9A、9B、以及9C图示了根据本发明的各种实施方式的存储设备33互连到物理存储设备。参见图9A,存储设备33包括小计算机系统接口(SCSI)主机总线适配器(HBA)910。SCSIHBA910耦合到三个SCSI盘驱动915。参见图9B,存储设备33包括光纤通道(FC)HBA925。FCHBA925耦合到存储区域网络(SAN)开关930。SAN开关930耦合到三个FC盘935。参见图9C,存储设备33包括以太网接口945并且耦合到服务器950和服务器970。服务器950包括耦合到SATA盘965的以太网接口955和串行高级技术附件(SATA)接口960。服务器970包括耦合到两个SATA盘985的以太网接口975和SATA接口980。
图10图示了根据本发明的各种实施方式的节点130和在节点130中管理的主信息(数据)的功能框图。如图10中所示,在节点130中,提供虚拟环境的管理程序(例如,管理程序)305以及在管理程序305的控制下操作的至少一个虚拟机310被实现。
在每个虚拟机310中,文件共享处理单元311、文件系统312、维持将执行的任务队列的数据操作请求接收单元313、数据复制/迁移处理单元314、文件访问日志获取单元317、以及内核/驱动器318的功能被实现。
虚拟环境可以通过所谓的主机OS类型的方法来达到,其中操作系统居间于节点130的硬件与管理程序305之间,或者虚拟环境可以通过管理程序类型的方法来达到,其中操作系统不居间于节点130与管理程序305之间。
数据操作请求接收单元313、数据复制/迁移处理单元314以及文件访问日志获取单元317的功能可以实现为文件系统312的功能、或者实现为独立于文件系统312的功能。
如图10中所示,在本发明的各种实施方式中,节点130根据需要在节点130的存储器32和存储设备33中存储虚拟机配置信息331、任务日志335等等。
图10中图示的功能中,文件共享处理单元311向客户端110提供其中能够共享文件的环境。文件共享处理单元311提供例如在NFS(网络文件系统)、CIFS(公共因特网文件系统)、AFS(安德鲁文件系统)等等的协议中指定的功能。
文件系统312向客户端110提供与去往和来自由节点提供的逻辑卷(LU)管理的文件(或目录)的I/O相关的功能。文件系统312例如基于FAT(文件分配表)、NTFS、HFS(分级文件系统)、ext2(第二扩展文件系统)、ext3(第三扩展文件系统)、ext4(第四扩展文件系统)、UDF(通用盘格式)、HPFS(高性能文件系统)、JFS(日志文件系统)、UFS(Unix文件系统)、VTOC(卷内容表)、XFS等等。
例如,数据操作请求接收单元313接收请求以执行与诸如为客户端110的客户端相关的任务(此后,称作数据操作请求)。任务可以包括诸如为复制开始请求、对复制文件的更新请求、对复制文件的引用请求、同步请求、对元数据的访问请求、对文件实体的引用请求、唤回请求、对树状(stubbed)文件实体的更新请求、创建用户、添加物理盘、去除物理盘、配置逻辑单元等等的操作。
树状意味着文件(或目录)中的数据的元数据由节点维持,而文件(或目录)中的数据的实体不由存储设备33存储或管理。当节点130接收数据I/O请求以致要求树状文件(或树状目录)的实体时,向相应的存储设备33发送(回写,其在此后称作唤回)文件(或目录)的实体。
数据复制/迁移处理单元314发送和接收控制信息(包括标志(flag)和表格)并且在节点130与集群100中的其他节点之间传送数据(包括文件的元数据和实体)并且管理与数据复制/迁移相关联的各种信息。
图10中所示的内核/驱动器318通过执行形成操作系统的软件的内核模块和驱动器模块来实现。内核模块包括用于实现用于在节点130中执行的软件的诸如为进程管理、进程调度、管理存储区域、处理来自硬件的中断请求等等的操作系统的基本功能的程序。驱动器模块包括用于允许内核模块与配置节点130、以及耦合到节点130时所使用的外围设备的硬件进行通信的程序。
当访问存储在存储设备33的逻辑存储区域中的文件时(文件被更新(Write、Update)、文件被读取(Read)、文件被打开(Open)、文件被关闭(Close)等),图10中所示的文件访问日志获取单元317在向信息添加时间戳之后在任务日志335中存储示出访问的细节(历史)的信息(此后,称作访问日志),时间戳基于从定时器37获取的日期/时间信息。另外,诸如为添加存储、移除存储等的附加的任务与时间戳被维持在任务日志335中。除此之外,存储在任务日志335中的任务被顺序布置以使得任务日志335形成在集群中启动的所有任务的队列。
分布式弹性工作队列
在图1中所示的集群100中,每个节点负责处理向其自身分配的任务。根据本发明的一个实施方式,节点被分配通用唯一标识符(UUID),该通用唯一标识符使每个节点能够在集群内的通信期间向集群中的其他节点标识其自身。图11A示出了存储节点和它们的对应的UUID的管理表。集群100中的每个节点维护管理表,如图11A中所示以使得维护在其中的UUID列表能够被引用,以用于与其他节点通信。
集群中的每个节点维护如图11B中所示的任务日志335以用于跟踪已经由集群中的节点执行以及已经被请求由集群中的节点执行的任务。在任务日志335中,每个任务与一个或多个UUID、其他节点标识符、任务状态、任务的开始时间、以及任务的结束时间相对应地存储。在某些实施方式中,还可以存储其他任务相关的信息,诸如节点接收到任务的时间、哪个客户端发送的任务等。在集群内发送的每个任务包括至少一个UUID,其用于标识将执行相应的任务的该一个或多个节点。通过维护任务日志335使得每个任务与标识哪个节点应该执行任务的UUID对应地存储,在节点经历故障的情况中,故障节点能够在从故障中恢复之后针对一个或多个节点的任务日志335而查询集群,以确定需要重新开始的任何任务或者在故障期间错过的任何任务。
图13示出了根据本发明的实施方式的UUID分配过程。在步骤601处,初始化节点。例如,当在节点上安装操作软件时初始化节点。在初始化期间或者在初始化之后很短的时间、并且优选地在节点尝试与集群通信之前,在步骤602处,操作软件随机地生成用于标识集群内的相应的节点的UUID。在步骤603处,一旦节点具有向集群100标识自身的UUID,则向集群100添加该节点。作为例子,可以通过将节点连接到通信网络180来向集群100添加该节点。在步骤604处,已经生成UUID并且连接到集群的节点向集群通知其UUID。因此,可操作并且在线的集群中的每个节点应该优选地已经接收到已经刚刚添加到集群中的节点的UUID并且更新了其相应的UUID列表以反映将该节点到集群的添加。
当在节点处接收到任务时,该任务包括将执行任务的(一个或多个)节点的(一个或多个)UUID,更新任务日志335以反映接收到任务。每个节点如图14中所示地对每个接收到的任务执行任务执行进程。图12示出了经由通信网络180接收任务的节点的抽象框图。(例如,由信道板11提供的)一个或多个网络层1201传递任务到节点。在步骤701处,从连接到集群100的客户端接收任务。在某些实施方式中,从客户端接收的任务将包括标识将执行任务的一个或多个节点的信息。在其他实施方式中,从客户端接收的任务将不指定哪一个或多个节点将执行任务,并且接收任务的节点将需要向集群分配任务。在步骤702处,接收任务的节点分配将执行任务的节点(例如,目标节点)的UUID。如果客户端已经指定哪些节点将执行任务,则流程能够从步骤701直接进行到步骤703,而跳过步骤702。在步骤703处,包括将执行任务的节点的UUID的任务消息被广播给集群。集群的节点在步骤704处接收广播任务消息。在步骤705处,每个节点确定所接收的任务是否包括与节点的UUID匹配的UUID(例如,任务是否已经被分配给节点)。如果任务还没有被分配给节点,则节点等待接收下一任务消息。如果任务已经被分配给节点,则在步骤706处,节点将把任务放入到其中任务将被执行的任务队列1202,并且在(例如,由处理器板12或者虚拟机310提供的)已经由任务执行引擎层1203执行任务之后将向集群广播任务的完成。例如,在图10中所示的实施方式中,每个虚拟机310设置有包括任务队列1202的数据操作请求接收单元313,该任务队列1202用于保持将被执行的任务。集群中的每个节点在接收到任务被完成的通知之后,将对应地更新其相应的任务日志335。除此之外,在某些实施方式中,节点将向集群通知何时开始执行任务,并且集群中的每个节点将对应地更新任务的开始时间的其相应的任务日志335。
如之前提及的,在某些例子中,节点可能经历可能引起故障节点不能接收任务消息、不能完成在执行的任务、或者两者的故障。图15示出了用于恢复错过的任务、重新开始未完成的任务或两者的根据本发明的实施方式的重新开始过程。在步骤801处,节点从故障中恢复并且开始正常操作(例如,从故障中恢复)。接下来,在步骤802处,恢复的节点向集群查询在节点的故障时段期间(例如,当节点由于故障而不能接收任务消息的时间窗口)广播的任务。例如,如果节点能够从其任务队列1202或者任务日志335中确定故障的时段,则集群中的其他节点能够提供在对应于故障时段的时间期间操作的节点的任务日志335的一部分。备选地,节点能够请求具有比恢复的节点的任务日志335中最后接收的任务晚的时间戳的所有任务消息。然而,应该对本领域技术人员显而易见的,之前的方法仅仅是示例并且从集群中的非故障节点中恢复任务日志335的其他方法可以替代地被实现。
在步骤803处,集群中的节点响应于恢复的节点并且提供与恢复的节点的故障周期相匹配的任务的列表。在步骤804处,恢复的节点接着编译错过的任务消息的列表并且检查错过的任务消息以确定恢复的节点的UUID是否存储于错过的任务消息中。如果任何错过的任务消息指向恢复的节点,则恢复的节点为了执行错过的任务而将其添加到任务的列表。另外,恢复的节点应该优选地检查其自身的任务日志335并且重新开始已经标记为开始但是没有完成的任何任务以避免由于故障引起的任何错误处理。在步骤805处,恢复的节点将任务置于任务队列1202中并且开始执行已经错过的任何任务和/或由于故障而没有完成的任何任务。在步骤805中,在某些实施方式中,以时间顺序执行任务可以是优选的。
通过如上所述地在每个节点中构造和维持UUID列表和任务日志,任务的管理变得分散并且节点中的故障将不过度影响集群中的剩余者中的任务的处理。另外,单个管理节点还可能经历如下故障的实例,该故障的实例将不利地影响依赖于用于管理集中式任务日志的管理节点的所有其他节点的恢复,此时,故障节点不需要依赖于上述那样的管理节点就能够确定在节点不可操作时已定义的任何任务(通过针对这样的信息而查询集群中的其他节点而确定)(P24或0062)。
虚拟机IP地址管理
如图10中所示,在本发明的某些实施方式中,节点130可以执行基于虚拟机配置信息331的一个或多个虚拟机310,并且虚拟机由管理程序305主控。在图10中,每个虚拟机310与通过管理程序而主控虚拟机的节点隔离。从节点的角度,虚拟机310表现为由管理程序运行的不透明的过程。从虚拟机的角度,管理程序表现为物理硬件资源。因此,不同于管理程序305,没有节点自身运行的过程与虚拟机310运行的过程直接交互的机制,因为虚拟机的所有的通信发生在网络接口上。
管理程序305依赖于虚拟机配置信息331来配置每个虚拟机310。虚拟机配置信息331由主控虚拟机310的节点130来设置。虚拟机配置信息331包括特定于每个虚拟机310实例的MAC地址。为了虚拟机310建立网络连接性,必须提前配置已知IP地址(例如,IPv4)。
如在图16中所示的,用于虚拟机的MAC地址为48比特并且用于虚拟机的IP地址以MAC地址的最低有效的后32比特来编码。因此,当管理程序在配置虚拟机310和确定虚拟机310的MAC地址时引用虚拟机配置信息331时,虚拟机310的IP地址还将被同时指定。例如,如果被分配的MAC地址为“00:00:C0:A8:0A:05”,则十六进制IPv4地址将在其中被编码为“C0:A8:0A:05”并且十进制等同值为“192.168.10.5”。
如果IP地址表在节点主控一个或多个虚拟机之前被指定给该节点,IP地址表(例如,存储在节点的存储器33中)的IP地址能够如上所解释地被编码到MAC地址中并且存储在虚拟机配置信息331中。因而,如图17中所示,当虚拟机310随后被配置时,通过管理程序,使用经编码的MAC地址作为管道,该虚拟机310的IP地址被从节点直接传递给虚拟机。因此,MAC地址和在其中编码的IP地址能够如图18中所示地从管理程序层传递到虚拟机310。
图19示出了根据本发明的一个实施方式的配置过程。在步骤1901处,被分派(allocate)在集群100中以用于向虚拟地址310分配的IP地址被编码到MAC地址中并且存储在将主控虚拟机310的一个或多个节点上的虚拟机配置信息331中。在步骤1902处,节点中相应的一个节点接收用以命令节点开启虚拟机的任务。在接收任务以开启虚拟机之后,在步骤1903处,节点根据虚拟机配置信息331来配置虚拟机310,该虚拟机配置信息331包括对被分配用于由虚拟机使用的IP地址进行了编码的MAC地址。例如,在本发明的一个实施方式中,虚拟机配置信息331包括多个.xml文件,该多个.xml文件中的每个定义虚拟机实例。在每个.xml文件中,相应的虚拟机定义的一部分为对适于在网络上使用的IP地址进行了编码的MAC地址(例如,配置成避免网络中的地址冲突)。在步骤1904处,被配置的虚拟机从由管理程序305提供给该虚拟机的经编码的MAC地址中解码IP地址。在步骤1905处,虚拟机310使用经解码的IP地址来开始在网络180上通信。例如,根据本发明的其他实施方式,虚拟机310能够开始启动集群中的其他节点上的任务。因此,通过重复图19中所示的过程,能够使用已经提前为网络180预定义的IP地址来在节点上配置多个虚拟机。
带内数据位置
根据图1中所示的集群100的各种实施方式,提供横跨集群并且不物理地关联到集群内的特别的节点或者节点的子集的文件系统。在其他实施方式中,可以以横跨集群内的节点的子集的方式提供该文件系统。在再其他实施方式中,可以在集群中提供多个文件系统,其横跨集群或者横跨集群的节点的子集。因此,在这样的配置中,集群能够以若干尺寸缩放。
在本发明的这样的实施方式中,为每个文件扩展文件系统命名空间以包括针对文件系统中的每个文件的“.mapping”或者其他这样的扩展。图20为根据本发明的一个实施方式的图示文件系统和文件属性的框图。在跨集群提供的文件系统1200中,挂载点1210提供对包括一个或多个目录的挂载文件系统1220的访问。子目录1230包括名为“FILE1234”、具有诸如为.txt、.mp3等等的对应于其文件类型的文件扩展。文件系统1200中的文件1250还具有形成文件对1240的对应的“.mapping”扩展文件1260。文件1250还具有关联的元数据1270。在这一示例中,元数据包括诸如为大小、所有者标识符、位置数据、创建时间、修改时间、以及访问时间的文件属性1270。特别地,如下,位置数据安排在具有“.mapping”扩展的映射文件1260中。
图21示出了文件1250(例如,“FILE1234.***”)和映射文件1260(例如,“FILE1234.mapping”)的当它们彼此相关时的结构。由于在集群上提供文件系统1200,因此存储在子目录1230中的文件1250以数据段存储在多个节点上,作为大小为64MB的“分块”。在本发明的各种实施方式中,针对文件1250的每个分块,如在图21中所示,集群100中的节点将存储分块(例如,分块#1),而另一节点将存储不同的分块(例如,分块#2),以下以此类推。由于每个节点根据UUID而在集群100内是已知的,因此在某些实施方式中,每个分块的存储位置将不同。因为文件系统在集群上延伸,因此分块的存储位置可以驻留在集群中的不同的节点处。
在图21中,映射文件1260通过“.mapping”扩展而区别于文件1250。然而,任何可用文件扩展可以用于映射文件。例如,图22示出了另一可选的实施方式,其中文件1250具有路径名“/my/data/archive/file1234”以及映射文件1260具有路径名“my/data/archive/file1234::LOCATION”。根据图22中所示的实施方式,映射文件1260能够通过使用对映射文件的路径名进行指定的标准文件协议来访问。
文件系统1200或者备选地文件系统1220的命名空间被扩展以容纳其上存储的每个文件的映射文件1260。如图21中所示,文件1250的每个分块1251具有映射文件1260中的对应的分块1252。映射文件1260中的每个分块1252为存储与其关联的分块1251的位置数据的、高度稀疏的分块。因而,如图21中所示,映射文件1260中的数据的第一分块1252包含指定对文件1250的第一分块1251进行存储的一个或多个节点的位置数据1253,映射文件1260中的数据的第二分块1252包含指定对文件1250的第二分块1251进行存储的(一个或多个)节点的位置数据1253,等等。每个分块1252为由位置数据1253和空白区域1254构成的高度稀疏的数据的区域。例如,在图21中所示的实施方式中,空白区域1254被指示为“空”。
另外,图23示出了其中针对文件1250更新文件属性1270的处理流程。在步骤2301处,对存储在集群中的文件1250执行任务。一旦任务被执行,在步骤2302处,更新文件1250的文件属性1270,以反映任务的执行对文件1250造成的任何变化。例如,任务可能带来文件1250的大小变化并且该变化应该通过更新文件属性1270中的大小信息而反映在文件属性1270中。在步骤2303处,在文件属性1270已经被更新之后,向集群通知任务的完成。
通过构造文件系统以扩展其命名空间使得每个文件1250具有对应的映射文件1260,客户端110能够使用与用于正常访问存储在集群的文件系统上的文件1250的协议相同的协议来访问映射文件。参照图21,如果客户端使用诸如为NFS(例如,NFSv3.1)的远程文件协议来访问存储在集群中的文件1250,则客户端还能够使用同样远程文件协议来访问映射文件1260。换而言之,客户端能够使用“带内”通信来访问文件系统的映射文件1260,而不需要使用与用于访问文件1250的远程文件协议不同的协议或技术(例如,“带外”)。照此,客户端能够使用与将用于访问数据自身的机制相同的机制来访问位置信息。
图24示出了根据本发明的各种实施方式的客户端访问映射文件1260的处理流程。例如,如果客户端想要确定集群100中的文件1250的第三分块1251的(一个或多个)位置,与在步骤2401中同样地,客户端将打开映射文件1260并且搜寻偏移1256。根据图21中的实施方式,每个分块1251大小为64MB并且客户端将指定映射文件1260中的128MB的搜寻以取读对应于文件1250的第三分块1251的位置数据1253。位置数据可以为例如1K的数据块。在这样的情况中,接收文件访问请求和搜寻的节点将访问映射文件1260,搜寻至指定的偏移并且读取是与指定偏移对应的分块的位置数据1253的、1K大小的数据段。
根据本发明的各种实施方式,如在步骤2402中的,从客户端接收对映射文件1260的访问和指定的偏移1256的节点将生成包含位置数据1253的响应,该位置数据1253指定对文件1250的对应的分块1251进行存储的集群中的位置。在图21中所示的实施方式中,节点根据映射文件1260的位置数据1253生成响应1255。如图21中所示,响应1255被构造为.xml文件,其包括文件1250的文件名(例如,文件系统中的路径)、文件1250中的分块1251的偏移、分块1251的长度、以及物理地存储指定数据的(一个或多个)节点的(一个或多个)位置。在图21中,位置由存储指定分块的服务器的IP地址指定。
与集群100进行通信的客户端在步骤2403处接收响应1255并且能够如在步骤2405中直接向在响应1255中指定的节点发送与存储在其上的分块1251相关联的任务。照此,客户端能够命令响应1255中的节点以分块1251执行任务。通过允许客户端使用带内通信来访问数据位置信息,任务能够在本地存储数据的节点上直接启动,而不是使一个或多个中间节点按照客户端行为充当启动任务的代理。结果,在连接集群的网络上的负载能够减少并且在每个节点与其本地存储区域之间的相对更大的可用带宽能够被权衡以使得任务在本地存储的数据上执行,而不是使用代理来在远离给定节点的数据上进行操作。
在与带内数据位置相关的之前的描述中,已经描述了位置数据存储在映射文件1260中的实施方式。根据本发明的其他实施方式,与文件1250有关的其他元数据能够代替位置数据或者与位置数据组合地存储在映射文件1260中。如图20中所示,维持了文件1250的文件属性1270。因而,诸如为大小、所有者标识符、创建时间、修改时间以及访问时间的其他文件属性1270能够与位置数据1253一起或者替代位置数据1253存储在映射文件1260中。除此之外,图21中所示的实施方式生成.xml响应1255。然而,响应1255能够以不同于.xml响应的其他方式构造,诸如通过使用JavaScript对象表示(JSON)、自定义键值编码等等。
根据本发明的各种实施方式,跟随图25中所示的处理流程来确定集群中的(一个或多个)具体数据位置并且命令任务在具体数据位置处对具体数据启动。在步骤2501处,客户端请求集群中的节点访问对应于特别的文件1250的映射文件1260并且客户端使用用于访问特别的文件1250的远程文件协议来指定偏移。虽然图25示出了客户端请求节点访问映射文件1260,但是在可选的实施方式中,节点能够引用映射文件而无需来自客户端的引导以便在集群中的另一节点处启动任务。在步骤2502处,节点接收请求并且搜寻映射文件1260中的指定的偏移并且从映射文件1260中读取位置数据1253。在步骤2503处,由节点生成包括位置数据和/或与其关联的其他元数据的响应1255,并且节点向客户端发送该响应。在步骤2504处接收响应1255,客户端读取位置数据。根据位置数据1253,客户端接着能够在步骤2506处在与响应1255中包括的位置数据1253相关联的目标节点上启动任务。例如,如图14中所示,在步骤2506中在目标节点上启动的任务可以触发用于执行接收到的任务的处理流程。
将意识到这里所描述的实施方式可以例如经由诸如为程序的存储在一个或多个计算机可读存储设备上并且由计算设备执行的计算机可执行指令或代码来实现。这样的存储设备排除信号自身。一般而言,程序包括执行特别的任务或者实现特别的抽象数据类型的例程、对象、组件、数据结构等等。如这里所使用的,术语“程序”可以暗含单个程序或者一起作用的多个程序,并且可以用于表示应用、服务、或任何其他类型或种类的程序。同样地,如这里所使用的术语存储设备、“计算机”、以及“计算设备”包括电执行一个或多个程序的任何设备,包括一起作用的两个或多个这样的设备。
应该理解到这里所描述的配置和/或方法本质上是示例性的,并且理解到这些具体实施方式或示例不被当做限制意义,因为大量的变型是可能的。这里所描述的具体例程或方法可以代表任何数量的处理策略中的一个或多个。照此,阐述的各种动作可以以阐述的顺序、以其他顺序、并行来执行,或者在某些情况中被省略。同样地,上述处理的顺序可以改变。
本公开内容的主题包括各种处理、系统和配置、以及其他特征、功能、动作、和/或这里所公开的性质的全部新颖的并且非显而易见的组合和子组合,以及其任何和全部等价物。
Claims (26)
1.一种非瞬态计算机可读介质,在其上存储有可执行指令,其中所述可执行指令使具有多个节点的分布式系统执行一种方法,所述方法包括:
向所述多个节点中的每个节点分配唯一标识符;
从所述节点中的一个节点向所述分布式系统广播包括所述节点的一个或多个唯一标识符的任务;
在每个节点处存储广播的所述任务;
针对所述节点中的每个节点,如果所述任务中的所述一个或多个唯一标识符包括相应的所述节点的所述唯一标识符则执行所述任务;以及
从执行所述任务的每个节点向所述分布式系统广播完成消息。
2.根据权利要求1所述的非瞬态计算机可读介质,其中所述唯一标识符为通用唯一标识符(UUID)。
3.根据权利要求1所述的非瞬态计算机可读介质,所述方法进一步包括:
在所述节点中的一个节点处从连接到所述分布式系统的客户端接收所述任务。
4.根据权利要求1所述的非瞬态计算机可读介质,所述方法进一步包括:
如果所述任务中的所述一个或多个唯一标识符包括相应的所述节点的所述唯一标识符,则在相应的所述节点处执行所述任务之前将所述任务放入相应的所述节点的队列中。
5.根据权利要求1所述的非瞬态计算机可读介质,其中每个节点在日志中存储广播的所述任务与时间戳。
6.根据权利要求5所述的非瞬态计算机可读介质,所述方法进一步包括:
如果所述任务中的所述一个或多个唯一标识符包括相应的所述节点的所述唯一标识符,则当相应的所述节点开始执行所述任务时,广播开始消息。
7.根据权利要求6所述的非瞬态计算机可读介质,其中每个节点与所述开始消息中指示的时间和所述完成消息中指示的时间相对应地存储广播的所述任务。
8.根据权利要求1所述的非瞬态计算机可读介质,其中,所述节点中的第一节点由于故障而不能接收广播的所述任务。
9.根据权利要求8所述的非瞬态计算机可读介质,所述方法进一步包括:
在所述第一节点已经从所述故障中恢复之后,在所述第一节点处从所述节点中的一个或多个节点接收广播的所述任务;以及
在所述第一节点已经从所述故障中恢复之后,在所述第一节点处存储广播的所述任务。
10.一种非瞬态计算机可读介质,在其上存储有可执行指令,其中所述可执行指令使处理器执行分配IP地址的方法,所述方法包括:
在MAC地址中编码IP地址;
配置虚拟机以具有经编码的所述MAC地址;
从经编码的所述MAC地址中解码所述IP地址;以及
向所述虚拟机分配经解码的所述IP地址。
11.根据权利要求10所述的非瞬态计算机可读介质,其中所述IP地址包括在所述MAC地址的低部分。
12.根据权利要求10所述的非瞬态计算机可读介质,所述方法进一步包括:
在用于配置所述虚拟机的配置文件中存储经编码的所述MAC地址。
13.根据权利要求10所述的非瞬态计算机可读介质,其中所述IP地址为IPv4地址。
14.根据权利要求10所述的非瞬态计算机可读介质,其中管理程序在主机上配置所述虚拟机。
15.根据权利要求14所述的非瞬态计算机可读介质,其中所述主机无法经由所述管理程序与所述虚拟机通信。
16.根据权利要求14所述的非瞬态计算机可读介质,所述方法进一步包括:
由所述主机将多个IP地址编码到多个MAC地址中;以及
选择经编码的所述MAC地址中的一个经编码的MAC地址作为用于由所述管理程序配置所述虚拟机的经编码的MAC地址。
17.根据权利要求10所述的非瞬态计算机可读介质,所述方法进一步包括:
由所述虚拟机使用经编码的所述IP地址来在网络上进行通信。
18.一种非瞬态计算机可读介质,在其上存储有可执行指令,其中所述可执行指令使得执行在分布式系统中的多个节点上定位存储在文件系统中的文件的一部分的方法,所述方法包括:
访问映射文件并且指定所述映射文件的偏移;
在所述映射文件的所述偏移处读取数据;以及
在由所述映射文件的所述偏移处的所述数据规定指定的存储所述文件的所述部分的节点处启动任务,
其中所述映射文件包括节点的位置,该节点的位置存储在所述节点上的所述文件系统中的所述文件的多个部分,
其中所述映射文件具有与所述文件的多个部分对应的多个部分,以及
其中访问所述映射文件时使用用于访问所述文件的所述多个部分中的数据的机制,并且所述映射文件的所述数据为所述文件的元数据。
19.根据权利要求18所述的非瞬态计算机可读介质,其中,所述映射文件的所述多个部分包括位置数据,其中所述位置数据以间隔存储在所述映射文件中。
20.根据权利要求19所述的非瞬态计算机可读介质,其中,所述映射文件中的每个位置数据指定其中所述文件中的所述多个部分中的对应的部分在所述节点之中所存储的位置。
21.根据权利要求19所述的非瞬态计算机可读介质,其中在所述映射文件中与所述位置数据一起以间隔存储多个附加的元数据,并且所述映射文件中的每个附加的元数据指定所述文件的所述多个部分中的对应的部分的信息。
22.根据权利要求18所述的非瞬态计算机可读介质,其中所述偏移为所述映射文件中的所述间隔的倍数。
23.根据权利要求18所述的非瞬态计算机可读介质,其中所述文件系统为网络文件系统(NFS)。
24.根据权利要求18所述的非瞬态计算机可读介质,其中用于访问所述文件的所述多个部分中的数据的所述机制为网络文件系统(NFS)访问。
25.根据权利要求18所述的非瞬态计算机可读介质,所述方法进一步包括:
基于在所述映射文件的所述偏移处读取的所述数据来生成对访问所述映射文件的响应。
26.根据权利要求25所述的非瞬态计算机可读介质,其中所述响应为XML文件格式。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2013/001931 WO2014203023A1 (en) | 2013-06-19 | 2013-06-19 | Decentralized distributed computing system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105531675A true CN105531675A (zh) | 2016-04-27 |
CN105531675B CN105531675B (zh) | 2019-04-12 |
Family
ID=49551713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380078999.5A Active CN105531675B (zh) | 2013-06-19 | 2013-06-19 | 计算机存储介质、分布式系统及其控制方法、以及节点 |
Country Status (5)
Country | Link |
---|---|
US (4) | US9110719B2 (zh) |
EP (3) | EP2863308B1 (zh) |
JP (1) | JP6132980B2 (zh) |
CN (1) | CN105531675B (zh) |
WO (1) | WO2014203023A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688500A (zh) * | 2017-07-26 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN109298962A (zh) * | 2018-09-03 | 2019-02-01 | 中国平安人寿保险股份有限公司 | 定时任务的监控方法、计算机可读存储介质和终端设备 |
CN109614209A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、应用服务器及系统 |
CN110457281A (zh) * | 2019-08-14 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 数据处理方法、装置、设备及介质 |
CN110554834A (zh) * | 2018-06-01 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 文件系统数据访问方法和文件系统 |
CN110704185A (zh) * | 2019-09-20 | 2020-01-17 | 深圳市递四方信息科技有限公司 | 集群系统分片定时任务调度方法及集群系统 |
CN110704172A (zh) * | 2019-09-20 | 2020-01-17 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度方法及集群系统 |
CN110737520A (zh) * | 2019-09-20 | 2020-01-31 | 深圳市递四方信息科技有限公司 | 集群系统调度控制定时任务的方法及集群系统 |
CN110750343A (zh) * | 2019-09-20 | 2020-02-04 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度控制方法及集群系统 |
CN111274205A (zh) * | 2020-01-07 | 2020-06-12 | 北京松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN111367202A (zh) * | 2018-12-26 | 2020-07-03 | 华为技术有限公司 | 监控节点、系统和方法 |
CN117472530A (zh) * | 2023-10-25 | 2024-01-30 | 上海宽睿信息科技有限责任公司 | 一种基于集中管理的数据智能调度方法及系统 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9576039B2 (en) | 2014-02-19 | 2017-02-21 | Snowflake Computing Inc. | Resource provisioning systems and methods |
US9965185B2 (en) * | 2015-01-20 | 2018-05-08 | Ultrata, Llc | Utilization of a distributed index to provide object memory fabric coherency |
CN106161384A (zh) * | 2015-04-15 | 2016-11-23 | 伊姆西公司 | 用于在移动设备中提供对数据的安全访问的方法和系统 |
US20160321318A1 (en) * | 2015-04-30 | 2016-11-03 | Hewlett-Packard Development Company, L.P. | Service provider dependency mapping |
CN104935657A (zh) * | 2015-06-15 | 2015-09-23 | 清华大学深圳研究生院 | 主动推送信息的方法和嵌入式节点操作系统 |
JP2018524718A (ja) | 2015-06-25 | 2018-08-30 | ガンブロ・ルンディア・エービーGambro Lundia Ab | 分散データベースを有する医療装置システム及び方法 |
US20170024224A1 (en) * | 2015-07-22 | 2017-01-26 | Cisco Technology, Inc. | Dynamic snapshots for sharing network boot volumes |
US20170091016A1 (en) * | 2015-09-30 | 2017-03-30 | Sap Portals Israel Ltd | Continual execution in a computing system |
US9985867B2 (en) * | 2015-12-11 | 2018-05-29 | Cisco Technology, Inc. | Optimizing EVPN for data centers with redundant top-of-rack deployments |
CN108475212B (zh) * | 2015-12-17 | 2021-12-31 | 起元技术有限责任公司 | 使用动态分区处理数据的方法、系统和计算机可读介质 |
CN106095618A (zh) * | 2016-06-06 | 2016-11-09 | 北京中油瑞飞信息技术有限责任公司 | 数据操作的方法和系统 |
US10862821B1 (en) * | 2016-06-16 | 2020-12-08 | Amazon Technologies, Inc. | Managing processor load in a multi-tenant environment |
US11240305B2 (en) | 2016-07-28 | 2022-02-01 | At&T Intellectual Property I, L.P. | Task allocation among devices in a distributed data storage system |
US10719353B2 (en) * | 2016-09-23 | 2020-07-21 | Sap Se | Handling failovers at one or more nodes in a distributed database system |
US10264056B2 (en) * | 2016-12-08 | 2019-04-16 | Bank Of America Corporation | Multicomputer processing of an event request from an event origination device with centralized event orchestration |
US11082523B2 (en) | 2017-02-09 | 2021-08-03 | International Business Machines Corporation | System, method and computer program product for a distributed virtual address space |
US10866963B2 (en) | 2017-12-28 | 2020-12-15 | Dropbox, Inc. | File system authentication |
US11797326B2 (en) * | 2018-01-22 | 2023-10-24 | Vmware, Inc. | External communication with packaged virtual machine applications without networking |
US11579978B2 (en) * | 2018-02-14 | 2023-02-14 | Rubrik, Inc. | Fileset partitioning for data storage and management |
GB2571987B (en) * | 2018-03-15 | 2022-05-25 | Cloudreach Europe Ltd | Processing task scheduling |
US10963356B2 (en) | 2018-04-18 | 2021-03-30 | Nutanix, Inc. | Dynamic allocation of compute resources at a recovery site |
CN110609866B (zh) * | 2018-06-15 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 用于协商事务的方法、设备和计算机程序产品 |
US11620191B2 (en) * | 2018-10-01 | 2023-04-04 | Rubrik, Inc. | Fileset passthrough using data management and storage node |
CN111193600B (zh) * | 2018-11-14 | 2023-04-07 | 杭州海康威视系统技术有限公司 | 一种接管服务的方法、装置及系统 |
US10846079B2 (en) | 2018-11-14 | 2020-11-24 | Nutanix, Inc. | System and method for the dynamic expansion of a cluster with co nodes before upgrade |
US10922272B2 (en) * | 2019-01-28 | 2021-02-16 | EMC IP Holding Company LLC | Providing data across multiple clusters in a single namespace |
US11347696B2 (en) * | 2019-02-19 | 2022-05-31 | Oracle International Corporation | System for transition from a hierarchical file system to an object store |
US11354154B2 (en) * | 2019-08-20 | 2022-06-07 | Red Hat, Inc. | Timer task ownership determination in a cluster based on a common cluster member selection algorithm |
CN111090519B (zh) * | 2019-12-05 | 2024-04-09 | 东软集团股份有限公司 | 任务执行方法、装置、存储介质及电子设备 |
US11609776B1 (en) * | 2019-12-23 | 2023-03-21 | Cisco Technology, Inc. | Elastic internet protocol (IP) address for hypervisor and virtual router management in a branch environment |
CN112000618B (zh) * | 2020-08-07 | 2022-06-07 | 北京浪潮数据技术有限公司 | 集群节点的文件变动管理方法、装置、设备及存储介质 |
CN112087512A (zh) * | 2020-09-08 | 2020-12-15 | 浙江惠瀜网络科技有限公司 | 一种自动化扩展材料下载任务的方法 |
US20230130893A1 (en) * | 2021-10-27 | 2023-04-27 | EMC IP Holding Company LLC | Methods and systems for seamlessly configuring client nodes in a distributed system |
US11922071B2 (en) | 2021-10-27 | 2024-03-05 | EMC IP Holding Company LLC | Methods and systems for storing data in a distributed system using offload components and a GPU module |
US20230127387A1 (en) * | 2021-10-27 | 2023-04-27 | EMC IP Holding Company LLC | Methods and systems for seamlessly provisioning client application nodes in a distributed system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030050966A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method and system for redirecting data requests in peer-to-peer data networks |
US20040064568A1 (en) * | 2002-09-26 | 2004-04-01 | Arora Akhil K. | Presence detection using distributed indexes in peer-to-peer networks |
US20050080858A1 (en) * | 2003-10-10 | 2005-04-14 | Microsoft Corporation | System and method for searching a peer-to-peer network |
US20100329268A1 (en) * | 2008-02-13 | 2010-12-30 | Telefonaktiebolaget L M Ericsson (Publ) | Overlay Network Node And Overlay Networks |
US20120197962A1 (en) * | 2009-10-21 | 2012-08-02 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for locating services in a peer-to-peer network |
CN102783129A (zh) * | 2009-10-08 | 2012-11-14 | 电子湾有限公司 | 用于处理在应用程序接口处接收的请求的系统和方法 |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62187958A (ja) * | 1986-02-13 | 1987-08-17 | Fujitsu Ltd | マルチプロセツサ実行方式 |
JP4080599B2 (ja) | 1998-06-17 | 2008-04-23 | 富士通株式会社 | 通信制御装置およびマルチキャスト対応lanに適用される通信制御方法 |
US6401215B1 (en) | 1999-06-03 | 2002-06-04 | International Business Machines Corporation | Resynchronization of mirrored logical data volumes subsequent to a failure in data processor storage systems with access to physical volume from multi-initiators at a plurality of nodes |
US6356801B1 (en) * | 2000-05-19 | 2002-03-12 | International Business Machines Corporation | High availability work queuing in an automated data storage library |
US7539746B2 (en) * | 2001-02-01 | 2009-05-26 | Emc Corporation | Highly available transaction failure detection and recovery for electronic commerce transactions |
US7171476B2 (en) * | 2001-04-20 | 2007-01-30 | Motorola, Inc. | Protocol and structure for self-organizing network |
US7222257B1 (en) | 2001-06-12 | 2007-05-22 | Emc Corporation | Method and system for repairing a redundant array of disk drives |
US6910098B2 (en) | 2001-10-16 | 2005-06-21 | Emc Corporation | Method and apparatus for maintaining data coherency |
US6763436B2 (en) | 2002-01-29 | 2004-07-13 | Lucent Technologies Inc. | Redundant data storage and data recovery system |
US7392421B1 (en) | 2002-03-18 | 2008-06-24 | Symantec Operating Corporation | Framework for managing clustering and replication |
US7024586B2 (en) | 2002-06-24 | 2006-04-04 | Network Appliance, Inc. | Using file system information in raid data reconstruction and migration |
US7395536B2 (en) * | 2002-11-14 | 2008-07-01 | Sun Microsystems, Inc. | System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment |
US6907507B1 (en) | 2002-12-19 | 2005-06-14 | Veritas Operating Corporation | Tracking in-progress writes through use of multi-column bitmaps |
US6978354B1 (en) | 2002-12-20 | 2005-12-20 | Veritas Operating Corporation | Method for creating a virtual data copy of a volume being restored |
US6910111B1 (en) | 2002-12-20 | 2005-06-21 | Veritas Operating Corporation | Volume restoration using an accumulator map |
US7895338B2 (en) | 2003-03-18 | 2011-02-22 | Siemens Corporation | Meta-search web service-based architecture for peer-to-peer collaboration and voice-over-IP |
US7178055B2 (en) | 2003-06-06 | 2007-02-13 | Hewlett-Packard Development Company, L.P. | Method and system for ensuring data consistency after a failover event in a redundant data storage system |
US8689043B1 (en) | 2003-06-30 | 2014-04-01 | Symantec Operating Corporation | Fast failover with multiple secondary nodes |
US20050108368A1 (en) | 2003-10-30 | 2005-05-19 | Aditya Mohan | Method and apparatus for representing data available in a peer-to-peer network using bloom-filters |
US7225307B2 (en) | 2004-05-04 | 2007-05-29 | International Business Machines Corporation | Apparatus, system, and method for synchronizing an asynchronous mirror volume using a synchronous mirror volume |
US8275951B2 (en) | 2004-06-10 | 2012-09-25 | Hewlett-Packard Development Company, L.P. | Local bitmaps for an array of redundant storage devices |
US7805407B1 (en) | 2004-06-16 | 2010-09-28 | Oracle America, Inc. | System and method for dynamic configuration of replicated database servers |
US7844691B2 (en) | 2004-12-30 | 2010-11-30 | Xstor Systems, Inc. | Scalable distributed storage and delivery |
US7617259B1 (en) | 2004-12-31 | 2009-11-10 | Symantec Operating Corporation | System and method for managing redundant storage consistency at a file system level |
US8401997B1 (en) | 2005-06-30 | 2013-03-19 | Symantec Operating Corporation | System and method for replication using consistency interval markers in a distributed storage environment |
US7603581B2 (en) | 2006-03-17 | 2009-10-13 | International Business Machines Corporation | Remote copying of updates to primary and secondary storage locations subject to a copy relationship |
US7970835B2 (en) | 2006-04-04 | 2011-06-28 | Xerox Corporation | Peer-to-peer file sharing system and method using downloadable data segments |
US7929535B2 (en) | 2006-07-07 | 2011-04-19 | Qualcomm Incorporated | Geolocation-based addressing method for IPv6 addresses |
US8005022B2 (en) | 2006-07-20 | 2011-08-23 | Oracle America, Inc. | Host operating system bypass for packets destined for a virtual machine |
US7702953B2 (en) | 2007-01-04 | 2010-04-20 | International Business Machines Corporation | Storage management in cascaded replication of data |
US8498967B1 (en) | 2007-01-30 | 2013-07-30 | American Megatrends, Inc. | Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome |
US7685378B2 (en) | 2007-02-15 | 2010-03-23 | Hitachi, Ltd. | Methods and apparatus for adjusting a journal area for continuous data protection |
US20090006744A1 (en) | 2007-06-28 | 2009-01-01 | Cavallo Joseph S | Automated intermittent data mirroring volumes |
US7991972B2 (en) | 2007-12-06 | 2011-08-02 | International Business Machines Corporation | Determining whether to use a full volume or repository for a logical copy backup space |
CN101465786B (zh) * | 2007-12-18 | 2013-01-09 | 华为技术有限公司 | 一种资源转发的方法、网络实体及网络系统 |
GB0807990D0 (en) | 2008-05-02 | 2008-06-11 | Pace Micro Tech Plc | Peer to peer broadcast content synchronisation |
JP5325978B2 (ja) | 2008-05-20 | 2013-10-23 | トムソン ライセンシング | 複数の受信器において利用できるコンテンツマップの配信システム及び方法 |
US8015343B2 (en) | 2008-08-08 | 2011-09-06 | Amazon Technologies, Inc. | Providing executing programs with reliable access to non-local block data storage |
US9496620B2 (en) | 2013-02-04 | 2016-11-15 | Ubiquiti Networks, Inc. | Radio system for long-range high-speed wireless communication |
US20100333094A1 (en) * | 2009-06-24 | 2010-12-30 | Mark Restall | Job-processing nodes synchronizing job databases |
US9686353B2 (en) * | 2009-06-26 | 2017-06-20 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and node for locating objects in a peer-to-peer network |
CN101997759B (zh) * | 2009-08-10 | 2013-06-05 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
US8321648B2 (en) * | 2009-10-26 | 2012-11-27 | Netapp, Inc | Use of similarity hash to route data for improved deduplication in a storage server cluster |
JP5521595B2 (ja) | 2010-02-05 | 2014-06-18 | 富士通株式会社 | ストレージシステム及びストレージ制御方法 |
US20110225297A1 (en) * | 2010-03-11 | 2011-09-15 | International Business Machines Corporation | Controlling Access To A Resource In A Distributed Computing System With A Distributed Access Request Queue |
CN102130935A (zh) | 2010-08-05 | 2011-07-20 | 华为技术有限公司 | 数据获取方法和装置以及网络存储方法和设备 |
US8655955B2 (en) * | 2011-08-18 | 2014-02-18 | International Business Machines Corporation | Stream processing using a client-server architecture |
US8650365B2 (en) * | 2011-09-02 | 2014-02-11 | Compuverde Ab | Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes |
JP2013061700A (ja) * | 2011-09-12 | 2013-04-04 | Sony Corp | 情報処理装置、情報処理方法、記録媒体および情報処理システム |
US8549187B1 (en) | 2012-08-03 | 2013-10-01 | American Megatrends, Inc. | System and method of MAC address assignment using IP addresses |
-
2013
- 2013-06-19 CN CN201380078999.5A patent/CN105531675B/zh active Active
- 2013-06-19 JP JP2016520748A patent/JP6132980B2/ja not_active Expired - Fee Related
- 2013-06-19 EP EP14197207.5A patent/EP2863308B1/en active Active
- 2013-06-19 EP EP20140197198 patent/EP2863307A1/en not_active Withdrawn
- 2013-06-19 EP EP13786749.5A patent/EP2847678B1/en active Active
- 2013-06-19 WO PCT/IB2013/001931 patent/WO2014203023A1/en active Application Filing
-
2014
- 2014-11-07 US US14/535,850 patent/US9110719B2/en active Active
- 2014-11-17 US US14/542,760 patent/US9304821B2/en active Active
- 2014-11-17 US US14/542,756 patent/US9069784B2/en active Active
-
2016
- 2016-03-09 US US15/064,862 patent/US20160188628A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030050966A1 (en) * | 2001-09-13 | 2003-03-13 | International Business Machines Corporation | Method and system for redirecting data requests in peer-to-peer data networks |
US20040064568A1 (en) * | 2002-09-26 | 2004-04-01 | Arora Akhil K. | Presence detection using distributed indexes in peer-to-peer networks |
US20050080858A1 (en) * | 2003-10-10 | 2005-04-14 | Microsoft Corporation | System and method for searching a peer-to-peer network |
US20100329268A1 (en) * | 2008-02-13 | 2010-12-30 | Telefonaktiebolaget L M Ericsson (Publ) | Overlay Network Node And Overlay Networks |
CN102783129A (zh) * | 2009-10-08 | 2012-11-14 | 电子湾有限公司 | 用于处理在应用程序接口处接收的请求的系统和方法 |
US20120197962A1 (en) * | 2009-10-21 | 2012-08-02 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for locating services in a peer-to-peer network |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688500A (zh) * | 2017-07-26 | 2018-02-13 | 阿里巴巴集团控股有限公司 | 一种分布式任务处理方法、装置、系统及设备 |
CN110554834A (zh) * | 2018-06-01 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 文件系统数据访问方法和文件系统 |
CN109298962A (zh) * | 2018-09-03 | 2019-02-01 | 中国平安人寿保险股份有限公司 | 定时任务的监控方法、计算机可读存储介质和终端设备 |
CN109614209A (zh) * | 2018-10-26 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种任务处理方法、应用服务器及系统 |
CN109614209B (zh) * | 2018-10-26 | 2023-09-05 | 创新先进技术有限公司 | 一种任务处理方法、应用服务器及系统 |
CN111367202A (zh) * | 2018-12-26 | 2020-07-03 | 华为技术有限公司 | 监控节点、系统和方法 |
CN110457281A (zh) * | 2019-08-14 | 2019-11-15 | 北京博睿宏远数据科技股份有限公司 | 数据处理方法、装置、设备及介质 |
CN110750343A (zh) * | 2019-09-20 | 2020-02-04 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度控制方法及集群系统 |
CN110737520A (zh) * | 2019-09-20 | 2020-01-31 | 深圳市递四方信息科技有限公司 | 集群系统调度控制定时任务的方法及集群系统 |
CN110704172A (zh) * | 2019-09-20 | 2020-01-17 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度方法及集群系统 |
CN110704185A (zh) * | 2019-09-20 | 2020-01-17 | 深圳市递四方信息科技有限公司 | 集群系统分片定时任务调度方法及集群系统 |
CN110750343B (zh) * | 2019-09-20 | 2023-12-12 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度控制方法及集群系统 |
CN110737520B (zh) * | 2019-09-20 | 2024-03-12 | 深圳市递四方信息科技有限公司 | 集群系统调度控制定时任务的方法及集群系统 |
CN110704172B (zh) * | 2019-09-20 | 2024-03-12 | 深圳市递四方信息科技有限公司 | 集群系统定时任务调度方法及集群系统 |
CN110704185B (zh) * | 2019-09-20 | 2024-03-22 | 深圳市递四方信息科技有限公司 | 集群系统分片定时任务调度方法及集群系统 |
CN111274205A (zh) * | 2020-01-07 | 2020-06-12 | 北京松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN111274205B (zh) * | 2020-01-07 | 2024-03-26 | 北京小米松果电子有限公司 | 数据块访问方法及装置、存储介质 |
CN117472530A (zh) * | 2023-10-25 | 2024-01-30 | 上海宽睿信息科技有限责任公司 | 一种基于集中管理的数据智能调度方法及系统 |
CN117472530B (zh) * | 2023-10-25 | 2024-04-05 | 上海宽睿信息科技有限责任公司 | 一种基于集中管理的数据智能调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2016530598A (ja) | 2016-09-29 |
US20150089504A1 (en) | 2015-03-26 |
EP2847678B1 (en) | 2016-06-08 |
WO2014203023A1 (en) | 2014-12-24 |
JP6132980B2 (ja) | 2017-05-24 |
EP2863308A1 (en) | 2015-04-22 |
US20160188628A1 (en) | 2016-06-30 |
EP2863308B1 (en) | 2018-08-08 |
EP2863307A1 (en) | 2015-04-22 |
US9304821B2 (en) | 2016-04-05 |
US9110719B2 (en) | 2015-08-18 |
US9069784B2 (en) | 2015-06-30 |
US20150088882A1 (en) | 2015-03-26 |
EP2847678A1 (en) | 2015-03-18 |
CN105531675B (zh) | 2019-04-12 |
US20150074168A1 (en) | 2015-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105531675A (zh) | 分散型分布式计算系统 | |
US11716385B2 (en) | Utilizing cloud-based storage systems to support synchronous replication of a dataset | |
JP7419439B2 (ja) | データセット及び他の管理オブジェクトをクラウドベースのストレージシステムに同期複製すること | |
US9906598B1 (en) | Distributed data storage controller | |
US8918392B1 (en) | Data storage mapping and management | |
US20220083245A1 (en) | Declarative provisioning of storage | |
US9727273B1 (en) | Scalable clusterwide de-duplication | |
US11314444B1 (en) | Environment-sensitive distributed data management | |
US8930364B1 (en) | Intelligent data integration | |
US20170013046A1 (en) | Data-centric data storage | |
EP3745269B1 (en) | Hierarchical fault tolerance in system storage | |
US11768623B2 (en) | Optimizing generalized transfers between storage systems | |
US11327676B1 (en) | Predictive data streaming in a virtual storage system | |
US11892917B2 (en) | Application recovery configuration validation | |
US20240134761A1 (en) | Application recovery configuration validation | |
US20230353635A1 (en) | Replication Utilizing Cloud-Based Storage Systems | |
US8499012B1 (en) | System and method for attached storage stacking |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20161123 Address after: Tokyo, Japan, Japan Applicant after: Hitachi Ltd. Address before: Burke County, England Applicant before: HITACHI DATA SYSTEM ENGINEERING UK LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |