[go: up one dir, main page]

CN1816795A - 多卷文件支持 - Google Patents

多卷文件支持 Download PDF

Info

Publication number
CN1816795A
CN1816795A CNA2004800192203A CN200480019220A CN1816795A CN 1816795 A CN1816795 A CN 1816795A CN A2004800192203 A CNA2004800192203 A CN A2004800192203A CN 200480019220 A CN200480019220 A CN 200480019220A CN 1816795 A CN1816795 A CN 1816795A
Authority
CN
China
Prior art keywords
allocation strategy
file
allocation
storage unit
strategy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2004800192203A
Other languages
English (en)
Other versions
CN100383720C (zh
Inventor
查尔斯·H·西尔弗斯
罗纳德·S·卡尔
约翰·A·科尔格罗夫
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.)
Revivio Inc
Original Assignee
Veritas Operating Corp
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 Veritas Operating Corp filed Critical Veritas Operating Corp
Publication of CN1816795A publication Critical patent/CN1816795A/zh
Application granted granted Critical
Publication of CN100383720C publication Critical patent/CN100383720C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种计算机可访问介质可包括指令,所述指令当被执行时接收请求来为文件分配一个或多个块。至少一个分配策略被分配给该文件,其中,分配策略指定将在其上分配块的一个或多个存储单元。此外,如果多于一个存储单元指定,则分配策略包括控制指示,其指示一种在存储单元之中进行选择的机制。这些指令当被执行时还可根据分配策略分配块。在另一实现中,一种计算机可访问介质包括指令,所述指令当被执行时接收请求来为文件系统中的文件分配一个或多个块并根据分配策略来分配块。分配策略在文件系统中两个或更多级别的粒度上可指定。

Description

