CN101473305B - 用于集群环境中的作业的管理的系统和方法 - Google Patents
用于集群环境中的作业的管理的系统和方法 Download PDFInfo
- Publication number
- CN101473305B CN101473305B CN200680055083.8A CN200680055083A CN101473305B CN 101473305 B CN101473305 B CN 101473305B CN 200680055083 A CN200680055083 A CN 200680055083A CN 101473305 B CN101473305 B CN 101473305B
- Authority
- CN
- China
- Prior art keywords
- storage
- manipulating object
- file
- job manager
- cluster
- 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.)
- Active
Links
Classifications
-
- 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
- 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/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供用于集群环境中的作业的管理的系统和方法。集群的每个节点执行与复制的数据库接口的作业管理器,以能够在集群内实现作业的集群范围的管理。作业在复制的数据库中排队并被作业管理器恢复以供执行。每个作业管理器确保作业被处理至完成,或者如果失败则在其它存储系统上重排队以供执行。
Description
技术领域
本发明涉及集群的计算机环境,尤其涉及在集群的计算机环境中的作业的管理。
背景技术
存储系统典型包含一个或者多个存储装置,可自由地把信息输入到所述存储装置并从中获取信息。存储系统包括通过尤其(inter alia)在由系统所执行的存储服务的支持下调用存储操作从功能上组织系统的存储操作系统。可根据各种存储构造实现存储系统,所述存储构造包括、但不限于网络附连的存储环境、存储区域网和直接附连到客户或主计算机上的磁盘集合。存储装置一般是以磁盘阵列组织的磁盘驱动器,其中术语“磁盘”通常描述独立旋转式磁介质存储装置。本文中的术语“磁盘”与硬盘驱动器(hard disk drive:HDD)或直接存取存储器(direct access storage device:DASD)同义。
存储系统的存储操作系统可实现例如文件系统的高级模块,以从逻辑上把存储在卷(volume)上的信息组织为数据容器(datacontainer)、例如文件和逻辑单元的分级构造。例如,可把每个“盘上(on-disk)”文件实现为配置来存储信息、例如文件的实际数据的数据结构集合,即磁盘块(diskblock)。这些数据块被组织在由文件系统维持的卷块号(volume block number:vbn)空间内。文件系统还为文件中的每个数据块分配相应的“文件偏移量(file offset)”或文件块号(file block number:fbn)。文件系统一般以每个文件为基础分配fbn序列,然而在更大的卷地址空间上分配vbn。文件系统把vbn空间内的数据块组织为“逻辑卷”;每个逻辑卷可以、但不是必须与其自身的文件系统关联。
一种已知类型的文件系统是不在磁盘上重写数据的写入任意位置(write-anywhere)文件系统。如果数据块被从磁盘恢复(读)到存储系统的存储器,并被新数据“弄脏(dirty)”(即被更新或被修改),那么此后把该数据块存储(写)到磁盘上的新位置以使写入性能最优化。写入任意位置文件系统可最初假定最优布局(layout),使得数据基本上连续地排列在磁盘上。最优磁盘布局导致被定向到磁盘的有效的访问操作,尤其是对于有序的读操作。配置来操作存储系统的写入任意位置文件系统的示例是可从California的Sunnyvale的NetworkAppliance公司得到的写入任意位置文件布局(Write Anywhere FileLayout:)文件系统。
可把存储系统进一步配置成根据信息交付的客户机/服务器的模式运行,从而允许多客户机访问存储在系统上的数据容器。在此模式中,客户机可包括在计算机上执行的应用程序、如数据库应用程序,该计算机通过例如点对点链路、共享的局域网(LAN)、广域网(WAN)或在例如因特网的公共网上所实现的虚拟专用网(virtual privatenetwork:VPN)的计算机网络“连接”到存储系统。每个客户机可以在网络上通过向该系统发出基于文件和基于块的协议消息(以包的形式)请求存储系统的服务。
可把多个存储系统互联以提供配置成服务多个客户机的存储系统集群。每个存储系统可配置成服务一个或多个卷,其中每个卷存储一个或多个数据容器。在某些存储系统集群中,可把数据容器的内容在配置为条带卷集(striped volume set:SVS)的多个卷上条带化,这里每个卷由不同的存储系统服务,从而在多个存储系统中为单个数据容器分配负载(load)。在Richard Jernigan等人的名为《用于在集群的卷上条带化数据容器内容的存储系统构造》(STORAGE SYSTEMARCHITECTURE FOR STRIPING DATA CONTAINER CONTENTACROSS VOLUMES OF A CLUSTER)的美国专利申请11/119278中描述了数据容器条带化的集群环境。
为了管理存储系统集群而执行的管理任务中的多数包括复杂的和/或可能长期运行的操作。可要求某些任务(作业)在集群内的特定存储系统上运行,而其它的任务(作业)可在集群内的任意存储系统上运行。作业可包含多个以有组织的方式操作以完成任务的进程(process)和/或线程(thread)。常规的集群存储系统的一个显著缺点是启动作业的管理命令可能必须在要在其上完成该作业的的特定存储系统上执行。这由于需要存储系统集群的管理员登录进(log into)每一个存储器以执行某些作业而使集群管理变得复杂。
然而,正确管理的显著要求是一旦作业已经开始,即使在存储系统发生故障的情况下该作业也必须运行至完成。另外,如果该作业不能运行至完成,则该作业必须通过如删除创建的任意临时文件等实现“干净的(clean)”退出。在典型的存储系统集群中,这些要求使得代表系统管理员的人工干预成为必要,从而降低任务关键(mission-critical)的集群环境的系统鲁棒性。例如,如果在特定存储系统上启动作业,而该存储系统在作业完成之前遭遇故障,那么管理员需要识别该作业没有完成并在其它存储系统上人工重新初始化该作业。
发明内容
本发明通过提供用于存储系统集群环境中的作业的管理的系统和方法克服了先有技术的缺点。根据本发明,作业管理器(job manager:JM)在集群环境内的每个存储系统上运行,以便提供用于调度和/或执行集群内的作业的框架。JM确保作业执行直至完成,并且如果发生存储系统的故障,在该存储系统(一旦它已经复原)或存储集群内的其它存储系统上重新启动该作业。为此,JM与包含一个或多个队列的复制的数据库(replicated data base:RDB)接口,用于跟踪各个作业及其对特定存储系统的亲和力——即作业是否必须在该存储系统上执行。
响应发布命令以执行管理操作的用户,创建配置对象并将其传递给JM。配置对象示例性地包含由用户在发布命令时所指定的参数和/选项。JM使用此对象来创建作业对象。作业对象示例性地包含执行作业需要的数据状况(data situation)和/或可执行指令。JM接着把创建的作业对象加载到RDB的队列上。存储系统集群内的每个JM监视最新加载作业的队列。要是作业包含对特定存储系统的亲和力(affinity),该特定存储系统的JM就从RDB的队列恢复该作业并处理该作业。如果作业不包含特定存储系统的亲和力,则集群内具有可用处理带宽的任意JM将恢复并处理该作业。
为了确保作业执行直至完成,集群内的JM之一被指定为主作业管理器并监视集群中存储系统的状态。在发现存储系统的故障之上,主作业管理器等待预定的超时期间过去。如果超时期间过去,发生故障的存储系统没有复原,那么主作业管理器把该作业标记为未被主张(unclaimed),以致于集群内其它JM之一可以依照其正常作业获取程序(routine)主张该作业并处理该作业至完成。只有具有集群亲和力的那些作业能被集群内的第二JM复原。
附图说明
通过参考结合附图的以下说明,可以更好地理解本发明的上述和其他优点,附图中,相似的参考标号表示相同的或功能上相似的单元:
图1是根据本发明实施例的互联为集群的多个节点的示意框图;
图2是根据本发明实施例的节点的示意框图;
图3是可优选配合本发明使用的存储操作系统的示意框图;
图4是根据本发明实施例图示集群结构(cluster fabric:CF)消息的格式的示意框图;
图5是根据本发明实施例图示数据容器句柄(handle)的格式的示意框图;
图6是根据本发明实施例的示例索引节点(inode)的示意框图;
图7是根据本发明实施例的示例缓冲树(buffer tree)的示意框图;
图8是可优选配合本发明使用的文件的缓冲树的示例实施例的示意框图;
图9是根据本发明实施例的示例集合体(aggregate)的示意框图;
图10是根据本发明实施例的集合体的示例盘上布局的示意框图;
图11是图示根据本发明实施例的管理进程的集合(collection)的示意框图;
图12是根据本发明实施例的示例作业对象数据结构的示意框图;
图13是根据本发明实施例的示例状态数据结构的示意框图;
图14是根据本发明实施例详述用于执行作业的流程(procedure)的步骤的流程图;
图15是根据本发明实施例示出多种状态的状态图;以及
图16是根据本发明实施例详述监控和从故障恢复的流程的步骤的流程图。
具体实施方式
A.集群环境
图1是多个节点200的示意框图,该多个节点互联为集群100并被配置成提供与存储装置上的信息的组织有关的存储服务。节点200包含协同提供集群100的分布式存储系统架构的多个功能组件。为此,每个节点200通常被组织为网络单元(N-模块310)和磁盘单元(D-模块350)。N-模块310包括使节点200能够通过计算机网络140连接到客户机180的功能,而每个D-模块350连接到一个或多个存储装置、例如磁盘阵列120中的磁盘130。节点200由在该示例实施例中配置为千兆以太网(Gigabit Ethernet)切换的集群交换结构150互联。2002年8月22日出版的M.Kazar等人的名为《用于响应文件系统请求的方法和系统》(METHOD AND SYSTEM FOR RESPONDING TO FILESYSTEM REQUESTS)的美国专利申请公开2002/0116593中对典型分布式文件系统架构进行了一般描述。要注意,虽然在示例集群100中显示了相同数目的N-模块和D-模块,但是根据本发明的各种实施例可存在不同数目的N-模块和D-模块。例如,在不反映N-模块和D-模块之间的一一对应的集群配置100中可以存在互联的多个N-模块和/或D-模块。因此,应把包含一个N模块和一个D模块的节点200的说明认为只是示例性的。
客户机180可以是配置成根据信息交付的客户机/服务器模式与节点200交互的普通用途计算机。即,通过在网络140上交换包,每个客户机可以请求该节点的服务,而该节点可以返回客户机所请求的服务的结果。客户机可在访问以文件或目录的形式的信息时通过传输控制协议/因特网协议(Transmission Control Protocol/Internet Protocol:TCP/IP)发出包,所述包包括基于文件的访问协议、例如通用因特网文件系统(Common Internet File System:CIFS)协议或网络文件系统(Network File System:NFS)协议。备选地,客户机可以访问以块的形式的信息时发出包,所述包包括基于块的访问协议、例如通过TCP封装的小型计算机系统接口(Small Computer Systems Interface:SCSI)协议(iSCSI)和通过光纤通道封装的SCSI协议(FCP)。
B.存储系统节点
图2是示例性地配置为存储系统的节点200的示意框图,该存储系统包括通过系统总线223互联的多个处理器222a、222b,存储器224,网络适配器225,集群访问适配器226,存储适配器228和本地存储器230。本地存储器230包含一个或多个例如磁盘的存储装置,该存储装置被节点用来在本地存储由一个或多个以用户模式应用1100(见图11)执行的管理进程所提供的配置信息(例如,在配置表235中)。集群访问适配器226包含适合把节点200耦合到集群100的其它节点的多个端口。在示例实施例中,以太网被用作聚类协议(clusteringprotocol)和互连媒介(interconnection media),然而对本领域技术人员而言显而易见,可在本文描述的集群架构中使用其它类型的协议和互连。在分离的存储系统或计算机上实现N-模块和D-模块的备选实施例中,N/D-模块使用集群访问适配器226以与集群100中的其它N/D-模块通信。
每个节点200示例性地配置为执行存储操作系统300的双处理器存储系统,该存储操作系统优选执行高级模块、例如文件系统以在磁盘上将信息从逻辑上组织为指定目录、文件以及称为虚拟磁盘的特殊类型的文件(下文中一般称为“块”)的分级构造。然而对本领域普通技术人员而言显而易见,节点200可备选地包括单个或者多于两个的处理器的系统。示例性地,一个处理器222a在节点上执行N-模块310的功能,而另一处理器222b执行D-模块350的功能。
存储器224示例性地包括可由处理器和适配器寻址的存储位置,用于存储软件程序(即有序操作的特定集合)和与本发明关联的数据结构。处理器和适配器又包含配置来执行程序和操作数据结构的处理单元和/或逻辑电路。部分一般常驻于存储器(memory)中并由处理单元执行的存储操作系统300,在由节点所执行的存储服务的支持下尤其通过调用存储操作从功能上组织节点200。对本领域技术人员而言显而易见,包括各种计算机可读媒介的其他处理和存储装置可用于存储和执行与本文所述的发明有关的程序指令。
网络适配器225包含多个端口,所述端口适合通过点到点链路、广域网、在公共网络(因特网)上实现的虚拟专用网或共享局域网把节点200耦合到一个或多个客户机。因此,网络适配器225可包含把节点连接到网络所需的机械的、电的和发信号(signalling)电路。示例性地,计算机网络140可配置为以太网或光纤通道(Fibre Channel:FC)网。每个客户机180可通过根据预先定义的协议、例如TCP/IP交换离散帧或数据包来与网络140上的节点通信。
存储适配器228与在节点200上运行的存储操作系统300合作以便访问客户机所请求的信息。该信息可以被存储在任意类型的附连阵列的可写存储装置媒介上,例如录像磁带、光盘、DVD、磁带、磁泡存储器(bubble memory)、电子随机存取存储器、微电子机械的和其他类似的适合存储包括数据和奇偶信息的信息的媒介。存储适配器包括具有输入/输出(input/output:I/O)接口电路的多个端口,所述接口电路耦合到I/O互联布置、例如常规高性能FC链路拓扑之上的磁盘。
优选以一个或多个存储“卷(volume)”执行每个阵列120上的信息的存储,所述存储卷包括协同定义卷上的卷块号(volume blocknumber:vbn)空间的总体逻辑排列的物理存储磁盘130的集合。每个逻辑卷一般、但不是必需与其自身的文件系统关联。一般把逻辑卷/文件系统内的磁盘组织为一个或多个组,其中可把每个组作为独立(或廉价)磁盘的冗余阵列(Redundant Array of Independent(or Inexpensive)Disks:RAID)来操作。大多数RAID实现(implementations)、例如RAID-4级实现,通过在RAID组中在给定数目的物理磁盘的数据“条带(stripe)”的冗余写入和与成条带的数据有关的奇偶信息的适当存储,提高数据存储的可靠性/完整性。RAID实现的示例实施例是RAID-4级实现,但是,要理解根据本文所述的发明原理可使用其他类型和级别的RAID实现。
C.存储操作系统
为了使对磁盘130的访问便利,磁盘操作系统300执行与一个或多个虚拟化模块合作以便“虚拟化”由磁盘130所提供的存储空间的写入任意位置文件系统。本文件系统把信息从逻辑上组织为磁盘上的指定目录和文件的分级构造。把每个“盘上”文件实现为配置成存储例如数据的信息的磁盘块的集合,而把目录实现为存储了名称和到其它文件及目录的链接的特定格式化文件。虚拟化模块允许文件系统进一步从逻辑上把信息组织为在以指定逻辑单元号(logical unit numbers:luns)输出的盘上的块的分级构造。
在示例实施例中,存储操作系统优选为可从California的Sunnyvale的Network Appliance公司获得的Data操作系统,该操作系统执行写入任意位置文件布局()的文件系统。然而,要明确预期,根据本文所述的发明原理可使用任意适当的存储操作系统。同样,如果使用术语“ONTAP”,那么它广泛地指其他适可用于本发明的教导的任意存储操作系统。
图3是可优选与本发明配合使用的存储操作系统300的示意框图。本存储操作系统包含一系列的软件层,组织该软件层以形成综合的网络协议栈,或者更一般地形成为客户机提供数据路径以便使用块和文件访问协议访问存储在节点上的信息的多协议引擎325。多协议引擎包括网络驱动器(如吉比特以太驱动器)的媒体接入层312,所述媒体接入层连接到例如IP层314及其支持的传输机制、TCP层316和用户数据报协议(User Datagram Protocol:UDP)层315的的网络协议层。文件系统协议层提供多协议文件访问,并因此包括对直接访问文件系统(Direct Access File System:DAFS)协议318、NFS协议320、CIFS协议322和超文本传输协议(Hypertext Transfer Protocol:HTTP)协议324的支持。VI层326实现VI体系结构以提供DAFS协议318所需要的直接访问传输(direct access transport:DAT)能力、例如RDMA。iSCSI驱动器层328通过TCP/IP网络协议层提供块协议访问,而FC驱动器层330从节点接收并向节点发送块访问请求和响应。FC和iSCSI驱动器向块提供FC-特定和iSCSI-特定的访问控制,并因此在访问节点200上的块时,管理向iSCSI或FCP或备选地向iSCSI和FCP二者的luns输出。
另外,存储操作系统包括一系列软件层,组织所述软件层以形成提供数据路径用于访问存储在节点200的磁盘130上的信息的存储服务器365。为此,存储服务器365包括与卷条带化模块(volume stripingmodule:VSM)370处于协同操作关系的文件系统模块360、RAID系统模块380和磁盘驱动器系统模块390。RAID系统380根据I/O操作管理来往于卷/磁盘的信息的存储和恢复(retrieval),而磁盘驱动器系统390执行磁盘访问协议、例如SCSI协议。VSM 370示例性地实现了条带卷集(striped volume set:SVS)。特别地,VSM370执行Locate()(定位函数)375以计算在SVS卷中数据容器内容的位置,从而确保由集群所服务的此类内容的一致性。
文件系统360通过与示例性地配置为例如虚拟磁盘(virtual disk:vdisk)模块(未示出)的一个或多个虚拟化模块(以及SCSI对象模块335)的交互,实现存储操作系统300的虚拟化系统。vdisk模块能够响应向节点200发布命令的用户(系统管理员),通过管理接口、例如管理框架1110(参见图11)的用户接口进行访问。SCSI对象模块335一般被设置在FC和iSCSI驱动器328、330和文件系统360之间,以便在块(lun)空间和文件系统空间之间提供虚拟化系统的转换层(translation layer),这里把luns表示为块。
文件系统360示例性地为基于消息的系统,该系统提供逻辑卷管理性能用于对存储在存储装置、例如磁盘上的信息的访问。即,除了提供文件系统语义(semantics)以外,文件系统360还提供通常与卷管理器关联的功能。这些功能包括(1)磁盘的聚合(aggregation),(2)磁盘的存储带宽的聚合,及(3)可靠性保证,如镜像和/或奇偶(RAID)。示例性地,文件系统360使用例如4千字节(kilobyte:KB)的块并使用索引节点(index node:“inode”)来识别文件和文件属性(如创建时间、访问许可、大小和块位置),执行具有基于块的盘上格式表示法的WAFL文件系统(在下文中一般为“写入任意位置文件系统”),。文件系统使用文件来存储元数据,所述元数据描述其文件系统的布局;其中,这些元数据的文件包括inode文件。文件句柄、即包括inode号的标识符被用来从磁盘恢复inode。
宽泛地讲,把任意位置写入文件系统的所有inode组织到inode文件。文件系统(file system:fs)信息块(info block)指定文件系统中的信息的布局,并包括含有该文件系统的所有别的inode的文件的inode的文件。每个逻辑卷(文件系统)具有优选存储在例如RAID组内的固定位置的fsinfo(文件系统信息)块。inode文件中的inode可以直接引用(指向)该inode文件的数据块,或者可以引用inode文件的间接块,间接块又引用inode文件的数据块。把inode嵌入到inode文件的每个数据块,其中每个inode可引用间接块,间接块又引用文件的数据块。
在操作上,以计算机网络140上和到节点200的包转发来自客户机180的请求,在节点200的网络适配器225接收该包。(层312或层330的)网络驱动器处理该包,且如果适当,向写入任意位置文件系统360转发该包之前将其传递到网络协议和文件访问层作附加处理。此时,如果被请求的数据没有常驻在“核内”、即在存储器224中,则文件系统产生把其从磁盘130加载(恢复)的操作。如果信息不在存储器中,则文件系统360使用inode号在inode文件内做索引以便访问适当的入口并恢复逻辑vbn。文件系统接着向RAID系统380传递包括逻辑vbn的消息结构;逻辑vbn被映射(map)到磁盘标识符和磁盘块号(disk,dbn),并被发送至磁盘驱动器系统390的合适驱动器(如SCSI)。该磁盘驱动器从指定磁盘130访问dbn,并在存储器中加载所请求的数据块供节点处理。在该请求的完成之上,节点(和操作系统)通过网络140向客户机180返回答复。
要注意,可备选地以硬件实现通过上述存储操作系统层的、为节点接收的客户机请求执行数据存储访问所需的软件“路径”。即,在本发明的备选实施例中,可以在现场可编程门阵列(field programmablegate array:FPGA)或专用集成电路(application specific integrated circuit:ASIC)内所配备的逻辑电路来实现存储访问请求数据的路径。这种类型的硬件实现提高了由节点200在响应客户机180发出的请求时所提供的存储服务的性能。此外,在本发明的另一备选实施例中,可把适配器225、228的处理单元配置来从处理器222分别卸载(offload)某些或全部包处理和存储访问操作,从而提高该节点所提供的存储服务的性能。可明确预期,本文所述的各种处理、架构和流程能够以硬件、固件或者软件来实现。
本文所用的术语“存储操作系统”一般是指可在计算机上运行以执行管理数据存取的存储功能的计算机可执行代码,而且在节点200的情况中,可实现普通用途的操作系统的数据存取语义。还能够以微核(microkernel)、通过普通用途的操作系统(如或Windows)操作的应用程序、或者以具有配置用于本文所述的存储应用的可配置功能的普通用途操作系统实现存储操作系统。
另外,本领域技术人员要理解,本文所述的发明可以应用到任意类型的包括独立计算机或其部分、被配置为或包括存储系统的特殊用途(如文件服务器、文件管理程序(filer)或存储服务应用)或普通用途计算机。此外,本发明的教导能够适合于包括但不限于网络附连的存储环境、存储区域网络和直接附连到客户机或主机的磁盘集(diskassembly)的多种存储系统架构。因此,除了配置来执行存储功能并与其他设备或系统关联的任意子系统之外,术语“存储系统”还应该广泛地包括此类配置。要注意,虽然根据写入任意位置文件系统书写本说明书,但是本发明的教导可配合包括按写入位置文件系统的任意适当文件系统使用。
D.CF协议
在示例实施例中,把存储服务器365配置为存储操作系统300的D-模块350以服务阵列120的一个或多个卷。另外,把多协议引擎325配置为N-模块310以(1)执行与通过网络140发出输入数据访问请求包的客户机有关的协议终止,以及(2)把那些数据访问请求重定向至集群100的任意存储服务器365。而且,N-模块310和D-模块350合作以提供集群100的完全可升级的(scalable)分布式存储系统架构。为此,每个模块包括适合实现模块间的、包括D-模块到D-模块通信的集群内通信以供数据容器条带化操作的集群结构(cluster fabric:CF)接口模块340a、b。
N-模块310的协议层、例如NFS/CIFS层和iSCSI/FC层)以协议服务器运行,该协议服务器将来自客户机的基于文件和基于块的数据访问请求转换(translate)成与D-模块350通信所使用的CF协议消息。即,N-模块服务器将输入的数据访问请求转换为文件系统原语操作(命令),由CF接口模块340把该原语操作嵌入到CF消息以供向集群100的D-模块350的传输。尤其,CF接口模块340协同在集群100中的所有D-模块350提供单一文件系统映象(image)。因此,接收客户机请求的N-模块的任意网络端口能够访问在位于集群的任意D-模块350上的单一文件系统映象内的任意数据容器。
示例性地,以存储操作系统300的独立预设的进程实现N-模块310和D-模块350;但是,在备选实施例中,可以单一操作系统进程内的代码段实现这些模块。本文所用的进程(process)表示由例如处理器222所执行的程序的情形,而线程(thread)是进程的程序代码序列的情形。因此,示例性地,N-模块和D-模块间的通信通过所述模块之间的消息传递的使用而实现,然而,在不同节点的N-模块和D-模块之间的远程通信的情况下,这样的消息传递发生在集群交换结构150上。由存储操作系统提供来在模块(进程)之间传输信息的已知消息传递机制是进程间通信(Inter Process Communication:IPC)机制。配合IPC机制使用的协议示例性地为通用文件和/或基于块的“不可知的”CF协议,该CF协议包含组成CF应用编程接口(applicationprogramming interface:API)的方法/函数集。这种不可知的协议的例子是可从Network Appliance公司获得的SpinFS和SpinNP协议。该SpinFS协议记载在上文引用的美国专利申请公开2002/0116593中。
CF接口模块340执行CF协议用于集群100的模块之间通信文件系统命令。示例性地,通过D-模块向发布呼叫(call)的那个N-模块(或另一D-模块)公开CF API实现通信。为此,把CF接口模块340组织为CF编码器和CF解码器。例如,N-模块310上的CF接口340a的CF编码器把CF消息封装为(1)在把文件系统命令通信到驻留在同一节点200上的D-模块350时的本地过程呼叫(local procedure call:LPC)或(2)在把该命令通信到驻留在集群100的远程节点上的D-模块时的远程过程呼叫(remote procedure call:RPC)。在任一情况下,D-模块350上的CF接口340b的CF解码器解封装CF消息并处理文件系统命令。
图4是根据本发明实施例图解CF消息400的格式的示意框图。把CF消息400示例性地用于集群100的远程模块之间通过交换结构150的RPC通信;但是,要理解,术语“CF消息”一般可被用来指集群的模块之间的LPC和RPC通信。CF消息400包括媒体访问层402、IP层404、UDP层406、可靠连接(reliable connection:RC)层408以及CF协议层410。如所述,CF协议是通用文件系统协议,其传送与包含在对访问在集群100上所存储的数据容器的客户机请求内的操作有关的文件系统命令;CF协议层410是消息400的携带文件系统命令的那部分。示例性地,CF协议是基于数据报的,且同样包括以可靠方式从源(如N-模块310)至目的地(如D-模块350)的消息或“信包(envelope)”的传输。RC层408执行可靠传输协议,该协议适合根据无连接协议、例如UDP 406处理此类信包。
在文件系统中通过使用数据容器句柄访问比如文件的数据容器。图5是图解数据容器句柄500的格式的示意框图,该句柄包括SVS ID域502、inode号域504、唯一-ifier(unique-ifier)域506、条带化标志域508和条带化戳记(epoch)号域510。SVS ID域502包含数据容器驻留其内的SVS的全局标识符(在集群100内)。inode号域504包含与数据容器有关的inode(在inode文件内)的inode号。unique-ifier域506包含唯一地识别数据容器句柄500的单调递增的号码。unique-ifier特别适用于已删除、再使用inode号以及将其重新分配给新数据容器的情形。unique-ifier从那些域的可能先前的使用中区别出在特殊数据容器中再使用的inode号。条带化标志域508示例性地为识别数据容器是否被条带化的布尔值(Boolean value)。对于SVS对不同的数据容器利用不同的条带化技术的实施例,条带化戳记号域510指示配合此数据容器使用的适当的条带化技术。
E.文件系统组织
在示例实施例中,数据容器在写入任意位置文件系统中被表示为适合磁盘130上的存储的inode数据结构。图6是inode 600的示意框图,其优选包括元数据部分605和数据部分660。存储在每个inode 600的元数据部分605中的信息描述该数据容器(例如文件);且同样包括文件的类型(如规则、目录、vdisk)610,文件大小615,文件的时间戳(如访问和/或修改时间)620和所有权即用户标识符(UID 625)以及组ID(GID 630)。元数据部分605还包括生成号631和元数据失效标志域634。如本文将进一步所述,元数据失效标记域634被用来指示在inode中的元数据是否是可用的或者它是否应该被从MDV重获。根据在类型域610内所定义的文件(inode)的类型,可对每个inode的数据部分660的内容进行不同解释。例如,目录inode的数据部分660包含由文件系统所控制的元数据,然而规则inode的数据部分包含文件系统数据。在后一情形中,数据部分660包括与文件关联的数据的表示。
特定地,规则的盘上inode的数据部分660可包括文件系统数据或指针,后者引用在存储文件系统数据所用的磁盘上的4KB数据块。每个指针在访问磁盘上的数据时优选为逻辑vbn,以促进文件系统和RAID系统380之间的效率。已知inode的受限制的大小(如128字节),在该inode的数据部分内以其全部表示具有小于或等于64字节的大小的文件系统数据。但是,如果数据容器的内容的长度超过64字节但小于或等于64KB,则inode(如第一级inode)的数据部分包括16个指针,每个指针引用磁盘上4KB的数据块。
此外,如果数据的大小超过64KB但小于或等于64兆字节(megabytes:MB),则在inode(如第二级inode)的数据部分660中的每个节点引用包含1024个指针的间接块(如第一级L1块),其每个指针引用盘上4KB的数据块。对于具有超过64MB的大小的文件系统数据,inode(如第三级L3 inode)的数据部分660的每个指针引用包含1024个指针的双间接块(如第二级L2块),每个指针引用间接(如第一级LI)块。间接块又包含1024个指针,每个指针引用盘上4KB的数据块。当访问文件时,把文件的每个块从磁盘130加载到存储器224。
当把盘上inode(或块)从盘130加载到存储器224时,其相应的核内结构嵌入盘上结构。例如,包围inode 600的点线指示盘上inode结构的核内表示。核内结构是存储盘上结构外加管理存储器中(但不在盘上)的数据所需的附加消息的存储器块。附加消息包括例如“dirty”位670。在如写操作所指示的那样更新/修改inode(或块)中的数据之后,使用dirty位670把修改的数据标记为“脏(dirty)”,以致于能够随后把inode(块)“刷新”(存储)到磁盘。在1998年10月6日出版的David Hitz等人的名为《用于保持文件系统的一致状态和创建文件系统的用户可访问只读副本的方法》(METHOD FORMAINTAINING CONSISTENT STATES OF A FILE SYSTEM ANDFOR CREATING USER-ACCESSIBLE READ-ONLY COPIES OF AFILE SYSTEM)的先前合并的美国专利5819292中公开并描述了包括inode和inode文件的WAFL文件系统的核内和盘上的格式结构。
图7是可优选配合本发明使用的文件缓冲树的实施例的示意框图。缓冲树是对被加载到存储器224并由写入任意位置文件系统360所维持的文件(例如文件700)的块的内部表示。根(顶级)inode 702、例如嵌入的inode引用间接(如1级)块704。注意,根据文件的大小,可存在间接块的附加级(如2级、3级)。间接块(和inode)包含指针705,该指针最终引用用于存储文件的实际数据的数据块706。即,文件700的数据被容纳在数据块中,这些块的位置被存储在该文件的间接块中。每个1级间接块704可包含至1024个数据块的指针。根据文件系统的“写入任意位置”的特性,这些块可以位于磁盘130上的任意位置。
提供将基本物理卷分配成存储系统的一个或多个虚拟卷(或灵活卷)、例如节点200的文件系统布局。在John K.Edwards等人的名为《写入任何位置文件系统布局的扩展》(EXTENSION OF WRITEANYWHERE FILE SYSTEM LAYOUT)的、并转让给NetworkAppliance公司的美国专利申请序号10/836817中记载了这种文件系统布局的示例。基本物理卷是包括节点的一个或多个磁盘组、如节点的RAID组的集合体。集合体具有其自身的物理卷块号(physical volumeblock number:pvbn)空间,并在该pvbn空间内维持例如块分配结构的元数据。每个灵活卷具有其自身的虚拟卷块号(virtual volume blocknumber:vvbn)空间,并在该vvbn空间内维持例如块分配结构的元数据。每个灵活卷是与容器文件关联的文件系统;容器文件是在包含由灵活卷所使用的所有块的集合体中的文件。此外,每个灵活卷包括数据块和包含指向其他间接块或数据块的块指针的间接块。
在一实施例中,pvbn被用作在存储在灵活卷中的文件(如文件700)的缓冲树内的块指针。此“混合的”灵活卷的实施例包括仅pvbn在父(parent)间接块(如inode或间接块)中的插入。在逻辑卷的读取路径上,“逻辑”卷(volume:vol)信息块具有一个或多个引用一个或多个fsinfo块的指针,每个fsinfo块指针又指向inode文件及其相应的inode缓冲树。灵活卷上的读取路径一般相同,按照pvbn(而不是vvbn)来寻找块的适当位置;在该上下文中,灵活卷的读取路径(及相应的读取性能)与物理卷的基本类似。从pvbn到磁盘、dbn的转换发生在存储操作系统300的文件系统/RAID系统的边界。
在示例性的双vbn混合灵活卷的实施例中,把pvbn及其相应的vvbn插入到文件缓冲树的父间接块中。即,把pvbn和wbn作为每个块指针对存储在具有指向例如1级(L1)间接块、inode文件0级(L0)块的其他块的指针的大多数缓冲树结构中。图8是优选配合本发明使用的文件800的缓冲树的示例实施例的示意框图。根(顶级)inode 802、例如嵌入的inode引用间接(如1级)块804。注意,根据文件的大小可存在间接块的附加级(如2级、3级)。间接块(和inode)包含最终引用存储文件的实际数据的数据块806所使用的pvbn/vvbn指针对结构808。
pvbn引用在集合体的磁盘上的位置,同时vvbn引用灵活卷的文件内的位置。在间接块804中作为块指针808的pvbn的使用提供读取路径的效率,而vvbn块指针的使用提供对所需元数据的有效访问。即,当释放文件的块时,文件中的父间接块包含容易获得的vvbn块指针,这避免与访问所有者映射(owner map)以便执行pvbn到vvbn的转换关联的等待时间;但是,在读取路径上,pvbn是可用的。
图9是可优选与本发明配合使用的集合体900的实施例的示意框图。lun(块)902、目录904、qtree 906和文件908都被包含在灵活卷910、例如双vbn灵活卷内,灵活卷又包含在集合体900内。使集合体900示例性地成层于由至少一RAID丛950(根据存储配置是否被镜像)代表的RAID系统之上,其中,每丛950包括至少一RAID组960。每一RAID组还包括多个磁盘930、例如一个或多个数据(data:D)磁盘和至少一个奇偶(parity:P)磁盘。
而集合体900类似于常规存储系统的物理卷,灵活卷类似于该物理卷内的文件。即,集合体900包括一个或多个文件,其中每个文件包含灵活卷910,其中由灵活卷所占用的存储空间的总数在物理上小于(或等于)全部物理卷的大小。集合体利用物理pvbn空间,该空间定义由物理卷的磁盘所提供的块的存储空间,而每个(在文件内)嵌入的灵活卷利用逻辑vvbn空间以把那些块组织为例如文件。每一vvbn空间是对应于文件内的位置的独立号码集合,然后那些位置被转换到磁盘上的dbn。因为灵活卷910也是逻辑卷,所以它在其vvbn空间中具有其自身的块分配结构(如有效、空间和概要映射(map))。
容器文件是在包含由灵活卷所使用的所有块的集合体中的文件。容器文件是支持灵活卷的内部(对集合体而言)特征;示例性地,每灵活卷存在一个数据容器。与文件接近(approach)中的纯逻辑卷类似,数据容器是在保持由灵活卷的使用中的每个块的集合体中的隐藏文件(对用户不可访问)。集合体包括示例性的隐藏的元数据根目录,该根目录包含灵活卷的子目录:
WAFL/fsid/filesystemfile,storage label file
特别地,物理文件系统(WAFL)的目录包括集合体中每个灵活卷的子目录,该子目录的名称是灵活卷的文件系统标识符(file systemidentifier:fsid)。每一fsid子目录(灵活卷)包含至少两个文件:文件系统(filesystem)文件和存储标签文件。示例性地,存储标签文件为包含元数据的4KB文件,该元数据与在常规搜查(raid)标签中所存储的类似。换句话说,存储标签文件是搜查标签的模拟,同样包括有关灵活卷状态的信息,例如灵活卷的名称、灵活卷的通用唯一标识符(universal unique identifier:uuid)和fsid、是否在线、是否被创建或被破坏等。
图10是集合体1000的盘上表示的示意框图。存储操作系统300、例如RAID系统380集合pvbn的物理卷以创建集合体1000,pvbn 1和2包含集合体的“物理”卷信息(volinfo)块1002。volinfo块1002包含指向fsinfo块1004的块指针,每个块指针代表集合体的快照(snapshot)。每个fsinfo块1004包括指向包含多个文件的inode的inode文件1006的块指针,包括所有者映射(map)1010、有效映射1012、概要映射1014和空间映射1016、及其他特定元数据文件。inode文件1006还包括根目录1020和“隐藏”的元数据根目录1030,其中后者包括具有与其中用户不能“看到”文件的灵活卷有关的文件的名称空间。隐藏的元数据根目录包括包含文件系统文件1040和存储标签文件1090的WAFL/fsid/目录结构。注意,集合体中的根目录1020为空;所有涉及集合体的文件被组织在隐藏的元数据根目录1030内。
除了被配置为具有被组织为容器映射的1级块的容器文件外,文件体系文件1040还包括引用被配置为灵活卷1050的各个文件系统的块指针。集合体1000以特别保留的inode号维持这些灵活卷1050。每个灵活卷1050也具有其灵活卷空间内、尤其用于块分配位图(bitmap)结构的特别保留的inode号。如所述,例如有效映射1062、概要映射1064和空间映射1066的块分配位图结构位于每个灵活卷中。
特别地,每个灵活卷1050具有与集合体相同的inode文件结构/内容,但在隐藏的元数据根目录1080中没有所有者映射和WAFL/fsid/filesystem file,storage label file目录结构1080除外。为此,每个灵活卷1050具有volinfo块1052,volinfo块指向一个或多个fsinfo块1054,每个fsinfo块连同灵活卷的活动文件系统一起表示快照。每个fsinfo块又指向inode文件1060,如所述,inode文件具有与集合体相同的inode结构/内容,但上文所述除外的除外。每个灵活卷1050具有其自身的inode文件1060和具有相应的inode号的不同的inode空间,以及其自身的可从其他灵活卷独立输出的文件的根(fsid)目录1070和子目录。
集合体的隐藏的元数据根目录1030内所包含的存储标签文件1090是起对常规搜查(raid)标签的模拟作用的小文件。搜查标签包括与存储系统有关的物理信息,如卷名;该信息被加载到存储标签文件1090。示例性地,存储标签文件1090包括关联的灵活卷1050的名称1092、灵活卷的在线/离线状态1094以及关联的灵活卷的其它身份和状态信息1096(它是否处于被创建或被破坏的进程中)。
F.管理进程
本发明通过提供用于在存储系统集群环境中的作业的管理的系统和方法克服了现有技术的缺点。根据本发明,作业管理器(jobmanager:JM)运行在集群环境内的每个存储系统上,以提供用于在集群内调度/或执行作业的框架。JM确保作业运行至完成,如果发生存储系统故障,就在该存储系统(一旦它已复原)或存储集群内的其他存储系统上重新启动该作业。为此,JM与复制的数据库(replicated database:RDB)接口,复制的数据库包含一个或多个队列用于跟踪各个作业及其对特定存储系统的亲和力(affinity)——即这些作业是否必须在该存储系统上运行。
响应发布命令执行管理操作的用户,创建配置对象并将其传递给JM。配置对象示例性地包含由用户在发布命令时所指定的参数和/或选项。JM使用该对象以创建作业对象。作业对象示例性地包含执行作业所需的可执行指令和/或数据状况。JM接着把创建的作业对象加载到RDB的队列。存储系统集群内的每个JM监视(monitor)最近加载的作业的队列。一旦作业包含对于特定存储系统的亲和力,即作业必须在该特定存储系统上运行,则该特定存储系统的JM从RDB的队列中恢复该作业并处理该作业。如果作业不包含特定存储系统的亲和力,则集群内具有可用处理带宽的任意JM将恢复并处理该作业。
为了确保该作业执行至完成,集群内的JM之一被指定为主作业管理器并监视集群中存储系统的状态。可使用包括例如使用具有最低序号(serial number)或网络地址的存储系统、最少利用的存储系统、循环法(round robin)等的任何任意的技术来选择主作业管理器。在发现存储系统的故障之上,主作业管理器等待预定的超时期间过去。如果超时期间过去而发生故障的存储系统没有复原,则主作业管理器把该作业标记为未被主张的(unclaimed),以致于集群内的其他JM之一可依照其正常作业获取程序(routine)主张该作业并处理该作业至完成。只有具有集群亲和力的那些作业可以被集群内的第二JM复原。
图11是图示管理进程的集合的示意框图,管理进程在存储操作系统300上以用户模式应用1100运行,以便为集群的节点提供配置信息(即管理数据)的管理。管理进程包括各自利用被链接为库的数据复制服务(RDB 1150)的管理框架进程1110和卷位置数据库(volume location database:VLDB)进程1130。管理框架1110通过命令行界面(command line interface:CLI)和/或基于网的图形用户界面(graphical user interface:GUI)给管理员1170界面提供用户界面(userinterface:UI)。示例性地,管理框架基于单元管理器,单元管理器给与节点200交互的用户/系统管理员提供实体(entity)以管理集群100。
VLDB 1130是数据库进程,该进程跟踪集群100内各个存储部件(如灵活卷,集合体等)的位置,从而使遍及集群的请求的路由便利。在示例实施例中,每个节点的N-模块310访问配置表235,该表把数据容器句柄500的SVS ID 502映射到“拥有”(服务)集群内的数据容器的D-模块350。VLDB包括多个条目(entry),这些条目又提供配置表235中的条目(entry)的内容;其中,VLDB条目记载集群内灵活卷(下文中一般为“卷910”)和集合体900的位置。
管理框架1110包括示例性地为多线程进程的作业管理器(JM)1160,多线程进程为调度被配置为作业的管理任务的执行提供基础结构和机制。JM 1160包括多个线程1165,每个线程在示例实施例中与例如高、中和/或低优先权的优先权等级关联。示例性地,具有特定优先权的作业可使用具有该优先权或较低优先权的任意线程来执行。因此,例如,低优先权的作业可只在低优先权的线程上执行,反之,高优先权作业可以在具有低、中和/或高优先权的线程上执行。
根据示例实施例,管理员计算机1170的UI进程1175响应由用户所运行的管理操作命令创建配置对象1125。利用配置对象1120创建与特定作业关联的作业对象1200。所创建的作业对象1200接着在作业对象(Job Object:J.O.)队列1180中排队,该队列把作业对象1200持久地存储在RDB 1150上集群范围(cluster-wide)的布置中。同样,每个J.O.队列被配置来存储由一个或多个JM所加载的一个或多个作业对象。通过持久存储作业对象1200和队列1180,集群内的每个JM1160可以识别要被执行的作业而不管哪个JM1160最初加载了作业对象1200。
管理进程具有到RDB 1150的接口(紧密耦合到RDB 1150)。RDB包含对由管理进程所处理的管理数据提供持久的对象存储(对象的存储)的库。特别地,RDB 1150复制和同步在集群100的所有节点200的管理数据对象存储访问,从而确保RDB数据库映象(image)在所有节点200上都相同。当把作业对象1200加载到队列1180上,RDB通知每个JM 1160以使适当的JM可采取适当的行动。
图12是根据本发明实施例的示例作业对象1200的示意框图。示例性地,使用面向对象的范例(paradigm)配置作业,其中,每个作业对象1200包含用于执行相关作业的必需的数据结构和/或可执行指令。示例性地,作业对象1200包括许多执行函数入口点(entry point),包括Run()(运行)函数1205、Restart()(重启)函数1210、Resume()(恢复)函数1212、CheckComplete()(检查完成)函数1215、Pause()(暂停)函数1220和Stop()(停止)函数1225。另外。作业对象数据结构包括与之关联的一种或多种数据类,所述数据类包括如配置类1230、作业记录数据结构1300、执行类1235以及在备选实施例中的附加类和/或执行函数1245。
Run()函数1205为作业的初始化和执行提供初始入口点。当首次初始化与作业对象1200关联的作业时,JM 1160调用Run()函数1205。因此,Run()函数1205通过检查配置类1230内所包含的信息以确定要被执行的作业的参数来启动作业的处理。根据作业的完成,Run()函数返回识别作业完成状态的值,下文将进一步描述。JM调用Restart()函数1210以在如JM崩溃的故障之后重启作业的处理。Resume()函数1212被用来继续处理暂停的作业。CheckComplete()函数1215为JM提供入口点以检查作业的完成状态。示例性地,CheckComplete()函数1215返回可示例性地被存储在作业记录数据结构1300中的状态信息集合。调用OnComplete()(完成中)函数1222以在等待另一作业直到完成之后继续处理。类似地,Pause()函数1220和Quit()(退出)函数1225使JM能够暂停和/或停止作业的执行。
配置类域1230存储用于特定作业的必需的配置信息。具体地,配置类1230对于将被执行的每个特定类型的作业是唯一的,并使JM能够创建适当的作业对象1200。如下文进一步描述的,当执行命令以初始化作业时,配置类1230被创建并为JM排队,以配置适当的作业对象1200。作业记录数据结构1300,包含与作业相关的状态信息集合。执行类域1235包含用于作业的作业特定执行数据结构。
图13是根据本发明实施例的示例的作业记录数据结构1300的示意框图。示例性地,在作业对象数据结构1200内利用作业记录数据结构1300来跟踪与作业有关的各种运行状态信息。作业记录数据结构1300示例性地包括名称域1305、标识符域1310、亲和力域1315、所有者(owner)域1320、优先权域1325、运行状态域1330、作业等待列表域1335、调度域(schedule field)1340、排队时间域1345、开始时间域1350、再调度间隔域1355、倒毙(drop dead)时间域1360、重排队标志域1365、作业类型域1370和在备选实施例中的附加域1375。在备选实施例中,可使用附加的、不同的和/或较少的域。
名称域1305包含与特定作业对象1200关联的作业的文字数字名称。标识符域1310包含与特定作业关联的数字标识符。亲和力域1315确定作业是否包含对特定存储系统的亲和力,或者作业是否会在集群内的任意存储系统上被执行,即集群范围的亲和力。在示例实施例中,作业包含对确定的存储系统的亲和力,即作业由于例如仅在该确定的存储系统上可用的特定硬件而必须在该存储系统上执行。优先权域1325确定作业的优先权等级。示例性地,每个作业可与高、中和/或低优先权关联。优先权等级确定在处理作业时可使用JM的哪些线程。根据示例性的实施例,作业可只由JM内的具有与该作业关联的优先权等级相等或比其低的优先权等级的线程处理。例如,具有中优先权的作业能由中和/或低级优先权的线程执行但不能由高优先权的线程执行。但是,要注意,在备选实施例中,可在没有脱离本发明的精神或范围时利用不同的线程优先化方案。
作业等待域1335识别当前作业在执行前正在等待完成的任意作业。例如,可要求作业在执行某些任务前等待先前调用的作业的完成。在这种情况下,当前作业正在等待的那些作业的标识符被存储在作业等待域1335内。JM1160可检查此域1335,提出适合的警报,以便一旦已完成作业就调用OnComplete()函数1222。调度域1340识别作业的执行将开始执行的日期/时间。排队时间域1345识别最初把作业排队到RDB的时间。开始时间域1350识别启动作业的执行的时间。重调度间隔域1355包含识别作业将要被重新调度的频率的值。当作业要求在正常调度1340之外被重新调度时使用调度间隔1355。例如,如果作业要被每天运行但遇到问题,那么作业的重新调度间隔1355可指示作业将在例如5分钟后被重新调度而不是一直等到第二天的定期调度时间。倒毙时间域1360识别作业的执行的倒毙时间。即,作业必须在不迟于倒毙时间域1360内所确定的时间被执行。
重排队标志域1365示例性地包含识别特定作业对象1200是否已被重排队的布尔值。重排队可发生在例如作业被特定JM启动但因为某些原因(如启动作业的JM的故障)而被暂停(halt)时。在这种情况下,主作业管理器(下文要进一步描述),可为把作业重排队以供由另一存储系统的执行。在这种情况下,新的JM 1160使用Restart()函数1210而不是Run()函数1205来调用作业。作业类型域1370识别与作业对象1200关联的作业的类型。
G.作业管理
图14是详述根据本发明的示例实施例用于处理作业的流程1400的步骤的流程图。流程1400开始于步骤1405,并继续到步骤1410,在那里用户发布命令启动作业。示例性地,用户在管理UI 1170输入命令行界面(command line interface:CLI)命令;但是,根据与特定存储系统关联的用户界面,用户可从图形用户界面(graphical userinterface;GUI)中选择各种选项来启动作业。同样地,应该经GUI使输入CLI命令的描述包括作业的启动。要注意,在备选实施例中,可由例如自动化进程等启动作业而不需要用户的干预。同样地,应把用户输入命令的描述认为只是示例性的。
响应命令的执行,在步骤1415,UI进程1175创建配置对象1125。配置对象1125示例性地包括由用户在发布命令时所指定的参数和/或选项。在步骤1420,JM接收排队的配置对象并利用配置对象1125创建作业对象1200。示例性地,JM通过识别要被使用的作业对象的适当的类型和将作为配置类的配置对象插入到作业对象1200,使用配置对象创建作业对象1200。
一旦创建了作业对象1200,JM 1160就接着在步骤1425把对象1200加载到RDB上的J.O.队列1130。通过将作业对象1200排队,JM1160使RDB通知集群内的所有JM 1160最近排队的作业对象是可用的,即更新已经出现在复制的数据库。响应时,每个JM 1160检查最近排队的作业对象1200以确定它是否具有对执行JM 1160的特定存储系统的亲和力或者作业对象1200是否具有集群范围的亲和力。如果作业对象1200具有集群范围的亲和力,则具有可用处理带宽(如适当优先权等级的可用线程)的任意JM1160可执行作业对象1200。在步骤1430中,适当的JM 1160接着从RDB的队列1180中恢复作业对象1200并处理该作业。通过从RDB中恢复该作业,该JM通知集群内的其他JM 1160它已主张了此作业并将处理该作业至完成。然后在步骤1435,流程1400结束。
图15是根据本发明的示例实施例示出作业的各种状态的状态图。示例性地,当初始创建作业的作业对象1200时作业开始于初始状态1505,接着在作业对象1200被加载到RDB的作业对象队列时作业转换到排队状态(状态1510)。在JM从作业对象队列中选择要执行的作业时作业转换到可运行状态1515。在选择作业之上,JM检查作业对象1200的状态数据结构1300内的重排队域,以确定是否已设置重排队域,从而指示作业对象1200已被重排队。如果是,JM调用与作业对象1200关联的Restart()函数。注意作业示例性地负责确定中断的原因并在继续适当的操作之前清除任意临时的数据结构。但是,如果没有设置重排队域,则JM调用与作业对象1200关联的Run()函数。
当Run()和/或Restart()函数完成时,向JM返回完成值。示例性地,这些值可具有JOB_COMPLETE(作业完成)、JOB_WAITING(作业_等待)或JOB_PAUSED(作业_暂停)的值。JM检查返回的完成值,并通过把作业转换到由返回的完成值所确定的状态采取适当动作。例如,如果返回的完成值是JOB_COMPLETE(作业_完成),则作业已经运行至完成,JM把作业转换到完成状态1520。JOB_WAITING(作业_等待)值意味着作业希望进入等待状态1535。在进入等待状态之前,作业(JM)把它有兴趣等待的那些作业登记在状态数据结构1300的等待域1335中。如果返回值为表示作业响应了外部请求而暂停的JOB_PAUSED(作业_暂停),那么作业在进入已暂停(paused state)状态1545之前转换到正暂停状态(pausing state)1540。由JM的退出作业的外部动作可导致作业从已暂停状态1545转换到完成状态1520,作业从完成状态转换到清除状态1525,在清除状态作业释放任意临时创建的数据结构、存储器和/或文件。此刻,作业已被完成并已适当地清除了任意临时数据结构。JM包括执行锁定(lock)机制的适当功能,以防止作业在状态间颠簸(thrashing)、进入循环或死锁等。
图16是根据本发明的示例实施例细述用于从一个或多个存储系统的故障中复原(recovering)的流程1600的步骤的流程图。步骤1600开始于步骤1605,并继续到主作业管理器监视集群的存储系统的状态的步骤1610。示例性地,根据任意方案,把集群的JM之一指定为主作业管理器。示例性地,通过跟踪RDB内当前活动的存储系统执行监视。但是,在备选实施例中,可使用监视集群中节点的状态的任意技术。示例性地,监视以常规间隔发生。在步骤1615,主作业管理器确定故障是否已在集群的任意存储系统中发生。如果故障没有发生,则流程返回到主作业控制器继续监视存储系统状态的步骤1610。
然而,如果发现了故障,则主作业管理器在采取任意动作之前等待预定的超时期间过去。在步骤1620,如果发生故障的存储系统在超时期间内复原,则流程返回到步骤1610。否则,错误已经发生,存储系统没有在可接受的时段内复原。因此,在步骤1625,主作业管理器将当前与发生故障的存储系统关联的作业标记为未被主张。示例性地,主作业管理器在作业对象的状态类内设置重排队域。结果,当作业对象被重新主张时,JM将调用Restart()函数而不是Run()函数。响应时,在步骤1630,其他存储系统主张作业用于处理。然后在步骤1635,流程完成。
再次总结,本发明使JM能够利用RDB(或其他分布式数据存储器)来实现在集群的多个节点中所分布的进程的管理并确保作业执行至完成。
已把前述的描述定向到本发明的特定实施例。然而,显而易见,可对描述的实施例进行其它变化和更改,而获得所述实施例的某些或者全部优点。特别地,要注意,本发明的原理可在非分布式文件系统中实施。此外,虽然本说明书根据N-模块和D-模块来书写,但是本发明的教导同样适用于在单个系统中实现N-模块和D-模块的功能的系统。备选地,可把N-模块和D-模块的功能遍布于任意数目的分离系统中,其中,每个系统执行一项或多项功能。另外,本文描述的流程、进程和/或模块可以硬件、配置为具有程序指令的计算机可读媒介的软件、固件或其组合实现。因此,随附权利要求书的目的是要覆盖诸如落入本发明的实质精神和范围内的所有变化和更改。
Claims (15)
1.一种用于具有多个存储系统的存储系统集群内的作业的管理的方法,所述存储系统执行作业管理器,所述方法包括以下步骤:
创建与所述作业关联的配置对象;
利用所述配置对象创建作业对象;
把所述创建的作业对象在复制的数据库上排队;
通过在所述多个存储系统上执行的所述作业管理器来检查所创建的作业对象;
确定所述作业对象是否具有对于所述存储系统集群内特定存储系统的亲和力;
响应于所述作业对象具有对于所述特定存储系统的亲和力,通过在所述特定存储系统上执行的所述作业管理器从所述复制的数据库中恢复所述作业对象并且通过在所述特定存储系统上执行的所述作业管理器执行所述作业对象;以及
响应于所述作业对象不具有对于所述特定存储系统的亲和力,由在所述多个存储系统中任何一个上执行的任何作业管理器从所述复制的数据库恢复所述作业对象以便执行所述作业对象,
其中所述作业管理器确保所述作业执行直到完成。
2.如权利要求1所述的方法,还包括执行所述恢复的作业对象内的函数。
3. 如权利要求1所述的方法,其中,所述作业对象包括函数调用集合。
4. 如权利要求3所述的方法,还包括使用所述函数调用集合的运行函数初始化所述作业对象的执行。
5. 如权利要求3所述的方法,还包括使用所述函数调用集合的重启函数在所述复制的数据库中的所述作业对象的重新排队之后重新初始化所述作业对象的执行。
6. 如权利要求1所述的方法,其中,所述作业对象包括数据类集合。
7. 如权利要求6所述的方法,其中,所述数据类集合包括含有与所述作业关联的状态信息的作业记录。
8. 如权利要求1所述的方法,其中,恢复所述作业对象包括通过新加载的作业的作业管理器而对复制的数据库进行监视。
9. 一种用于具有多个存储系统的存储系统集群内的作业的管理系统,所述存储系统执行作业管理器,所述管理系统包括:
用于创建与所述作业关联的配置对象的装置;
用于利用所述配置对象创建作业对象的装置;
用于把所述创建的作业对象在复制的数据库上排队的装置;
用于通过在所述多个存储系统上执行的所述作业管理器来检查所创建的作业对象的装置;
用于确定所述作业对象是否具有对于所述存储系统集群内特定存储系统的亲和力的装置;
用于响应于所述作业对象具有对于所述特定存储系统的亲和力,通过在所述特定存储系统上执行的所述作业管理器从所述复制的数据库中恢复所述作业对象并且通过在所述特定存储系统上执行的所述作业管理器执行所述作业对象的装置;以及
用于响应于所述作业对象不具有对于所述特定存储系统的亲和力,由在所述多个存储系统中任何一个上执行的任何作业管理器从所述复制的数据库恢复所述作业对象,以便执行所述作业对象的装置,
其中所述作业管理器确保所述作业执行直到完成。
10. 如权利要求9所述的系统,还包括用于执行所述恢复的作业对象内的函数的装置。
11.如权利要求10所述的系统,其中,所述作业对象包括函数调用集合。
12. 如权利要求9所述的系统,还包括用于使用运行函数初始化所述作业对象的执行的装置。
13.如权利要求10所述的系统,其中,所述作业对象包括数据类集合。
14. 如权利要求13所述的系统,其中,所述数据类集合包括含有与所述作业关联的状态信息的状态类。
15. 一种用于具有多个存储系统的存储系统集群内的进程集合的管理系统,所述存储系统执行作业管理器,所述管理系统包括:
用于创建与所述进程集合关联的配置对象的装置;
用于利用所述配置对象创建描述所述进程集合的对象的装置;
用于将所述创建的对象在分布式数据存储器上排队的装置;
用于通过在所述多个存储系统上执行的所述作业管理器来检查所创建的对象的装置;
用于确定所述对象是否具有对于所述存储系统集群内特定存储系统的亲和力的装置;
用于响应于所述对象具有对于所述特定存储系统的亲和力,通过在所述特定存储系统上执行的所述作业管理器从所述分布式数据存储器中恢复所述对象以便发起描述所述进程集合的对象的执行的装置;以及
用于响应于所述作业对象不具有对于所述特定存储系统的亲和力,由在所述多个存储系统中任何一个上执行的任何作业管理器从所述分布式数据存储器恢复所述对象以便发起描述所述进程集合的对象的执行的装置,
其中所述作业管理器确保描述所述进程集合的对象执行直到完成。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/414,696 | 2006-04-28 | ||
US11/414,696 US7840969B2 (en) | 2006-04-28 | 2006-04-28 | System and method for management of jobs in a cluster environment |
PCT/US2006/028211 WO2007130106A1 (en) | 2006-04-28 | 2006-07-20 | System and method for management of jobs in a cluster environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101473305A CN101473305A (zh) | 2009-07-01 |
CN101473305B true CN101473305B (zh) | 2014-09-24 |
Family
ID=37154858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680055083.8A Active CN101473305B (zh) | 2006-04-28 | 2006-07-20 | 用于集群环境中的作业的管理的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7840969B2 (zh) |
EP (1) | EP2013724A1 (zh) |
JP (1) | JP5094841B2 (zh) |
CN (1) | CN101473305B (zh) |
AU (1) | AU2006343299B2 (zh) |
WO (1) | WO2007130106A1 (zh) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170416B (zh) * | 2006-10-26 | 2012-01-04 | 阿里巴巴集团控股有限公司 | 网络数据存储系统及其数据访问方法 |
JP5018133B2 (ja) * | 2007-02-27 | 2012-09-05 | 富士通株式会社 | ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム |
CN102033804A (zh) * | 2009-09-29 | 2011-04-27 | 国际商业机器公司 | 辅助内存分析的方法和系统 |
DE112010004530B4 (de) | 2010-01-11 | 2022-08-11 | International Business Machines Corporation | Transaktionsaktualisierung bei Dynamischen Verteilten Arbeitslasten |
US8417672B2 (en) * | 2010-10-11 | 2013-04-09 | Microsoft Corporation | Item level recovery |
US9213709B2 (en) | 2012-08-08 | 2015-12-15 | Amazon Technologies, Inc. | Archival data identification |
US9563681B1 (en) | 2012-08-08 | 2017-02-07 | Amazon Technologies, Inc. | Archival data flow management |
US9767098B2 (en) | 2012-08-08 | 2017-09-19 | Amazon Technologies, Inc. | Archival data storage system |
US9251097B1 (en) | 2011-03-22 | 2016-02-02 | Amazon Technologies, Inc. | Redundant key management |
US8850261B2 (en) * | 2011-06-01 | 2014-09-30 | Microsoft Corporation | Replaying jobs at a secondary location of a service |
US10585766B2 (en) | 2011-06-06 | 2020-03-10 | Microsoft Technology Licensing, Llc | Automatic configuration of a recovery service |
US20130081022A1 (en) * | 2011-09-23 | 2013-03-28 | Elwha LLC, a limited liability company of the State of Delaware | Configuring interface devices with respect to tasks and subtasks |
US9710768B2 (en) | 2011-09-23 | 2017-07-18 | Elwha Llc | Acquiring and transmitting event related tasks and subtasks to interface devices |
US20130081021A1 (en) * | 2011-09-23 | 2013-03-28 | Elwha LLC, a limited liability company of the State of Delaware | Acquiring and transmitting tasks and subtasks to interface devices, and obtaining results of executed subtasks |
US10795722B2 (en) * | 2011-11-09 | 2020-10-06 | Nvidia Corporation | Compute task state encapsulation |
US8949308B2 (en) * | 2012-01-23 | 2015-02-03 | Microsoft Corporation | Building large scale infrastructure using hybrid clusters |
CN102624911A (zh) * | 2012-03-14 | 2012-08-01 | 中山大学 | 一种基于集群的可视媒体存储系统 |
WO2013137917A1 (en) * | 2012-03-15 | 2013-09-19 | Hewlett-Packard Development Company, L.P. | Determining a schedule for a job to replicate an object stored on a storage appliance |
US10120579B1 (en) | 2012-08-08 | 2018-11-06 | Amazon Technologies, Inc. | Data storage management for sequentially written media |
US9092441B1 (en) | 2012-08-08 | 2015-07-28 | Amazon Technologies, Inc. | Archival data organization and management |
US9652487B1 (en) | 2012-08-08 | 2017-05-16 | Amazon Technologies, Inc. | Programmable checksum calculations on data storage devices |
US9779035B1 (en) | 2012-08-08 | 2017-10-03 | Amazon Technologies, Inc. | Log-based data storage on sequentially written media |
JP6165862B2 (ja) * | 2012-08-08 | 2017-07-19 | アマゾン テクノロジーズ インコーポレイテッド | アーカイブデータ記憶システム |
US9354683B2 (en) | 2012-08-08 | 2016-05-31 | Amazon Technologies, Inc. | Data storage power management |
US8959067B1 (en) | 2012-08-08 | 2015-02-17 | Amazon Technologies, Inc. | Data storage inventory indexing |
US9830111B1 (en) | 2012-08-08 | 2017-11-28 | Amazon Technologies, Inc. | Data storage space management |
US8805793B2 (en) | 2012-08-08 | 2014-08-12 | Amazon Technologies, Inc. | Data storage integrity validation |
US9250811B1 (en) | 2012-08-08 | 2016-02-02 | Amazon Technologies, Inc. | Data write caching for sequentially written media |
US9225675B2 (en) | 2012-08-08 | 2015-12-29 | Amazon Technologies, Inc. | Data storage application programming interface |
US9904788B2 (en) | 2012-08-08 | 2018-02-27 | Amazon Technologies, Inc. | Redundant key management |
US10755208B2 (en) * | 2012-08-15 | 2020-08-25 | Sap Se | Methods, apparatus and system for mediating services |
US9223626B2 (en) * | 2012-08-30 | 2015-12-29 | International Business Machines Corporation | Task execution and management in a clustered computing environment |
US9491114B2 (en) | 2012-10-24 | 2016-11-08 | Messageone, Inc. | System and method for optimizing resource utilization in a clustered or cloud environment |
US11321118B2 (en) | 2012-10-24 | 2022-05-03 | Messageone, Inc. | System and method for controlled sharing of consumable resources in a computer cluster |
US10558581B1 (en) | 2013-02-19 | 2020-02-11 | Amazon Technologies, Inc. | Systems and techniques for data recovery in a keymapless data storage system |
US9578091B2 (en) | 2013-12-30 | 2017-02-21 | Microsoft Technology Licensing, Llc | Seamless cluster servicing |
CN104765641B (zh) * | 2014-01-02 | 2019-04-12 | 中国移动通信集团安徽有限公司 | 一种作业调度方法及系统 |
CN104102708A (zh) * | 2014-07-14 | 2014-10-15 | 浪潮(北京)电子信息产业有限公司 | 一种实现小文件存取的方法及装置 |
GB2513779B (en) * | 2014-08-14 | 2015-05-13 | Imp Io Ltd | A method and system for scalable job processing |
US9417955B2 (en) * | 2014-08-21 | 2016-08-16 | Datrium, Inc. | Data reconstruction in distributed data storage system with key-based addressing |
US9729390B2 (en) | 2015-04-22 | 2017-08-08 | LARC Networks, Inc. | Dead drop network architecture |
WO2017015001A1 (en) | 2015-07-17 | 2017-01-26 | LARC Networks, Inc. | Double write data exchange in a dead drop network architecture |
CN105141685A (zh) * | 2015-08-18 | 2015-12-09 | 浪潮(北京)电子信息产业有限公司 | 文件读写系统及其元数据存储器和文件读写方法和装置 |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
DE102015012415B4 (de) * | 2015-09-25 | 2021-06-10 | Audi Ag | Vorhersage eines Spannungseinbruchs in einem Kraftfahrzeug |
US10509680B2 (en) * | 2016-11-23 | 2019-12-17 | Vmware, Inc. | Methods, systems and apparatus to perform a workflow in a software defined data center |
US10339053B2 (en) | 2016-12-09 | 2019-07-02 | Hewlett Packard Enterprise Development Lp | Variable cache flushing |
US10496577B2 (en) | 2017-02-09 | 2019-12-03 | Hewlett Packard Enterprise Development Lp | Distribution of master device tasks among bus queues |
US10671286B2 (en) * | 2018-09-04 | 2020-06-02 | Toshiba Memory Corporation | System and method for managing GUI of virtual NVMe entities in NVMe over fabric appliance |
CN113254156B (zh) * | 2021-05-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种容器组部署方法、装置、电子设备及存储介质 |
CN115391289B (zh) * | 2022-08-15 | 2023-08-11 | 广州市玄武无线科技股份有限公司 | 一种包含文件信息的目录结构生成方法及装置 |
CN116128517B (zh) * | 2023-02-17 | 2023-09-22 | 连云港海通市民一卡通有限公司 | 一种一卡通运营数据安全管理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6384933B1 (en) * | 1999-03-31 | 2002-05-07 | Marconi Data Systems Inc. | Job control in a printing system utilizing object-oriented modules in a distributed object system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1994029807A1 (en) | 1993-06-03 | 1994-12-22 | Network Appliance Corporation | Write anywhere file-system layout |
JP3504763B2 (ja) * | 1994-08-19 | 2004-03-08 | 富士通株式会社 | 分散システムに使用されるクライアント,サーバ及び記憶装置並びに分散システムにおける資源管理用サーバの復旧方法 |
US6249821B1 (en) * | 1995-07-14 | 2001-06-19 | Oki Data Americas, Inc. | Network object frameworks |
US6223205B1 (en) * | 1997-10-20 | 2001-04-24 | Mor Harchol-Balter | Method and apparatus for assigning tasks in a distributed server system |
US6604148B1 (en) * | 1999-10-01 | 2003-08-05 | International Business Machines Corporation | Method, system, and program for accessing a network namespace |
FR2800375B1 (fr) | 1999-11-03 | 2004-07-23 | Sanofi Synthelabo | Derives tricycliques d'acide pyrazolecarboxylique, leur preparation, les compositions pharmaceutiques en contenant |
US7099027B1 (en) * | 1999-11-12 | 2006-08-29 | Electronics For Imaging, Inc. | Method and apparatus for distributing print jobs |
US6788429B1 (en) * | 2000-04-14 | 2004-09-07 | Hewlett-Packard Development Company, Lp. | Remote print queue management |
WO2001088677A2 (en) * | 2000-05-18 | 2001-11-22 | Stefaan De Schrijver | Apparatus and method for secure object access |
EP1197876A3 (en) * | 2000-10-13 | 2003-04-16 | Miosoft Corporation | Persistent data storage techniques |
US6671773B2 (en) | 2000-12-07 | 2003-12-30 | Spinnaker Networks, Llc | Method and system for responding to file system requests |
JP3835322B2 (ja) * | 2002-03-22 | 2006-10-18 | ブラザー工業株式会社 | プリントシステム,印刷装置,ウェブサーバ,進捗状況表示データ提供サーバ,プログラム |
US20030223090A1 (en) * | 2002-05-28 | 2003-12-04 | Mustafa Seifi | Method and implementation for message-driven job processing |
US20040139167A1 (en) | 2002-12-06 | 2004-07-15 | Andiamo Systems Inc., A Delaware Corporation | Apparatus and method for a scalable network attach storage system |
US20040260745A1 (en) * | 2003-06-18 | 2004-12-23 | Gage Christopher A. S. | Load balancer performance using affinity modification |
US7698289B2 (en) | 2003-12-02 | 2010-04-13 | Netapp, Inc. | Storage system architecture for striping data container content across volumes of a cluster |
EP1723564A2 (en) * | 2004-02-11 | 2006-11-22 | Storage Technology Corporation | Clustered hierarchical file services |
US7409494B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US20050278383A1 (en) | 2004-05-28 | 2005-12-15 | Network Appliance, Inc. | Method and apparatus for keeping a file system client in a read-only name space of the file system |
US7454659B1 (en) * | 2004-08-24 | 2008-11-18 | The Mathworks, Inc. | Distributed systems in test environments |
US8316074B2 (en) * | 2005-03-11 | 2012-11-20 | Network Appliance, Inc. | Network-accessible memory |
-
2006
- 2006-04-28 US US11/414,696 patent/US7840969B2/en active Active
- 2006-07-20 WO PCT/US2006/028211 patent/WO2007130106A1/en active Application Filing
- 2006-07-20 AU AU2006343299A patent/AU2006343299B2/en not_active Ceased
- 2006-07-20 EP EP06787993A patent/EP2013724A1/en not_active Ceased
- 2006-07-20 JP JP2009507658A patent/JP5094841B2/ja not_active Expired - Fee Related
- 2006-07-20 CN CN200680055083.8A patent/CN101473305B/zh active Active
-
2010
- 2010-10-18 US US12/906,583 patent/US8286179B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6384933B1 (en) * | 1999-03-31 | 2002-05-07 | Marconi Data Systems Inc. | Job control in a printing system utilizing object-oriented modules in a distributed object system |
Also Published As
Publication number | Publication date |
---|---|
AU2006343299A1 (en) | 2007-11-15 |
US20070256081A1 (en) | 2007-11-01 |
WO2007130106A1 (en) | 2007-11-15 |
AU2006343299B2 (en) | 2011-03-17 |
US20110035757A1 (en) | 2011-02-10 |
US8286179B2 (en) | 2012-10-09 |
JP2009535688A (ja) | 2009-10-01 |
JP5094841B2 (ja) | 2012-12-12 |
CN101473305A (zh) | 2009-07-01 |
US7840969B2 (en) | 2010-11-23 |
EP2013724A1 (en) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101473305B (zh) | 用于集群环境中的作业的管理的系统和方法 | |
US7827350B1 (en) | Method and system for promoting a snapshot in a distributed file system | |
US10831614B2 (en) | Visualizing restoration operation granularity for a database | |
CN102460439B (zh) | 通过条带式文件系统中的容量平衡进行数据分布 | |
CN101218583B (zh) | 用于在群集的卷上带区化数据容器内容的存储系统体系结构 | |
US9684571B2 (en) | Namespace mirroring in an expandable storage volume | |
US8161321B2 (en) | Virtual machine-based on-demand parallel disaster recovery system and the method thereof | |
KR101833114B1 (ko) | 분산 데이터베이스 시스템들을 위한 고속 장애 복구 | |
US8224777B2 (en) | System and method for generating consistent images of a set of data objects | |
US7600083B2 (en) | Method and system for automatic write request suspension | |
US7949843B1 (en) | Method and system for single pass volume scanning for multiple destination mirroring | |
US7747584B1 (en) | System and method for enabling de-duplication in a storage system architecture | |
JP5068252B2 (ja) | ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術 | |
US7925749B1 (en) | System and method for transparent data replication over migrating virtual servers | |
CN103620580A (zh) | 用于数据副本的迁移的系统和方法 | |
CN104813321A (zh) | 在分布式对象存储生态系统中的去耦合的内容以及元数据 | |
JP4779012B2 (ja) | 瞬時ボリューム復元のためのオン・デマンドでデータを復元するシステム、および方法 | |
US7856423B1 (en) | System and method for generating a crash consistent persistent consistency point image set | |
US20230259529A1 (en) | Timestamp consistency for synchronous replication | |
CN110663034B (zh) | 用于云环境中改进的数据复制的方法及其设备 |
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 | ||
C56 | Change in the name or address of the patentee | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: NETAPP incorporated company Address before: American California Patentee before: Network Appliance Inc. |