CN101019105B - 使用条带化来存储数据的方法及装置 - Google Patents

使用条带化来存储数据的方法及装置 Download PDF

Info

Publication number
CN101019105B
CN101019105B CN2004800352927A CN200480035292A CN101019105B CN 101019105 B CN101019105 B CN 101019105B CN 2004800352927 A CN2004800352927 A CN 2004800352927A CN 200480035292 A CN200480035292 A CN 200480035292A CN 101019105 B CN101019105 B CN 101019105B
Authority
CN
China
Prior art keywords
file
server
request
write
read
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
Application number
CN2004800352927A
Other languages
English (en)
Other versions
CN101019105A (zh
Inventor
迈克尔·L·卡扎尔
理查德·N·小桑齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NetApp Inc
Original Assignee
Spinnaker Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Spinnaker Networks Inc filed Critical Spinnaker Networks Inc
Publication of CN101019105A publication Critical patent/CN101019105A/zh
Application granted granted Critical
Publication of CN101019105B publication Critical patent/CN101019105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

本发明揭示一种包括一NFS服务器集群的数据存储装置。每一服务器均具有用于输入文件系统请求及服务器之间的集群通信的网络端口。所述装置包括复数个与所述服务器通信的存储器阵列。所述服务器利用一种条带化文件系统来存储数据。一种用于存储数据的方法。一种用于为一文件建立存储的方法。一种用于从存储器中移除一文件的方法。一种用于读取一文件中的数据的方法。一种用于将数据写入一文件中的方法。

Description

使用条带化来存储数据的方法及装置
技术领域
本发明涉及借助对NFS服务器使用条带化来存储数据。更具体而言,本发明涉及其中将包括修改时间及更改时间在内的属性的范围考虑在内对NFS服务器使用条带化来存储数据。
背景技术
数据存储中的一重要问题是为一由许多通过高速网络相连的独立处理器所构成的计算集群提供共享文件存取。在许多有趣的情况下,计算集群在存取单个文件,而在此种情况下,提供从整个计算集群到此单个文件的足够的带宽具有挑战性。
解决此问题的先前方法遵循两种架构中的一种。在一类例如由Sistina及PolyServe所采用的解决方案中,通至一单个文件的带宽是通过提供会协调其对保存有所述文件的逻辑存储器阵列(LUN)的存取的多个服务器来调整。这些系统实施一复杂的分布式锁定方案来协调对LUN的存取,具体而言,协调诸如分配磁盘块、给文件分配块、给文件分配内节点号及构造间接块树等操作。这些系统通常因其锁定开销很大而效率低下。
在由PVFS系统所代表的另一类解决方案中,通过一建立于一标准文件系统顶部的附加文件系统层来将数据条带化于多个服务器中。在PVFS中,对所得到文件系统中的不同的条文件的更新未得到非常密切的协调,且那些处理全局文件性质(例如文件长度)的操作实施起来非常昂贵或通过可引起应用错误的近似值来实施。例如,在PVFS中,确定一文件的长度需要从所有条中读取各个文件长度,并取最大的返回结果,此为一个昂贵的程序。同样地,准确的修改时间对于其数据是通过网络文件系统(NFS)协定输出的文件系统来说很重要,因为网络文件系统(NFS)协定使用文件的修改时间作为一版本号。但PVFS及类似的并行文件系统通过一与返回文件长度的程序类似的程序来返回一文件的修改时间:其检查所有服务器并返回最大的修改时间域。由于不同的服务器的时钟相差不到几微秒,所以有可能在负责一个条带的碰巧时钟超前最多的服务器处实施一写入,且随后对另一时钟较早的服务器实施一写入,结果使第二写入并未超前于全系统文件修改时间。存在修改时间相同的两个文件版本可引起像NFS等使用修改时间作为版本号的协议的错误行为。由于这些问题,PVFS文件系统不适于通过一使用NFS的网络输出。
本发明与当前技术的不同之处在于提供一种将如PVFS等条带化解决方案的有效锁定与为使用NFS来输出数据所需的正确、有效的文件属性检索相结合的解决方案。
发明内容
本发明涉及一种数据存储装置。所述装置包括一NFS服务器集群。每一服务器均具有用于输入文件系统请求及服务器之间的集群通信的网络端口。所述装置包括复数个与所述服务器通信的存储器阵列。所述服务器利用一条带化文件系统来存储数据。
本发明涉及一种用于存储数据的方法。所述方法包括将一文件创建于复数个NFS服务器上的步骤。具有如下步骤:在所述各服务器中将数据以数据条的形式写入文件中,所述各个条共同形成一条带。具有从所述各服务器中读取所述数据条的步骤。具有从所述服务器中删除所述条的步骤。
本发明涉及一种用于为一文件建立存储的方法。所述方法包括在一网络元件处接收一NFS创建请求的步骤。具有在一元数据(meta data)服务器处从所述网络元件接收一文件创建请求的步骤。具有在所述元数据服务器处为所述文件分配一内节点号的步骤。具有向输入输出辅助设备作出创建调用以将所述文件标记为由所述输入输出辅助设备所分配的步骤。具有在所述元数据服务器处委托所述文件创建的步骤。
本发明涉及一种用于从存储器中移除一文件的方法。所述方法包括在一元数据服务器处接收一删除文件请求的步骤。具有在所述元数据服务器处由所述元数据服务器从一母目录中移除所述文件的一文件名的步骤。具有在所述元数据服务器处由元数据服务器将所述文件名加到一文件删除列表上的步骤。具有向所述输入输出辅助设备发送删除调用的步骤。具有在所述元数据服务器处从所述输入输出辅助设备接收其已删除所述文件的确认调用的步骤。具有在所述元数据服务器处删除所述文件的步骤。具有从所述文件删除列表中删除所述文件的步骤。具有在所述元数据服务器处由所述元数据服务器将一与所述文件相关的内节点号放入一自由列表中的步骤。
本发明涉及一种用于读取一文件中的数据的方法。所述方法包括在一网络元件处接收一对所述文件中的数据的NFS读取请求的步骤。具有由所述网络元件确定哪一个VFS存储至少一个包含所述数据的条的步骤。具有将一文件读取请求从所述网络元件发送至存储所述数据的条的复数个服务器的至少一个磁盘元件的步骤。具有由每一磁盘元件获得与所述文件相关的当前属性的步骤。具有从每一具有所述条的磁盘元件中读取所述文件的所述条的步骤。具有产生一对所述文件读取请求的响应的步骤。
本发明涉及一种用于将数据写入一文件中的方法。所述方法包括在一网络元件处接收一对一文件的NFS写入请求的步骤。具有由所述网络元件确定哪一个VFS与所述文件相关的步骤。具有将一文件写入请求从所述网络元件发送至具有所述VFS的一条带的复数个服务器的至少一个磁盘元件的步骤。具有获取与所述文件相关的当前属性的步骤。具有将所述数据中的一预定数量的字节连续写入每一VFS条中直至所述数据全部被写入所述文件中为止的步骤。
附图说明
在附图中,图解说明了本发明的较佳实施例及实践本发明的较佳方法,在图式中:
图1为本发明的一装置的一示意图。
图2为本发明的所述装置的一示意图。
图3为三个条带的一示意图。
图4为一读取数据路径以及对元数据服务器的请求的示意图。
图5显示在一条带化系统中作为实施一写入操作的一部分所交换的调用。
图6显示在网络元件可产生一适当NFS响应前将对不同磁盘元件的多个调用相组合的结果。
图7为一创建/删除/截断通信的示意图。
具体实施方式
现在参见图式-在所有这几个图式中相同的参考编号均指代相似或相同的部件,且更具体而言参见其图形,图中显示一数据存储装置10。装置10包括一由若干NFS服务器14构成的集群12。每一服务器14均具有用于输入文件系统请求及各服务器14之间的集群12通信的网络端口16。装置10包括复数个与服务器14通信的存储器阵列18,服务器14利用一条带化文件系统来存储数据。
较佳地,每一服务器14均具有一网络元件20及一磁盘元件22。每一磁盘元件22均较佳具有一虚拟文件系统24,每一磁盘元件22的虚拟文件系统24共同形成一条带化VFS。较佳地,一虚拟文件系统24的一个磁盘元件22充当一元数据服务器26。
较佳地,一文件具有若干属性且每一文件的每一服务器14均保有一高速缓存元件,所述高速缓存元件存储所述文件属性的最新已知版本及修改时间和更改时间值的范围以供指配给写入操作的结果。不作为虚拟文件系统24的元数据服务器26的每一磁盘元件22均较佳为一输入输出辅助设备。较佳地,文件修改时间或文件更改时间的范围由输入输出辅助设备从元数据服务器26保留。较佳将从元数据服务器26所获得的范围内的修改及更改时间发给已在输入输出辅助设备处排队的操作。
较佳地,将从元数据服务器26所获得的范围内的修改及更改时间发给在由输入输出辅助设备从元数据服务器26保留所述范围后的一时间窗口期间所接收的操作。影响一文件中所有条带的操作较佳首先在一文件的元数据服务器26处开始执行,且随后在所有输入输出辅助设备28处执行,以使输入输出辅助设备28处的操作只等待已经完成其与元数据服务器26的通信的已在执行的操作。
较佳地,各操作遵循至少两种锁定模型中的一种,其中第一种锁定模型要首先与元数据服务器26同步,然后通过与在所述输入输出辅助设备处执行的其他操作同步来开始核心执行,而其中第二种锁定模型则首先要在元数据服务器26处同步,且随后与一个或多个输入输出辅助设备28处的已在输入输出辅助设备28处开始核心执行的操作同步。集群12网络较佳连接成一星形拓扑。较佳地,集群12网络为一交换式以太网。
本发明涉及一种用于存储数据的方法。所述方法包括在复数个NFS服务器14上创建一文件的步骤。具有如下步骤:在各服务器14中将数据以数据条的形式写入所述文件中,所述各条共同形成一条带。具有从服务器14中读取数据条的步骤。具有从服务器14中删除所述条的步骤。
较佳地,具有将一NFS服务器14的一虚拟文件系统24的一磁盘元件22识别为一元数据服务器26并将未被识别为元数据服务器26的各NFS服务器的磁盘元件22识别为输入输出辅助设备28的步骤。较佳具有如下步骤:在一元数据服务器26处每一现用文件的每一输入输出辅助设备处的一高速缓存元件中存储所述文件的适于一空转周期的文件属性的最新已知版本。较佳地,具有在所述高速缓存元件中存储修改时间及更改时间值的范围以便指配给写入操作的步骤。
较佳具有由所述高速缓存元件向元数据服务器26作出一状态请求以获得一文件的当前属性的步骤。较佳地,所述作出一状态请求的步骤包括从元数据服务器26获得修改时间及更改时间范围的步骤。较佳地存在如下步骤:在所述输入输出辅助设备处对文件读取及文件写入请求进行排队直至所述文件读取及文件写入请求被所述高速缓存元件接纳并完成执行为止。
较佳地,具有由所述高速缓存元件来跟踪正对所述文件执行哪些文件读取及文件写入请求及正在读取或写入哪些范围的步骤。较佳具有在必须执行一读取操作时请求所述高速缓存元件从无效模式中移至读取模式的步骤。较佳地,具有检验一受一文件读取请求影响的字节范围以确保其不与先前所接纳且当前正在执行的任何文件写入请求的字节范围重叠的步骤。较佳具有响应于一文件写入请求而请求所述高速缓存元件移入一写入模式中的步骤。较佳地,具有检查所述高速缓存元件所述受文件写入请求影响的字节范围是否与任何被接纳且仍在执行的文件读取或文件写入请求重叠的步骤。
较佳地,具有当执行一写入请求时从存储于所述高速缓存元件中的修改时间及更改时间范围内分配一修改时间及更改时间对的步骤。较佳地,具有检查一待决的文件读取及文件写入请求队列的首个请求以确定在一文件读取或写入请求完成后所述首个请求能否被所述高速缓存元件接纳的步骤。较佳具有下列步骤:所述高速缓存元件检测到必须响应一文件写入请求而更新一文件长度;将所述高速缓存元件移入互斥模式中;及向所述元数据服务器26作出一文件写入状态调用以更新所述文件的长度属性。
本发明涉及一种用于为一文件建立存储的方法。所述方法包括在一网络元件20处接收一NFS创建请求的步骤。具有在一元数据服务器26处从网络元件20接收一文件创建请求的步骤。具有在元数据服务器26处为所述文件分配一内节点号的步骤。具有向输入输出辅助设备28作出创建调用以将所述文件标记为由所述输入输出辅助设备28所分配的步骤。具有在元数据服务器26处委托所述文件创建的步骤。
本发明涉及一种用于从存储器中移除一文件的方法。所述方法包括在一元数据服务器26处接收一删除文件请求的步骤。具有在元数据服务器26处由元数据服务器26来将所述文件的文件名自一母目录中移除的步骤。具有在元数据服务器26处由元数据服务器26将所述文件加到一文件删除列表上的步骤。具有向输入输出辅助设备28发送删除调用的步骤。具有在元数据服务器26处从输入输出辅助设备28接收其已删除所述文件的确认调用的步骤。具有在元数据服务器26处移除所述文件的步骤。具有从所述文件删除列表中删除所述文件的步骤。具有在元数据服务器26处由元数据服务器26将一与所述文件相关的内节点号放入一自由列表中的步骤。
本发明涉及一种用于读取一文件中的数据的方法。所述方法包括在一网络元件20处接收一对所述文件中的数据的NFS读取请求的步骤。具有由网络元件20确定哪一VFS存储至少一个包含所述数据的条的步骤。具有将一文件读取请求从网络元件20发送至存储所述数据的一个条的复数个服务器14的至少一个磁盘元件22的步骤。具有由每一磁盘元件22获得与所述文件相关的当前属性的步骤。具有从每一具有所述条的磁盘元件22读取所述文件的所述条的步骤。具有产生一对所述文件读取请求的响应的步骤。
本发明涉及一种用于将数据写入一文件中的方法。所述方法包括在一网络元件20处接收一对一文件的NFS写入请求的步骤。具有由网络元件20确定哪一VFS与所述文件相关联的步骤。具有将一文件写入请求从网络元件20发送至具有所述VFS的一个条的复数个服务器14的至少一个磁盘元件22的步骤。具有获取与所述文件相关的当前属性的步骤。具有将所述数据的一预定数量的字节写入每一VFS条中直至将所述数据全部被写入所述文件中为止的步骤。
在本发明的运作中,其构建于一SpinServer顶部,SpinServer的基本架构阐述于第PCT/US01/46792号申请案中,所述申请案以引用方式并入本文中。我们记得,在所述申请案中,由一群网络元件(NE)20及磁盘元件(DE)22构建成单个全局名称空间。
在此较佳实施例中,将单个NE与DE组合于一既具有用于输入文件系统请求的网络端口16又具有用于SpinServer之间的集群12通信的其他网络端口16的服务器14中,如上图所示。在图2中,位于图2顶部的链路代表SpinServer与其附属存储器阵列18之间的光纤信道链路。水平黑线代表将不同SpinServer的NE与DE组件连接在一起的专用集群12网络。应注意,在图2中,看似集群12链路延伸经过SpinServer2以到达SpinServer 3,但实际上,集群12网络为一交换式吉比特以太网,其中各机器连接成一星形拓扑。
假定一系统如上文所述构造而成,则作为提供从DE到看似单个VFS的带宽的方式,将数据在多个VFS之间条带化。
一VFS内的数据构建成一如由以引用方式并入本文中的第PCT/US01/48741号专利申请案所述的内节点阵列,或构建成Berkeley快速文件系统(Fast File System),所述快速文件系统的设计及完整构建方案可在http://www.freebsd.orq上获得,该网址以引用方式并入本文中。
一条带化VFS在NFS名称空间中看似单个VFS,但其在内部是由一组分布于若干DE中的条VFS构成(每一DE一个VFS);此一集合称作一条带化VFS或一条带化组。将其中一个VFS的一个服务器14辨别为元数据服务器26或MDS。随后按下述方式使数据分布于整个VFS集合中。该条带化VFS中的所有文件均表示在MDS处,且对于除正规数据文件外的所有文件而言,MDS均存储对象的所有数据。因此,具体而言,所有目录、符号链路、安装点均全部存储于MDS处。
数据文件受到不同的对待。通过将文件数据的不同的条放入所述条带化组中的不同VFS中-在每一条带化VFS内全部共享同一虚节点号,将数据文件条带化于一条带化组中的所有VFS当中。例如,如果其由A.B.C来标记(文件的VFS ID为A、虚节点B位于所述VFS内且唯一的产生编号为C),则如果条带化VFS A是由VFS A1、A2及A3组成,文件A.B.C的各个条会存储于文件ID为A1.B.C、A2.B.C及A3.B.C的文件中。换句话说,一具有虚节点B的条带化VFS中的文件将其数据存储于所述文件中的所有组元VFS中,其中每一组元VFS中均具有相同的虚节点及唯一域。虚节点B的条N存储于所述条带组中的第I个服务器14上,其中
I=(B+N)模STRIPE_WIDTH
且STRIPE_WIDTH(条带宽度)为保存条带化VFS的所有存储器阵列18中一整个条带中的条的数量。
图3显示一由三个单独的VFS A1、A2及A3形成的条带化虚拟文件系统24(VFSA)中的一文件。文件的虚节点号为B,且其唯一域为C。组合文件的条0存储于文件A2.B.C的第一个条中,条1存储于文件A3.B.C的条0中,条2存储于文件A1.B.C的条0中,而组合文件的条3返回至文件A2.B.C,此时为所述文件的条1。
按图3将数据条带化-每一服务器14上X个字节,且随后对于下一X个字节,移至下一服务器14,反复不断地进行。条尺寸为X,而条带尺寸为X*<服务器的数量>,换句话说,如果在每一服务器14上写入32KB,并随后移至下一个服务器14,且有8个加入集群12的服务器,则条尺寸为32K而条带尺寸为128K。
大部分操作文件系统操作在MDS上执行,且MDS单独实施属性检索、目录查找、符号链路读取、目录读取、存取检查、属性设定(文件长度更改除外)、目录创建、目录移除、文件及目录重命名、锁定、硬链路创建、符号链路创建及存取控制列表设定操作。
有若干其他操作会主要影响单个条,但所述条对请求的处理可能需要与MDS通信;这些操作包括读取及写入操作二者。最后,正规文件创建、文件移除及对一文件长度的更新均影响一条带组中的所有文件。下文将提供这些操作的细节。
除spin_read(旋转_读取)及spin_write(旋转_写入)外的所有基本数据操作均在MDS处处理。对spin_read及spin_write的调用由NE发送至保存所述文件的适当条的适当DE。如上文所提及,所述条被以数据文件内的相关条与文件的虚节点号相结合的一函数形式来计算,以便所述条带化以用于一条带化VFS内不同文件的一不同服务器而开始。应注意,专用请求是按照所述较佳实施例的命名法(例如spin_read或spin_write)来识别。这些要求表示与其相关的更一般的请求,例如一读取请求或一写入请求或一状态请求。
当一NE接收到一NFS读取时,所述NE对存储有包含正被读取的数据的条的实际VFS进行计算,且随后NE将读取请求发送至存储所述数据的DE(或各DE)。作为执行请求的一部分,DE需要与文件相关的属性,且使用最近所高速缓存的信息或者当时从MDS获得此信息。此信息用于确定文件长度,文件长度则进一步用于微调文件读取。其还用于确定文件属性以供返回至spin_read的调用方。
图4显示此操作的运行方式。一NFS读取请求从左边进入NE,且被映射到对对应条带的对应spin_read请求中,然后被存储于从上面数第二个IOS上。如果存储在此IOS处的高速缓存属性为当前属性,则立即执行读取操作并产生一响应。否则,向元数据服务器(MDS)26发送一spin_mds_read_status调用,以检索文件的当前属性。写入请求也使用相同的路径:一NFS写入请求进入NE,被转译成一spin_write调用,且如果高速缓存元件不能立即处理所述请求则IOS以spin_mds write_status来调用MDS。另外,在写入情况下,如果文件长度得到更新,则写入调用的spin_mds_write_status调用会在MDS处更新文件长度。
就确定保存有为实施写入操作所需的数据的服务器14而言,写入操作类似于读取操作。spin_write操作在由一DE处理时,也将需要更新存储于MDS处的文件属性。此更新是通过从IOS向MDS发送一请求来处理;下文所述的最佳化使IOS能够使用对MDS的单个状态更新调用来处理多于一个spin_write操作。
IOS可对MDS实施的调用有两个。spin_mds_read_status操作回送当前文件属性。spin_mds_write_status操作回送当前文件属性以及IOS本身可指配的一mtime及ctime值范围。spin_mds_write_status调用也可在回送经过更新的属性前采用可选的属性来写入到所述文件;此选项通常用于在IOS处的spin_write调用实际上需要更新文件长度时更新文件长度。
对于MDS处的每一现用文件,每一IOS均保有一高速缓存元件以存储文件属性的最新已知版本及mtime和ctime值的可选范围以供指配给写入操作。在IOS处,此高速缓存元件按下述方式处理排队的读取及写入操作(spin_read及spin_write调用)。文件属性得到高速缓存,且适用于在自MDS获得所述文件属性后的某一(短暂)周期-亦称作空转周期。如果高速缓存元件处于读取模式中,则其已高速缓存了文件属性,但没有供用于写入的mtime及ctime范围。如果高速缓存处于写入模式中,则其如在读取模式中一样已高速缓存了文件属性,但另外还已高速缓存了一供用于写入操作的mtime及ctime值范围。一已高速缓存了因太过时而不能使用的信息的元件处于无效模式中。一高速缓存元件通过作出一spin_mds_read_status调用来从无效模式中移至读取模式,以从MDS获得最新属性。一处于无效或读取模式中的高速缓存元件可通过调用spin_mds_write_status来移至写入模式,以获得当前属性连同mtime及ctime范围。
mtime为文件的修改时间,此意味着其是文件中的数据最后被修改的时间。ctime时间为文件的更改时间,每当文件的任何特性(包括其数据)更改时其均会前移。因此,如果对文件进行写入,则mtime及ctime二者均会改变,但如果对文件实施如改变其保护或文件所有者等操作,则仅ctime会改变。在mtime改变时,ctime总是会改变,但mtime却并非每当ctime改变时皆会改变。
一IOS处的所有spin_read及spin_write调用均须在其可在IOS处执行前获得进入高速缓存元件的许可;在其被接纳之前,其在高速缓存元件处排队。高速缓存元件跟踪正在对对应文件执行哪些spin_read或spin_write操作、及所述操作正在读取或写入哪些范围。如果高速缓存元件处于无效模式中,则一排队的spin_read调用首先请求所述高速缓存元件从无效模式中移入读取模式中。一旦所述元件处于读取或写入模式中,即检查受spin_read调用影响的字节范围,以确保其不与先前已被接纳且当前正在执行的任何spin_write调用的字节范围重叠。如果此条件也通过,则所述spin_read调用被接纳,且将以当前存储于高速缓存元件中的属性来完成。一排队的spin_write调用请求所述高速缓存元件移入写入模式。然后,其检查受所述spin_write调用影响的字节范围是否与任何已被接纳且仍在执行的spin_read或spin_write调用重叠。如果没有相冲突的调用,则spin_write调用会被接纳,且从存储于高速缓存元件中的范围内分配一mtime/ctime对,且就地执行spin_write。当spin_write调用完成时,使用所分配的mtime/ctime对来发送响应。每当完成一spin_read或一spin_write调用时,均检查待决的spin_read及spin_write请求以确定其能否被接纳,且接纳新的调用直至遇到一调用与当前正在运行的一组spin_read及spin_write调用相冲突为止。
一被允许进入高速缓存元件的写入调用也可检测到其必须更新文件长度。在此种情况下,高速缓存元件移入互斥模式中-此需要在所有其他操作均完成后才能开始spin_write操作。在所有操作完成后,实施一spin_mds_write_status调用以更新文件长度属性并回送一新的mtime及ctime值范围,并开始写入操作。
图5显示在一条带化系统中作为实施一spin_write操作的一部分而交换的调用。在此实例中,三个NFS写入调用到达一NE,由NE向一IOS发送这三个对应的spin_write调用。IOS的高速缓存元件未处于写入模式,因此其向MDS作出一spin_mds_write_status调用以将所述元件置入写入模式中。在此时间期间,其他对IOS的spin_write调用排队等待高速缓存元件移入写入模式中。
某些对一网络元件20的读取及写入调用跨越文件系统中的条边界。通常,此出现在大的NFS读取或写入调用偶然地碰巧跨越一个条边界时。在此种情况下,在NE可产生适当NFS响应之前组合对各个磁盘元件22的多个SpinFS调用的结果。图6即图解说明此种情形。
有两种方法可用于这些情形。在第一种方法中,实施两次或两次以上的DEspin_read或spin_write操作-对每一受影响的条实施一次,并在向客户机回送结果之前组合这些结果。用于组合多组属性的操作将要回送与具有最早(最小)ctime域的状态条目相关的属性。在第二种方法中,NFSv3及NFSv4操作可实施短的读取或写入操作这一事实被加以利用,且只实施适合于最先受影响的条的读取或写入操作部分,并从NE向NFS客户机回送一仅所述数据的一子集得到传送的指示。在此种情况下,已知客户机将发送另一对其余数据的请求。
视基本的存取协议而定,该较佳实施方案实际上使用一种混合方法。具体而言,对于允许服务器14实施一少于所请求字节的读取或写入的协议(其中存储器客户机负责请求一对其余字节的新的传送)而言,服务器14将采用上文所述的第二种方法。对于其余需要针对每一调用来传送所有字节的协议而言,则使用第一种方法。尽可能使用短的读取及写入可使存储器客户机能够更精确地跟踪其高速缓存器的每一页中数据的确切版本,从而防止在存储器客户机处出现不必要的高速缓存器无效操作。
在MDS处实施两类操作,但这两类操作也影响系统中的IOS。一类操作包括文件创建及删除操作,而第二类操作包括文件截短。下文将阐述这两类操作。
多条操作是针对MDS,MDS向在所述操作中所涉及的不同IOS发出请求。如同此系统中的所有其他操作一样,所述各多条操作按其文件ctime值串行化。读者可看到,在图7中显示了这些操作通过所述系统时所经过的路径。其中,一NFS创建请求被一NE接收到,由所述NE将其转译成一spin_creat调用,然后所述spin_creat调用被转发给MDS(最右边的方框)。MDS通过向所有存储有所讨论VFS条的IOS发出若干个spin_ios_creat操作来实施此操作。在下图中可注意到,与在此操作中所涉及的其他调用相反,spin_ios_create调用从右向左移动。
文件创建及删除操作会影响多个条,且直接发送至MDS,由MDS按下述方式来驱动其处理。
文件创建相当简单明了。对条带化VFS而言,在实际实施创建之前,预留将被使用的内节点号,且对IOS实施spin_ios_create调用。spin_ios_create调用会确保在指定文件中不留有数据、文件内节点在IOS上具有与存储于MDS上的相同的唯一域、及文件的文件类型域指示所述文件为一正规文件。spin_ios_create调用是在MDS进行内节点分配事务前实施,以便万一在每一IOS处已创建内节点前发生崩溃,在MDS处也不会发生变化,且文件分配将最终从头开始。
万一在任一位置发生崩溃,文件创建将在任何文件条目得到创建前及在将任何内节点标记在MDS处得到分配前失败。因此,重新尝试所述创建将会成功,而不会因所述失败的文件创建尝试而损失任何资源。还应注意,到所创建的文件最后变得可见时-目录条目已得到创建且内节点已锁定在MDS处,文件已在MDS及所有IOS上得到创建。因此,不存在其中会见到一部分地得到创建的条带化文件的窗口,甚至在MDS或IOS崩溃的情况下也是如此。
删除是遵循与创建相同的规则,以确保会破坏目录条目并释放正规文件内节点的事务性更新是作为文件删除操作中的最末步骤来执行。换句话说,在文件删除开始时首先向每一远程VFS发送一spin_ios_delete调用(并行实施spin_io_delete调用)。一旦完成这些调用,即事务性地移除MDS处的条,且所述文件消失。
一出现在文件删除中但不出现在文件创建中的复杂因素在于:由于在操作开始时所述文件已存在,因而在删除期间,执行读取或写入操作的任何人均可看到删除期间的中间状态。通常,此意味着在一删除期间,一读取或写入操作可在所述删除期间回送ESTALE,而不仅仅是阻断及随后回送ESTALE。此本身并不是问题,但如果MDS在此阶段中崩溃,则在恢复时,某些条将看起来被删除,且将在读取该字节范围时回送ESTALE,而其他条将仍然起作用。进行一新的文件删除操作将会成功,但此文件的整体状态将导致用户感到迷惑。
因此,在文件删除操作开始前,进行一事务来将所述文件添加至一处于正被删除过程的对象列表并将所述文件从其母目录中移除。然后,系统将spin_ios_delete调用发送至所有IOS,且最终实施一第二事务来将所述文件从MDS中及从正被删除的文件列表中移除。由于在spin_remove调用作出任何改变前所述文件被记录为在稳定的存储器中“待删除”,因而能保证所述文件如果一旦开始被移除,就将最终被删除。因此,任何因在正删除过程中存取一文件而引起的ESTALE错误均将是短暂的,且只在所述文件在其母目录中不再可见后才会发生。
spin_ios_create及spin_ios_delete调用需要使用IOS上的高速缓存元件来使所涉及的文件处于互斥模式中。实际上,此意味着在spin_ios_create或spin_ios_delete可在IOS上执行之前,这些操作要等待所述文件的所有被接纳的操作完成。
文件截短类似于文件删除,既在MDS处也在各个IOS处执行。最好使截短可相对于IOS处的其他操作串行化。具体而言,如果一截短回送mtime 200,且在一回送mtime 199的IOS处执行写入,则在该IOS处写入的数据也必须反映所述截短的影响。另一方面,如果所述写入执行回送一mtime 201,则所述写入不应看起来受所述截短的影响。
这是通过在MDS处以与在MDS处使文件创建及删除操作串行化相同的方式使各截短串行化来实现。具体而言,在MDS处执行spin_setattr,从而在其执行的持续时间内阻断输入的spin_mds_read_status及spin_mds_write_status调用。在此时间期间,其在MDS处实施截短操作,并向所有IOS发送一spin_ios_truncate操作。spin_ios_truncate操作实际上在IOS处实施截短操作。
IOS按下述方式处理spin_ios_truncate操作。首先,完成已在IOS处被接纳的所有操作;根据已从MDS获得的mtime及ctime值来执行这些操作,且在所述截短操作前使这些操作串行化。接下来,实施所述截短操作。spin_ios_truncate调用的参数包括正被截短的文件的文件ID以及其新长度、和在实施所述截短后所述文件的属性,包括更新的mtime及ctime域。在实施所述截短操作后,高速缓存条目将处于读取模式中,且可继续进行在IOS处排队以在高速缓存条目中改变状态的其他操作。
为了避免此设计中DE元件内的线程资源被死锁,预留两个附加线程库以在IOS及MDS中的每一个处处理输入的请求。
由于任一系统均可同时为一MDS及一IOS(对于不同的虚拟文件系统24),因此预留足够的线程资源以确保能够执行至少一个自IOS发送至MDS的请求,并确保能够执行至少一个自MDS发送至IOS的请求。具体而言,预留至少一个线程来处理输入的spin_mds_read_status及spin_mds_write_status调用,且仅处理这些调用,并预留另一线程来处理spin_ios_create、spin_ios_delete及spin_ios_truncate调用,且仅处理这些调用。
此部分包含上文所述条带化系统的操作的一走查实例。
其从一文件创建开始,随后是若干次条带化写入,接着是若干次条带化读取,并以一文件删除结束。
最初文件创建始于MDS处,其首先为新文件分配一虚节点号。然后,MDS同时向所有IOS作出spin_ios_create调用,将所述文件标记为分配于所有IOS上。一旦完成spin_ios_create调用,即在MDS处进行会在MDS处实际创建所述文件的事务,且这些变化为永久性的。
在创建一文件后,多个机器可向所述文件进行写入。为具体起见,假定具有三个服务器I0、I1及I2,其中I0为所述文件的元数据服务器26。假定客户机C0及C1正在向所述文件进行写入。将时间表示成一给出自1/1/1970开始的纳秒数的64位量。在创建所述文件时,其mtime及ctime二者的值相同,例如1000000。假定C0然后对一存储于I1处的条作50个spin_write调用。I1首先移至写入模式,并从I0接收一mtime及ctime值范围。在此种情形下,假定所述写入到达I1时的当前时间为2000000,以便MDS通过将I1的mtime及ctime范围规定为2000000-2000999而在I1的mtime及ctime范围内赋予I11000个值。然后,MDS将文件的mtime及ctime设定至2001000。为所述50个写入指配50个各异的mtime及ctime对,mtime及ctime二者均从2000000开始,且mtime及ctime二者均以2000049结束。在处理这些写入期间,C0及C1可发送对一个或多个存储于I2处的条的另外50个写入。作为一IOS的I2也必须移至写入模式,且通过调用spin_mds_write_status以获得其自身的一组mtime及ctime值来实现。由于当将I1置入写入模式中时MDS已将时间戳提前到2001000,因而回送至I2的范围为2001000至2001999。然后,在I2处实施所述50个写入,并由I2赋予其2001000至2001049的mtime及ctime值。应注意,已在I1及I2上执行了100个写入操作,以仅两个简单的RPC至I0为代价。
接下来,假定从客户机C0及C1向IOS I1发送50个读取操作。当该组中的第一个读取到达I1时,假定其发现IOS可保持在写入模式中的最长时间已到期,且IOS回到空闲状态中。处理spin_read调用需要IOS处于读取模式中,这是通过其向MDS发送一spin_mds_read_status调用来实现。此调用会回送当前属性,包括2002000的当前文件mtime及ctime值。在完成所述spin_mds_read_status调用后,IOS I1能够回送mtime及ctime值2002000,直至空转周期到期为止。在此实例中,假定所有这些读取操作均在空转周期到期前到达,则所有spin_read操作均回送指示所述文件具有的mtime及ctime值2002000的属性。
应注意,在此实例中,所有操作均按ctime串行化。换句话说,使I1处所有向所述条的写入均在任何向条I2的写入之前串行化,而向条I2的写入本身则在任何在I1处所实施的读取之前串行化。
最后,当删除所述文件时,MDS接收会触发删除的spin_remove调用。MDS从母目录中移除所述文件名,将所述文件放入稳定存储器上一正被删除文件的列表中并进行所述事务。由此点开始,所述文件最终将在MDS及所有IOS上被删除,甚至在多个系统崩溃的情况下也如此。然后,MDS实施删除的第二阶段,并行地向所有IOS发送spin_ios_delete操作。在每一IOS均确认spin_ios_delete调用执行成功后,在MDS处毁坏所述文件且将内节点放回到MDS处的自由列表中。
上文所述技术解决了为一由许多通过高速网络连接的独立处理器所构成的计算机集群12提供共享文件存取的问题,因为其使NAS服务器14能够形成一可提供对单个文件的极高读取或写入性能的集群12。
就读取或写入性能而言,例如,如果一管理员需要100个服务器对单个文件执行操作,则所述管理员仅需在100个服务器上将包含所需文件的VFS条带化。每一服务器14的每一网络元件20均具有所述文件的总负载的大约1/100,且每一服务器14上的每一磁盘元件22也具有所述文件的总负载的大约1/100,因而所有IOS上的负载分布非常平均。MDS上的负载可按下述方式估算:在有5000个客户机时,在任一时刻,每一IOS均可能有50个客户机在对其进行存取。每一客户机在任一瞬时均可能具有8-16个待决I0请求,此意味着IOS在任一瞬时均具有400-800个排队的请求。如果在每100个排队的请求中具有一个spin_mds_read_status或spin_mds_write_status调用,且每一请求均为一8K读取或写入操作,则每一自IOS对MDS的调用均相当于约800KB的数据传送。如果MDS可以处理(保守地来说)25,000个spin_mds_read_status或pin_mds_write_status调用/秒,则对所述单个文件所支持的总带宽大约为25,000*800KB或20吉字节/秒。此等价于160个吉比特以太网端口,且大大高于任何由可比技术形成的集群式NFS服务器14系统的性能。
在一较佳实施例中,装置10在一具有4GB主存储器的双处理器Intel PC上运行。装置10具有4个吉比特以太网卡、2个用于输入NFS请求的用户端口及2个用于与集群12中的其他NFS服务器14通信的集群12端口。在集群12端口上传送的调用为spin_read、spin_write、spin_create及spin_delete调用(从一网络元件20到一磁盘元件22)、以及spin_ios_XXX and spin_mds_XXX调用(从一磁盘元件22到另一磁盘元件22)。每一系统还具有4GB的主存储器用于高速缓存文件数据以及通用程序存储。
装置10在一双处理器上运行,且虽然此并非必需,但网络元件20代码在其中一个CPU上运行而磁盘元件22代码及集群代码则在另一CPU上运行。因此,网络元件20处理器运行NFS及CIFS服务器代码,而磁盘元件22处理器运行MDS及IOS代码(可能同时用于不同的虚拟文件系统24)。
虽然出于例示目的而在上述实施例中详细阐述了本发明,但应了解,此种详细阐述仅用于例示目的且所属领域的技术人员可对其作出改动,此并不背离本发明的精神及范围,除非在随附权利要求书加以阐述。

Claims (10)

1.一种用于存储数据的装置,其包括:
一网络文件系统服务器集群,每一服务器均具有用于输入文件系统请求及服务器之间的集群通信的网络端口,其中每一文件的每一服务器均保有一高速缓存元件,所述高速缓存元件存储文件属性的一最新已知版本及修改时间和更改时间值的范围以供指配给写入操作结果;及
复数个用于与所述服务器通信的存储器阵列,所述服务器利用一条带化文件系统来存储数据。
2.如权利要求1所述的装置,其中每一服务器均具有一网络元件及一磁盘元件,且每一磁盘元件均具有一虚拟文件系统且每一磁盘元件的所述虚拟文件系统共同形成所述条带化文件系统。
3.如权利要求2所述的装置,其中用于所述一虚拟文件系统的所有磁盘元件充当元数据服务器。
4.如权利要求3所述的装置,其中每一不是用于所述虚拟文件系统的所述元数据服务器的磁盘元件均为一输入输出辅助设备,且修改时间或更改时间值的范围是由所述输入输出辅助设备从所述元数据服务器中保留,影响一文件的所有条带的操作(a)首先在一文件的所述元数据服务器处开始执行,且随后在所有输入输出辅助设备处执行,以使所述输入输出辅助设备处的操作(b)只等待已结束其与所述元数据服务器的通信的已在执行的操作(c),且所述(a)(b)及(c)操作遵循至少两种锁定模型中的一种,所述两种锁定模型中的第一种首先要与所述元数据服务器同步,然后通过与在所述输入输出辅助设备处执行的其他操作同步来开始核心执行,且其中第二种首先要在所述元数据服务器处同步,且随后与一个或多个输入输出辅助设备处的已在所述一个或多个输入输出辅助设备处开始核心执行的操作同步。
5.一种用于数据存储的方法,其包括下列步骤:
在复数个网络文件系统服务器上创建一文件,其中所述复数个网络文件系统服务器的每个服务器均保有一高速缓存元件,,所述高速缓存元件存储文件属性的一最新已知版本及修改时间和更改时间值的范围以供指配给写入操作结果;
在所述服务器中将数据以数据条的形式写入至所述文件中,所述数据条共同形成一条带;
从所述服务器中读取所述数据条;及
从所述服务器中删除所述数据条。
6.如权利要求5所述的方法,其包括步骤:将一网络文件系统服务器的一虚拟文件系统的一磁盘元件识别为一元数据服务器并将未被识别为所述元数据服务器的所述网络文件系统服务器的磁盘元件识别为输入输出辅助设备。
7.如权利要求6所述的方法,包括步骤:由所述高速缓存元件向所述元数据服务器作出一状态请求以自所述元数据服务器获得一文件的当前属性及修改时间和更改时间值的范围,及在所述输入输出辅助设备处对文件读取及文件写入请求进行排队直至所述文件读取及文件写入请求被所述高速缓存元件接纳并完成执行为止。
8.如权利要求7所述的方法,其包括步骤:由所述高速缓存元件跟踪正对文件执行的所述文件读取及文件写入请求及正被读取或写入的范围,当必须执行一读取操作时请求所述高速缓存元件从无效模式移出至读取模式,及检查一受一文件读取请求影响的字节范围以确保其不与任何先前被接纳且当前正在执行的文件写入请求的一字节范围重叠。
9.如权利要求8所述的方法,其包括如下步骤:响应于一文件写入请求而请求所述高速缓存元件移入一写入模式中,通过所述高速缓存元件检查受所述文件写入请求影响的字节范围是否与任何被接纳且仍在执行的文件读取或文件写入请求相重叠,及当执行一写入请求时从存储于所述高速缓存元件中的修改时间及更改时间值的范围中分配一修改时间及更改时间对。
10.如权利要求9所述的方法,其包括如下步骤:检查一待决的文件读取及文件写入请求队列中的首个请求以确定在一文件读取或文件写入请求完成后所述高速缓存元件可否接纳一首个请求,及由所述高速缓存元件检测到必须响应于一文件写入请求而更新一文件长度,将所述高速缓存元件移入互斥模式中;及向所述元数据服务器作出一文件写入状态调用以更新所述文件的长度属性。
CN2004800352927A 2003-12-02 2004-11-15 使用条带化来存储数据的方法及装置 Active CN101019105B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/727,169 US7302520B2 (en) 2003-12-02 2003-12-02 Method and apparatus for data storage using striping
US10/727,169 2003-12-02
PCT/US2004/038423 WO2005060477A2 (en) 2003-12-02 2004-11-15 Method and apparatus for data storage using striping

Publications (2)

Publication Number Publication Date
CN101019105A CN101019105A (zh) 2007-08-15
CN101019105B true CN101019105B (zh) 2011-05-25

Family

ID=34620572

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004800352927A Active CN101019105B (zh) 2003-12-02 2004-11-15 使用条带化来存储数据的方法及装置

Country Status (9)

Country Link
US (3) US7302520B2 (zh)
EP (1) EP1689345A4 (zh)
JP (1) JP4607898B2 (zh)
KR (1) KR100834162B1 (zh)
CN (1) CN101019105B (zh)
AU (1) AU2004304873B2 (zh)
CA (1) CA2548084A1 (zh)
IL (1) IL175684A0 (zh)
WO (1) WO2005060477A2 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US7188128B1 (en) * 2003-12-12 2007-03-06 Veritas Operating Corporation File system and methods for performing file create and open operations with efficient storage allocation
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
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
US8335807B1 (en) * 2004-08-30 2012-12-18 Sprint Communications Company, L.P. File distribution system and method
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
US7904649B2 (en) 2005-04-29 2011-03-08 Netapp, Inc. System and method for restriping data across a plurality of volumes
US7962689B1 (en) * 2005-04-29 2011-06-14 Netapp, Inc. System and method for performing transactional processing in a striped volume set
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
US8255425B1 (en) 2005-11-01 2012-08-28 Netapp, Inc. System and method for event notification using an event routing table
US7747584B1 (en) * 2006-08-22 2010-06-29 Netapp, Inc. System and method for enabling de-duplication in a storage system architecture
US8301673B2 (en) * 2006-12-29 2012-10-30 Netapp, Inc. System and method for performing distributed consistency verification of a clustered file system
US8489811B1 (en) 2006-12-29 2013-07-16 Netapp, Inc. System and method for addressing data containers using data set identifiers
US8312046B1 (en) 2007-02-28 2012-11-13 Netapp, Inc. System and method for enabling a data container to appear in a plurality of locations in a super-namespace
US7827350B1 (en) 2007-04-27 2010-11-02 Netapp, Inc. Method and system for promoting a snapshot in a distributed file system
US8060696B2 (en) * 2007-04-27 2011-11-15 Siemens Medical Solutions Usa, Inc. Positron emission tomography event stream buffering
US7797489B1 (en) 2007-06-01 2010-09-14 Netapp, Inc. System and method for providing space availability notification in a distributed striped volume set
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
US7992055B1 (en) 2008-11-07 2011-08-02 Netapp, Inc. System and method for providing autosupport for a security system
US9524396B2 (en) * 2009-04-16 2016-12-20 International Business Machines Corporation System that maintains objects created and modified within designated directories on a per-client basis in a network filesystem
US8117388B2 (en) * 2009-04-30 2012-02-14 Netapp, Inc. Data distribution through capacity leveling in a striped file system
US8296517B2 (en) * 2009-08-19 2012-10-23 Oracle International Corporation Database operation-aware striping technique
CN102012871B (zh) * 2009-09-08 2012-09-05 英业达股份有限公司 重映射存储器的方法
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
CN102143228A (zh) * 2011-03-30 2011-08-03 浪潮(北京)电子信息产业有限公司 一种云存储系统、云客户端及实现存储区域网络服务的方法
US9553817B1 (en) 2011-07-14 2017-01-24 Sprint Communications Company L.P. Diverse transmission of packet content
CN102413172B (zh) * 2011-10-31 2014-10-01 北京联创信安科技有限公司 一种基于集群技术的并行数据共享装置方法和装置
CN103795750B (zh) * 2012-10-31 2017-03-01 中国银联股份有限公司 一种文件传送方法及其系统
US9052942B1 (en) * 2012-12-14 2015-06-09 Amazon Technologies, Inc. Storage object deletion job management
CN103558998B (zh) 2013-11-07 2016-03-30 华为技术有限公司 一种数据操作的方法和设备
US10235288B2 (en) 2015-10-02 2019-03-19 Netapp, Inc. Cache flushing and interrupted write handling in storage systems
US11385980B2 (en) 2017-11-13 2022-07-12 Weka.IO Ltd. Methods and systems for rapid failure recovery for a distributed storage system
CN110413204B (zh) * 2018-04-28 2023-02-10 伊姆西Ip控股有限责任公司 I/o管理方法、设备和计算机可读介质
CN109325001B (zh) * 2018-08-20 2021-06-29 郑州云海信息技术有限公司 基于元数据服务器删除小文件的方法、装置及设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701516A (en) * 1992-03-09 1997-12-23 Auspex Systems, Inc. High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
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

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US139167A (en) * 1873-05-20 Improvement in artificial stone
JP3160106B2 (ja) * 1991-12-23 2001-04-23 ヒュンダイ エレクトロニクス アメリカ ディスクアレーの区分け方法
US5893140A (en) * 1996-08-14 1999-04-06 Emc Corporation File server having a file system cache and protocol for truly safe asynchronous writes
US5889934A (en) * 1997-02-24 1999-03-30 Data General Corporation Data validation system for a group of data storage disks
US6029168A (en) * 1998-01-23 2000-02-22 Tricord Systems, Inc. Decentralized file mapping in a striped network file system in a distributed computing environment
US6697846B1 (en) * 1998-03-20 2004-02-24 Dataplow, Inc. Shared file system
US6671773B2 (en) * 2000-12-07 2003-12-30 Spinnaker Networks, Llc Method and system for responding to file system requests
US7165096B2 (en) * 2000-12-22 2007-01-16 Data Plow, Inc. Storage area network file system
US7685126B2 (en) * 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
US20040139167A1 (en) * 2002-12-06 2004-07-15 Andiamo Systems Inc., A Delaware Corporation Apparatus and method for a scalable network attach storage system
US7127577B2 (en) * 2003-01-21 2006-10-24 Equallogic Inc. Distributed snapshot process
US7237021B2 (en) * 2003-04-04 2007-06-26 Bluearc Uk Limited Network-attached storage system, device, and method supporting multiple storage device types
US7412496B2 (en) * 2003-08-22 2008-08-12 Emc Corporation Management of the file-modification time attribute in a multi-processor file server system
US20070088702A1 (en) * 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701516A (en) * 1992-03-09 1997-12-23 Auspex Systems, Inc. High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Carns P. H et al.PVFS: A Parallel File System for Linux Clusters.Proceedings of the 4th Annual Linux Showcase and Conference.2000,第3节第2段,第3.1节至第3.2节,第5节第3段,图1. *

Also Published As

Publication number Publication date
US7805568B2 (en) 2010-09-28
EP1689345A2 (en) 2006-08-16
AU2004304873B2 (en) 2008-08-28
WO2005060477A3 (en) 2007-03-29
US7454567B2 (en) 2008-11-18
KR20060111543A (ko) 2006-10-27
WO2005060477A2 (en) 2005-07-07
US7302520B2 (en) 2007-11-27
CN101019105A (zh) 2007-08-15
CA2548084A1 (en) 2005-07-07
US20050120078A1 (en) 2005-06-02
AU2004304873A1 (en) 2005-07-07
US20090070345A1 (en) 2009-03-12
IL175684A0 (en) 2008-04-13
EP1689345A4 (en) 2009-07-29
JP2007537501A (ja) 2007-12-20
WO2005060477A8 (en) 2007-05-18
JP4607898B2 (ja) 2011-01-05
US20070271350A1 (en) 2007-11-22
KR100834162B1 (ko) 2008-06-02

Similar Documents

Publication Publication Date Title
CN101019105B (zh) 使用条带化来存储数据的方法及装置
US7076553B2 (en) Method and apparatus for real-time parallel delivery of segments of a large payload file
CN104539681B (zh) 分布式gis加速系统和gis服务的处理方法
CN104618482B (zh) 访问云数据的方法、服务器、传统存储设备、系统
CN107888657A (zh) 低延迟分布式存储系统
CN102708165B (zh) 分布式文件系统中的文件处理方法及装置
CN108140009A (zh) 分布式自主式基于rdma的b树键值管理器
AU2015316450B2 (en) Method for updating data table of KeyValue database and apparatus for updating table data
CN105025053A (zh) 基于云存储技术的分布式文件的上传方法及其系统
CN102033912A (zh) 一种分布式数据库访问方法及系统
CN101741911A (zh) 基于多副本协同的写操作方法、系统及节点
CN102164161A (zh) 一种对并行文件系统进行文件布局提取的方法和装置
CN106293490A (zh) 数据存储、读取的方法、装置及系统
CN106294870B (zh) 基于对象的分布式云存储方法
US11907261B2 (en) Timestamp consistency for synchronous replication
CN102281320A (zh) 控制云存储中数据冗余的方法及装置
CN106713391A (zh) 一种session信息的共享方法和共享系统
CN109684273A (zh) 一种快照管理方法、装置、设备及可读存储介质
CN103078898A (zh) 文件系统、接口服务装置和数据存储服务提供方法
CN106326372A (zh) Git中央仓库管理系统及控制方法
CN113449065A (zh) 一种面向数据删重的去中心化存储方法及存储装置
CN102724301B (zh) 云数据库系统以及云数据读写处理方法、设备
CN106776151A (zh) Samba集群tdb数据库记录备份方法、装置及系统
CN107896248B (zh) 一种基于客户端通信的并行文件系统应用方法
CN113326335A (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
ASS Succession or assignment of patent right

Owner name: AMERICA NETAPP INC.

Free format text: FORMER OWNER: SPINNAKER NETWORKS INC.

Effective date: 20110915

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20110915

Address after: American California

Patentee after: SPINNAKER NETWORKS, INC.

Address before: American Pennsylvania

Patentee before: Spinnaker Networks Inc.

CP01 Change in the name or title of a patent holder
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: SPINNAKER NETWORKS, INC.