多卷文件支持
技术领域
本发明涉及计算机系统的文件系统领域,更具体地说,涉及对于文件系统内的文件的存储空间的分配。
背景技术
计算机系统实现文件系统来管理由操作系统使用的文件和/或在计算机系统上执行的应用程序。执行文件系统软件来管理文件系统中的文件。过去,文件系统通常用单卷名字空间实现,因此文件系统中的所有文件具有相同的存储特征(例如,存储装置的类型,可靠性特征等)。不同的卷可具有不同的性能特征、不同的成本、和不同的可靠性特征。然而,可以认为一些文件比其它的文件“更重要”,因此对于这些文件,期望更高的可靠性特征(即使付出更低的性能特征的代价)。其它文件可被频繁地访问和更新,因此期望高性能特征(即使付出更低的可靠性特征的代价)。另外,文件可具有数据(存储在文件中的信息)和元数据(关于数据的信息)两者。元数据通常被认为比数据“更重要”,因此期望更高的可靠性特征。对于单卷名字空间,不可能为不同文件或文件的不同部分提供不同的性能、可靠性、和/或成本特征。
已进行了一些有限的提供灵活性的尝试。例如,出自SiliconGraphics,Inc(SGI)的XFS文件系统被用在诸如视频服务器、视频编辑等的实时关键应用中。XFS文件系统提供一个实时空间和一个“正常”空间(非实时空间),并尝试提供对实时空间中的数据的实时访问(潜在地损害对正常空间的访问的情况下)。QFS文件系统允许将存储装置分为两个池,一个用于存储数据,另一个用于存储元数据。因此,数据或元数据被自动存储在对应的池中的装置上。其它文件系统(例如,出自Digital Equipment Corporation后来被康柏计算机获得的ADVFS,后来被惠普获得)包含卷管理器的功能,在文件系统中直接提供诸如镜像、分割、廉价冗余磁盘阵列(RAID)等的特征。
文件系统一般不具有将文件分配给具有该文件期望的特征的卷的灵活性,也无法将文件数据和文件元数据以可能期望的灵活性进行分配。
发明内容
在一个实施例中,一种计算机可访问介质可包括指令,所述指令当被执行时接收请求来为文件分配一个或多个块。至少一个分配策略被分配给该文件,其中,分配策略指定将在其上分配块的一个或多个存储单元。在一些实施例中,存储单元可包括卷,或者在其它实施例中,存储单元可包括存储装置。此外,如果多于一个存储单元被包括在一个或多个存储单元中,则分配策略包括控制指示,其指示一种在存储单元之中进行选择的机制。这些指令当被执行时还可根据分配策略分配块。不同的分配策略可被分配给不同的文件,允许在将文件分配给存储单元的过程中的灵活性。例如,在一些实现中,不同的文件可被分配给具有不同的性能、可靠性、和成本特征的卷。
在另一实施例中,一种计算机可访问介质包括指令,所述指令当被执行时接收请求来为文件系统中的文件分配一个或多个块并根据分配策略来分配块。分配策略在文件系统中两个或更多级别的粒度上可指定。例如,在一些情况下,分配策略可在盘区、文件、目录、文件集、和/或文件系统级别上指定。在一些实施例中,分配策略在操作期间可被改变。随后的块分配可根据新分配策略发生。以另一种方式看,块分配可在分配时根据一个或多个分配策略被执行。
附图说明
下面的详细描述参考附图,现在简短描述附图。
图1是系统的一个实施例的框图。
图2是文件系统、卷管理器、和各种卷或卷集的一个实施例的框图。
图3是更详细的文件系统软件的一个实施例的框图。
图4是i节点的一个实施例的框图。
图5是存储文件数据的i节点的一个实施例的框图。
图6是存储一个或多个对数据块的指针的i节点的一个实施例的框图。
图7是存储一个或多个对间接块的指针的i节点,且每个间接块存储一个或多个对数据块的指针的一个实施例的框图。
图8是示出图7中显示的分配器的一个实施例的操作的流程图。
图9是示出应用“按给出”分配策略的一个实施例的流程图。
图10是示出应用“最空”分配策略的一个实施例的流程图。
图11是示出应用“最小尺寸”分配策略的一个实施例的流程图。
图12是示出关于分配策略可被使用的命令的一个实施例的表。
图13是更详细的文件系统软件的第二实施例的框图。
图14是示出包括在创建文件的过程中的行为的一个实施例的流程图。
图15是计算机可访问介质的一个实施例的框图。
尽管本发明容许各种修改和替换形式,但其特定实施例通过附图中的示例被显示并将在此被详细描述。然而,应该理解,附图和对其的详细描述不是意图将本发明限制为公开的特定形式,正相反,本发明将覆盖落入由所附权利要求限定的本发明的精神和范围内的所有修改、等同物和选择对象。
具体实施方式
图1是系统的一个实施例的框图。在图1的实施例中,该系统包括执行硬件10和与执行硬件10连接的多个存储装置12A-12N。
执行硬件10可包括被设计以在使用期间执行指令的至少一个处理器。多个处理器可被包括在一些实施例中。执行硬件10可选择性地包括其它组件(例如用于存储由处理器执行的指令和将由处理器操作的数据的系统存储器、各种输入/输出(I/O)装置等)。
存储装置12A-12N可包括任何类型的计算机可存取介质。例如,在各种实施例中,存储装置12A-12N可包括:小计算机系统接口(SCSI)盘、电子集成驱动器(IDE)盘、个人计算机存储卡国际协会(PCMCIA)盘、通用串行总线(USB)盘、火线盘等。存储装置12A-12N还可包括固态存储器(例如存储器12N),其可包括:各种非易失性存储器装置,诸如有电池支持的随即存取存储器(RAM)、闪速存储器;各种可编程只读存储器(PROM),诸如可擦除PROM(EPROM)、电可擦除PROM(EEPROM)等。存储装置12A-12N还可包括可拆卸存储器,诸如软盘。存储装置12A-12N可经由各种外设互连(例如IDE、外设组件互连(PCI)、USB、串行或并行接口等)被连接到执行硬件10。另一方面,存储装置12A-12N可经由网络(有线或无线)被连接到执行硬件10。在一些实施例中,存储装置12A-12N可被配置为存储区域网(SAN)或者可以是网络附加存储器(NAS)。直接附加的存储装置和组网的存储装置的组合可在各种实施例中使用。
图2是示出可在图1显示的系统的一些实施例中使用的某软件基础结构的框图。在图2的实施例中,显示了文件系统14、卷管理器16、和包括存储装置12A-12N的卷。文件系统和卷管理器软件在使用期间可在执行硬件10上被执行。
一般,卷管理器16包括将存储装置组织成卷(和/或卷集)的软件,并使得这些卷对于文件系统14可用,以用于文件的存储。各种卷可具有不同的特征(例如不同的性能特征。不同的可靠性特征等)。如在此使用的,术语“卷(volume)”指的是在被组织并称为单元的一个或多个存储装置12A-12N上的存储块的集合。一个卷可包括一个存储装置的所有块、存储装置的一部分块(例如盘分区)、多个存储装置的所有块。或者多个存储装置的每个上的一部分块。如在此使用的,“存储块(storage block)”,或者更简短地说,“块”可以是在存储装置上(或在卷内)分配存储空间的最小单位。块尺寸可随着实施例的不同而变化。例如,尽管可使用任意块尺寸,但是4千字节的块尺寸是普遍的。
卷的组织可提供特定的性能和/或可靠性特征。例如,图2中的卷1是包括存储装置12A-12B的镜像卷。卷管理器16可用相同的数据写两个存储装置12A-12B,因此装置12A-12B中的一个产生故障不会导致数据的丢失。因此,卷1提供了镜像冗余。其它卷可包括更多存储装置以提供数据的额外的镜像,提供额外的冗余(从而提供更高的可靠性)。作为可靠性的另一示例,卷3可包括卷管理器16可作为RAID存储器进行管理的多个存储装置(包括图2中的装置12D和12E)。例如,RAID等级5可被实现在一些实施例中。其它实施例可实现任何RAID等级。一些性能特征可以是包括在卷中的存储装置或多个存储装置的结果(例如,不同类型的装置可具有不同的延迟和带宽特征)。因此,卷2和6基于包括在卷中的存储装置12C和12N可具有不同的性能特征。然而,性能特征还可经由卷的组织被建立。例如,卷4包括被分割以增加性能的存储装置12F和12G。除了性能和可靠性特征之外,基于其下的存储装置的成本,每个卷还可具有成本特征。此外,几个卷可被限定具有相同的成本、性能、和可靠性特征。不同的用户可使用这样的卷中的不同的卷,以确保用户在访问卷的过程中不会彼此干扰(例如,确保每个用户可具有到对应卷的专用带宽)。
卷管理器16还可支持卷集的创建(例如图2中的卷集18)。如在此使用的,“卷集”可以是被组织为用于被文件系统14进行访问的单个对象的一个或多个卷的集合。卷集内的卷可由文件系统14使用卷集名称和卷集内期望的卷的索引来寻址。卷集内的卷可具有不同的特征(例如,卷集18内的卷5和卷7可具有不同的特征)。
一般,文件系统14可包括对更高级别的软件(例如,操作系统、应用程序等)所使用的文件进行组织和跟踪的软件。文件系统14可将文件分等级地组织进目录中,并管理用于文件的存储空间的分配。在图2的实施例中,文件系统14可在由卷管理器16提供的一个或多个卷上分配块来存储文件数据(和文件元数据)。在其它实施例中,如果不包括卷管理器16,则文件系统14可在各种存储装置12A-12N上直接分配块。在这样的实施例中,存储装置12A-12N中的每个可被文件系统14以与卷相似的方式对待。在文件系统中存储的所有数据(例如,文件数据、元数据等)在此可被称为文件系统数据。
分配策略
文件系统14可为文件系统的指定各种分配策略。一般,“分配策略”可指定可被用于分配的一个或多个存储单元。在实现卷管理器16的实施例中,存储单元可包括卷(包括卷集内的卷)。在没有实现卷管理器16的实施例中,存储单元可包括存储装置12A-12N。为了简化剩余的讨论,将指定一个或多个卷来讨论分配策略。然而,其它实施例可具有一个或多个存储装置,并且将“卷”替换为“存储装置”(或者,更一般化地,将“卷”替换为“存储单元”),则相似的操作可应用。此外,如果分配策略指定多于一个存储单元,则分配策略可包括指示在存储器之中进行选择的机制的控制指示。在一些实施例中,可提供各种其它控制标志(例如,非特权用户是否可向文件分配策略的指示、策略对于所有分配是否要被严格的遵守的指示等)。分配策略还可被编码为“空”,这意味着分配策略未被指定。在各种实施例中,一个缺省分配策略可被用于分配块,或者在其它粒度级别上指定的分配策略可被使用。
当为文件分配块时,文件系统14可应用分配策略。即,文件系统14可在由分配策略指定的卷上分配块,并且在分配策略中未指定的卷上不可以分配块(即使在分配策略中未指定的卷上块是可用的)。在一些实施例中,分配策略可被用于控制哪个卷被用于给定的文件,因此可向文件系统14的用户提供灵活性以控制各种文件被存储在其上的存储器的性能、成本、和可靠性特征。在一些实施例中,卷可具有由管理员分配的一个或多个特征。例如,这样的分配特征可以基于位于卷外部的并且对于管理员已知的信息来识别卷。例如,管理员可分配特征,该特征识别卷的位置、网络到卷和卷到网络所期望的通信量等。分配策略可被定义以基于这样的分配特征来控制分配。分配的特征可以以各种方式被表示(例如名称/值对)。
在一个实施例中,分配策略可被单独地分配给文件。即,每个文件可具有分配的一个或多个分配策略。例如,在一个实施例中,文件可由一个或多个i节点描述。一般,如在此使用的,“i节点(i node)”可包括描述文件的数据结构。i节点被存储在文件系统中,并被用于识别文件系统中的文件。i节点可存储分配给文件的一个或多个分配策略(或者可存储识别分配策略的标签,并且分配策略自身可被存储在分配策略数据结构中)。因此,每个文件可具有分配策略,并且不同文件的分配策略可能不同。此外,在一些实施例中,文件数据的i节点和文件元数据的i节点可以是分开的。因此,文件数据和文件元数据的分配策略可能不同。例如,文件元数据可被存储在具有比对应的文件数据更高的可靠性特征的卷上。对于不同类型的元数据也可存在分开的i节点,允许分配策略对于不同类型的元数据不同。一般,元数据可以是描述文件(或文件中的数据)的数据。例如,目录信息可以是元数据。各种扩展文件属性(被诸如操作系统或应用程序的更高级别的软件所使用)可被存储为元数据。到文件的符号链接可以是元数据。在各种实施例中,可提供任何元数据。分配策略还可逐i节点类型地分配(例如,文件数据i节点相对于元数据i节点,或者各种类型的元数据i节点,诸如目录数据、扩展文件属性、符号链接等)。
在另一实施例中,分配策略可在文件系统中多于一个的粒度级别上被分配。例如,分配策略可对于作为整体的文件系统、对于文件系统内的文件集、对于文件系统或文件集内的目录、以及对于文件系统(或文件集)内的文件进行分配。对于给定的分配,对于非空文件可使用在最精细粒度级别上的分配策略。如在此使用的,“盘区(extent)”是卷内被分配给一个文件的相邻块的集合。给盘区的分配策略可以允许控制如果该盘区被扩大时存储器被添加到所述盘区。在另一实施例中,分配策略可被分配给成批的文件。
应该注意到文件系统可包括一个或多个文件集。文件集可以是被当作一个单元对待的文件的集合(类似于卷集和卷之间的关系)。在一些实施例中,文件集可以是文件系统内独立的名字空间。在一个实施例中,文件集可被用于备份的目的。文件集之一可以是主(活动)文件集,其它文件集可以是的对文件系统状态进行快照的克隆以用于备份目的。在这样的实施例中,文件集也可被称为“检查点”。
一个或多个分配策略可在操作中如期望地被动态改变。用于对应文件的新分配可遵守新分配策略。如果期望,则用于文件的存储器可在策略改变之后被重新分配,从而新分配策略被用于整个文件。
现在转向图3,显示文件系统14的一部分的一个实施例的框图。在图3的实施例中,文件系统14包括:分配器20、应用程序接口(API)22、和命令接口24。分配器20、API 22和命令接口24可访问文件系统策略、一个或多个文件集策略(例如用于文件系统中的每个文件集的一个文件集策略)、和可被定义以分配给文件的各种其它策略。文件系统策略、文件集策略、和其它策略一起可形成文件系统14的多个分配策略26。该多个分配策略26可被文件系统14存储为一个数据结构(例如,在文件系统14的一个卷上)。分配器20还可访问限定文件系统内的每个卷的空闲块的一套数据结构(例如卷1的空闲块列表,标号28A,以及卷N的空闲块列表,标号28N,被显示在图3中)。
分配器20可包括当(例如在执行硬件10上)被执行时响应于块分配请求为文件存储分配块的指令。块分配请求可由正在更新文件的应用程序、操作系统软件等发起。块分配请求可包括分配给文件的分配策略(或其指示)以及请求的块数。另一方面,块分配请求可识别为其分配块的文件,并且分配器20可获得对应于该文件的分配策略(例如,从诸如分配策略26的对于分配器20可访问的数据结构中)。例如,在一个实施例中,块分配请求包括对其请求块的i节点以及块数。该i节点可识别为其请求块的文件,并还可指定分配给文件的分配策略。在其它实施例中,文件的分配策略可被存储在可由分配器20访问的数据结构(例如分配策略26)中,因此不可以在块分配请求中被明确指定。在这样的实施例中,分配器20可使用文件标识(例如i节点)来查询i节点的分配策略。
分配器20可将文件的分配策略应用于块分配请求,并可将分配的块数和块的指针返回给请求者。实际分配的块数可能少于请求的块数(例如,如果该数量的块不是定位为分配策略中包括的卷之一上的相邻组)。在这样的情况下,请求者可反复请求(从请求的块数中减去分配的块数)直到期望的块数被分配(或者直到指示块不可能被分配的错误出现)。可用于分配的块可由空闲块列表28A-28N指示,并且分配器响应于为文件分配块而更新空闲块列表28A-28N以从列表中去除分配的块。在各种粒度级别上指定分配策略的实施例中,分配器20可应用这样的分配策略,该分配策略位于适用于请求的最精细级别的粒度上并且非空。
命令接口24可包括响应于各种管理命令而执行的指令(例如在执行硬件10上)。管理命令可由用户输入(例如,经由命令壳)。属于分配策略的一套命令可被实现(例如,添加分配策略、指定策略、改变策略等)。一套示例命令显示在图12中并在下面更详细地描述。API 22可接收由应用程序产生的应用命令。应用命令可以是对API 22中各种软件例程的调用。应用命令可以是管理命令的子集,并可被应用程序(和操作系统软件)使用来管理分配策略。在一些实施例中,用于管理分配策略的应用命令的集合可以与管理命令的集合相同。文件系统14的管理员可控制向应用程序提供多少许可来管理分配策略,并且API 22可对许可实行任何限制。
接下来转到图4,显示i节点30的一个实施例的框图。在图4的实施例中,i节点30包括:数据策略字段32、间接策略字段34、其它属性36、和指针字段38。
示出的实施例通过数据策略字段32和间接策略字段34为每个i节点提供两个分配策略。在直接策略字段32中指定的数据策略可用于数据块请求,在间接策略字段34中指定的间接策略用于间接块请求。因此,对于此实施例,由分配器20接收的块分配请求还可包括请求是对于数据块还是对于间接块的指示。如在此使用的数据块是被分配以存储文件数据(或元数据)的块。间接块是被分配以存储一个或多个数据块或其它间接块的指示的块。间接块可包括任何形式的文件索引(例如,对数据块或其它间接块的指针;识别数据块和其它间接块的位映射等)。数据块和间接块具有不同的分配策略是可取的。数据块可被更频繁地分配在大盘区中,而间接块可被更频繁地分配为较少数量的块。通过使用不同的分配策略,间接块分配更不可能使用于数据块分配的卷产生碎片。注意到直接策略字段32和间接策略字段34可存储识别分配策略26之一的标签,而不是存储实际的策略本身。如在此使用的,通过包括分配策略或者通过包括识别分配策略的标签,i节点可“指定”分配策略。
指针字段38可存储块的一个或多个指针。在一些实施例中,如果文件数据足够小以致可被存储在指针字段38中,则文件数据可代替指针或多个指针被存储。
其它属性36可存储用于对应于i节点的文件的其它信息(例如,访问许可、所有者、时间戳等)。期望的任何其它信息可被存储,或者没有信息可被存储。在一个实施例中,其它属性36可指示指针字段38是否包括文件数据、对数据块的一个或多个指针、对间接块的一个或多个指针。
图5、6和7示出i节点30的各种实施例:i节点30A、i节点30B、i节点30C等。i节点30A可以是在指针字段38中存储了文件数据的i节点的示例。i节点30B可以是具有对数据块(例如图6中的块40A和40B)的一个或多个指针的i节点的示例。i节点30C可以是具有对间接块(例如指向数据块44A和44B的间接块42A、指向数据块44C和44D的间接块42B)的一个或多个指针的i节点的示例。如图5、6和7所示,i节点30A-30C每个包括数据策略字段32和间接策略字段34。
尽管在图4-7的实施例中显示了两个分配策略字段,但是在其中每个i节点指定一种分配策略或者每个i节点指定多于两种分配策略的其它实施例被设想。另外,分配策略字段在各种实施例中可被存储在其它地方。例如,分配策略字段可与其它元数据存储在一起。分配策略字段还可存储在间接块等中。
现在转到图8,显示了流程图,示出分配器20的一个实施例响应于块分配请求的操作。图8示出的实施例可被用在在其中分配策略可以以各种级别的粒度被建立的实施例中。对于示出的实施例,分配策略在i节点中提供(例如图4),并还可在文件集和文件系统级别被指定。图8的流程图可表示包括在分配器20中的指令,这些指令当被执行时实现图8中显示的操作。
分配器20可确定块分配请求是对于数据块还是对于间接块(判定框50)。如果请求是对于数据块的,则分配器20可检查由在请求中提供的i节点指定的数据策略(判定框52)。如果数据策略非空(判定框52,“是”分支),则分配器20可应用数据策略来分配块(框54)。另一方面,如果请求是对于间接块,则分配器20可检查由在请求中提供的i节点指定的间接策略(判定框56)。如果间接策略非空(判定框56,“是”分支),则分配器20可应用间接策略来分配块(框58)。
如果请求是对于间接块并且由i节点指定的间接策略为空,或者如果请求是对于数据块并且由i节点指定的数据策略为空,则分配器20可检查包括该文件的文件集的文件集策略(判定框60)。如果文件集策略非空(判定框60,“是”分支),则分配器20可应用文件集策略来分配块(框62)。类似地,如果文件集策略为空,则分配器20可检查文件系统策略(判定框64)。如果文件系统策略非空(判定框64,“是”分支),则分配器20可应用文件系统策略来分配块(框66)。如果文件系统策略为空(判定框64,“否”分支),则分配器20可应用缺省策略(框68)。缺省策略可以是任何期望的策略。例如,缺省策略可以是分配附于文件系统的任何卷上的块。
分配器20返回对分配的块的指针和分配的块的数量(框70)。如上所述,在一些情况下,对于给定的请求,可能分配比请求的块数少的块。如果对于给定的请求没有块可被分配,则可返回错误作为代替。
图8的实施例示出在i节点(文件)级别的粒度上分开的数据和间接策略以及在更粗级别的粒度(例如,文件集和文件系统级别)的一个策略。在其它实施例中,更粗级别粒度也可具有分开的数据策略和间接策略。在这样的实施例中,基于块分配请求是对于数据块还是对于间接块,将在每个更粗级别选择间接或数据策略。
尽管示出的实施例包括在文件、文件集、和文件系统级别的粒度上的分配策略(如果没有指定策略,则包括一个缺省策略),但其它实施例可使用粒度的任何子集。除了示出的级别(或示出的级别的任何子集)之外,其它实施例可实现盘区或文件范围(file range)级别的粒度。
在其它实施例中,文件系统14不可为分配策略实现多级别的粒度(即,仅可实现文件级策略)。在这样的实施例中,如果请求是对于间接块并且由i节点指定的间接策略为空,或者如果请求是对于数据块并且由i节点指定的数据策略为空,则可使用缺省策略。
注意到,在另一实施例中,取决于请求类型,分配器20可仅检查在i节点中指定的数据策略和间接策略。当创建文件时,在不同粒度上的策略可生效。即,执行类似于图8的流程图的代码可在文件创建期间被执行以设置正被创建的文件的i节点中的数据策略字段32和间接策略字段34(这里,可分配用户指定的策略,或者如果未提供用户指定的策略,则可使用文件集或文件系统策略)。
如上所述,在使用期间可修改各种分配策略。图8的流程图在块分配请求被接收到时可有效使用分配策略。
在块54、58、62和66的每个,分配策略被应用。应用分配策略一般可包括:如果多于一个卷被列出,则在控制指示的控制下尝试从包括在分配策略中的卷进行分配。应用用于各种控制指示编码的策略的几个示例显示在图9-11中。即,取决于分配策略中的控制指示,使用图9-11中显示的任何流程图,任意块54、58、62和66可被实现。图9-11的流程图每个可表示形成分配器20的指令,这些指令当被执行时实现图9-11中显示的操作。
图9是示出“按给出(as given)”策略的应用的流程图(即,控制指示被编码以指示“按给出”)。对于此策略,为了在分配策略中列出它们,进行从卷进行分配的尝试。即,如果分配策略中的第一卷具有至少一个可用块,则该块将被分配以响应请求。如果第一卷为空,则尝试从分配策略中的第二卷进行分配,等。
因此,分配器20可以按在分配策略中列出的顺序扫描卷(更具体地说,分配器20可访问用于卷的空闲块列表28A-28N)(框80)。分配器20可在分配策略中有空间的第一个卷上分配一个或多个块(框82)。
另一方面,分配器20可在卷上扫描请求的分配尺寸(按在分配策略中列出的顺序)并可在具有所请求的尺寸的相邻块的第一个卷上分配请求的尺寸。如果请求的尺寸不可用,则分配器20可从具有对于分配可用的任意块的第一个卷分配块。
图10是示出“最空(least full)”策略的应用的流程图(即,控制指示被编码以指示“最空”)。对于此策略,在分配策略中最空的卷(例如,在各种实施例中,具有最多可用块,或按卷中全部块的百分比具有最多可用块)上分配块。因此,分配器20可扫描卷(更具体地说,分配器20可访问用于卷的空闲块列表28A-28N)以找到最空卷(框84)。分配器20可在最空卷上分配块(框86)。
已设想:除了顺序和丰满度之外的标准可被用于在分配策略中指定的卷之中进行选择以用于响应于块分配请求的分配。例如,卷的碎片化可被考虑,独立于块分配请求而提供的期望的最小分配尺寸可被考虑,等。例如,图11是示出“最小尺寸(MinSize)”策略的应用的流程图(即,控制指示被编码以指示“最小尺寸”)。对于此策略,分配器20尝试从分配策略的任意卷分配较小的请求尺寸(块数)或最小尺寸(块数)。最小尺寸可以是可编程的(全局地对于文件系统,或者在分配策略内)或者可以是固定的。
因此,分配器20可按在策略中列出的顺序扫描卷(更具体地说,分配器20可访问用于卷的空闲块列表28A-28N)(框88)。如果最小尺寸(或者请求的尺寸)的块被找到(框90,“是”分支),则分配器20可在该找到的卷上分配块(框92)。如果最小尺寸(或者请求的尺寸)的块未被找到(框90,“否”分支),则分配器20可使用按给出策略来分配块(框94)。
也设想其它策略。例如,设想这样一种策略,其将“按给出”和“最小尺寸策略”组合,带有指示一种策略相对于另一种策略被偏重地应用的程度的权重。此外,已设想:多个分配策略可被应用于给定的文件所期望的卷的子集。
接下来转到图12,显示了关于分配策略的、可被命令接口24支持的各种管理命令的一个实施例的表。命令的一个类似的集合或者一个子集可经由API 22从应用被支持。其它实施例可如期望地实现命令或其它附加命令的任何子集。其它附加命令也可被支持以用于其它文件系统。
Add volume(增加卷)命令可用于将卷添加到文件系统。Addvolume命令不可将卷添加到任何分配策略。Remove volume(删除卷)命令可用于从文件系统去除卷。Remove volume命令可能使仍在一个或多个分配策略中被指定的卷停止作用。Resize volume命令可被用于调整卷的尺寸(例如,增加或减少卷中的块数)。
Creat allocation policy命令可用于创建分配策略(例如,将新分配策略添加到分配策略26)。Delete allocation policy命令可用于从分配策略26删除分配策略。Allocation policy info命令可用于取回指定的分配策略的内容。
Assign fileset allocation policy命令可用于以文件集级别的粒度分配一个或多个分配策略。类似地,assign filesystem allocation policy命令可用于以文件系统级别的粒度分配一个或多个分配策略。对应的fileset allocation policy info和filesystem allocation policy info命令可用于分别在文件集和文件系统级别的粒度上取回这些策略的内容。
Assign file allocation policy命令可用于分配文件的分配策略(数据和/或间接的)。File allocation policy info命令可用于取回文件的策略的内容。
Encapsulate命令可用于用覆盖整个卷的一个数据盘区来创建一个文件。如在下面的示例部分会更详细地描述的,此命令可用于封装数据库使用的原始卷。
此外,在一些实施例中,一种根据与分配给文件的分配策略不同的分配策略来重新分配文件的命令可被支持。这样的命令可用于根据不同的分配策略重新分配文件,而实际上不改变文件的分配策略。
现在转到图13,显示了文件系统14的一部分的第二实施例的框图。图13的实施例示出分配器20、API 22、命令接口24、分配策略26、和空闲块列表28A-28N。此外,显示了可被分配器20访问的自动分配策略表100。
自动分配策略表100可用于当特定文件被创建时分配用于这些文件的分配策略。自动分配策略表100可包括多个条目。每个条目可包括:一个与输入索引值匹配的索引值;和被分配给具有匹配的输入索引值的文件的一个或多个分配策略。在各种实施例中,任何文件属性可被用作表中的输入索引。例如,可使用文件名后缀(其经常用于指示文件中数据的类型)。在其它实施例中,可使用文件名的其它部分。在其它实施例中,可使用文件尺寸。在其它实施例中,可使用文件的所有者或创建者。如果找到表中的匹配的索引值(一次“命中”),则在表中指定的对应的分配策略可被分配给文件。
图14是示出分配器20的一个实施例响应于请求而创建文件的操作的流程图。图14的流程图可表示形成分配器20的指令,这些指令当被执行时实现图14中显示的操作。
分配器20可确定文件是否在自动策略表100中命中(判定框102)。如果命中(判定框102,“是”分支),则从自动策略表100分配文件的一个或多个分配策略(框104)。如果未命中(判定框102,“否”分支),则分配器20可确定文件是否要从双亲(例如目录、文件集或文件系统)继承一个或多个分配策略(判定框106)。例如,文件系统14是可编程的以提供分配策略的继承。另一方面,是否提供继承可以在其它级别的粒度(例如文件集、目录等)上指定。其它实施例可不实现继承。如果文件要继承分配策略(判定框106,“是”分支),则分配器20可分配双亲的一个或多个策略(框108)。如果文件不打算继承分配策略(判定框106,“否”分支),则分配器20可将一个或多个空策略分配给文件。另一方面,如果期望,文件集分配策略或文件系统分配策略可在框106分配。
分配策略使用的示例
分配策略可以以许多方式使用以实现将文件各式各样地分配给文件系统中的卷。以下提供的示例没有意图穷举。
一个应用程序可能要将给定检查点中的文件分配给一个或多个卷。这样的分配可允许文件系统的管理员限制检查点使用的空间,它还可防止检查点使主文件集中的空间产生碎片。多个检查点也可被分配给相同的卷。对于此应用,文件系统可起初具有一个文件集(主文件集),其具有包括一个卷的分配策略。一个包括不同的卷的新分配策略可被创建,并且具有分配给其的新分配策略的检查点文件集可被创建。
另一应用可能要分开文件数据与元数据。如先前所述,元数据经常被认为比文件数据更有价值。因此,与文件数据相比,将元数据存储在具有更高的可靠性特征的卷上、甚至允许用于不同类别的元数据的不同级别的可靠性是可取的。对于此应用,可将包括第一一个或多个卷的第一分配策略分配给文件数据i节点,并可将包括不与第一一个或多个卷重叠的第二一个或多个卷的第二分配策略分配给元数据i节点。第二卷可具有比第一卷更高的可靠性特征。如果期望不同级别的可靠性用于不同类别的元数据,则额外的分配策略可被创建。
另一示例性应用可能要将文件系统意向日志(intent log)存储在不同于其它文件的物理存储装置上。一些文件系统(例如出自VERITAS软件公司,Mountain View,CA的VERITAS文件系统)可包括用于记录修改各种文件系统数据的意向的意向日志。如果系统在所有的修改完成之前崩溃,则意向日志可用于检测本来应该更新什么并且完成该更新或者撤销该更新。将意向日志(其被频繁更新)放在与其它文件分离的物理存储装置上可防止在装置上(在意向日志和其它文件之间)的频繁查找,并还可防止使带有意向日志数据块的卷产生碎片。对于此应用,一种指定单个卷(或多个卷)被用于意向日志的分配策略可被创建,并可被分配给意向日志i节点。其它分配策略不可使用用于意向日志的一个或多个卷。类似的机制可用于隔离在它们自己的物理盘上的其它日志(例如,VERITAS文件系统实现的文件变化日志,其记录对文件的改变)。
数据库软件(诸如Oracle)经常使用原始卷来存储其数据(例如,管理块分配自身)。由于原始卷不包含任何文件,所以备份数据库卷是复杂的,将数据从卷复制到文件来备份文件会很耗时。对于此应用,encapsulate命令可用于将原始卷添加到文件系统并将该卷封装为一个文件。
一些文件可具有相关的“名称流”结构。名称流可用于存储关于文件的其它信息(例如,与文件相配的图标等)。将名称流存储在与文件数据不同的卷中是可取的。对于此应用,名称流i节点可被分配与文件数据i节点不同的分配策略。
更一般化地,基于用户定义的标准将不同的文件存储在不同的卷上是可取的。例如,一些文件(例如多媒体文件)可具有与其它文件不同的访问模式。将这样的文件存储在对于那些类型的访问模式执行得更好的卷上是可取的。用户可被允许将分配策略分配给文件来实现期望的分配。在一些实施例中,分配策略可具有指示非特权用户是否访问给定的分配策略的标志。这样的标志可允许管理员控制用户可使用哪种分配策略。
在其它实施例中,可实现另外的管理控制。另外的管理控制可允许在允许特定用户或用户组定义分配策略、将分配策略分配给文件等的过程中的更多的灵活性。
另一示例可允许在尺寸上比单个卷的最大尺寸更大的文件系统。对于此示例,多个卷可被附于文件系统,并且用于文件系统的分配策略可在任何可用卷上分配文件。
计算机可访问介质
现在转到图15,显示了计算机可访问介质120的框图。一般来说,计算机可访问介质可包括在使用期间可由计算机访问的任何介质,以将指令和/或数据提供给计算机。例如,计算机可访问介质可包括:诸如磁或光学介质的存储介质,例如,盘(固定或可卸载)、CD-ROM、或DVD-ROM;易失性或非易失性存储器介质,诸如RAM(例如,SDRAM、RDRAM、SRAM等)、ROM等;以及经由传输介质或信号(诸如电信号、电磁信号、或数字信号)可访问、经由通信介质(诸如网络和/或无线链路)可传达的介质。图15中的计算机可访问介质120可存储文件系统软件14(例如,包括分配器20、API 22、和/或命令接口24)、分配策略26、和自动策略表100中的一个或多个。
一旦完全理解了以上公开,对于本领域的技术人员,许多变更和修改将变得清楚。所附权利要求旨在被解释以支持所有这样的变更和修改。

