CN101218583B - 用于在群集的卷上带区化数据容器内容的存储系统体系结构 - Google Patents
用于在群集的卷上带区化数据容器内容的存储系统体系结构 Download PDFInfo
- Publication number
- CN101218583B CN101218583B CN2005800509114A CN200580050911A CN101218583B CN 101218583 B CN101218583 B CN 101218583B CN 2005800509114 A CN2005800509114 A CN 2005800509114A CN 200580050911 A CN200580050911 A CN 200580050911A CN 101218583 B CN101218583 B CN 101218583B
- Authority
- CN
- China
- Prior art keywords
- file
- volume
- data
- storage
- blade
- 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.)
- Expired - Fee Related
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Packaging Of Annular Or Rod-Shaped Articles, Wearing Apparel, Cassettes, Or The Like (AREA)
Abstract
一种存储系统体系结构,包括分布于作为群集互连的多个节点上的一个或多个卷。卷组织为带区卷集合(SVS)且配置为响应于客户端发出的多协议数据访问请求而存储由群集服务的数据容器的内容。群集的每个节点包括(i)适于维护SVS的卷的存储服务器和(ii)适于将数据访问请求重定向到群集的任何存储服务器的多协议引擎。注意,每个数据容器的内容分配到SVS的卷中以便由此改进群集提供的存储服务的效率。
Description
技术领域
本发明涉及存储系统,并且更特别地涉及在一个或多个存储系统上的多个卷上带区化文件。
背景技术
通常,存储系统包括一个或多个存储设备,按照需要,信息可进入其中,且可从其获得信息。存储系统包括尤其通过调用支持系统实现的存储服务的存储操作,而在功能上组织系统的存储操作系统。存储系统可根据多种存储体系结构实现,包括但不限于附加到网络的存储环境、存储区域网络和直接附加到客户端或主机的磁盘部件。通常,存储设备是组织为磁盘阵列的磁盘驱动器,其中术语“磁盘”通常描述自包含的旋转磁媒体存储设备。关于这点,术语磁盘和硬盘驱动器(HDD)或直接存取存储设备(DASD)是同义的。
存储系统的存储操作系统可实现高级模块,例如文件系统,以便逻辑地将卷上存储的信息组织为例如文件和逻辑单元的数据容器的层次结构。例如,每个“磁盘上”文件可实现为数据结构,即磁盘块的集合,这些磁盘块配置为存储信息,例如文件的实际数据。这些数据块组织在文件系统维护的卷块号(vbn)空间内。文件系统还可为文件中的每个数据块分配对应的“文件偏移量”或文件块号(fbn)。通常,文件系统基于每个文件分配fbn的序列,而在更大的卷地址空间上分配vbn。文件系统将vbn空间内的数据块组织为“逻辑卷”;虽然不是必须的,每个逻辑卷可与其自己的文件系统相关联。
已知类型的文件系统是不在磁盘上重写数据的随处可写文件系统。如果将数据块从磁盘获取(读取)到存储系统的存储器中且用新数据将其“弄脏”(即更新或修改),数据块此后存储(写入)到磁盘上的新位置以优化写入性能。随处可写文件系统可在初始时采用最佳布局使得数据充分连续地在磁盘上排列。最佳磁盘布局导致了针对磁盘的有效访问操作,特别对于连续的读取操作。配置在
存储系统上操作的随处可写文件系统的一个例子是可从NetworkAppliance,Inc.,Sunnyvale,California得到的随处可写文件布局(WAFLTM)文件系统。
存储系统还可配置为根据信息递送的客户端/服务器模型操作,以由此使得许多客户端访问在系统上存储的数据容器。在该模型中,客户端可包括在计算机网络上“连接”到存储系统的计算机上执行的应用,例如数据库应用,所述计算机网络诸如点到点链路、共享的局域网(LAN)、广域网(WAN)、或在例如因特网的公用网上实现的虚拟个人网络(VPN)。每个客户端可通过在网络上将基于文件和基于块的协议消息(以包的形式)发送到存储系统来请求系统的服务。
多个存储系统可互连以提供配置为服务许多客户端的存储系统环境。每个存储系统可配置为服务一个或多个卷,其中每个卷存储一个或多个数据容器。然而,通常客户端发出的大量数据访问请求可指向由环境的特别存储系统所服务的少量数据容器。这种问题的一个解决方案是将由特定存储系统服务的卷分布到环境的所有存储系统中。这转而在所有存储系统中分布了数据访问请求,以及需要服务该请求的处理资源,由此减少了在每个存储系统上的个体处理负载。然而,当存储系统环境的客户端仅大量地访问单个数据容器,例如一个文件时,出现了显著的缺点。结果,尝试服务指向该数据容器的请求的存储系统超出了其处理资源且变得超负载,伴随的是速度和性能的降低。
发明内容
通过提供包括分布于作为群集互连的多个节点上的一个或多个卷的存储系统体系结构,本发明克服了现有技术的缺点。卷组织为带区卷集合(SVS)且配置为响应于客户端发送的多协议数据访问请求存储由群集服务的数据容器的内容,例如文件和逻辑单元。群集的每个节点包括(i)适用于服务SVS的卷的存储服务器和(ii)适用于将数据访问请求重定向到群集的任何存储服务器的多协议引擎。显著地,将每个数据容器的内容分配到SVS的卷中,以由此改进群集提供的存储服务的效率。
根据本发明的一个方面,SVS包括一个元数据卷(MDV),以及一个或多个数据卷(DV)。MDV配置为存储元数据的规范副本,包括与存储在SVS上的所有数据容器关联的访问控制列表和目录,而DV配置为至少存储那些容器的数据内容。对于在SVS上存储的每个数据容器,指定一个卷给CAV,且为此将卷配置为存储(“高速缓存”)与该容器关联的某个快速改变的属性元数据,以由此卸载将指向MDV的访问请求。
根据本发明的另一方面,SVS与定义带区算法、带区宽度和SVS内的卷的排序列表的带区规则集合相关联。带区算法规定了数据容器内容分配为多个卷上的带区的方式,而带区宽度规定了每个带区的大小/宽度 。而且,卷的排序列表可规定SVS的各种卷和带区规则的功能和实现 。例如,排序列表中的第一卷表示SVS的MDV,而列表中的卷的排序表示实现特别的带区算法,例如轮转法的方式。
在说明性实施例中,每个节点的存储服务器实现为磁盘元件(D-刀片)且多协议引擎实现为网络元件(N-刀片)。N-刀片从客户端接收多协议数据访问请求,将该请求转换为群集结构(CF)的消息且将该消息重定向到群集的适当D-刀片。N-刀片的CF模块实现了新颖的Locate()函数以计算消息所指向的数据容器内容在SVS卷中的位置,由此确保群集提供的该内容的一致性。每个D-刀片包括文件系统和卷带区模块(VSM),它们协同以根据带区规则通过处理CF消息来服务SVS的卷。特别地,VSM实现了新颖的Locate()函数。
附图说明
通过结合附图参考下面的描述,可以更好地理解本发明的上述和进一步的优点,附图中相同的附图标记表示同样或功能类似的元件:
图1是根据本发明的实施例的作为群集互连的多个节点的示意性框图;
图2是根据本发明的实施例的节点的示意性框图;
图3是可有利地用于本发明的存储操作系统的示意性框图;
图4是根据本发明的实施例的说明群集结构(CF)消息的格式的示意性框图;
图5是根据本发明的实施例的说明数据容器句柄的格式的示意性框图;
图6是根据本发明的实施例的示例信息节点的示意性框图;
图7是根据本发明的实施例的示例缓冲树的示意性框图;
图8是可有利地用于本发明的文件缓冲树的说明性实施例的示意性框图;
图9是根据本发明的实施例的示例聚集的示意性框图;
图10是根据本发明的实施例的聚集的示例磁盘上布局的示意性框图;
图11是根据本发明的实施例说明管理过程的集合的示意性框图;
图12是根据本发明的实施例的卷位置数据库(VLDB)的卷条目的示意性框图;
图13是根据本发明的实施例的VLDB聚集条目的示意性框图;
图14是根据本发明的实施例的带区卷集合(SVS)的示意性框图;
图15是根据本发明的实施例的VLDB SVS条目的示意性框图;
图16是根据本发明的实施例说明在SVS的卷上存储的文件内容的周期性稀疏的示意性框图;
图17是根据本发明的实施例详述创建新文件的过程的步骤的流程图;
图18是根据本发明的实施例详述删除文件的过程的步骤的流程图;
图19是根据本发明的实施例详述获取文件属性的过程的步骤的流程图;
图20是根据本发明的实施例详述写入/修改文件属性的过程的步骤的流程图;
图21是根据本发明的实施例详述处理读取请求的过程的步骤的流程图;和
图22是根据本发明的实施例详述处理写入请求的过程的步骤的流程图。
具体实施方式
A.群集环境
图1是作为群集100互连且配置为提供与存储设备上的信息组织有关的存储服务的多个节点200的示意性框图。节点200包括协同以提供群集100的分布式存储系统体系结构的各种功能部件。为此,每个节点200通常组织为网络元件(N-刀片310)和磁盘元件(D-刀片350)。N-刀片310包括使得节点200能够通过计算机网络140连接到客户端180的功能,而每个D-刀片350连接到一个或多个存储设备,例如磁盘阵列120的磁盘130。通过群集交换结构150互连节点200,在说明性实施例中,所述群集交换结构可实现为千兆以太网交换。通常,一个示例分布式文件系统体系结构在美国专利申请公开号US2002/0116593中描述,标题为METHOD AND SYSTEM FOR RESPOINDINGTO FILE SYSTEM REQUESTS,申请人为M.Kazar等人,于2002年8月22日公布。应当注意,尽管在说明性群集100中示出了同样数量的N和D-刀片,根据本发明的各种实施例,N和/或D-刀片的数量可以不同。例如,在群集结构100中可以有多个N-刀片和D-刀片互连,但在N和D-刀片之间不是一对一的映射关系。比如同样地,节点200包括一个N-刀片和一个D-刀片的描述应当认为仅仅是说明性的。
客户端180可以是根据信息递送的客户端/服务器模型配置为与节点200交互的通用计算机。即,通过在网络140上交换包,每个客户端可请求节点的服务,且节点可返回客户端所请求服务的结果。当以文件和目录的形式访问信息时,客户端可发送包,该包包括基于文件的访问协议,例如在传输控制协议/网间协议(TCP/IP)上的公共因特网文件系统(CIFS)协议或网络文件系统(NFS)协议。可替换地,当以块的形式访问信息时,客户端可发出包,该包包括基于块的访问协议,例如在TCP上封装的小型计算机系统接口(SCSI)协议(iSCSI)和在光纤通道(FCP)上封装的SCSI。
B.存储系统节点
图2是说明性地实现为存储系统的节点200的示意性框图,所述存储系统包括通过系统总线223互连的多个处理器222a、b,存储器224,网络适配器225,群集访问适配器226,存储适配器228和本地存储器230。本地存储器230包括一个或多个存储设备,例如磁盘,由节点用于(例如在配置表235中)本地存储由作为用户模式应用
1100执行的一个或多个管理进程(参见图11)所提供的配置信息。群集访问适配器226包括多个端口,该端口适用于将节点200耦合到群集100的其它节点。在说明性实施例中,以太网用作为群集协议和互连媒体,尽管对于本领域技术人员来说,可在这里描述的群集体系结构内使用其它类型的协议和互连。在可替换实施例中,在分离的存储系统或计算机上实现N-刀片和D-刀片的情况下,N/D-刀片使用群集访问适配器226来与群集100中的其它N/D-刀片进行通信。
说明性地,每个节点200实现为执行存储操作系统300的双处理器存储系统,所述存储操作系统300优选地实现了高级模块,例如文件系统,以逻辑地将信息组织为磁盘上的命名目录、文件和称为虚拟磁盘的专用类型的文件(以下通常称为“块”)的层次结构。然而,对本领域技术人员来说明显的是,节点200可替换地包括单个或超过两个处理器的系统。说明性地,一个处理器222a在节点上执行N-刀片310的功能,而另一个处理器222b执行D-刀片350的功能。
说明性地,存储器224包括可由处理器和适配器寻址的存储位置,以用于存储和本发明关联的软件程序代码和数据结构。处理器和适配器可转而包括配置为执行软件代码且操纵数据结构的处理元件和/或逻辑电路。通常部分驻留在存储器中且由处理元件执行的存储操作系统300,尤其通过调用支持节点实现的存储服务的存储操作,来在功能上组织节点200。对本领域技术人员来说明显的是,其它处理和存储装置,包括各种计算机可读媒体,可用于存储和执行与这里描述的本发明有关的程序指令。
网络适配器225包括多个端口,该端口适用于在点到点链路、广域网、在公用网(因特网)或共享局域网上实现的虚拟个人网络上将节点200耦合到一个或多个客户端180。因此网络适配器225可包括需要将节点连接到网络的机械、电气和信令电路。说明性地,计算机网络140可实现为以太网或光纤(FC)网络。每个客户端180可通过根据预定义协议,例如TCP/IP交换离散帧或数据包来与在网络140上的节点通信。
存储适配器228和在节点200上执行的存储操作系统300协同,以访问客户端所请求的信息。信息可存储在任何类型的可写存储设备媒体的附加阵列上,所述可写存储设备媒体诸如是录像带、光学媒
体、DVD、磁带、磁泡存储器、电子随机存取存储器、微电子机械和任何其它适于存储信息,包括数据和奇偶信息的类似媒体。然而,如这里所说明性地描述的,所述信息优选地存储在阵列120的磁盘130上。存储适配器包括具有在I/O互连布置,例如传统高性能FC链路拓扑上耦合到磁盘的输入/输出(I/O)接口电路的多个端口。
在每个阵列120上的信息存储优选地实现为一个或多个存储“卷”,该卷包括物理存储磁盘130的集合,所述物理存储磁盘130协同以定义一个或多个卷上的卷块号(vbn)空间的整体逻辑布置。通常,尽管不是必须的,每个逻辑卷与其自己的文件系统相关联。通常,逻辑卷/文件系统中的磁盘组织为一个或多个组,其中每个组可作为独立磁盘冗余阵列(RAID)来操作。大多数RAID实现,例如RAID-4级实现,通过在RAID组中跨越给定数目的物理磁盘冗余写入数据带区且对于带区数据适当地存储奇偶信息来增强数据存储的可靠性/完整性。RAID实现的一个说明性例子是RAID-4级实现,尽管应当理解,可根据这里描述的发明原理使用RAID实现的其它类型和级别。
C.存储操作系统
为了便于访问磁盘130,存储操作系统200实现随处可写的文件系统,该文件系统与一个或多个虚拟化模块协同以“虚拟化”由磁盘130提供的存储空间。文件系统逻辑地将信息组织为磁盘上的命名的目录和文件的层次结构。每个“磁盘上”文件可实现为磁盘块的集合,所述磁盘块配置为存储信息,例如数据,而目录可实现为特定格式的文件,其中存储了名称和到其它文件和目录的链接。虚拟化模块允许文件系统进一步逻辑地将信息组织为作为命名逻辑单元号(lun)输出的磁盘上块的层次结构。
在说明性实施例中,存储操作系统优选地是可从NetworkAppliance,Inc.,Sunnyvale,California得到的NetAppDataONTAPTM操作系统,其实现了随处可写文件布局(WAFLTM)文件系统。然而,明显可预期的是,根据这里描述的发明原理,可增强任何适当的存储操作系统以便于使用。如所述地,这里使用的术语“WAFL”应当被理解为广义地指任何另外适用于本发明的教导的存储操作系统。
图3是可有利地用于本发明的存储操作系统300的示意性框图。存储操作系统包括一系列软件层,该软件层组织为形成完整的网络协议栈,或更一般地,形成使用块和文件访问协议为客户端提供数据通路以访问存储在节点上的信息的多协议引擎325。多协议引擎包括网络驱动器(例如千兆以太网驱动器)的媒体访问层312,该媒体访问层312对接到网络协议层,例如IP层314和它的支持传输机构、TCP层316和用户数据报协议(UDP)层315。文件系统协议层提供多协议文件访问,并且为此,包括对直接存储文件系统(DAFS)协议318、NFS协议320、CIFS协议322和超文本传输协议(HTTP)协议324的支持。如DAFS协议318所需要的,VI层326实现了VI体系结构以提供直接访问传输(DAT)能力,例如RDMA。iSCSI驱动器层328提供了在TCP/IP网络协议层上的块协议访问,而FC驱动器层330接收/发送到/来自节点的块访问请求/响应。当访问节点200上的块时,FC和iSCSI驱动器提供对块的FC专用和iSCSI专用的访问控制,并且因此管理lun输出到iSCSI或FCP,或可替换地输出到iSCSI和FCP两者。
此外,存储操作系统包括一系列软件层,该软件层组织为形成提供数据通路以访问存储在节点200的磁盘130上的信息的存储服务器365。为此,存储服务器365包括文件系统模块360,以及与之协同的卷带区模块(VSM)370、RAID系统模块380和磁盘驱动器系统模块390。RAID系统380根据I/O操作来管理从/向卷/磁盘获取/存储信息,而磁盘驱动器系统390实现了磁盘访问协议,例如SCSI协议。说明性地,VSM370实现了本发明的带区卷集合(SVS)。如这里进一步描述的,VSM和文件系统360协同,以使得存储服务器365能够服务SVS的卷。特别地,VSM370实现了新颖的Locate()函数375以计算SVS卷中数据容器内容的位置,以便由此确保群集提供的该内容的一致性。
通过与说明性地实现为例如虚拟磁盘(vdisk)模块(未示出)和SCSI目标模块335的一个或多个虚拟化模块交互,文件系统360实现了存储操作系统300的虚拟化系统。vdisk模块使得能够由例如管理框架1110的用户接口(参见图11)的管理接口访问,以响应用户(系统管理员)向节点200发出命令。通常,SCSI目标模块335布置于FC和iSCSI驱动器328、330和文件系统360之间,以提供在块(lun)
空间和文件系统空间之间的虚拟化系统的变换层,其中lun表示为块。
说明性地,文件系统360是基于消息的系统,该系统提供逻辑卷管理能力,用于访问存储在存储设备,例如磁盘上的信息。即是,除了提供文件系统语义,文件系统360提供通常与卷管理器关联的功能。这些功能包括(i)磁盘的聚集,(ii)磁盘的存储带宽的聚集,和(iii)可靠性保证,例如镜像法和/或奇偶性(RAID)。说明性地,文件系统360实现了具有磁盘上格式表示的WAFL文件系统(下文一般称为“随处可写文件系统”),所述格式表示是基于块的,使用例如4千字节(KB)块且使用索引节点(“信息节点”)以标识文件和文件属性(诸如创建时间、访问许可、大小和块位置)。文件系统使用文件存储元数据,该元数据描述文件系统的布局;这些元数据文件尤其包括信息节点文件。文件句柄,即包括信息节点号的标识符,用于从磁盘获取信息节点。
概括地叙述,随处可写文件系统的所有信息节点组织为信息节点文件。文件系统(fs)信息块规定了文件系统中信息的布局且包括文件的信息节点,所述文件包括文件系统的所有其它信息节点。每个逻辑卷(文件系统)具有优选地存储在例如RAID组内的固定位置的fsinfo块。信息节点文件的信息节点可直接引用(指向)信息节点文件的数据块,或可引用信息节点文件的间接块,该信息节点文件的间接块转而引用信息节点文件的数据块。在信息节点文件的每个数据块内是嵌入的信息节点,每个嵌入的信息节点可引用间接块,该间接块转而引用文件的数据块。
可操作地,来自客户端180的请求作为包在计算机网络140上转发且到达节点200上,其中在网络适配器225处接收包。(层312或层330的)网络驱动器处理所述包,并且如果适当,将其传递到网络协议和文件访问层,以在转发到随处可写文件系统360之前做另外的处理。这里,如果所请求的数据未驻留“在核心”即在存储器224中,文件系统生成操作以从磁盘130装载(获取)所请求的数据。如果信息不在存储器中,文件系统360使用信息节点号在信息节点文件中索引,以访问适当的条目且获取逻辑vbn。文件系统接着将包括逻辑vbn的消息结构传递到RAID系统380;将逻辑vbn映射到磁盘标识符和磁
盘块号(磁盘,dbn)且发送到磁盘驱动器系统390的适当驱动器(例如SCSI)。磁盘驱动器从特定磁盘130访问dbn且将所请求的数据块装载到存储器中以便由节点处理。在完成了请求后,节点(和操作系统)在网络140上将回复返回到客户端180。
应当注意,可替换地,上述需要为在节点接收的客户端请求执行数据存储访问的通过存储操作系统层的软件“路径”可用硬件实现。即是,在本发明的可替换实施例中,存储访问请求数据路径可实现为逻辑电路,该逻辑电路用现场可编程门阵列(FPGA)或专用集成电路(ASIC)实现。这类硬件实现增加了节点200响应于客户端180发送的请求而提供的存储服务的性能。而且,在本发明的另一可替换实施例中,适配器225、228的处理元件可配置为各自地卸载来自处理器222的一些或所有包处理和存储访问操作,以由此增加节点提供的存储服务的性能。明显可预期的是,这里描述的各种处理、体系结构和过程可用硬件、固件或软件实现。
如这里使用的,术语“存储操作系统”一般指计算机上可操作执行存储功能的计算机可执行代码,所述存储功能管理数据访问且在节点200的情况下,可实现通用操作系统的数据访问语义。存储操作系统还可实现为微内核、在通用操作系统,例如UNIX或Windows NT 上运行的应用程序、或实现为具有可配置功能性的通用操作系统,该通用操作系统被配置以用于这里描述的存储应用。
此外,本领域技术人员将理解的是,这里描述的本发明可应用于任何类型的专用(例如文件服务器、文件管理器或存储服务装置)或通用计算机,包括实现为或包括存储系统的独立计算机或其一部分。而且,本发明的教导可适用于各种存储系统体系结构,包括但不限于附加到网络的存储环境、存储区域网络和直接附加到客户端或主机的磁盘部件。因此,术语“存储系统”应当广义地理解为包括这种布置以及配置为执行存储功能且与其它设备或系统相关联的任何子系统。应当注意,尽管按照随处可写文件系统撰写本说明书,本发明的教导可用于任何合适的文件系统,包括按位置写的文件系统。
D.CF协议
在说明性实施例中,存储服务器365实现为存储操作系统300的D-
刀片350,以服务阵列120的一个或多个卷。此外,多协议引擎325实现为N-刀片310以便(i)对于客户端在网络140上发出进入的数据访问请求包来执行协议终止,以及(ii)将那些数据访问请求重定向到群集100的任何存储服务器365。而且,N-刀片310和D-刀片350协同以提供群集100的高度可扩展的分布式存储系统体系结构。为此,每个刀片包括适用于在刀片间实现群集内通信的群集结构(CF)接口模块340a、b,所述通信包括用于这里描述的数据容器带区化操作的D-刀片到D-刀片的通信。
N-刀片310的协议层,例如NFS/CIFS层和ISCSI/FC层作为协议服务器行使功能,将来自客户端的基于文件的和基于块的数据访问请求变换为以用于和D-刀片350通信的CF协议消息。即是,N-刀片服务器将进入的数据访问请求转换为由CF接口模块340嵌入在CF消息内的文件系统原始操作(命令),以便传输到群集100的D-刀片350。要注意,CF接口模块340协同以在群集100的所有D-刀片350上提供单个文件系统映像。因此,接收客户端请求的N-刀片的任何网络端口可访问在群集的任何D-刀片350上设置的单个文件系统映像中的任何数据容器。
对说明性实施例要补充的是,N-刀片310和D-刀片350实现为存储操作系统300的单独调度的进程;然而,在可替换实施例中,刀片可实现为单个操作系统进程中的代码段。因此说明性地,在N-刀片和D-刀片之间的通信通过使用在刀片之间传递的消息来实现,尽管在不同节点的N-刀片和D-刀片之间远程通信的情况下,这种消息传递在群集交换结构150上发生。由存储操作系统提供的在刀片(进程)之间传送信息的已知消息传递机制是进程间通信(IPC)机制。说明性地,用于IPC机制的协议是普通文件和/或基于块的“不可知”CF协议,该协议包括构成CF应用编程接口(API)的方法/函数的集合。这种不可知协议的例子是可从Network Appliance,Inc得到的SpinFS和SpinNP协议。在上面引用的美国专利申请公开号US 2002/0116593中描述了SpinFS协议。
CF接口模块340实现了CF协议,以用于在群集100的刀片间传递文件系统命令。说明性地,由暴露CF API的D-刀片实现通信,N-刀片(或另一个D-刀片)向所述D-刀片发出调用。为此,CF接口模块340
组织为CF编码器和CF解码器。例如在N-刀片310上的CF接口340a的CF编码器(i)当将文件系统命令传递到驻留在相同节点200上的D-刀片350时,将CF消息封装为本地过程调用(LPC)或(ii)当将命令传递到驻留在群集100的远程节点上的D-刀片时,将CF消息封装为远程过程调用(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、可靠连接(RC)层408和CF协议层410。如所述的,CF协议层是普通文件系统协议,其传送与客户端请求中包含的操作有关的文件系统命令以访问在群集100上存储的数据容器;CF协议层410是消息400中携带文件系统命令的那部分。说明性地,CF协议是基于数据报的,并且同样地,涉及以可靠的方式从源(例如N-刀片310)向目的(例如D-刀片350)传输消息或“信封”。RC层408实现了可靠的传输协议,其适于根据无连接协议,例如UDP406处理这种信封。
使用数据容器句柄在文件系统中访问数据容器,例如文件。图5是示出数据容器句柄500的格式的示意性框图,包括SVS ID字段502、信息节点号字段504、唯一ifier字段506、带区标志字段508和带区出现号字段510。SVS ID字段502包含数据容器所驻留的SVS的(在群集100中的)全局标识符。信息节点号字段504包含与数据容器有关的(在信息节点文件中的)信息节点的信息节点号。唯一ifier字段506包含唯一标识数据容器句柄500的单调增加号。在信息节点号已经被删除、重用且重新分配给新的数据容器的情况下,唯一ifier是特别有用的。唯一ifier将特定数据容器中的重用的信息节点号和那些字段潜在之前使用的相区别开。说明性地,带区化标志字段508是标识数据容器是否带区化的布尔值。对于SVS将不同的带区技术用于不同的数据容器的实施例,带区出现号字段510指明用于该数据容器的适当带区技术。
E.文件系统组织
在说明性的实施例中,数据容器在随处可写文件系统中表示为适于在磁盘130上存储的信息节点数据结构。图6是信息节点600的示意性框图,其优选地包括元数据段605和数据段660。存储在每个信息节点600的元数据段605中的信息描述了数据容器(例如文件),并且如所示的,包括文件类型(例如普通、目录、vdisk)610、文件大小615、文件的时间戳(例如访问和/或修改时间)620和所有权,即用户标识符(UID625)和组ID(GID 630)。元数据段605还包括生成号631和元数据无效标志字段634。如这里进一步描述的,元数据无效标志字段634用于指明该节点中的元数据是否可用或是否应当从MDV被重新获得。然而,每个信息节点的数据段660的内容可根据类型字段610内定义的文件(信息节点)类型而不同地被解释。例如,目录信息节点的数据段660包含文件系统控制的元数据,而普通信息节点的数据段包含文件系统数据。在后一种情况中,数据段660包括与文件相关联的数据的表示。
具体地,普通磁盘上信息节点的数据段660可包括文件系统数据或指针,后者引用磁盘上的用于存储文件系统数据的4KB数据块。优选地,每个指针是逻辑vbn,以在访问磁盘上的数据时提高文件系统和RAID系统380之间的效率。给定信息节点的有限大小(例如128字节),大小小于或等于64字节的文件系统数据全部表示在该信息节点的数据段内。然而,如果数据容器的内容长度超过64字节,但小于或等于64kB,则信息节点(例如第一级信息节点)的数据段包括达16个指针,每个指针引用磁盘上的4kB的数据块。
而且,如果数据的大小大于64kB但小于或等于64兆字节(MB),则信息节点(例如第二级信息节点)的数据段660中的每个指针引用间接块(例如第一级L1块),该间接块包含1024个指针,每个指针引用磁盘上4kB的数据块。对于具有超过64MB大小的文件系统数据,信息节点(例如第三级L3信息节点)的数据段660中的每个指针引用双重间接块(例如第二级L2块),该双重间接块包含1024个指针,每个指针引用一个间接(例如第一级L1)块。转而,间接块包含1024个指针,每个指针引用磁盘上的4kB的数据块。当访问文件时,文件的每个块可从磁盘130装载到存储器224中。
当磁盘上信息节点(或块)从磁盘130装载到存储器中时,该磁
盘上信息节点(或块)在核心中的对应结构嵌入了磁盘上的结构。例如,环绕信息节点600的虚线指明磁盘上信息节点结构在核心中的表示。核心中的数据结构是一块存储器,该存储器存储了磁盘上结构以及需要用来管理存储器中的数据的附加信息(但不在磁盘上)。附加信息可例如包括页面重写标志位670。在信息节点(或块)中的数据如所指示的例如由写入操作更新/修改后,使用页面重写标志位670将修改的数据标记为“脏”,使得信息节点(块)可随后“刷新”(存储)到磁盘。WAFL文件系统的包括信息节点和信息节点文件的核心中和磁盘上格式的结构,在之前合并的美国专利号5,819,292中公开和描述,标题为METHOD FOR MAINTAINING CONSISTENT STATES OFA FILE SYSTEM AND FOR CREATING USER-ACCESSIBLE READ-ONLYCOPIES OF A FILE SYSTEM,申请人为David Hitz等,于1998年10月6日提交。
图7是可有利地用于本发明的文件缓冲树的实施例的示意性框图。缓冲树是装载到存储器224中的文件(例如,文件700)的块的内部表示并且由随处可写文件系统360维护。根(顶级)信息节点702,例如嵌入的信息节点,引用间接(例如级别1)块704。注意,取决于文件大小,可存在附加级别的间接块(例如级别2,级别3)。间接块(和信息节点)包含最终引用用于存储文件的实际数据的数据块706的指针705。即,文件700的数据包含在数据块中,且这些块的位置存储在文件的间接块中。每个级别1间接块704可包含到多达1024个数据块的指针。根据文件系统的“随处可写”特性,这些块可位于磁盘130上的任何位置。
提供的文件系统布局,将下层物理卷分配到存储系统,例如节点200的一个或多个虚拟卷(或灵活卷)中。这种文件系统布局的一个例子在美国专利申请序列号10/836,817中描述,标题为EXTENSIONOF WRITE ANYWHERE FILE SYSTEM LAYOUT,申请人为John K.Edwards等,且转让给Network Appliance,Inc。下层物理卷是包括节点的一个或多个磁盘组,例如RAID组的聚集。聚集具有其自己的物理卷块号(pvbn)空间并且在该pvbn空间内维护元数据,例如块分配结构。每个灵活卷具有其自己的虚拟卷块号(vvbn)空间并且在该vvbn空间内维护元数据,例如块分配结构。每个灵活卷是与容器文件相
关联的文件系统;容器文件是聚集中的文件,其包含由灵活卷使用的所有块。而且,每个灵活卷包括数据块和间接块,该间接块包含指向其它间接块或数据块的块指针。
在一个实施例中,pvbn用作为存储在灵活卷中的文件(例如文件700)的缓冲树内的块指针。该“混合”灵活卷实施例涉及在双亲间接块(例如信息节点或间接块)中插入唯一的pvbn。在逻辑卷的读取路径上,“逻辑”卷(vol)信息块具有一个或多个指针,该指针引用一个或多个fsinfo块,每个fsinfo块转而指向信息节点文件及其对应的信息节点缓冲树。通常,灵活卷上的读取路径是一样的,跟随pvbn(代替vvbn)以找到块的适当位置;在该上下文中,灵活卷的读取路径(及对应的读取性能)基本上类似于物理卷。从pvbn到磁盘,dbn的变换发生在存储操作系统300的文件系统/RAID系统的边界。
在一个说明性双vbn混合灵活卷实施例中,pvbn及其对应的vvbn插入到文件的缓冲树的双亲间接块中。即是,pvbn和vvbn作为每个块的一对指针存储在大多数缓冲树结构中,该缓冲树结构具有指向其它块,例如级别1(L1)间接块、信息节点文件级别0(L0)块的指针。图8是可有利地用于本发明的文件800的缓冲树的说明性实施例的示意性框图。根(顶级)信息节点802,例如嵌入的信息节点,引用间接(例如级别1)块804。注意,取决于文件的大小可存在附加级别的间接块(例如级别2、级别3)。间接块(和信息节点)包含最终引用用于存储文件的实际数据的数据块806的pvbn/vvbn指针对结构808。
pvbn引用聚集的磁盘上的位置,而vvbn引用灵活卷的文件内的位置。使用pvbn作为间接块804中的块指针808,提供了在读取路径中的效率,而使用vvbn块指针提供了访问所请求的元数据的效率。即是,当释放文件的块时,文件中的双亲间接块包含容易得到的vvbn块指针,这避免了与访问属主映射(owner map)以执行pvbn到vvbn变换相关联的延迟;而且,在读取路径上,pvbn是可得到的。
图9是可有利地用于本发明的聚集900的一个实施例的示意性框图。Lun(块)902、目录904、qtree906和文件908可包含在灵活卷910,例如双vbn灵活卷内,该灵活卷转而包含在聚集900内。说明性
地,聚集900在RAID系统的上层,RAID系统由至少一个RAID plex950表示(取决于是否镜像了存储配置),其中每个plex950包括至少一个RAID组960。每个RAID组进一步包括多个磁盘930,例如一个或多个数据(D)磁盘和至少一个(P)奇偶磁盘。
尽管聚集900类似于常规存储系统的物理卷,而灵活卷类似于该物理卷内的文件。即是,聚集900可包括一个或多个文件,其中每个文件包含灵活卷910且其中灵活卷所消耗的存储空间的总和在物理上小于(或等于)整个物理卷的大小。聚集使用定义了由物理卷的磁盘提供的块的存储空间的物理pvbn空间,而(在文件内的)每个嵌入的灵活卷使用逻辑vvbn空间以将那些块例如组织为文件。每个vvbn空间是对应于文件内位置的独立的号集合,所述位置接着转换成磁盘上的dbn。因为灵活卷910也是逻辑卷,因此它在其vvbn空间中其具有自己的块分配结构(例如活动、空间和摘要映射)。
容器文件是聚集中包含灵活卷使用的所有块的文件。容器文件是支持灵活卷的(对于聚集的)内部特征;说明性地,每个vvol有一个容器文件。类似于文件通道中的纯逻辑卷,容器文件是聚集中的隐藏文件(用户不可访问),该文件含有灵活卷使用的每个块。聚集包括说明性的隐藏元数据根目录,该根目录包含灵活卷的子目录:
WAFL/fsid/文件系统文件,存储标签文件
具体地,对于聚集中的每个灵活卷,物理文件系统(WAFL)目录包括子目录,子目录的名称是灵活卷的文件系统标识符(fsid)。每个fsid子目录(灵活卷)包含至少两个文件,文件系统文件和存储标签文件。说明性地,存储标签文件是包含类似于存储在常规raid标签中的元数据的4kB文件。换句话说,存储标签文件是raid标签的模拟,并且如所述的,包含关于灵活卷的状态的信息,诸如灵活卷的名称、通用唯一标识符(uuid)和灵活卷的fsid、其是否联机、被创建或被破坏等。
图10是聚集1000的磁盘上表示的示意性框图。存储操作系统300,例如RAID系统380,用包括用于聚集的“物理”volinfo块1002的pvbn1和2来装配pvbn的物理卷以创建聚集1000。volinfo块1002包含指向fsinfo块1004的指针,每个fsinfo块1004可表示聚集的一个
快照。每个fsinfo块1004包括指向信息节点文件1006的块指针,所述信息节点文件1006包含多个文件,包括属主映射1010、活动映射1012、摘要映射1014和空间映射1016,以及其它特定元数据文件的信息节点。信息节点文件1006进一步包括根目录1020和“隐藏”元数据根目录1030,后者包括具有相关于灵活卷的文件的命名空间,其中用户不能“看见”文件。隐藏元数据根目录包括WAFL/fsid/目录结构,该目录结构包含文件系统文件1040和存储标签文件1090。注意,聚集中的根目录1020是空的;相关于聚集的所有文件组织在隐藏元数据根目录1030内。
除了实现为具有组织为容器映射的等级1的块的容器文件,文件系统文件1040包括块指针,该块指针引用实现为灵活卷1050的不同文件系统。聚集1000在专门保留的信息节点号处维护这些灵活卷1050。每个灵活卷1050还在其灵活卷空间内具有专门保留的信息节点号,该信息节点号尤其用于块分配位图结构。如所述的,块分配位图结构,例如活动映射1062、摘要映射1064和空间映射1066,位于每个灵活卷中。
具体地,每个灵活卷1050具有和聚集一样的信息节点文件结构/内容,不同的只是没有属主映射且在隐藏元数据根目录1080中没有WAFL/fsid/文件系统文件、存储标签文件目录结构。为此,每个灵活卷1050具有指向一个或多个fsinfo块1054的volinfo块1052,每个fsinfo块1054可与灵活卷的活动文件系统一起表示一个快照。每个fsinfo块转而指向一个信息节点文件1060,如所提到的,该信息节点文件1060除了上面所述的不同点外,和聚集有相同的信息节点结构/内容。每个灵活卷1050具有其自己的信息节点文件1060和具有对应的信息节点号的不同的信息节点空间,以及其自己的根(fsid)目录1070和可从其它灵活卷独立输出的文件的子目录。
包含在聚集的隐藏元数据根目录1030内的存储标签文件1090是功能类似于常规raid标签的小文件。raid标签包括关于存储系统的物理信息,例如卷名称;该信息装载到存储标签文件1090中。说明性地,存储标签文件1090包括相关联的灵活卷1050的名称1092、灵活卷的联机/脱机状态1094、及相关联的灵活卷的其它身份和状态信息1096(是否其处在创建或破坏的过程中)。
F.VLDB
图11是示出在存储操作系统300上作为用户模式应用执行以便为群集的节点提供配置信息的管理(即管理数据)的管理进程的集合1100的示意性框图。为此,管理进程包括管理框架进程1110和卷位置数据库(VLDB)进程1130,两者都使用作为库而链接的数据复制服务(RDB 1150)。管理框架1110经由命令行接口(CLI)和/或基于网的图形用户接口(GUI)向用户提供管理员接口1170。说明性地,管理框架基于常规的普通接口模型(CIM)对象管理器,其提供用户/系统管理员与节点200交互的入口以便管理群集100。
VLDB 1130是数据库进程,其跟踪各种存储部件(例如SVS、灵活卷、聚集等)在群集100内的位置,以由此便于在群集中路由请求。在说明性实施例中,每个节点的N-刀片310访问将数据容器句柄500的SVS ID 502映射到“拥有”(服务)群集内的数据容器的D-刀片350的配置表235。VLDB包括多个条目,该条目转而提供配置表235中的条目内容;这些VLDB条目尤其记录群集内灵活卷(下文一般称为“卷910”)和聚集900的位置。这种VLDB条目的例子包括VLDB卷条目1200和VLDB聚集条目1300。
图12是示例VLDB卷条目1200的示意性框图。条目1200包括卷ID字段1205、聚集ID字段1210和在可替换实施例中的附加字段1215。卷ID字段1205包含标识在卷位置进程中使用的卷910的ID。聚集ID字段1210标识包含由卷ID字段1205标识的卷的聚集900。同样,图13是示例VLDB聚集条目1300的示意性框图。条目1300包括聚集ID字段1305、D-刀片ID字段1310和在可替换实施例中的附加字段1315。聚集ID字段1305包含群集100中的特别聚集900的ID。D-刀片ID字段1310包含装载由聚集ID字段1305标识的特别聚集的D-刀片的ID。
说明性地,VLDB实现了RPC接口,例如sun RPC接口,这使得N-刀片310可询问VLDB 1130。当遇到数据容器句柄500的内容不在其配置表中存储的情况时,N-刀片将RPC发送到VLDB进程。作为响应,VLDB1130向N-刀片返回适当的映射信息,包括拥有数据容器的D-刀片的ID。N-刀片将信息高速缓存在其配置表235中并且使用D-刀片ID以将进入的请求转发到适当的数据容器。在N-刀片310和D-刀片350之间的所有操作和交互都在群集的范围基础上通过管理进程和RDB库用
户模式应用的集合1100来协调。
为此,管理进程具有到RDB 1150的接口(紧密连接到RDB 1150)。RDB包括为由管理进程处理的管理数据提供持久对象存储(对象的存储)的库。注意,RDB 1150复制且同步在群集100的所有节点200上的管理数据对象存储访问,以由此确保RDB数据库映像在所有的节点200上是相同的。在系统启动时,每个节点200将其接口的状况/状态和IP地址(其“拥有”的那些IP地址)记录到RDB数据库中。
G.存储系统体系结构
本发明涉及说明性地包括在群集100的多个节点200上分布的两个或更多个卷910的存储系统体系结构。卷组织为SVS且配置为响应于客户端180发出的多协议数据访问请求而存储由群集服务的数据容器的内容,数据容器例如是文件和lun。注意,将每个数据容器的内容分配到SVS的卷中,以便改进群集提供的存储服务的效率。为了便于描述和理解本发明,在下文中数据容器一般称为“文件”。
根据本发明的一个方面,SVS包括元数据卷(MDV)和一个或多个数据卷(DV)。MDV配置为存储元数据的规范副本,包括与存储在SVS上的所有文件关联的访问控制列表(ACL)和目录,而每个DV配置为至少存储那些文件的数据内容。对于在SVS上存储的每个文件,指定一个卷为CAV,且为此将卷配置为存储(“高速缓存”)与该文件关联的某些快速改变的属性元数据,以由此卸载将针对MDV的访问请求。在这里描述的说明性实施例中,基于简单的规则确定文件的CAV:指定存储文件的第一带区内容(数据)的卷作为文件的CAV。该简单的规则不仅是方便的,其对于小文件还提供了优化。即是,如果文件足够小以适合指定的带区宽度,则CAV不必与SVS上的其它卷通信就能够执行某些操作。理想地,文件的第一带区数据分布在SVS的DV中,以由此便于在SVS的卷中平均分布对CAV的指定。在可替换实施例中,文件的数据跨越MDV和DV而带区化。
图14是根据本发明的实施例的SVS 1400的信息节点文件的示意性框图。说明性地,SVS 1400包括三个卷,即MDV 1405和两个DV 1410、1415。应当注意,在可替换实施例中可根据本发明使用附加的和/或不同数目的卷。说明性地,MDV 1405存储多个信息节点,包括根目录(RD)信息节点1420、目录(DIR)信息节点1430、文件(F)信
息节点1425、1435、1445和ACL信息节点1440。说明性地,这些信息节点的每一个包括与信息节点关联的元数据(M)。在说明性实施例中,在MDV 1405上的每个信息节点不包括数据(D);然而,在可替换实施例中,MDV可包括用户数据。
相反地,每个DV 1410、1415仅存储文件(F)信息节点1425、1435、1445和ACL信息节点1440。根据本发明的体系结构,DV不存储目录或其它设备信息节点/结构,例如符号链接;然而,每个DV存储F信息节点,且可存储ACL信息节点的高速缓存的副本,它们都布置在和MDV 1405中它们相应的信息节点同样的位置。特定的DV可以不存储信息节点的副本,直到维护特别DV的D-刀片接收了对与信息节点关联的数据容器的I/O请求。而且,如这里进一步描述的,由这些F信息节点表示的文件内容根据SVS带区规则而周期性稀疏。此外,因为对于在SVS 1400上存储的每个文件指定一个卷为CAV,因此将DV1415指定为由信息节点1425表示的文件的CAV,且将DV 1410指定为由信息节点1435、1445标识的文件CAV。因此,这些CAV高速缓存与那些文件关联的某些快速改变的属性元数据(M),例如文件大小615,以及访问和/或修改时间戳620。
根据本发明的另一方面,SVS与定义带区算法、带区宽度和SVS内的卷的排序列表的带区规则集合相关联。说明性地,每个SVS的带区规则作为VLDB 1130的条目存储且通过SVS ID访问。图15是根据本发明的实施例的示例VLDB SVS条目1500的示意性框图。VLDB条目1500包括SVS ID字段1505和一个或多个带区规则1530的集合。在可替换实施例中,可包括附加字段1535。SVS ID字段1505包含SVS的ID,在操作中,其在数据容器句柄500中说明。
说明性地,每个带区规则集合包括带区宽度字段1510、带区算法ID字段1515、卷排序列表字段1520和在可替换实施例中的附加字段1525。带区规则1530包含标识SVS的组织的信息。例如,带区算法ID字段1515标识用于SVS的带区算法。在说明性实施例中,多个带区算法可用于SVS;因此,带区算法ID需要标识使用了哪个特别算法。每个带区算法转而说明了文件内容作为带区跨越SVS的多个卷被分配的方式。带区宽度字段1510说明了每个带区的大小/宽度。卷排序列表字段1520包含包括SVS的卷的ID。在说明性实施例中,卷的排序
列表包括多个元组,该元组包括灵活卷ID和存储灵活卷的聚集ID。而且,卷的排序列表可说明SVS的各种卷和带区规则的功能和实现。例如,排序列表中的第一卷表示SVS的MDV,而列表中的卷的排序表示实现特别的带区算法,例如轮转法的方式。
根据本发明的又另一方面,提供Locate()函数375,使得VSM 370和其它模块(例如N-刀片的那些模块)能够定位D-刀片350及其关联的SVS 1400的卷,以便服务对文件的访问请求。Locate()函数至少将(i)SVS ID 1505,(ii)文件内的偏移量,(iii)文件的信息节点号和(iv)带区规则1530的集合作为参数,且返回卷910,在SVS1400中偏移量在该卷910上开始。例如,假设指向文件的数据访问请求由客户端180发送且在节点200的N-刀片310接收,其中所述请求通过多协议引擎325解析到N-刀片310的适当协议服务器。
为了确定要CF消息400所传送到的D-刀片350的位置,N-刀片310可首先获取SVS条目1500以获得和SVS关联的带区规则1530(和卷的列表1520)。N-刀片310接着执行Locate()函数375以标识要向其进行操作的适当的卷。之后,N-刀片可获取适当的VLDB卷条目1200,以标识包含卷的聚集和适当VLDB聚集条目1300,以最终标识适当的D-刀片350。N-刀片310的协议服务器接着将CF消息400传送到D-刀片350。
图16是根据本发明的实施例的示出在SVS 1600的卷A 1605、B1610和C 1615上存储的文件内容的周期性稀疏的示意性框图。如所述的,文件内容根据SVS带区规则周期性稀疏,所述SVS带区规则规定了带区算法(由带区算法ID字段1515表示)和每个带区的大小/宽度(由带区宽度字段1510表示)。注意,在说明性实施例中,选择带区宽度以确保每个带区可容纳文件的间接块(例如级别1块804)引用的实际数据(例如存储在数据库806中)。
根据说明性的轮转法带区算法,卷A 1605包含文件内容或数据(D)的带区,顺次跟着的是两个稀疏(S)带区1622、1624,另一个数据(D)带区1626和两个稀疏(S)带区1628、1630。另一方面,卷B 1610包含稀疏(S)带区1632,顺次跟着的是数据(D)带区1634,两个稀疏(S)带区1636、1638,另一个数据(D)带区1640和稀疏(S)带区1642。卷C 1615继续轮转法带区模式,并且为此包含两个
稀疏(S)带区1644、1646,顺次跟着的是数据(D)带区1648,两个稀疏(S)带区1650、1652和另一个数据(D)带区1654。
H.SVS操作
根据这里描述的存储系统体系结构,提供多个SVS操作以使得能够有效且准确地提供在SVS的卷上分布的文件(和其它数据容器)内容。这些SVS操作包括创建文件、删除文件、获取文件属性、写入/修改文件属性、读取文件和写入文件操作。图17是根据本发明的实施例详述创建新文件的过程1700的步骤的流程图。过程1700开始于步骤1705且继续到步骤1710,其中N-刀片310接收例如通过客户端180将创建文件请求发送到节点200的用于创建新文件的请求。在步骤1715,N-刀片将请求重定向到维护SVS 1400的MDV 1405的适当的D-刀片。说明性地,N-刀片将创建文件请求变换为过程调用(LPC或RPC)且接着根据与该调用关联的CF API函数来确定其应当采取的动作。例如,响应于创建文件请求,N-刀片将对应的创建文件过程调用发送到MDV 1405,或更特定地,发送到维护MDV的D-刀片350的VSM370。
在说明性实施例中,通过检查在VLDB 1130的SVS条目1500中的卷的排序列表1520,N-刀片确定SVS 1400的哪个卷是MDV。如所述的,说明性地,在卷的排序列表1520中列出的第一卷是MDV,然而本领域技术人员将理解的是,可将排序列表内的任何卷位置指定为MDV1405。而且,可扩充VLDB条目1500以明确地声明排序列表1520中的哪个卷是SVS的MDV。
在接收了创建文件的过程调用后,在步骤1718,VSM370通过更新MDV上的目录(即为文件创建新的目录条目)来处理该调用,并且在步骤1720为文件分配信息节点。优选地,例如使用任何常规信息节点选择技术从SVS中可得到的信息节点当中选择分配的信息节点。注意,对于新创建的文件,SVS 1400的每个卷被分配了相同的信息节点。而且,对每个卷来说信息节点位于信息节点文件的相同位置/地方,即每个卷上的文件信息节点被分配了相同的到信息节点文件的信息节点索引。在步骤1735中,例如通过命令在D-刀片350上运行的文件系统360使用分配的信息节点来创建文件,MDV 1405的VSM370完成了文件创建。过程1700接着在步骤1740完成。
图18是根据本发明的实施例详述删除文件的过程1800的步骤的流程图。过程1800开始于步骤1805且继续到步骤1810,其中N-刀片接收删除文件的客户端请求。在步骤1815,如这里描述的,N-刀片将请求作为删除文件过程调用重定向到服务SVS 1400的MDV 1405的适当D-刀片的VSM 370。在步骤1825,例如经由常规IPC机制,诸如发出过程调用或传递消息,VSM将对应的删除请求传递到文件系统360。在步骤1830,文件系统处理删除(删除)请求,一直到从文件系统实际移除了信息节点的时刻。在这个时刻,文件系统例如经由IPC机制通知VSM 370其已经达到该特别状态(步骤1835)。在步骤1840,VSM向SVS中的所有DV发送请求以释放与信息节点关联的存储。说明性地,VSM 370与服务SVS 1400的DV的D-刀片的CF接口模块340合作,将这些请求作为CF消息400发送。接着,在步骤1842,VSM等待,直到所有的DV已确认完成了请求。在步骤1845,VSM命令文件系统360删除信息节点,并且作为响应,在步骤1850文件系统删除信息节点。过程接着在步骤1855完成。
图19是根据本发明的实施例详述获取文件属性的过程1900的步骤的流程图。过程1900开始于步骤1905且继续到步骤1910,其中N-刀片接收获取(读取)文件属性的请求。在步骤1915,N-刀片将请求转发到装载文件的CAV的D-刀片的VSM。在步骤1920,VSM 370确定其元数据属性的高速缓存副本是否有效,即通过检查文件的信息节点600的元数据无效标志634确定副本是否已经无效。如果高速缓存的副本不是无效的,在步骤1930,VSM返回请求的属性且过程在步骤1935完成。然而,如果高速缓存的副本已经无效,过程转移到步骤1925,其中例如通过将属性获取请求发送到服务MDV的D-刀片350,VSM从MDV 1405获取属性。说明性地,这种请求作为CF消息400经由CF接口模块340发送。过程接着继续到步骤1930,其中装载CAV的D-刀片的VSM返回请求的属性,然后在步骤1935中过程结束。
图20是根据本发明的实施例详述写入/修改文件属性的过程2000的步骤的流程图。过程2000开始于步骤2005且继续到步骤2010,其中N-刀片接收修改文件属性的请求。在步骤2015,N-刀片将请求转发到装载MDV的D-刀片350的VSM 370。在步骤2020,服务MDV的VSM接着将使其元数据的高速缓存副本无效的请求转发到服务文
件的CAV的VSM。作为响应,在步骤2025,CAV的VSM例如通过设置元数据无效标志634以表示其高速缓存的元数据无效,来使其高速缓存无效。服务CAV的VSM还将无效请求转发到所有的DV并且等待,直到它从每个DV接收了响应,在此之前在步骤2030确认它已经无效了其高速缓存。一旦服务MDV的VSM接收了该确认,它为每个所接收的用于修改文件属性请求修改元数据的规范副本(步骤2035)。在步骤2040,VSM接着将例如指明操作成功的状态标志返回到N-刀片,在步骤2045,N-刀片用状态响应客户端。过程接着在步骤2050结束。
图21是根据本发明的实施例详述处理读取请求的过程2100的步骤的流程图。过程2100开始于步骤2105且继续到步骤2110,其中N-刀片从客户端接收读取请求。在步骤2115,N-刀片使用Locate()函数375来标识要将请求重定向到的D-刀片。如上所述,Locate()函数带有参数SVS ID、带区规则集合、信息节点号和文件内的偏移量,且返回服务文件偏移量的适当卷的身份(ID)。在步骤2120,N-刀片将请求转发到适当的D-刀片350,其中VSM 370确定读取请求是否适合于卷上的单个带区,即读取请求是否是针对完全包含在该卷上的一个带区内的数据。如果是,则VSM 370说明性地执行一系列检查以确定其是否可立即处理请求。
例如,VSM确定其某些元数据的本地高速缓存副本是否存在(步骤2125),读取请求是否小于高速缓存文件长度(步骤2130)和是否最近已经咨询了文件的CAV(步骤2135)。总的来说,这些检查确保CAV已经相对近地检查了文件的适当元数据。如果这些检查的任何一个的答案是否定的,过程转移到步骤2140,其中例如通过查询最新的元数据的MDV,CAV的VSM更新其文件元数据的本地高速缓存副本。然而,如果确定地满足了检查,过程继续到步骤2145,其中VSM将读取请求传递到文件系统。在步骤2150,例如通过从磁盘获取适当数据,文件系统处理读取请求。在步骤2155,文件系统将响应返回到N-刀片,在步骤2160,N-刀片将适当的响应返回到客户端。该响应例如包括来自卷的所请求的读取数据,还有如下面进一步描述的从其它卷获取的任何请求的数据。过程接着在步骤2165完成。
然而,如果在步骤2122确定了所请求的读取数据不完全适合于带区,过程转移到步骤2170,其中VSM将对不适合于该带区的数据的
读取请求传递到服务数据的下一带区的卷的VSM。在步骤2175,作为响应,保存数据下一个卷的VSM服务读取请求且将所请求的数据返回到发出请求的VSM。过程接着继续到步骤2125。
图22是根据本发明的实施例详述处理写入请求的过程2200的步骤的流程图。过程2200开始于步骤2202且继续到步骤2205,其中N-刀片从客户端接收写入请求。在步骤2210,如这里描述的,N-刀片说明性地使用Locate()函数375以标识要将请求重定向到其以便处理的D-刀片。在步骤2215,N-刀片将请求转发到适当的D-刀片。在步骤2220,在D-刀片上的VSM确定要写入的数据是否适合于单个带区。说明性地,通过分析写入操作的大小、带区宽度和写入操作开始处在带区内的偏移量,VSM可做出该确定。
如果写入适合于单个带区,VSM执行上述关于读取的三个检查,即确定是否准备好本地高速缓存以便使用(步骤2225),写入请求是否小于高速缓存文件长度(步骤2230)和是否最近已经咨询了FAV(步骤2235)。如果这些检查的任何一个失败,过程转移到步骤2255,其中VSM从CAV获取元数据,并且继续到步骤2240。然而如果所有检查的答案都是肯定的,过程直接继续到步骤2240,其中VSM将写入请求传递到文件系统。在步骤2245,文件系统处理写入请求,随后在步骤2250,将状态返回到N-刀片。过程接着在步骤2290完成。
在步骤2270,VSM将和写入操作关联的部分数据传递到其文件系统360,在步骤2275文件系统360将该部分数据写入到其卷内。在步骤2280,VSM将和写入操作关联的多出的数据传递到配置为存储下一带区的SVS中的卷。在步骤2285,该卷的VSM将多出的数据传递到其文件系统以在卷上写入(存储)。此后,在步骤2250,文件系统将状态返回到N-刀片且过程在步骤2290结束。
前面的说明已经针对了本发明的特定实施例。然而明显的是,可对描述的实施例做出其它变化和修改,而具有所述实施例的一些或全部优点。特定地,应当注意本发明的原理可在非分布式文件系统中实现。而且,尽管本说明书按照N和D-刀片来撰写,但本发明的教导同样适用于N和D-刀片的功能在单个系统中实现的系统。可替换地,N和D-刀片的功能可分布于任何数量的分离系统中,其中每个系统执行一个或多个功能。此外,这里描述的过程、处理和/或模块可
在硬件、软件中实现,实现为具有程序指令的计算机可读媒体、固件或其组合。因此,所附权利要求的目标是覆盖落入本发明的真实精神和范围的所有这种变化和修改。
Claims (10)
1.一种用于在带区卷集合上带区化一个或多个数据容器的系统,所述系统包括:
两个或更多个耦合在一起以形成群集的计算机;
分布于所述两个或更多个计算机上以形成带区卷集合的多个卷,其中所述带区卷集合由带区规则集合定义,并且每个卷是附着到所述两个或更多个计算机的一个计算机的存储空间的逻辑布置;和
用于将一个或多个数据容器存储在带区卷集合上的带区中的装置,
其特征在于
所述带区卷集合包括一个元数据卷以及两个或多个数据卷,其中元数据卷存储与在所述带区卷集合上存储的数据容器相关联的元数据,但是不存储用于所述数据容器的数据,两个或多个数据卷存储用于在带区卷集合上存储的数据容器的数据,并且
针对在带区卷集合上存储的每个数据容器,两个或多个数据卷的其中一个被指定以高速缓存与数据容器相关联的元数据由此卸载另外将指向一个元数据卷的访问请求。
2.根据权利要求1的系统,其中多个卷是多个虚拟卷。
3.根据权利要求2的系统,其中附着到所述两个或更多个计算机的第一个计算机的一个或多个存储设备被逻辑地布置以形成具有物理卷块号(pvbn)存储空间的聚集。
4.根据权利要求3的系统,其中多个虚拟卷的一个或多个存储在第一个计算机的聚集内。
5.根据权利要求1的系统,其中多个卷是物理卷。
6.根据权利要求1的系统,其中数据容器是文件或1un。
7.根据权利要求1的系统,其中带区规则的集合包括带区宽度和卷的排序集合。
8.根据权利要求1的系统,其中元数据卷进一步访问在带区卷集合上存储的数据容器的控制列表和目录。
9.一种用于在带区卷集合上带区化一个或多个数据容器的方法,包括:
将两个或更多个计算机耦合在一起以形成群集;
使用带区规则集合将多个卷组织为带区卷集合,其中多个卷分布在群集上且每个卷是附着到所述两个或更多个计算机的一个计算机的存储空间的逻辑布置;和
将一个或多个数据容器存储在带区卷集合上的带区中,
其特征在于
所述带区卷集合包括一个元数据卷以及两个或多个数据卷,其中元数据卷存储与在所述带区卷集合上存储的数据容器相关联的元数据,但是不存储用于所述数据容器的数据,两个或多个数据卷存储用于在带区卷集合上存储的数据容器的数据,并且
针对在带区卷集合上存储的每个数据容器,两个或多个数据卷的其中一个被指定以高速缓存与数据容器相关联的元数据由此卸载另外将指向一个元数据卷的访问请求。
10.根据权利要求9的方法,其中带区规则集合包括带区宽度和卷的排序集合。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/119,278 | 2005-04-29 | ||
US11/119,278 US7698289B2 (en) | 2003-12-02 | 2005-04-29 | Storage system architecture for striping data container content across volumes of a cluster |
PCT/US2005/030889 WO2006118592A1 (en) | 2005-04-29 | 2005-08-31 | Storage system architecture for striping data container content across volumes of a cluster |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101218583A CN101218583A (zh) | 2008-07-09 |
CN101218583B true CN101218583B (zh) | 2012-07-04 |
Family
ID=35478702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800509114A Expired - Fee Related CN101218583B (zh) | 2005-04-29 | 2005-08-31 | 用于在群集的卷上带区化数据容器内容的存储系统体系结构 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7698289B2 (zh) |
EP (1) | EP1875385B1 (zh) |
JP (1) | JP4787315B2 (zh) |
CN (1) | CN101218583B (zh) |
AT (1) | ATE493714T1 (zh) |
AU (1) | AU2005331262B2 (zh) |
DE (1) | DE602005025702D1 (zh) |
IL (1) | IL186996A (zh) |
WO (1) | WO2006118592A1 (zh) |
Families Citing this family (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647451B1 (en) | 2003-11-24 | 2010-01-12 | Netapp, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7698289B2 (en) | 2003-12-02 | 2010-04-13 | Netapp, Inc. | Storage system architecture for striping data container content across volumes of a cluster |
US7409497B1 (en) | 2003-12-02 | 2008-08-05 | Network Appliance, Inc. | System and method for efficiently guaranteeing data consistency to clients of a storage system cluster |
US8312110B2 (en) * | 2004-03-12 | 2012-11-13 | Kanata Limited | Content manipulation using hierarchical address translations across a network |
JP4313703B2 (ja) * | 2004-03-12 | 2009-08-12 | 彼方株式会社 | 情報処理装置、システム、方法及びプログラム |
US7409494B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US7430571B2 (en) * | 2004-04-30 | 2008-09-30 | Network Appliance, Inc. | Extension of write anywhere file layout write allocation |
US20050262090A1 (en) * | 2004-05-21 | 2005-11-24 | Correl Stephen F | Method, system, and article of manufacture for storing device information |
EP1875394B1 (en) | 2005-04-25 | 2011-06-08 | Network Appliance, Inc. | System and method for caching network file systems |
US7904649B2 (en) | 2005-04-29 | 2011-03-08 | Netapp, Inc. | System and method for restriping data across a plurality of volumes |
US8224777B2 (en) * | 2005-04-29 | 2012-07-17 | Netapp, Inc. | System and method for generating consistent images of a set of data objects |
US7617370B2 (en) * | 2005-04-29 | 2009-11-10 | Netapp, Inc. | Data allocation within a storage system architecture |
US7698334B2 (en) | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for multi-tiered meta-data caching and distribution in a clustered computer environment |
US7743210B1 (en) | 2005-04-29 | 2010-06-22 | Netapp, Inc. | System and method for implementing atomic cross-stripe write operations in a striped volume set |
US7698501B1 (en) | 2005-04-29 | 2010-04-13 | Netapp, Inc. | System and method for utilizing sparse data containers in a striped volume set |
US7739318B2 (en) * | 2005-06-20 | 2010-06-15 | Netapp, Inc. | System and method for maintaining mappings from data containers to their parent directories |
US8484213B2 (en) * | 2005-08-31 | 2013-07-09 | International Business Machines Corporation | Heterogenous high availability cluster manager |
US8484365B1 (en) * | 2005-10-20 | 2013-07-09 | Netapp, Inc. | System and method for providing a unified iSCSI target with a plurality of loosely coupled iSCSI front ends |
EP1949214B1 (en) | 2005-10-28 | 2012-12-19 | Network Appliance, Inc. | System and method for optimizing multi-pathing support in a distributed storage system environment |
US7730258B1 (en) | 2005-11-01 | 2010-06-01 | Netapp, Inc. | System and method for managing hard and soft lock state information in a distributed storage system environment |
US8032896B1 (en) | 2005-11-01 | 2011-10-04 | Netapp, Inc. | System and method for histogram based chatter suppression |
US7325111B1 (en) | 2005-11-01 | 2008-01-29 | Network Appliance, Inc. | Method and system for single pass volume scanning for multiple destination mirroring |
US7376796B2 (en) | 2005-11-01 | 2008-05-20 | Network Appliance, Inc. | Lightweight coherency control protocol for clustered storage system |
US8255425B1 (en) | 2005-11-01 | 2012-08-28 | Netapp, Inc. | System and method for event notification using an event routing table |
US7565519B1 (en) | 2006-03-23 | 2009-07-21 | Netapp, Inc. | System and method for automatically upgrading/reverting configurations across a plurality of product release lines |
US7769723B2 (en) * | 2006-04-28 | 2010-08-03 | Netapp, Inc. | System and method for providing continuous data protection |
US7840969B2 (en) * | 2006-04-28 | 2010-11-23 | Netapp, Inc. | System and method for management of jobs in a cluster environment |
US8046422B2 (en) * | 2006-08-21 | 2011-10-25 | Netapp, Inc. | Automatic load spreading in a clustered network storage system |
US7747584B1 (en) | 2006-08-22 | 2010-06-29 | Netapp, Inc. | System and method for enabling de-duplication in a storage system architecture |
US7933921B2 (en) * | 2006-11-29 | 2011-04-26 | Netapp, Inc. | Referent-controlled location resolution of resources in a federated distributed system |
US8301673B2 (en) * | 2006-12-29 | 2012-10-30 | Netapp, Inc. | System and method for performing distributed consistency verification of a clustered file system |
US8099766B1 (en) * | 2007-03-26 | 2012-01-17 | Netapp, Inc. | Credential caching for clustered storage systems |
US9134921B1 (en) | 2007-04-23 | 2015-09-15 | Netapp, Inc. | Uniquely naming storage devices in a global storage environment |
US7827350B1 (en) | 2007-04-27 | 2010-11-02 | Netapp, Inc. | Method and system for promoting a snapshot in a distributed file system |
US8315984B2 (en) * | 2007-05-22 | 2012-11-20 | Netapp, Inc. | System and method for on-the-fly elimination of redundant data |
US7797489B1 (en) | 2007-06-01 | 2010-09-14 | Netapp, Inc. | System and method for providing space availability notification in a distributed striped volume set |
US7975102B1 (en) * | 2007-08-06 | 2011-07-05 | Netapp, Inc. | Technique to avoid cascaded hot spotting |
US8224864B1 (en) * | 2008-01-07 | 2012-07-17 | Network Appliance, Inc. | Striping directories across a striped volume set by the filenames contained in the directories |
US7996607B1 (en) | 2008-01-28 | 2011-08-09 | Netapp, Inc. | Distributing lookup operations in a striped storage system |
US8019956B1 (en) | 2008-03-07 | 2011-09-13 | Network Appliance, Inc. | System and method for concurrently storing and accessing data in a tree-like data structure |
US7840730B2 (en) | 2008-06-27 | 2010-11-23 | Microsoft Corporation | Cluster shared volumes |
US9323681B2 (en) | 2008-09-18 | 2016-04-26 | Avere Systems, Inc. | File storage system, cache appliance, and method |
US8214404B2 (en) * | 2008-07-11 | 2012-07-03 | Avere Systems, Inc. | Media aware distributed data layout |
US9043288B2 (en) * | 2008-10-27 | 2015-05-26 | Netapp, Inc. | Dual-phase file system checker |
US7992055B1 (en) | 2008-11-07 | 2011-08-02 | Netapp, Inc. | System and method for providing autosupport for a security system |
US20100235878A1 (en) * | 2009-03-13 | 2010-09-16 | Creative Technology Ltd. | Method and system for file distribution |
US9164689B2 (en) * | 2009-03-30 | 2015-10-20 | Oracle America, Inc. | Data storage system and method of processing a data access request |
US8161076B1 (en) * | 2009-04-02 | 2012-04-17 | Netapp, Inc. | Generation and use of a data structure for distributing responsibilities among multiple resources in a network storage system |
US8117388B2 (en) * | 2009-04-30 | 2012-02-14 | Netapp, Inc. | Data distribution through capacity leveling in a striped file system |
US8782086B2 (en) | 2009-08-27 | 2014-07-15 | Cleversafe, Inc. | Updating dispersed storage network access control information |
US8639658B1 (en) * | 2010-04-21 | 2014-01-28 | Symantec Corporation | Cache management for file systems supporting shared blocks |
US8904006B2 (en) | 2010-12-08 | 2014-12-02 | International Business Machines Corporation | In-flight block map for a clustered redirect-on-write filesystem |
US8458181B2 (en) | 2010-12-08 | 2013-06-04 | International Business Machines Corporation | Distributed free block map for a clustered redirect-on-write file system |
US8626713B2 (en) | 2010-12-08 | 2014-01-07 | International Business Machines Corporation | Multiple contexts in a redirect on write file system |
US8396832B2 (en) | 2010-12-08 | 2013-03-12 | International Business Machines Corporation | Independent fileset generations in a clustered redirect-on-write filesystem |
US8732346B2 (en) | 2010-12-17 | 2014-05-20 | Microsoft Corporation | Coordination of direct I/O with a filter |
US9203900B2 (en) * | 2011-09-23 | 2015-12-01 | Netapp, Inc. | Storage area network attached clustered storage system |
US8683170B1 (en) | 2011-09-23 | 2014-03-25 | Netapp, Inc. | Consistent distributed storage communication protocol semantics in a clustered storage system |
US9444889B1 (en) | 2013-02-08 | 2016-09-13 | Quantcast Corporation | Managing distributed system performance using accelerated data retrieval operations |
US9430545B2 (en) | 2013-10-21 | 2016-08-30 | International Business Machines Corporation | Mechanism for communication in a distributed database |
US9465820B2 (en) | 2013-11-13 | 2016-10-11 | Cellco Partnership | Method and system for unified technological stack management for relational databases |
US9336300B2 (en) * | 2014-01-17 | 2016-05-10 | Facebook, Inc. | Client-side search templates for online social networks |
US20150363118A1 (en) * | 2014-06-17 | 2015-12-17 | Netapp, Inc. | Techniques for harmonic-resistant file striping |
US9892041B1 (en) * | 2014-09-30 | 2018-02-13 | Veritas Technologies Llc | Cache consistency optimization |
US10379742B2 (en) * | 2015-12-28 | 2019-08-13 | Netapp, Inc. | Storage zone set membership |
US10514984B2 (en) | 2016-02-26 | 2019-12-24 | Netapp, Inc. | Risk based rebuild of data objects in an erasure coded storage system |
CN110704249A (zh) * | 2016-12-30 | 2020-01-17 | 成都华为技术有限公司 | 一种保证应用一致性的方法、装置及系统 |
US10947756B2 (en) | 2017-05-10 | 2021-03-16 | R.R. Brink Locking Systems, Inc. | Electromechanical lock with mechanical latch holdback and remote release |
CN110019081B (zh) * | 2017-07-20 | 2023-04-07 | 中兴通讯股份有限公司 | 数据持久化处理方法、装置、系统及可读存储介质 |
CN107844436B (zh) * | 2017-11-02 | 2021-07-16 | 郑州云海信息技术有限公司 | 一种缓存中脏数据的组织管理方法、系统及存储系统 |
US10678752B2 (en) | 2018-02-07 | 2020-06-09 | International Business Machines Corporation | Closure-based container volumes with ratio-based modeling |
US11301421B2 (en) | 2018-05-25 | 2022-04-12 | Microsoft Technology Licensing, Llc | Scalable multi-tier storage structures and techniques for accessing entries therein |
US11153382B2 (en) * | 2018-06-29 | 2021-10-19 | International Business Machines Corporation | Isolation of management data for security and operational advantages |
US11204892B2 (en) | 2019-03-21 | 2021-12-21 | Microsoft Technology Licensing, Llc | Techniques for snapshotting scalable multitier storage structures |
CN116107520B (zh) * | 2023-04-13 | 2023-06-30 | 北京中科特瑞科技有限公司 | S3对象存储协议的加密数据存储方法及系统 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5202979A (en) | 1985-05-08 | 1993-04-13 | Thinking Machines Corporation | Storage system using multiple independently mechanically-driven storage units |
US4916608A (en) | 1986-05-30 | 1990-04-10 | International Business Machines Corporation | Provision of virtual storage resources to an operating system control program |
US4899342A (en) | 1988-02-01 | 1990-02-06 | Thinking Machines Corporation | Method and apparatus for operating multi-unit array of memories |
US4989206A (en) | 1988-06-28 | 1991-01-29 | Storage Technology Corporation | Disk drive memory |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
EP0490980B1 (en) | 1989-09-08 | 1999-05-06 | Auspex Systems, Inc. | Multiple facility operating system architecture |
US5124987A (en) | 1990-04-16 | 1992-06-23 | Storage Technology Corporation | Logical track write scheduling system for a parallel disk drive array data storage subsystem |
US5155835A (en) | 1990-11-19 | 1992-10-13 | Storage Technology Corporation | Multilevel, hierarchical, dynamically mapped data storage subsystem |
WO1993018461A1 (en) | 1992-03-09 | 1993-09-16 | Auspex Systems, Inc. | High-performance non-volatile ram protected write cache accelerator system |
US5581724A (en) | 1992-10-19 | 1996-12-03 | Storage Technology Corporation | Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
EP0701716B1 (en) | 1993-06-03 | 2002-08-14 | Network Appliance, Inc. | Method and file system for allocating blocks of files to storage space in a RAID disk system |
JP3751018B2 (ja) | 1993-06-03 | 2006-03-01 | ネットワーク・アプライアンス・インコーポレイテッド | ライトエニウエアファイルシステムレイアウト |
JPH103440A (ja) | 1996-06-14 | 1998-01-06 | Fujitsu Ltd | 計算機システム |
US5897661A (en) | 1997-02-25 | 1999-04-27 | International Business Machines Corporation | Logical volume manager and method having enhanced update capability with dynamic allocation of storage and minimal storage of metadata information |
US6021508A (en) | 1997-07-11 | 2000-02-01 | International Business Machines Corporation | Parallel file system and method for independent metadata loggin |
US6032216A (en) | 1997-07-11 | 2000-02-29 | International Business Machines Corporation | Parallel file system with method using tokens for locking modes |
US5987477A (en) | 1997-07-11 | 1999-11-16 | International Business Machines Corporation | Parallel file system and method for parallel write sharing |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6173293B1 (en) | 1998-03-13 | 2001-01-09 | Digital Equipment Corporation | Scalable distributed file system |
US6697846B1 (en) | 1998-03-20 | 2004-02-24 | Dataplow, Inc. | Shared file system |
US6868442B1 (en) | 1998-07-29 | 2005-03-15 | Unisys Corporation | Methods and apparatus for processing administrative requests of a distributed network application executing in a clustered computing environment |
US6324581B1 (en) | 1999-03-03 | 2001-11-27 | Emc Corporation | File server system using file system storage, data movers, and an exchange of meta data among data movers for file locking and direct access to shared file systems |
US6564252B1 (en) | 1999-03-11 | 2003-05-13 | Microsoft Corporation | Scalable storage system with unique client assignment to storage server partitions |
US6275898B1 (en) | 1999-05-13 | 2001-08-14 | Lsi Logic Corporation | Methods and structure for RAID level migration within a logical unit |
US20020049883A1 (en) | 1999-11-29 | 2002-04-25 | Eric Schneider | System and method for restoring a computer system after a failure |
US6502166B1 (en) * | 1999-12-29 | 2002-12-31 | International Business Machines Corporation | Method and apparatus for distributing data across multiple disk drives |
US20030188045A1 (en) * | 2000-04-13 | 2003-10-02 | Jacobson Michael B. | System and method for distributing storage controller tasks |
US6636879B1 (en) | 2000-08-18 | 2003-10-21 | Network Appliance, Inc. | Space allocation in a write anywhere file system |
US6671773B2 (en) | 2000-12-07 | 2003-12-30 | Spinnaker Networks, Llc | Method and system for responding to file system requests |
US6868417B2 (en) | 2000-12-18 | 2005-03-15 | Spinnaker Networks, Inc. | Mechanism for handling file level and block level remote file accesses using the same server |
US6931450B2 (en) | 2000-12-18 | 2005-08-16 | Sun Microsystems, Inc. | Direct access from client to storage device |
US6606690B2 (en) | 2001-02-20 | 2003-08-12 | Hewlett-Packard Development Company, L.P. | System and method for accessing a storage area network as network attached storage |
US7073044B2 (en) | 2001-03-30 | 2006-07-04 | Intel Corporation | Method and apparatus for sharing TLB entries |
US6643654B1 (en) | 2001-06-25 | 2003-11-04 | Network Appliance, Inc. | System and method for representing named data streams within an on-disk structure of a file system |
US6713630B2 (en) * | 2001-08-03 | 2004-03-30 | Basf Aktiengesellschaft | Continuous preparation of substituted oxazoles |
JP4054182B2 (ja) * | 2001-09-25 | 2008-02-27 | 株式会社東芝 | 仮想的なraid装置を有するクラスタシステム及び同システム用のコンピュータ |
US6978283B1 (en) | 2001-12-21 | 2005-12-20 | Network Appliance, Inc. | File system defragmentation technique via write allocation |
US7039663B1 (en) | 2002-04-19 | 2006-05-02 | Network Appliance, Inc. | System and method for checkpointing and restarting an asynchronous transfer of data between a source and destination snapshot |
US7010528B2 (en) | 2002-05-23 | 2006-03-07 | International Business Machines Corporation | Mechanism for running parallel application programs on metadata controller nodes |
US7873700B2 (en) | 2002-08-09 | 2011-01-18 | Netapp, Inc. | Multi-protocol storage appliance that provides integrated support for file and block access protocols |
US20040139167A1 (en) | 2002-12-06 | 2004-07-15 | Andiamo Systems Inc., A Delaware Corporation | Apparatus and method for a scalable network attach storage system |
US20040122917A1 (en) | 2002-12-18 | 2004-06-24 | Menon Jaishankar Moothedath | Distributed storage system for data-sharing among client computers running defferent operating system types |
US7159093B2 (en) * | 2002-12-20 | 2007-01-02 | Veritas Operating Corporation | Development of a detailed logical volume configuration from high-level user requirements |
US7185144B2 (en) * | 2003-11-24 | 2007-02-27 | Network Appliance, Inc. | Semi-static distribution technique |
KR100508019B1 (ko) | 2003-07-19 | 2005-08-17 | 한미약품 주식회사 | 고순도 1-안드로스텐 유도체의 제조 방법 |
US7412496B2 (en) | 2003-08-22 | 2008-08-12 | Emc Corporation | Management of the file-modification time attribute in a multi-processor file server system |
US7590807B2 (en) | 2003-11-03 | 2009-09-15 | Netapp, Inc. | System and method for record retention date in a write once read many storage system |
US7366837B2 (en) * | 2003-11-24 | 2008-04-29 | Network Appliance, Inc. | Data placement technique for striping data containers across volumes of a storage system cluster |
US7698289B2 (en) | 2003-12-02 | 2010-04-13 | Netapp, Inc. | Storage system architecture for striping data container content across volumes of a cluster |
US7409497B1 (en) | 2003-12-02 | 2008-08-05 | Network Appliance, Inc. | System and method for efficiently guaranteeing data consistency to clients of a storage system cluster |
US7302520B2 (en) | 2003-12-02 | 2007-11-27 | Spinnaker Networks, Llc | Method and apparatus for data storage using striping |
US7409494B2 (en) | 2004-04-30 | 2008-08-05 | Network Appliance, Inc. | Extension of write anywhere file system layout |
US20070088702A1 (en) | 2005-10-03 | 2007-04-19 | Fridella Stephen A | Intelligent network client for multi-protocol namespace redirection |
-
2005
- 2005-04-29 US US11/119,278 patent/US7698289B2/en active Active
- 2005-08-31 DE DE602005025702T patent/DE602005025702D1/de active Active
- 2005-08-31 JP JP2008508821A patent/JP4787315B2/ja not_active Expired - Fee Related
- 2005-08-31 WO PCT/US2005/030889 patent/WO2006118592A1/en active Application Filing
- 2005-08-31 AU AU2005331262A patent/AU2005331262B2/en not_active Ceased
- 2005-08-31 CN CN2005800509114A patent/CN101218583B/zh not_active Expired - Fee Related
- 2005-08-31 AT AT05793332T patent/ATE493714T1/de not_active IP Right Cessation
- 2005-08-31 EP EP05793332A patent/EP1875385B1/en active Active
-
2007
- 2007-10-29 IL IL186996A patent/IL186996A/en not_active IP Right Cessation
Non-Patent Citations (3)
Title |
---|
Huseyin Simitci等.Adaptive Disk Striping for Parallel Input/Output.《Mass Storage Systems,1999,16TH IEEE Symposium on SANDIEGO》.1999,全文. * |
John H.Hartman等.The Zebra Striped Network File System.《ACM Transactions on Computer Systems》.1995,第13卷(第3期),全文. * |
John H.Hartman等.Zebra: A striped Network File System.《Proceedings of The USENIX Workshop on File Systems》.1992, * |
Also Published As
Publication number | Publication date |
---|---|
DE602005025702D1 (de) | 2011-02-10 |
ATE493714T1 (de) | 2011-01-15 |
EP1875385A1 (en) | 2008-01-09 |
IL186996A (en) | 2012-01-31 |
JP2008539505A (ja) | 2008-11-13 |
AU2005331262B2 (en) | 2009-10-29 |
IL186996A0 (en) | 2008-02-09 |
WO2006118592A1 (en) | 2006-11-09 |
US20050192932A1 (en) | 2005-09-01 |
AU2005331262A1 (en) | 2006-11-09 |
US7698289B2 (en) | 2010-04-13 |
CN101218583A (zh) | 2008-07-09 |
JP4787315B2 (ja) | 2011-10-05 |
EP1875385B1 (en) | 2010-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101218583B (zh) | 用于在群集的卷上带区化数据容器内容的存储系统体系结构 | |
CN102460439B (zh) | 通过条带式文件系统中的容量平衡进行数据分布 | |
EP1875384B1 (en) | System and method for multi-tiered meta-data caching and distribution in a clustered computer environment | |
US8301673B2 (en) | System and method for performing distributed consistency verification of a clustered file system | |
CN101228523B (zh) | 用于高速缓存网络文件系统的系统和方法 | |
US7698501B1 (en) | System and method for utilizing sparse data containers in a striped volume set | |
JP6050316B2 (ja) | データストレージシステムにおいて使用される方法及びネットワークストレージサーバ | |
JP5068252B2 (ja) | ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術 | |
EP1949214B1 (en) | System and method for optimizing multi-pathing support in a distributed storage system environment | |
CN101473305B (zh) | 用于集群环境中的作业的管理的系统和方法 | |
US7747584B1 (en) | System and method for enabling de-duplication in a storage system architecture | |
CN100403277C (zh) | 通过在文件系统上将虚拟盘对象分层进行存储虚拟化 | |
US7827350B1 (en) | Method and system for promoting a snapshot in a distributed file system | |
US7743210B1 (en) | System and method for implementing atomic cross-stripe write operations in a striped volume set | |
US8224777B2 (en) | System and method for generating consistent images of a set of data objects | |
US20110137966A1 (en) | Methods and systems for providing a unified namespace for multiple network protocols | |
US7962689B1 (en) | System and method for performing transactional processing in a striped volume set | |
US8768898B1 (en) | Performing direct data manipulation on a storage device | |
US20150378993A1 (en) | System and method for implementing a quota system in a distributed file system | |
US7783611B1 (en) | System and method for managing file metadata during consistency points |
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. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20150831 |
|
EXPY | Termination of patent right or utility model |