Claims (42)

1、一种计算机可访问介质包括指令,所述指令当被执行时:
接收请求来为文件分配一个或多个块,其中,至少一个分配策略被分配给该文件,其中,分配策略指定将在其上分配所述块的一个或多个存储单元,如果多于一个存储单元被指定,则控制指示指示一种在存储单元之中进行选择的机制;和
根据所述分配策略分配块。
2、如权利要求1所述的计算机可访问介质,其中,文件的i节点指定分配策略。
3、如权利要求2所述的计算机可访问介质,其中,i节点指定用于间接块请求的第一分配策略和用于数据块请求的第二分配策略,其中,所述请求包括请求是对于间接块还是数据块的指示,其中,所述指令当被执行时根据所述指示选择第一分配策略或第二分配策略。
4、如权利要求1所述的计算机可访问介质,其中,所述指令当被执行时如果分配策略为空,则检查对应于包括该文件的文件集的文件集分配策略。
5、如权利要求4所述的计算机可访问介质,其中,所述指令当被执行时如果文件集分配策略为空,则检查对应于包括该文件集的文件系统的文件系统分配策略。
6、如权利要求5所述的计算机可访问介质,其中,所述指令当被执行时如果文件系统分配策略为空,则使用缺省分配策略。
7、如权利要求1所述的计算机可访问介质,其中,所述指令当被执行时如果分配策略为空,则检查对应于包括该文件的目录的目录分配策略。
8、如权利要求1所述的计算机可访问介质,其中,所述指令当被执行时:
确定在文件的创建期间确定是否指定分配策略的自动分配;和
响应于确定了指定自动分配来分配分配策略。
9、如权利要求8所述的计算机可访问介质,其中,确定是否指定自动分配的步骤包括检查文件属性的表和对应的分配策略。
10、如权利要求9所述的计算机可访问介质,其中,文件属性包括文件名后缀。
11、如权利要求9所述的计算机可访问介质,其中,文件属性包括文件尺寸。
12、如权利要求1所述的计算机可访问介质,其中,存储单元包括卷。
13、如权利要求1所述的计算机可访问介质,其中,控制指示指示按在分配策略中给出的顺序来选择存储单元。
14、如权利要求1所述的计算机可访问介质,其中,控制指示指示按在分配策略中指定的最空存储单元来选择存储单元。
15、如权利要求1所述的计算机可访问介质,其中,控制指示指示:存储单元将被扫描以找到最小尺寸盘区,具有最小尺寸盘区的存储单元将被选择,如果没有找到最小尺寸的盘区,则将按在分配策略中给出的顺序来选择存储单元。
16、一种方法,包括:
接收请求来为文件分配一个或多个块,其中,至少一个分配策略被分配给该文件,其中,所述分配策略指定将在其上分配所述块的一个或多个存储单元,如果多于一个存储单元被指定,则控制指示指示一种在存储单元之中进行选择的机制;和
根据所述分配策略分配块。
17、如权利要求16所述的方法,其中,文件的i节点指定分配策略。
18、如权利要求17所述的方法,其中,i节点指定用于间接块请求的第一分配策略和用于数据块请求的第二分配策略,其中,所述请求包括请求是对于间接块还是数据块的指示,其中,该方法还包括根据所述指示选择第一分配策略或第二分配策略。
19、如权利要求16所述的方法,还包括改变分配给文件的分配策略,其中,所述分配在分配发生时有效地响应分配策略。
20、一种计算机可访问介质包括指令,所述指令当被执行时:
接收请求来为文件系统中的文件分配一个或多个块;和
根据分配策略来分配所述块,其中,分配策略在文件系统中两个或更多级别的粒度上可指定。
21、如权利要求20所述的计算机可访问介质,其中,粒度的第一级别包括文件。
22、如权利要求21所述的计算机可访问介质,其中,粒度的第二级别包括包含该文件的文件集。
23、如权利要求21所述的计算机可访问介质,其中,粒度的第二级别包括包含该文件的文件系统。
24、如权利要求21所述的计算机可访问介质,其中,粒度的第二级别包括该文件的盘区。
25、如权利要求21所述的计算机可访问介质,其中,粒度的第二级别包括该文件的范围。
26、一种方法,包括:
产生在文件系统中使用的一个或多个分配策略,其中,分配策略控制将文件系统数据分配到与该文件系统相关联的多个存储单元;和
将分配策略分配给文件系统数据。
27、如权利要求26所述的方法,其中,所述一个或多个分配策略中的每个指定具有一个或多个存储特征的多个存储单元中的一个或多个,籍此,特定文件系统数据的分配与所述一个或多个存储特征相互关联。
28、如权利要求27所述的方法,其中,所述一个或多个存储特征包括存储单元的性能特征。
29、如权利要求27所述的方法,其中,所述一个或多个存储特征包括存储单元的可靠性特征。
30、如权利要求27所述的方法,其中,所述一个或多个存储特征至少包括分配给存储单元的第一存储特征。
31、如权利要求27所述的方法,其中,第一存储特征由管理员分配。
32、如权利要求26所述的方法,其中,文件系统数据包括主文件集和至少一个其它文件集,其中,分配分配策略的步骤包括将第一分配策略分配给主文件集和将第二分配策略分配给所述其它文件集。
33、如权利要求32所述的方法,其中,第一分配策略指定多个存储单元中的第一一个或多个,第二分配策略指定除了所述多个存储单元中的第一一个或多个之外的所述多个存储单元中的第二一个或多个。
34、如权利要求26所述的方法,其中,文件系统数据包括文件数据和元数据,其中,分配分配策略的步骤包括将第一分配策略分配给文件数据和将第二分配策略分配给元数据。
35、如权利要求34所述的方法,其中,第一分配策略指定多个存储单元中的第一一个或多个,第二分配策略指定多个存储单元中的第二一个或多个,其中,多个存储单元中的第二一个或多个具有比多个存储单元中的第一一个或多个更高的可靠性特征。
36、如权利要求24所述的方法,其中,文件系统包括一个或多个日志,其中,分配分配策略的步骤包括将第一分配策略分配给所述一个或多个日志和将所述多个分配策略中的其它分配策略分配给其它文件系统数据。
37、如权利要求36所述的方法,其中,第一分配策略指定多个存储单元中的第一一个或多个,第二分配策略指定除了所述多个存储单元中的第一一个或多个之外的所述多个存储单元中的第二一个或多个。
38、如权利要求36所述的方法,其中,所述一个或多个日志包括意向日志。
39、如权利要求36所述的方法,其中,所述一个或多个日志包括文件变化日志。
40、如权利要求26所述的方法,其中,文件系统数据包括名称流和对应的文件数据,其中,分配分配策略的步骤包括将第一分配策略分配给名称流和将第二分配策略分配给对应的文件数据。
41、如权利要求26所述的方法,其中,存储单元包括卷,其中,第一分配策略导致在任意卷上的分配。
42、如权利要求26所述的方法,其中,产生的步骤包括将一个或多个管理控制应用于多个分配策略中的一个或多个。
CNB2004800192203A 2003-05-30 2004-05-28 多卷文件支持的方法 Expired - Lifetime CN100383720C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/449,739 US7814128B2 (en) 2003-05-30 2003-05-30 Multi-volume file support
US10/449,739 2003-05-30

Publications (2)

Publication Number Publication Date
CN1816795A true CN1816795A (zh) 2006-08-09
CN100383720C CN100383720C (zh) 2008-04-23

Family

ID=33551255

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800192203A Expired - Lifetime CN100383720C (zh) 2003-05-30 2004-05-28 多卷文件支持的方法

Country Status (5)

Country Link
US (1) US7814128B2 (zh)
EP (1) EP1634161A2 (zh)
JP (1) JP2007526528A (zh)
CN (1) CN100383720C (zh)
WO (1) WO2005001682A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8126939B2 (en) 2007-03-06 2012-02-28 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
CN101630332B (zh) * 2009-07-30 2012-07-04 成都市华为赛门铁克科技有限公司 数据存储管理方法、数据存储管理装置和系统
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8965936B2 (en) 2004-02-26 2015-02-24 Comcast Cable Holdings, Llc Method and apparatus for allocating client resources to multiple applications
US7424574B1 (en) 2004-04-21 2008-09-09 Sun Microsystems, Inc. Method and apparatus for dynamic striping
US7415653B1 (en) 2004-04-21 2008-08-19 Sun Microsystems, Inc. Method and apparatus for vectored block-level checksum for file system data integrity
US7603568B1 (en) 2004-04-21 2009-10-13 Sun Microsystems, Inc. Method and apparatus for self-validating checksums in a file system
US7412450B1 (en) 2004-05-26 2008-08-12 Sun Microsystems, Inc. Method and apparatus for identifying tampering of data in a file system
US7526622B1 (en) 2004-05-26 2009-04-28 Sun Microsystems, Inc. Method and system for detecting and correcting data errors using checksums and replication
US7496586B1 (en) 2004-05-26 2009-02-24 Sun Microsystems, Inc. Method and apparatus for compressing data in a file system
US7533225B1 (en) 2004-08-17 2009-05-12 Sun Microsystems, Inc. Method and apparatus for enabling adaptive endianness
US7437528B1 (en) 2004-08-17 2008-10-14 Sun Microsystems, Inc. Gang blocks
US7756154B2 (en) * 2005-03-22 2010-07-13 Netapp, Inc. Shared implementation for multiple system interfaces
US7734869B1 (en) 2005-04-28 2010-06-08 Netapp, Inc. Interfaces for flexible storage management
US7386559B1 (en) * 2005-05-23 2008-06-10 Symantec Operating Corporation File system encapsulation
JP2006338461A (ja) * 2005-06-03 2006-12-14 Hitachi Ltd 電子的なファイルの記憶を制御するシステム及び方法
US7743038B1 (en) * 2005-08-24 2010-06-22 Lsi Corporation Inode based policy identifiers in a filing system
US20070078914A1 (en) * 2005-09-30 2007-04-05 International Business Machines Corporation Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
US8549051B2 (en) * 2005-11-04 2013-10-01 Oracle America, Inc. Unlimited file system snapshots and clones
US7716519B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for repairing partially damaged blocks
US7877554B2 (en) * 2005-11-04 2011-01-25 Oracle America, Inc. Method and system for block reallocation
US7865673B2 (en) * 2005-11-04 2011-01-04 Oracle America, Inc. Multiple replication levels with pooled devices
US20070106868A1 (en) * 2005-11-04 2007-05-10 Sun Microsystems, Inc. Method and system for latency-directed block allocation
US8635190B2 (en) * 2005-11-04 2014-01-21 Oracle America, Inc. Method and system for pruned resilvering using a dirty time log
US7743225B2 (en) * 2005-11-04 2010-06-22 Oracle America, Inc. Ditto blocks
US7873799B2 (en) * 2005-11-04 2011-01-18 Oracle America, Inc. Method and system supporting per-file and per-block replication
US7899989B2 (en) * 2005-11-04 2011-03-01 Oracle America, Inc. Method and system for using a block allocation policy
US20070112895A1 (en) * 2005-11-04 2007-05-17 Sun Microsystems, Inc. Block-based incremental backup
US7716445B2 (en) * 2005-11-04 2010-05-11 Oracle America, Inc. Method and system for storing a sparse file using fill counts
US7925827B2 (en) * 2005-11-04 2011-04-12 Oracle America, Inc. Method and system for dirty time logging
US7480684B2 (en) * 2005-11-04 2009-01-20 Sun Microsystems, Inc. Method and system for object allocation using fill counts
US7596739B2 (en) * 2005-11-04 2009-09-29 Sun Microsystems, Inc. Method and system for data replication
US7689877B2 (en) * 2005-11-04 2010-03-30 Sun Microsystems, Inc. Method and system using checksums to repair data
US7930495B2 (en) * 2005-11-04 2011-04-19 Oracle America, Inc. Method and system for dirty time log directed resilvering
US8938594B2 (en) * 2005-11-04 2015-01-20 Oracle America, Inc. Method and system for metadata-based resilvering
US8495010B2 (en) * 2005-11-04 2013-07-23 Oracle America, Inc. Method and system for adaptive metadata replication
US7657671B2 (en) * 2005-11-04 2010-02-02 Sun Microsystems, Inc. Adaptive resilvering I/O scheduling
US7475077B2 (en) * 2006-01-31 2009-01-06 International Business Machines Corporation System and method for emulating a virtual boundary of a file system for data management at a fileset granularity
JP4884041B2 (ja) * 2006-03-15 2012-02-22 株式会社日立製作所 自動拡張可能なボリュームに対して最適なi/oコマンドを発行するストレージシステム及びその制御方法
US7613946B2 (en) * 2006-09-14 2009-11-03 International Business Machines Corporation Apparatus, system, and method for recovering a multivolume data set
US7783847B2 (en) * 2006-10-31 2010-08-24 Oracle America Inc. Method and system for reallocating blocks in a storage pool
US7584229B2 (en) * 2006-10-31 2009-09-01 Sun Microsystems, Inc. Method and system for priority-based allocation in a storage pool
US7840657B2 (en) * 2006-10-31 2010-11-23 Oracle America, Inc. Method and apparatus for power-managing storage devices in a storage pool
US8285758B1 (en) * 2007-06-30 2012-10-09 Emc Corporation Tiering storage between multiple classes of storage on the same container file system
US7792882B2 (en) * 2007-09-27 2010-09-07 Oracle America, Inc. Method and system for block allocation for hybrid drives
US8886909B1 (en) 2008-03-31 2014-11-11 Emc Corporation Methods, systems, and computer readable medium for allocating portions of physical storage in a storage array based on current or anticipated utilization of storage array resources
US8095728B2 (en) * 2008-04-18 2012-01-10 Oracle America, Inc. Method and system for power aware I/O scheduling
US8117165B1 (en) 2008-04-30 2012-02-14 Netapp, Inc. Disk-to-disk backup of database archive logs
US8037279B2 (en) * 2008-06-12 2011-10-11 Oracle America, Inc. Method and system for cross-domain data sharing
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
US8190575B1 (en) * 2008-08-27 2012-05-29 Western Digital Technologies, Inc. Disk drive maintaining multiple copies of code segments
JP4905810B2 (ja) * 2008-10-01 2012-03-28 日本電気株式会社 ストレージ装置、領域割り当て方法、及びプログラム
US8280858B2 (en) * 2009-06-29 2012-10-02 Oracle America, Inc. Storage pool scrubbing with concurrent snapshots
US8321521B1 (en) * 2011-06-24 2012-11-27 Limelight Networks, Inc. Write-cost optimization of CDN storage architecture
US8438334B2 (en) * 2009-12-22 2013-05-07 International Business Machines Corporation Hybrid storage subsystem with mixed placement of file contents
US8924681B1 (en) * 2010-03-31 2014-12-30 Emc Corporation Systems, methods, and computer readable media for an adaptative block allocation mechanism
US9330105B1 (en) 2010-05-07 2016-05-03 Emc Corporation Systems, methods, and computer readable media for lazy compression of data incoming to a data storage entity
US9311002B1 (en) 2010-06-29 2016-04-12 Emc Corporation Systems, methods, and computer readable media for compressing data at a virtually provisioned storage entity
US9002911B2 (en) * 2010-07-30 2015-04-07 International Business Machines Corporation Fileset masks to cluster inodes for efficient fileset management
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
US8843489B2 (en) 2010-11-16 2014-09-23 Actifio, Inc. System and method for managing deduplicated copies of data using temporal relationships among copies
US9858155B2 (en) 2010-11-16 2018-01-02 Actifio, Inc. System and method for managing data with service level agreements that may specify non-uniform copying of data
US8417674B2 (en) 2010-11-16 2013-04-09 Actifio, Inc. System and method for creating deduplicated copies of data by sending difference data between near-neighbor temporal states
US8402004B2 (en) 2010-11-16 2013-03-19 Actifio, Inc. System and method for creating deduplicated copies of data by tracking temporal relationships among copies and by ingesting difference data
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US8983915B2 (en) 2011-08-01 2015-03-17 Actifio, Inc. Successive data fingerprinting for copy accuracy assurance
KR20140075709A (ko) * 2011-10-11 2014-06-19 톰슨 라이센싱 미디어 자산을 분류하는 방법 및 유저 인터페이스
US9183245B2 (en) * 2011-11-07 2015-11-10 Sap Se Implicit group commit when writing database log entries
US9342348B2 (en) 2012-01-23 2016-05-17 Brocade Communications Systems, Inc. Transparent high availability for stateful services
US20130212340A1 (en) * 2012-02-15 2013-08-15 International Business Machines Corporation Partition aware quality of service feature
US9754005B2 (en) 2012-06-18 2017-09-05 Actifio, Inc. System and method for incrementally backing up out-of-band data
JP5355764B2 (ja) * 2012-08-29 2013-11-27 株式会社日立製作所 ThinProvisioningに従う仮想的な論理ボリュームに対するデータのライトを制御する方法及びストレージ装置
KR102050725B1 (ko) * 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 데이터 관리 방법
US9264499B2 (en) 2012-12-14 2016-02-16 Intel Corporation Cloud data storage location monitoring
US9348840B2 (en) * 2012-12-14 2016-05-24 Intel Corporation Adaptive data striping and replication across multiple storage clouds for high availability and performance
WO2014185974A2 (en) 2013-05-14 2014-11-20 Abercrombie Philip J Efficient data replication and garbage collection predictions
US9785372B2 (en) * 2013-05-17 2017-10-10 Hitachi, Ltd. Storage device and method for configuring raid group
US20150142745A1 (en) 2013-11-18 2015-05-21 Actifio, Inc. Computerized methods and apparatus for incremental database backup using change tracking
US9720778B2 (en) 2014-02-14 2017-08-01 Actifio, Inc. Local area network free data movement
US9792187B2 (en) 2014-05-06 2017-10-17 Actifio, Inc. Facilitating test failover using a thin provisioned virtual machine created from a snapshot
US9772916B2 (en) 2014-06-17 2017-09-26 Actifio, Inc. Resiliency director
US10425480B2 (en) * 2014-06-26 2019-09-24 Hitachi Vantara Corporation Service plan tiering, protection, and rehydration strategies
US10379963B2 (en) 2014-09-16 2019-08-13 Actifio, Inc. Methods and apparatus for managing a large-scale environment of copy data management appliances
US10042710B2 (en) 2014-09-16 2018-08-07 Actifio, Inc. System and method for multi-hop data backup
US9697227B2 (en) 2014-10-27 2017-07-04 Cohesity, Inc. Concurrent access and transactions in a distributed file system
US10445187B2 (en) 2014-12-12 2019-10-15 Actifio, Inc. Searching and indexing of backup data sets
US10055300B2 (en) 2015-01-12 2018-08-21 Actifio, Inc. Disk group based backup
US10282201B2 (en) 2015-04-30 2019-05-07 Actifo, Inc. Data provisioning techniques
US10613938B2 (en) 2015-07-01 2020-04-07 Actifio, Inc. Data virtualization using copy data tokens
US10691659B2 (en) 2015-07-01 2020-06-23 Actifio, Inc. Integrating copy data tokens with source code repositories
US10445298B2 (en) 2016-05-18 2019-10-15 Actifio, Inc. Vault to object store
US10476955B2 (en) 2016-06-02 2019-11-12 Actifio, Inc. Streaming and sequential data replication
US10855554B2 (en) 2017-04-28 2020-12-01 Actifio, Inc. Systems and methods for determining service level agreement compliance
US11403178B2 (en) 2017-09-29 2022-08-02 Google Llc Incremental vault to object store
US11176001B2 (en) 2018-06-08 2021-11-16 Google Llc Automated backup and restore of a disk group
CN109669640B (zh) * 2018-12-24 2023-05-23 浙江大华技术股份有限公司 一种数据存储方法、装置、电子设备及介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5018060A (en) 1989-01-26 1991-05-21 Ibm Corporation Allocating data storage space of peripheral data storage devices using implied allocation based on user parameters
US6122646A (en) * 1993-10-18 2000-09-19 Sony Corporation Method and apparatus for management of information where sub directory information in a directory identifies the relative recording location of the sub directory
US6256643B1 (en) * 1998-03-10 2001-07-03 Baxter International Inc. Systems and methods for storing, retrieving, and manipulating data in medical processing devices
WO1998045840A1 (fr) * 1997-04-07 1998-10-15 Sony Corporation Dispositif et procede d'enregistrement de donnees et dispositif et procede de commande de pile de disques
JPH11184739A (ja) * 1997-12-19 1999-07-09 Nec Corp ファイルブロック割り当て方式およびファイルブロック割り当て用制御プログラムを記録した記録媒体
US6170009B1 (en) 1998-07-17 2001-01-02 Kallol Mandal Controlling devices on a network through policies
JP2001051855A (ja) * 1999-08-09 2001-02-23 Nec Corp メモリ分割管理方式
US6553387B1 (en) * 1999-11-29 2003-04-22 Microsoft Corporation Logical volume configuration data management determines whether to expose the logical volume on-line, off-line request based on comparison of volume epoch numbers on each extents of the volume identifiers
US6745207B2 (en) * 2000-06-02 2004-06-01 Hewlett-Packard Development Company, L.P. System and method for managing virtual storage
US6912537B2 (en) * 2000-06-20 2005-06-28 Storage Technology Corporation Dynamically changeable virtual mapping scheme
US6636879B1 (en) * 2000-08-18 2003-10-21 Network Appliance, Inc. Space allocation in a write anywhere file system
US6782389B1 (en) * 2000-09-12 2004-08-24 Ibrix, Inc. Distributing files across multiple, permissibly heterogeneous, storage devices
JP2002132730A (ja) 2000-10-20 2002-05-10 Hitachi Ltd 個人情報の信頼度および開示度による認証またはアクセス管理システム、および管理方法
GB0027280D0 (en) 2000-11-08 2000-12-27 Malcolm Peter An information management system
WO2003021441A1 (en) * 2001-08-31 2003-03-13 Arkivio, Inc. Techniques for storing data based upon storage policies
US6952698B2 (en) * 2001-10-05 2005-10-04 International Business Machines Corporation Storage area network methods and apparatus for automated file system extension
ES2359399T3 (es) 2001-11-23 2011-05-23 Commvault Systems, Inc. Sistema y procedimiento de duplicación selectiva de datos.
US6978283B1 (en) * 2001-12-21 2005-12-20 Network Appliance, Inc. File system defragmentation technique via write allocation
US7269612B2 (en) 2002-05-31 2007-09-11 International Business Machines Corporation Method, system, and program for a policy based storage manager
US7155460B2 (en) * 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8560760B2 (en) 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US8126939B2 (en) 2007-03-06 2012-02-28 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
CN101627372B (zh) * 2007-03-06 2012-08-29 微软公司 选择性地利用多个异类固态存储位置
US9535625B2 (en) 2007-03-06 2017-01-03 Bohdan Raciborski Selectively utilizing a plurality of disparate solid state storage locations
CN101630332B (zh) * 2009-07-30 2012-07-04 成都市华为赛门铁克科技有限公司 数据存储管理方法、数据存储管理装置和系统

Also Published As

Publication number Publication date
WO2005001682A3 (en) 2005-07-21
JP2007526528A (ja) 2007-09-13
US20050010620A1 (en) 2005-01-13
US7814128B2 (en) 2010-10-12
WO2005001682A2 (en) 2005-01-06
CN100383720C (zh) 2008-04-23
EP1634161A2 (en) 2006-03-15

Similar Documents

Publication Publication Date Title
CN1816795A (zh) 多卷文件支持
CN1226687C (zh) 用于持久和稳固的存储管理的系统和方法
US7779426B2 (en) Describing and querying discrete regions of flash storage
CN1195273C (zh) 管理计算机存储器的方法
US9430331B1 (en) Rapid incremental backup of changed files in a file system
JP2017021804A (ja) 不揮発性メモリ装置におけるデータ特性基盤データ配置を活用するためのインターフェイス提供方法及びシステム並びに不揮発性メモリ装置とそのデータ特性基盤データ配置方法
US9361300B2 (en) Controlling filling levels of storage pools
CN1331817A (zh) 用于并发数据库管理系统表操作的方法和设备
CN101042696A (zh) 智能卡存储系统及该系统中文件创建管理的方法
CN101079902A (zh) 海量数据分级存储方法
CN1668010A (zh) 用来在更新分发系统中分发更新元数据的基于标记模式
CN1526090A (zh) 驱动器分区方案能适应应用增长的功能服务器
CN101169972A (zh) 管理非易失性存储器的设备和方法
CN1162786A (zh) 用于多任务设施信息处理系统的资源管理方法和设备
CN101278267A (zh) 具有经调度回收操作的非易失性存储器
CN1559041A (zh) 在计算机系统之间共享对象
CN1524223A (zh) 信息备份的系统和方法
US20070078914A1 (en) Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
CN101443761A (zh) 对文件系统的支持qos的生命周期管理
US20110225215A1 (en) Computer system and method of executing application program
US20230342353A1 (en) Targeted sweep method for key-value data storage
CN100458792C (zh) 用于管理海量存储系统的方法和数据处理系统
CN1538456A (zh) 闪存存取装置及方法
US20050223046A1 (en) Method and system for balancing and scheduling database maintenance tasks
US20090112951A1 (en) Apparatus and method of managing files and memory device

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

Owner name: REVIVIO INC.

Free format text: FORMER NAME: VERITAS SOFTWARE CORP.

CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: REVIVIO, Inc.

Address before: California, USA

Patentee before: Veritas Operating Corp.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080423