CN101743546B - 用于提供快照的文件***的分层存储管理 - Google Patents

用于提供快照的文件***的分层存储管理 Download PDF

Info

Publication number
CN101743546B
CN101743546B CN2008800248298A CN200880024829A CN101743546B CN 101743546 B CN101743546 B CN 101743546B CN 2008800248298 A CN2008800248298 A CN 2008800248298A CN 200880024829 A CN200880024829 A CN 200880024829A CN 101743546 B CN101743546 B CN 101743546B
Authority
CN
China
Prior art keywords
index
storage
word
files
data blocks
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
Application number
CN2008800248298A
Other languages
English (en)
Other versions
CN101743546A (zh
Inventor
W·索东
F·施穆克
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101743546A publication Critical patent/CN101743546A/zh
Application granted granted Critical
Publication of CN101743546B publication Critical patent/CN101743546B/zh
Expired - Fee Related 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
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • 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/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

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

用于提供快照的文件***的分层存储管理
技术领域
本发明涉及数据存储***,更具体地说,涉及存储了表明在特定时间点存储的数据的状态的快照的数据存储***。
背景技术
许多数据存储***根据文件比喻来组织存储的数据。在这些存储***中,相关数据存储在一个文件中,而数据存储***存储了多个文件。然后,数据存储***存储对多个文件的索引,以允许访问这些文件中的数据。单个文件可以存储在数据存储设备中的相邻的或完全不同的位置。将数据存储在数据存储设备中的完全不同的位置,常常导致当要在已经存储了许多文件的设备上存储大的数据文件时,大的数据文件必须分解为适合存储设备内的空闲区域的数据块。当向现有文件中添加另外的数据时,数据也常常存储在完全不同的位置。将存储的数据组合成数据存储设备上的结构化文件被称为形成文件***。
数据存储***常常存储当前存储在文件***中的所有文件的数据的时间点副本或映像。这些映像被称为快照(或克隆或快闪副本)。快照的内容是在捕获快照时存储在现用文件***内的数据。数据存储***可以使用快照来将文件***的状态存储在诸如另一个磁盘驱动器或磁带存储***之类的辅助存储器***上。数据存储***也可以使用文件***快照来允许重新创建被删除的数据(即,访问已经被删除或更新的文件的以前的版本)。
为最小化创建快照的时间以及用于维护快照的存储空间,拍摄文件***的快照的某些方法推迟了原始文件***中的数据实际复制到快照的时间,直到原始***中的数据被修改(例如,被盖写或删除)。因为直到对原始数据执行写入之前数据不被复制到快照数据中,因此,使用这种方法的***被称为“写入时复制”***。“写入时复制”技术常常用于实现文件版本控制,通过维护单个文件的快照,而不是整个***,可以使文件的多个版本在文件***中并行地存在。
“写入时复制”***可以利用由文件***软件所创建的控制结构,以描述文件的结构以及包含文件***的磁盘的用途的元数据,以便修改过的文件的未修改的数据块不需复制到快照中。这些***创建快照元数据集,包括描述了原始文件***中的原始数据文件的位置的文件索引,以便从原始文件内的元数据以及文件的快照副本中都可以引用未修改的数据块。这会创建多个对原始文件***中的同一个数据块的多个索引:原始文件***的元数据中的索引和每一个快照数据集中的索引。
原始文件***内的多个对单个数据块的索引的存在影响原始文件***的要求。利用其中每一个快照都存储了对原始数据块的索引的快照的文件***必须维护每一个对该数据块的索引的指示或映射,以便判断数据块是否正在使用中还是空闲。若没有多个索引,单个比特就可以足以表明数据块是否正在使用中还是空闲。然而,在有多个索引的情况下,可能需要多个比特来跟踪多个索引,确保在声明数据块“空闲”之前不存在对数据块的索引。
由于较高速度的存储设备(如硬盘驱动器阵列)比慢一些的设备(如光盘和磁带驱动器)更加昂贵(每存储字节),因此,某些较大的文件***使用分层存储管理器(HSM)自动地在高成本和低成本的存储介质之间移动数据。在使用HSM的文件***(诸如,例如,来自IBM的ADSTAR分布式存储管理器、Tivoli的StorageManager Extended Edition,或Legato的NetWorker)中,大多数文件***数据被存储在较慢的脱机设备中,并根据需要,复制到更快的联机磁盘驱动器中。HSM监视文件***中的数据的使用,标识文件***中的哪些文件长时间没有被访问,并将它们的所有数据或某些数据迁移到较慢的存储设备中。这就释放了更快的联机存储器中的空间,从而允许存储额外的文件和更多的数据。事实上,HSM通过将更快的磁盘驱动器变成较慢的大容量存储设备的高速缓存,提供了存储大量的数据的经济的解决办法。
在典型的HSM情况下,频繁地被使用的数据文件存储在硬盘驱动器上,而在某一时间段内未被使用的数据文件被迁移到磁带驱动器中。当用户尝试访问已经被迁移到磁带的数据文件时,文件自动地并透明地恢复到联机硬盘驱动器,可使操作完成得好像数据从来没有被迁移那样。优点是,尽管存储的数据的总量可以比可用的磁盘存储器的容量大得多,由于只有很少被使用的文件位于磁带上,因此,用户通常不会注意任何速度减慢。
这里发明人认识到,在利用快照的文件***中,跟踪多个对单个数据块的索引的必要性会大大地使文件***的操作复杂化,特别是在文件***也使用HSM的情况下。例如,当HSM将文件迁移到磁带时,希望能够回收由该文件的数据块占用的磁盘空间。然而,在存在快照的情况下,这些数据块仍可以由快照从文件的较旧的版本引用,因此,直到文件的所有其他版本也都被迁移到磁带之前不能被释放。此外,尽管一旦一个文件的所有版本都被迁移HSM就可以回收由该文件占用的所有磁盘空间,被单独地存储并由不同文件版本的快照共享的数据块将作为单独的副本冗余地存储在磁带上。即,可以占据磁盘上的极少空间的快照将占用磁带上整个文件***所占用的那么大的空间。另外,当HSM将迁移的文件返回到联机存储器时,将为返回的数据分配新的数据块,不能定位其他对初始块的其他联机索引。结果,恢复迁移的文件可能导致不需要的数据复制,并比从来没有被迁移的文件需要更大的联机存储空间。
发明内容
解决了现有技术的各种缺点,通过本发明的示例性实施例可以提供额外的优点,这些示例性实施例与用于管理已经被选择从文件***内的第一存储级别迁移到第二存储级别的文件的存储的方法相关。选定文件是从多个源文件中选择的,每一个源文件都在文件***内组织成一个或多个数据块。文件***具有多个源文件中的每一个源文件的索引节点。每一个索引节点都具有对所述对应的源文件的一个或多个数据块中的每一个的索引。文件***被配置为定期生成多个源文件中的所述源文件的快照文件。文件***具有每一个快照文件的索引节点。在生成快照文件时,每一个快照文件的索引节点都具有对所述对应的源文件的所述一个或多个数据块中的每一个数据块的索引。该方法包括将所述选定文件的索引节点的所述对应的索引中维护的物理磁盘地址处所述选定文件的存储在所述第一存储级别中的所述一个或多个数据块中的每一个数据块从所述第一存储级别复制到所述第二存储级别。该方法进一步包括在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的任何一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中维护逻辑照抄地址。每一个逻辑照抄地址都表明,需要另外的处理以获得被所述索引引用的所述数据块的所述物理磁盘地址。该方法进一步包括更新文件***,以包括用于通过选定的文件的索引节点控制对一个或多个数据块的访问的受管理的区域。
附图说明
现在将参考下面的附图,只作为示例,对本发明的实施例进行描述,其中:
图1是显示了提供分层***管理的文件***的一般***体系结构的示例性实施例的方框图。
图2A是显示了具有索引节点和相关数据块的文件***数据结构集的示例性实施例的方框图。
图2B是显示了具有索引节点和关联的间接块的和数据块的文件***数据结构集的示例性实施例的方框图。
图3是显示了文件***目录和关联的结构的示例性实施例的方框图。
图4是显示了其中一个以上的索引节点包含同一个磁盘地址的文件***数据结构集的示例性实施例的方框图。
图5A-5B描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,由快照文件***的分层***管理器执行数据迁移。
图6是描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,在读取或写入请求期间,由快照文件***的分层***管理器执行脱机数据的恢复。
图7是描述了本发明的示例性实施例的总体操作和控制流的流程图,其中,在删除或截断请求期间,由快照文件***的分层***管理器执行脱机数据的恢复。
图8A是显示了在文件***数据结构集的示例性实施例中在生成时快照的结构的方框图。
图8B是显示了在文件***数据结构集的示例性实施例中在对对应的源文件进行属性修改时阴影索引节点的结构的方框图。
图8C是显示了在文件***数据结构集的示例性实施例中在对对应的源文件进行盖写时阴影索引节点的结构的方框图。
图9是显示了多处理器计算机***的示例性实施例的方框图。
图10是显示了计算机***的示例性实施例的方框图。
具体实施方式
下面的公开描述了用于为维护指出了在特定时间点存储的数据的状态的文件***提供有效的分层存储管理的技术和机制的示例性实施例。下文旨在提供本发明的示例性实施例的详细描述,不应该理解为对本发明本身的限制。相反,任意数量的其他实施例都可以落在本发明的范围内,本发明的范围在示例性实施例的描述之后的权利要求中进行限定。
本发明的示例性实施例可以在将数据存储在大容量存储设备上的计算机***上或与其结合实现。这里所描述的大容量存储***的特征不应该理解为对本发明的限制,应该注意的是,示例性实施例可以在具有与这里所提供的示例特征或结构不同的数据存储设备上或与其结合实现。可以在其上实现本发明的示例性实施例的文件***的一个示例是IBM的General Parallel File System(GPFS)。GPFS类似于符合Xopen文件***标准的文件***,相应地,所有这样的文件***都适合于与本发明的示例性实施例一起使用。然而,本发明不应该理解为仅限于与这样的文件***一起使用。示例性实施例可以在各种其他文件***上或与其结合实现,包括各种磁盘文件***、网络文件***,以及特殊用途的文件***。
这里所描述的本发明的示例性实施例可以被配置为与基于下面的元数据结构实现文件和目录的文件***一起操作:
文件***:管理定义的磁盘集(或其他介质)并以有助于一致的添加、修改和删除数据和数据文件的方式提供对数据的访问的软件组件。该术语还用于描述特定磁盘集(或其他介质)内包含的数据集和元数据。文件***可与能够通过名称被访问的任何数据存储介质一起使用,数据位于不相邻的块中;相应地,其中,这里使用了术语“磁盘”、“磁盘存储器”、“存储器”等等,这是存储介质的比较一般的特征。
数据/文件***数据:在特定的应用程序的上下文中具有含义的任意的比特串。
文件:可以被计算机应用程序访问的命名的比特串。文件具有某些标准属性,如长度、修改时间,以及最后一次访问的时间。
数据块:文件***存储器的包含以后被用户或其他应用程序检索和使用的用户数据的区域。在示例性文件***中,文件的数据可以存储在通过存储在文件的索引节点中的磁盘地址指针引用的一个或多个单独的数据块中。
快照:在给定时间点捕获文件***的状态的文件或一组文件。
元数据:由文件***软件所创建的控制结构,以描述文件的结构以及包含文件***的磁盘的用途。适用于示例性的文件***的元数据的特定类型特别具有下列特征,并包括:目录、模式、索引节点、分配图,以及日志。
目录:将名称与一组由索引节点表示的数据关联的控制结构。示例性文件***可以利用以类似于其他文件数据的存储的方式存储在数据块中的目录项,并利用存储了类似于由其他数据文件使用的那些目录信息的目录信息的文件的元数据结构(包含目录块的磁盘地址的索引节点加间接块)。目录能够包含大量的目录项。目录可以包含引用其他目录的项,以便创建分层目录结构,被另一个目录中的一个项引用的目录被称为子目录。本发明不仅限于如这里所描述的示例性文件***中的目录的格式及其他元数据的细节,替代示例性文件***可以利用其他目录和元数据存储结构。
索引节点:包含文件的文件属性(例如,所有者、访问权限、修改时间、文件大小),加一系列指向包含构成此文件的数据的磁盘区域(或其他存储介质)的指针的元数据结构。索引节点可以通过间接块来补充,比方说,如果文件比较大的话,间接块用额外的指针补充索引节点。在这里所描述的示例性文件***中,索引节点的关联的集合被称为“索引节点文件”,而索引节点文件是被作为常规文件存储的(索引节点加间接块)。其他示例性文件***也可以使用索引节点和索引节点文件中的数据的集合的不同的表示法。在这里所描述的示例性文件***中,索引节点内包含的某些或全部信息的集合被称为“节点信息”。
分配图:文件***可以用来表明磁盘的特定区域(或诸如索引节点之类的其他控制结构)是否正在使用中或可用的控制结构。这允许软件向新文件有效地分配可用的块和索引节点。
超级块:包含全局文件***配置数据的元数据元素。具体来说,它包含用于定位索引节点和分配图的信息。
日志:用于在发生故障的情况下使其他类型元数据保持同步(即,状态一致)以防止损失的一组记录。日志包含描述对多个结构的相关的更新的单一记录。
现在请参看图1,图1显示了其中可以应用本发明的示例性实施例的示例性完整***体系结构100。***体系结构包括用于存储一个或多个数据文件的快照文件***102。这些文件***捕获和维护一个或多个快照数据集104。这些快照数据集104可以被文件***102用于许多目的,诸如,例如,有效地进行通信并将备份数据集存储在远程备份***上,恢复意外删除的文件,以及检索被意外或者故意盖写的数据。
文件***102包括允许其他应用程序在诸如磁盘驱动器、非易失性存储器之类的存储设备或其他数据存储设备上存储和检索数据的计算机程序。文件***102中的文件是任意大小的命名的数据对象。文件***102提供接口,这些接口允许应用程序创建文件并为文件命名,存储文件或向文件中写入数据,从文件中读取数据,删除文件,以及对文件执行其他操作。
文件结构定义了存储设备上的文件***102中的数据的组织。单个文件可以分为固定大小的多个数据块,用于在存储设备上进行分配。可以根据实际应用程序环境和存储器的可用的类型和大小,设置可以用字节或比特表示的块大小,单个已分配的块可以包含整个文件或单个文件的一部分。
除文件数据其本身之外,文件***102还可以包含将文件名映射到数据文件的目录,包含有关文件的信息的文件元数据,包括文件数据在存储设备上的位置(即,哪些设备块存放了文件数据),记录了哪些设备块当前正被用来存储元数据和文件数据的分配图,以及包含有关文件结构的总体信息(例如,目录的位置、分配图、及其他元数据结构)的超级块。文件***102中的每一个文件都通过索引节点表示,该索引节点描述了文件的属性,并包含作为用于查找存储器中的文件的数据的起点的寻址结构。目录将文件名映射到为文件分配的索引节点(例如,使用标识它们驻留在文件***中何处的文件的索引节点号码),并构成文件的组织层次结构。
可以实现本发明的示例性实施例,以支持快照文件***(诸如,例如,图1的文件***102)上包含的数据的有效的分层***管理。如图所示,在其上文件***102存在于***体系结构100中的计算机或处理单元通过网络110和分层***管理器(HSM)106与脱机存储***108进行通信。脱机存储单元108是不位于文件***102的处理单元上或不在其控制下的存储设备。脱机存储设备的示例包括软盘、光盘,以及磁带。HSM 106与脱机存储***108结合使用,以自动地在被与文件***102相同的处理使用的联机存储设备和脱机存储设备之间移动在文件***102内的文件的数据块。
将文件***102与脱机存储器108连接的网络110,可以是,例如,诸如公众业务电话网络(PSTN)之类的电路交换网。网络110可以是,例如,分组交换网络。分组交换网络可以是,例如,诸如全球因特网之类的广域网(WAN)、专用WAN、局域网(LAN)、电信网络或上文所提及的网络的任何组合。在替代示例中,网络110可以是,例如,有线、无线、广播,或点对点网络。作为另一个示例,文件***102在与脱机存储器108的计算机***相同的计算机***上执行。
文件***102和脱机存储器108的计算机***可以是,例如,一个或多个PC(例如,运行Microsoft Windows操作***的一个版本的IBM或兼容的PC工作站,运行Mac OS操作***的一个版本的Macintosh计算机,或等效的计算机),个人数字助理(PDA)、游戏控制台,或任何其他计算机处理设备。作为替代,文件***102和脱机存储器108的计算机***可以是服务器(例如,执行SunOS、AIX、或Linux操作***的一个版本的一个或多个计算机)。
图2A显示了与示例性文件***内存储的数据关联的示例性数据结构集200。数据结构集200包括被分配给一个文件并包含该文件的元数据204的索引节点202。元数据204可以包括,例如,文件的创建时间、大小、访问权限、指向数据块的指针,及其他关联的数据。索引节点202由索引节点号码唯一地进行标识,索引节点内的数据被文件***用来定位关联的文件。索引节点202进一步包含磁盘地址206,这是指向文件的数据块208的指针。磁盘地址206指定特定磁盘驱动器的标识,以及磁盘驱动器内包含数据块208的扇区或块。
索引节点202可以按顺序存储在用户不可见的固定大小的索引节点的索引节点文件内的文件***中。可以根据到索引节点文件的偏移量,访问具有特定索引节点号码的索引节点文件中的索引节点;偏移量是通过将索引节点号码乘以每一个索引节点的长度,然后读取偏移了该计算出的值的索引节点文件中的数据结构来确定的。
图2B显示了描述示例性文件***内存储的数据的第二示例性数据结构集250。尽管数据结构集200适合用于与其中磁盘地址206可以存储在索引节点本身内的小型文件,但是,数据结构集250也可以用于较大的文件。在数据结构集250中,索引节点252的磁盘地址256指向一个或多个间接数据块258,每一个数据块258都包含一个或多个指针,指向实际数据块或者包含进一步的磁盘寻址信息的其他间接块。在图2中,间接数据块258包含第一直接磁盘地址260和第二直接磁盘地址262,分别指向与索引节点252关联的文件的第一数据块264和第二数据块266。
图3显示了示例性文件***目录结构。目录结构300包括目录文件302,该目录文件302包含两个目录项或记录:第一目录记录304和第二目录记录310。第一目录记录304的数据包含文件名306和索引节点号码308。目录文件302由文件***进行管理,而目录记录304将用户分配的文件名306映射到唯一地标识与此目录条目关联的文件的索引节点316的索引节点号码308。与目录记录310关联的结构类似于与目录记录304关联的结构。
这种目录项也可以被称为链接。这样的链接可以指向用户文件、其他目录,或其他文件***对象。在示例性文件***中,目录可以对文件***中的文件规定分层的命名结构,其中,层次结构的根是文件***的根目录。从根目录或根的子目录,可访问文件***内的文件和目录。一个文件能够具有一个以上的目录条目,如此,一个以上的名称,供用户对它进行访问。
可以实现这里结合本发明的示例性实施例所描述的示例性文件***,以定义存储在一个或多个大容量存储设备上的数据的结构,支持并行地创建、修改和删除这些存储设备上的多个文件,并使链接和写入一致。如果每个文件具有至少一个目录条目并且每个目录条目链接到当创建链接时它所链接的同一个文件,则可以说文件***链接一致。写入一致文件***维护了单个文件内或文件之间的按序写入的顺序。例如,在向第一文件写入之后向第二文件写入并且迫使该第一文件中的被写入的数据写入到非易失性存储器的应用程序,只有在第一文件中有数据的情况下才需要数据存在于第二文件中。保持了此属性的文件***可以说是写入一致的。
这里所描述的示例性文件***是快照文件***。快照文件***被配置为捕获文件***的一个或多个快照,以创建数据集,该数据集保持了在捕获快照时数据存储在文件***内时的数据的状态。使用写入时复制技术,快照只包含自从创建快照以来改变的文件***数据的副本。快照功能可以允许备份或镜像程序与用户更新并行地运行,到创建快照的时间为止仍能获取文件***的一致的副本。快照可以提供联机文件备份能力,利用该能力,允许轻松地从诸如偶然的删除之类的常见的问题中恢复,并允许将一个文件与该文件的较旧的版本进行比较。可以实现示例性快照文件***,以创建和捕获快照,包括文件***中的所有文件,以保持一致的文件***图像数据集,并在捕获快照之后进行修改之前有效地复制文件***中的旧数据。
在示例性快照文件***中,在捕获快照之后,快照维护处理可以增强对现用文件***的修改。当在捕获快照之后首次修改现用文件***内的数据时,在修改原始文件内的该数据之前,此处理可以将该数据的原始版本(即,在捕获快照时存在的数据的版本)复制到快照数据集中。此***的操作导致当修改现用文件***内的文件时,快照的内容所需的存储空间随着时间而增大。
在示例性快照文件***中,文件***图像数据集中的文件的快照可以包含文件的索引节点的副本以及被该索引节点引用的任何间接块。快照文件中的数据块指针将与原始文件引用相同的数据块,直到写入时复制(copy-on-write)操作创建新的数据块,并删除引用。图4显示了描述了这种快照文件***内的存储的数据的第三示例性数据结构集400。数据结构集400包含三个索引节点:现用文件***中的第一索引节点402,快照数据集416中的旧版本的第二索引节点408,以及快照数据集中的另一个旧版本的第三索引节点412,分别包含第一磁盘地址404、第二磁盘地址410,以及第三磁盘地址414,每一个都指向同一个数据块406。如图4所示,具有为其存储了一个以上的版本的文件的快照文件***可以具有多个对单个数据块的引用。
图5A和5B显示了本发明的示例性实施例的处理和控制流,其中,实现了图1中的示例性***体系结构100的诸如HSM 106之类的分层***管理器,以对快照文件***进行操作。在此示例性实施例中,HSM控制存储在文件***中的数据块沿着数据迁移和调用路径在原始文件***中的更快的联机存储器(例如,硬盘驱动器阵列)和连接到HSM的慢一些的脱机存储器(例如,磁带)之间的自动移动的分割的或分层的层次结构。HSM连续地监视文件***数据和联机存储容量,并包括用于确定何时在存储级别之间迁移数据的策略。这些策略可以基于,例如,诸如大小、自从最后一次访问以来的时间长度之类的文件属性,及如网络或***管理员所指定的其他标准。HSM自动地调用已经被迁移的如果被用户访问的数据,并将它恢复到文件***中的其原始位置。一般而言,HSM可以操作,以管理在文件***内组织的数据的存储,通过将不经常被访问或以别的方式认为不那么关键的数据移动到脱机存储器,而对最终用户来说,呈现此数据仍在磁盘上的效果。
在图5A-5B中所显示的示例性实施例中,控制流500在步骤502中开始,HSM选择一个文件从联机存储器迁移到脱机存储器,流程直接进入步骤504,其中HSM锁定对选定的文件的访问,以防止对文件的并发更新,直到HSM操作完成。在本示例性实施例中,可以通过HSM选择任何文件,无论它是现用版本还是快照副本,以便迁移到脱机存储器,而所有文件都独立地迁移。
在选择要迁移的文件时,HSM,在步骤506中,着手将选定的文件的每一个数据块复制到脱机存储器。被迁移的文件的索引节点作为“存根文件”保留在联机存储器中,对用户应用程序,似乎是原始文件,确保HSM操作的透明性。可选地,在某些示例性实施例中,HSM可以在联机存储器中的存根文件中留下选定的文件的少量的原始数据,如第一数据块。在完成复制之后,然后在步骤508中,HSM检查原始文件***中的索引节点文件,以判断被迁移的数据块中是否有数据块被文件的一个以上的快照版本引用。在示例性实施例中,此判断可以这样进行,例如,通过检查元数据中维护的相关的状态信息或索引节点文件中的每一个索引节点的磁盘地址指针,或通过扫描可能具有同一个数据块的引用的文件的快照版本。
对于被发现引用迁移的数据块的文件的每一个版本,在步骤510中,HSM更新文件的关联的索引节点的属性,以说明迁移。这是通过更新具有共享的对迁移的数据块的引用的快照文件的索引节点内包含的磁盘地址指针来执行的。更具体地说,被实际迁移到每一个共享数据块的文件的索引节点的磁盘地址指针被保留原样,但是对于具有索引节点并带有对发现的迁移的数据块的共享的引用的每一个随后的快照文件,HSM将指向索引节点中的共享数据块的物理磁盘地址指针替换为这里被称为“逻辑照抄地址”的逻辑“照抄(ditto)”值。
照抄值是预留值,表示磁盘地址值不是真实的磁盘地址,因此,表示需要另外的处理才能访问数据。在示例性实施例中,磁盘地址的“照抄”值可以作为“-1”来存储。索引节点文件仍保留在原始文件***中,或者如任何其他文件那样被访问,但是由于“-1”不是有效的磁盘块地址,应用程序将能够认识到,这是照抄值。
于在步骤510中做出的任何更新之后,在步骤512中,HSM着手更新文件***属性以说明迁移,和对迁移的文件的快照版本的磁盘地址做出的任何更新。在本示例性实施例中,HSM是通过设置涵盖了迁移的数据的“受管理的区域”来做到这一点的,这允许它截取随后的对迁移的文件的读取和写入操作,并根据需要恢复迁移的数据。为了当具有共享的引用的文件的快照版本被访问时也可以恢复迁移的数据块,如下面将说明的,HSM也设置每一个快照文件的受管理的区域,指向共享数据块的物理磁盘地址指针被替换为逻辑照抄值。受管理的区域提供应用程序控制对已经从联机存储空间迁移的数据块的访问的机制。在示例性实施例中,可以通过其起始偏移、长度,以及事件生成标记,来描述每一个受管理的区域。例如,在具有offset=0,length=8192以及flags=READ|WRITE|TRUNCATE的受管理的区域中,任何访问偏移0和8191之间的文件数据的尝试都将触发特定的事件,如下文所述。实际事件类型取决于访问类型:例如,写入尝试会生成写入事件。
在更新索引节点和文件***属性之后,HSM,在步骤514中,可以解除分配每一个迁移的数据块的联机存储器。由于在步骤510中冗余的对每一个数据块的物理引用都被转换为逻辑照抄地址,HSM可以立即回收所有迁移的数据块的文件***的联机存储空间,不管对任何共享数据块的引用的数量如何。在以此方式删除原始数据块之后,在步骤516中,HSM解除锁定对选定文件的访问,这可使对该文件的任何待办的操作得到处理,原始数据文件的正常的文件***活动恢复。延迟的更新被处理,应用程序再次能够访问原始文件***数据。
在文件***中的文件已经被HSM迁移到脱机存储器之后,HSM可以随后决定迁移具有现在包含指向已经被迁移的共享数据块的逻辑照抄地址指针的索引节点的文件。在本发明的示例性实施例中,可以根据如上文所描述的示例性控制流程500开始这种迁移,只是由选定的文件共享的已经迁移的数据块不被复制到脱机存储器,而是在步骤506中,HSM将检测将数据块标识为已经被迁移的照抄值,从而知道避免复制它和将它冗余地存储起来。在步骤506中,HSM将只将利用索引节点中的物理块地址引用的联机数据块复制到脱机存储器。即,在本示例性实施例中,如果数据块尚未在另一个迁移中被移到脱机存储器,则根据如上文所描述的步骤506-514,它将被复制和解除分配,但是,如果索引节点提供逻辑照抄地址,则HSM不会在脱机存储器中制作数据块的冗余副本。在这样的情况下,HSM将在已迁移的文件内保留照抄地址的偏移,因为此信息是恢复数据和重建对每一个共享数据块的多个共享引用所需的,如下文所述。在示例性实施例中,这可以,例如,通过记录照抄地址的范围,提供表示每一个照抄地址的位图,或保留已迁移的文件的数据块指针,来实现。
在替代示例性实施例中,可以如此实现HSM,以便当将文件迁移到脱机存储器时HSM不立即回收共享磁盘块的磁盘空间,而是等待,直到引用了共享数据块的每个快照文件也都被迁移到脱机存储器。在此示例性实施例中,当生成照抄值时,HSM将保留指向数据块的物理磁盘地址指针,以便读取快照文件时,不会需要从脱机存储器恢复原始文件的操作。尽管在此示例性实施例中文件***将等待比较长的时间才能回收已迁移的数据块的磁盘空间,但是,当读取快照文件时,可以避免脱机存储器访问。对于其中对快照文件的访问是常见的文件***操作,即使原始文件长时间没有被访问,此替代实现方式可以就总体工作负荷而言提供较佳的折中。
对于使用分层***管理和供用户或应用程序访问文件的接口,诸如,例如,标准POSIX文件***接口,的快照文件***,可以实现本发明的示例性实施例,以支持用户访问已经从脱机存储器迁移的文件。可以以多种不同的方式处理这些访问,取决于访问类型和文件的位置。
例如,用户或其他进程可以请求读取或修改已经迁移到脱机存储器的数据,结果,数据必须由HSM恢复到联机存储器。在这样的情况下,必须恢复以满足对文件的读取或写入访问的已迁移的数据块可能已经与文件一起或者与文件的另一个快照版本一起迁移,正在被访问的实际文件与文件的另一个快照版本具有共享数据块引用,该共享数据块引用在迁移期间被修改为照抄值。图6显示了本发明的示例性实施例的过程和控制流程,其中,根据上文所描述的示例性控制流程500迁移的数据被HSM恢复,以满足读取或写入请求。
在图6中所显示的示例性实施例中,当在步骤602中做出读取或写入请求时开始控制流程600。然后,过程根据正在被访问的文件引用的数据块的当前存储情况前进。如果做出访问具有表示对其索引节点中的迁移的数据块的引用的逻辑照抄地址的联机文件的请求,则由HSM设置的涵盖正在被访问的文件的逻辑照抄地址的受管理的区域将在步骤604中截取读取或写入请求,并向HSM指出,必须从脱机存储器中恢复已迁移的数据。存储在磁盘地址中的照抄值表示推断的引用,HSM必须使用已迁移的文件的索引节点内的磁盘地址,检索已迁移的数据块的实际磁盘地址。因此,HSM将如此对待请求,好像它是对包含在物理磁盘地址被转换为逻辑照抄地址之前被联机文件的索引节点引用的数据块的已迁移的文件的访问。HSM在步骤606中,将以下面针对直接向脱机文件发出读取或写入请求时所描述的方式将已迁移的文件恢复到联机存储器。
在本示例性实施例中,如果作为替代做出读取或写入请求以访问脱机文件,过程将从步骤602进入步骤610,在该步骤中,由HSM设置的涵盖已迁移的文件受管理的区域将截取请求并向HSM指出,必须从脱机存储器恢复已迁移的数据。然后,HSM将在步骤612中恢复被文件的索引节点中的物理(即,非照抄)磁盘地址引用的已迁移的数据块。对于用照抄值标记的文件的索引节点中的任何磁盘地址,如果读取或写入请求指向由照抄值表示的特定已迁移的数据块,HSM将在步骤614中,如在步骤606中针对向具有逻辑照抄地址的联机文件发出的请求那样,以下面的方式对待请求,即,好像它是对包含在其物理磁盘地址被转换为逻辑照抄地址之前被联机文件的索引节点引用的数据块的已迁移的文件的访问。然而,HSM不会恢复对应于用照抄值标记的最初被访问的文件的索引节点中的任何其他磁盘地址的数据。因此,在某些情况下,恢复操作可以将逻辑照抄地址原封不动地保留在被访问的文件的索引节点中。
在以这样的方式从脱机存储器恢复必要的数据块之后,HSM在步骤608中着手更新对被恢复的共享数据块的磁盘地址索引,然后,在步骤616中,将控制返回到文件***,以便现在恢复的数据可以被访问,以满足原始文件请求,原始数据文件的正常的文件***活动可以恢复。在示例性实施例中,对于被多个索引共享的每一个已恢复的数据块,使用当具有照抄值的文件被迁移时保留的逻辑照抄地址的位置,HSM可以在步骤608中,恢复文件中的物理磁盘地址,以便每一个已迁移的数据块只需要一个恢复操作,并只需要在联机存储器中进行一次新的块分配。即,一旦在读取或写入请求中修复了数据块,如果需要,HSM可以将任何或全部对应的逻辑照抄地址替换为已恢复的数据块的物理磁盘地址。
在替代示例性实施例中,可以推迟向对应的逻辑照抄地址的更新,直到进行随后的引用,从而可以避免文件被删除,而无法进行随后的访问。例如,如果对文件进行的访问是盖写整个数据块的写入请求,如果HSM只替换被恢复的文件中的逻辑照抄地址,则当在被更新之前向新的磁盘块复制原始数据时它可以避免在对共享数据块的写入中通常产生的“写入时复制”损失。在此示例中,HSM为正在向其写入的数据分配新的数据块,但是,在脱机存储器中保留数据块的原始共享副本,直到,如果对到共享数据块的其中一个其他逻辑照抄地址进行访问,或直到具有其他逻辑照抄地址的所有文件被删除。即,HSM在已迁移的数据块的磁盘地址和与其他照抄值关联的磁盘地址之间保持关联,并将原始文件的索引节点中的磁盘地址(照抄或物理)替换为联机存储器中的新分配的数据块的地址。这节省了与当原始文件不再需要原始数据时从原始数据块恢复原始数据关联的磁盘I/O,如果或直到原始数据块被访问。
在其他文件访问情况下,用户或进程可以请求删除或截断具有已经被迁移到脱机存储器的一个或多个共享数据块的文件。在这些情况下,HSM必须保留共享数据。图7显示了本发明的示例性实施例的过程和控制流程,其中,根据如上文所描述的示例性控制流程500迁移的数据被HSM恢复,以满足删除或截断请求。
在图7中所显示的示例性实施例中,控制流程700从在步骤702中做出的删除或截断请求时开始。在步骤704中,HSM开始恢复正在被当前请求访问的文件的索引节点在物理上引用的每一个共享数据块。对于被恢复的每一个共享数据块,在步骤706中,HSM将共享对被恢复的数据块的索引的其他文件中的至少一个文件的索引节点内的照抄值替换为对应的物理磁盘地址。然后,HSM在步骤708中将控制返回到文件***,以便可以解除分配相应的数据空间,以满足原始文件请求,原始数据文件的正常的文件***活动可以恢复。
在替代示例性实施例中,HSM不必在向具有已经迁移到脱机存储器的一个或多个共享数据块的文件发出删除或截断请求时执行恢复操作。相反,HSM可以向具有对共享数据块的索引的其中一个文件分配脱机共享数据块的所有权。这种所有权变更可以通过更新文件的索引节点内包含的相关元数据来进行,这将使文件***避免让HSM恢复数据,直到需要改数据例如以满足对数据块的读取或写入访问权限。
现在请参看图8A-8C,显示了与替代示例性文件***内存储的数据关联的第三种数据结构集的示例。这种文件***通过创建利用推断的逻辑照抄地址指针的快照数据集来引用文件的最近的版本内的数据,而不是创建多个对联机存储器中的原始数据块的物理索引(即,在数据迁移之前),与上文所描述的其他示例性文件***不同地实现了快照。
图8A显示了与此替代快照文件***关联的初始快照数据集结构800的示意图。显示的快照数据集802是空白的,代表当自从捕获快照以来没有更新原始文件***时的快照。用于从快照数据集检索数据的过程首先检查快照的索引节点文件,以判断正在被检索的数据文件的快照数据集802内是否存在有效索引节点数据。快照数据集802内不存在索引节点数据表示,自从捕获快照以来没有修改被请求的数据,该快照“内”的被请求的数据位于现用文件***的原始数据文件中。这导致对现用文件***的索引节点804的推断的索引812访问被请求的数据块。
当进行访问捕获的快照内的数据块810的尝试,并且快照数据集不包含与被请求的数据文件关联的索引节点的数据时,使用现用文件***的索引节点804内的物理磁盘地址808来访问数据块。类似地,当快照数据集802内没有有效索引节点数据时,使用现用文件***的索引节点804内的推断的对元数据集806的索引来访问文件的元数据。
图8B显示了与此示例性文件***关联的已更新的属性数据结构820的示例。在数据结构820中,阴影索引节点822存储在快照数据集802内。阴影索引节点822代表被捕获到快照数据集802中的数据文件的索引节点,其中,自从捕获快照以来,元数据节点824中存储的索引节点的文件属性已经改变。在更新现用文件***内的索引节点元数据之前,索引节点数据已经从现用文件***复制到快照数据集802中。此结构导致包含当捕获快照时存在于关联的文件中的属性的元数据节点824。
阴影索引节点822内的磁盘地址826包含“-1”照抄值,表示这是阴影索引节点,实际数据块810的真实的磁盘地址存储在现用文件***的索引节点804中。存储在磁盘地址826中的照抄值表示推断的索引828,表明应该使用现用文件***的索引节点804内的磁盘地址808来检索在此情况下仍是原始文件的一部分的数据块810的实际磁盘地址。如此,原始索引节点的文件属性被按原样复制,但是,存储在快照索引节点文件中的阴影索引节点内的磁盘地址被替换为逻辑照抄地址。
图8C显示了与此替代示例性文件***关联的更新的数据块存储数据结构830的示例。数据块存储数据结构830代表自从捕获快照以来已经更新的数据块810。在更新数据块810之前位于现用文件***中的数据块810在捕获快照之后已经被移动或复制到快照数据集802。数据块存储数据结构830显示了,快照数据集802内的阴影索引节点822不仅包含有效元数据824,而且现在还包含磁盘地址826中的有效物理索引。现在是快照数据集802的一部分的磁盘地址826表明数据块810的存储位置。
在本发明的示例性实施例中,可以和此替代类型的脱机存储器***和快照文件***一起实现HSM,以自动地在联机存储器设备和脱机存储器之间在文件***内移动数据。在一个示例性实施例中,可以实现HSM,按与上文利用示例性控制流程500、600,以及700所描述的类似的方式,在发出文件访问请求时,执行数据迁移和恢复数据,但有些例外,下面将进行描述。
在本示例性实施例中,不执行示例性控制流程500中的在迁移文件之后将也引用了被迁移的数据的文件的索引节点中的物理磁盘地址转换为照抄值的步骤510。而是在迁移之后立即解除分配由文件占用的磁盘空间。这是因为,正在被迁移的文件引用的任何共享数据块将被其他文件的索引节点内的逻辑照抄地址引用,不管数据块是联机存储还是被迁移脱机。另外,在示例性控制流程500中的步骤512中,HSM不需要设置包含逻辑照抄地址的快照文件版本的受管理的区域,因为这种快照文件***已经被配置为实现照抄解析。此外,在本示例性实施例中,在向具有逻辑照抄地址的联机文件发送读取或写入请求时,文件***将把照抄地址解析为被迁移的文件。结果,HSM可以将数据块恢复到该文件,不用转换引用了被恢复的数据块的任何其他照抄值。即,在将共享数据块恢复到联机存储时,HSM不会恢复对数据块的任何物理索引。
通过在联机存储器中创建逻辑块指针来引用正在迁移脱机的被文件的多个快照版本共享的数据,并通过当将共享数据恢复到联机存储器时将引用被文件的多个快照版本共享的脱机数据的逻辑块指针替换为物理磁盘指针,可以以较少的成本实现示例性实施例,以提供存储了表明特定时间点存储的数据的状态的快照的文件***的有效的分层存储管理。
本发明的示例性实施例可以在一个计算机***中以集中方式实现,或者以其中不同的元件跨多个互连的计算机***分布的分布式计算体系结构操作来实现。图9显示了示例性分布式计算环境1600的方框图,包括通过多个网络适配器1604彼此连接在一起的多个节点1602。每一个节点1602都是独立的计算机,有其自己的操作***映像1608、***存储器总线1618上的存储器1610,处理器1606。***输入/输出总线1616连接了I/O适配器1612和网络适配器1604。每一个网络适配器都通过网络交换机1620彼此链接起来。在示例性实施例中,网络可以是带有对应的光纤网络交换机的光纤网络。
示例性实施例可以,例如,被实现为在包括带有一个或多个处理器1606的N个节点1602的分布式计算环境1600中进行操作。在示例性实施例中,每一个处理节点都是运行AIX操作***的RISC/6000计算机。在替代示例性实施例中,某些或所有处理节点1602可以包括不同类型的计算机和/或不同的操作***1608。
本发明的示例性实施例可以以硬件、软件或硬件和软件的组合来实现。根据示例性实施例的***可以使用一个计算机***以集中方式,或者以其中不同的元件跨多个互连的计算机***分布的分布式方式来实现。硬件和软件的示例性的组合可以是具有这样的计算机程序的通用计算机***,当加载并执行该计算机程序时,控制计算机***以便它执行这里描述的方法。
本发明的示例性实施例还可以嵌入在计算机程序产品中,这种计算机程序产品包括能够实现这里所描述的方法的特征,在加载到计算机***中时,能够执行这些方法。本上下文中的计算机程序装置或者计算机程序是指以任何语言、代码或注释表达的一组指令的任何表达式,用于导致具有信息处理能力的***直接或者在下列操作中的任何一种或两种操作都执行之后执行特定的功能:a)转换到另一种语言、代码或注释;以及b)以不同的材料形式再现。
本发明的示例性实施例可以在任何类型的计算机***上实现,也可以在可以适用于执行这里所描述的方法和/或功能的其他设备上实现。示例性计算机***可以包括,其中,一个或多个计算机和至少一个计算机可读介质,该介质允许计算机***从计算机可读介质中读取数据、指令、消息或消息数据包,及其他计算机可读取的信息。计算机可读介质可以包括,例如,诸如ROM、FLASH存储器、磁盘驱动器存储器、CD-ROM之类的非易失性存储器,及其他永久存储器,以及,例如,诸如RAM、缓冲存储器、高速缓冲存储器之类的易失性存储器,以及网络线路。此外,计算机可读介质还可以包括如包括允许计算机读取这样的计算机可读取的信息的有线网络或无线网络的网络链路和/或网络接口之类的暂时状态介质中的计算机可读取的信息。
图10显示了示例性计算机***1700。计算机***1700包括诸如处理器1704之类的一个或多个处理器。处理器1704连接到通信基础架构1702(例如,通信总线、跨接棒或网络)。这里利用此示例性计算机***,描述了本发明的示例性实施例。在阅读此描述之后,如何使用其他计算机***和/或计算机体系结构来实现示例性本发明的实施例对于本领域的技术人员来说是清楚的。
示例性计算机***1700包括显示器接口1708,用于转发来自通信基础架构1702或来自未显示的帧缓冲存储器的图形、文本,及其他数据,以便显示在显示单元1710上。计算机***1700还包括主存储器1706,优选情况下,随机存取存储器(RAM),还可以包括辅助存储器1712。辅助存储器1712可以包括,例如,硬盘驱动器1714和/或可移动存储驱动器1716,代表软盘驱动器、磁带驱动器、光盘驱动器等等。可移动存储驱动器1716从可移动存储单元1718中读取和/或向其中写入。可移动存储单元1718代表可由可移动存储驱动器1716读取并向其中写入的软盘、磁带、光盘等等。可以理解,可移动存储单元1718包括其中存储了计算机软件和/或数据的计算机可用存储介质。
示例性辅助存储器1712可以包括允许计算机程序或其他指令加载到计算机***1700中的其他类似的装置。这样的装置可以包括,例如,可移动存储单元1722和接口1720。这样的装置的示例包括程序盒和盒式接口(如在视频游戏设备中见到的那些)、可移动的存储器芯片(如EPROM或PROM)和关联的插槽,及允许将软件和数据从可移动存储单元1722传输到计算机***1700的其他可移动存储单元1722和接口1720。
示例性计算机***1700还可以包括通信接口1724。通信接口1724允许在计算机***1700和外部设备之间传输软件和数据。通信接口1724的示例可以包括调制解调器、网络接口(如以太网卡)、通信端口、PCMCIA插槽和卡等等。通过通信接口1724传输软件和数据呈现信号的形式,信号可以是,例如,能够通过通信接口1724接收到的电子、电磁、光学或其他信号。这些信号通过通信路径、或信道1726提供到通信接口1724。信道1726承载信号并可以使用线路或电缆、光纤、电话线、移动电话链路、RF链路,和/或其他通信信道来实现。
这里所使用的术语“计算机程序介质”、“计算机可用介质”以及“计算机可读介质”一般是指诸如主存储器1706和辅助存储器1712、可移动存储驱动器1716、安装在硬盘驱动器1714中的硬盘之类的介质,以及信号。这些计算机程序产品是用于向计算机***1700提供软件的装置。计算机可读介质允许计算机***1700从计算机可读介质中读取数据、指令、消息或消息数据包,及其他计算机可读信息。计算机可读介质,例如,可以包括非易失性存储器,如软盘、ROM、FLASH存储器、磁盘驱动器存储器、CD-ROM,及其他永久存储器。例如,在计算机***1700之间运输诸如数据和计算机指令之类的信息是有用的。此外,计算机可读介质还可以包括如包括允许计算机读取这样的计算机可读取的信息的有线网络或无线网络的网络链路和/或网络接口之类的暂时状态介质中的计算机可读信息。
计算机程序(也叫做“计算机控制逻辑”)存储在主存储器1706和/或辅助存储器1712中。也可以通过通信接口1724接收计算机程序。具体来说,计算机程序,当执行时,使处理器1704能执行计算机***1700的特征。相应地,这样的计算机程序代表计算机***1700的控制器。可以实现这样的计算机程序,以便当执行该程序时,使计算机***1700能执行如这里所讨论的本发明的示例性实施例的特征。
因此,本发明的示例性实施例的一个或多个方面可以包括在具有,例如,计算机可用介质的一件产品中(例如,一个或多个计算机程序产品)。介质中包含了,例如,用于提供和促进本发明的功能的计算机可读程序代码装置。该产品可以作为计算机***的一部分或单独地销售。此外,还可以提供至少一个由机器可读取的程序存储设备,其中有形地体现由机器可执行的至少一个指令程序以执行上文所描述的本发明的示例性实施例的功能。
可以以对于每一个特定应用程序所希望的任何组合,实现为本发明的示例性实施例描述的变化。如此,可能对于特定应用程序有特定优点的这里所描述的特定局限性,和/或实施例增强,未必用于所有应用程序。此外,并非这里对于本发明的示例性实施例所描述的方面的所有的局限性都需要在方法、***和/或设备中实现。

Claims (46)

1.一种用于管理已经被选择从文件***内的第一存储级别迁移到第二存储级别的文件的存储的方法,选定文件是从多个源文件中选择的,每一个源文件都在所述文件***内组织成一个或多个数据块,所述文件***具有所述多个源文件中的每一个源文件的索引节点,每一个索引节点都具有对对应的源文件的所述一个或多个数据块中的每一个的索引,所述文件***被配置为定期生成所述多个源文件中的所述源文件的快照文件,所述文件***具有每一个快照文件的索引,在生成所述快照文件时,每一个快照文件的索引节点都具有对所述对应的源文件的所述一个或多个数据块中的每一个数据块的索引,所述方法包括:
将所述选定文件的索引节点的对应的索引中维护的物理磁盘地址处所述选定文件的存储在第一存储级别中的所述一个或多个数据块中的每一个数据块从所述第一存储级别复制到第二存储级别;
在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中维护照抄值,该照抄值是预留值,表示磁盘地址值不是真实的磁盘地址,需要另外的处理才能访问数据;以及
更新所述文件***,以包括用于通过所述选定文件的索引节点控制对所述一个或多个数据块的访问的受管理的区域,其中,所述受管理的区域提供应用程序控制对所述一个或多个数据块的访问的机制。
2.根据权利要求1所述的方法,进一步包括:
在所述第一存储级别中解除分配所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块。
3.根据权利要求1所述的方法,进一步包括:
在具有对所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的每一个数据块的索引的每一个快照文件也都被选择用于迁移之后,在所述第一存储级别中解除分配该数据块。
4.根据权利要求2所述的方法,其中,当所述文件***生成所述快照文件时,所述文件***被配置为在引用了所述对应的源文件的所述一个或多个数据块中的一个数据块的每一个快照文件的索引节点的每一个索引中分配照抄值。
5.根据权利要求4所述的方法,其中,对于引用了所述对应的源文件的数据块的每一个快照文件的索引节点的每一个索引,所述文件***被配置为当在所述源文件中修改所述数据块时,将该索引中的所述照抄值转换为物理磁盘地址。
6.根据权利要求2所述的方法,进一步包括:
在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的任何一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中分配照抄值,以及
更新所述文件***以包括具有向其分配了照抄值的索引的每一个快照文件的所述受管理的区域,每一个所述受管理的区域都通过所述对应的快照文件的索引节点,控制对被复制到所述第二存储级别的所述一个或多个数据块的访问。
7.根据权利要求5所述的方法,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求;
将所述选定文件的在所述选定文件的索引节点的对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
满足读取或修改所述选定文件的请求,
其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了照抄值,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述对应的索引中维护了照抄值的每一个源文件的一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
8.根据权利要求5所述的方法,进一步包括:
接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的照抄值的索引节点的所述文件***内的第一快照文件的请求;
将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
满足读取或修改所述选定文件的所述请求。
9.根据权利要求6所述的方法,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求;
将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
满足读取或修改所述选定文件的请求,
其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了照抄值,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述对应的索引中维护了照抄值的每一个源文件的一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
10.根据权利要求9所述的方法,进一步包括:
将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
11.根据权利要求9所述的方法,进一步包括:
对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请求的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件,将所述快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
12.根据权利要求6所述的方法,进一步包括:
接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的照抄值的索引节点的所述文件***内的第一快照文件的请求;
将所述选定文件的为其在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
满足读取或修改所述选定文件的请求。
13.根据权利要求12所述的方法,进一步包括:
将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
14.根据权利要求12所述的方法,进一步包括:
对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请求的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件,将所述快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
15.根据权利要求5所述的方法,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;以及
将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数据块的文件***中的每一个快照文件的索引节点的所述对应的索引中维护了照抄值的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
16.根据权利要求6所述的方法,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;
将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数据块的文件***中的每一个快照文件的索引节点的所述对应的索引中维护了照抄值的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
将引用了被复制到所述第一存储级别的所述一个或多个数据块中的每一个数据块的所述文件***中的所述快照文件的索引节点的所述索引中的至少一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
17.根据权利要求1所述的方法,其中,所述多个源文件的每一个源文件的索引节点具有指向一个或多个间接数据块的磁盘地址指针,所述一个或多个间接数据块包含对所述源文件的所述一个或多个数据块的索引。
18.根据权利要求1所述的方法,其中,所述第一存储级别是在处理单元控制下的联机存储器设备,在所述处理单元上执行了所述文件***。
19.根据权利要求18所述的方法,其中,所述联机存储器设备包括硬盘驱动器阵列。
20.根据权利要求18所述的方法,其中,所述第二存储级别包括通过网络与所述文件***进行通信的脱机存储器设备。
21.根据权利要求20所述的方法,其中,所述脱机存储器设备包括从软盘、光盘以及磁带中选择的存储介质。
22.根据权利要求1所述的方法,其中,所述选定文件是基于由文件***管理员指定的标准确定的。
23.根据权利要求1所述的方法,其中,所述文件***符合Xopen文件***标准。
24.一种用于管理已经被选择从文件***内的第一存储级别迁移到第二存储级别的文件的存储的***,选定文件是从多个源文件中选择的,每一个源文件都在所述文件***内组织成一个或多个数据块,所述文件***具有所述多个源文件中的每一个源文件的索引节点,每一个索引节点都具有对对应的源文件的所述一个或多个数据块中的每一个的索引,所述文件***被配置为定期生成所述多个源文件中的所述源文件的快照文件,所述文件***具有每一个快照文件的索引,在生成所述快照文件时,每一个快照文件的索引节点都具有对所述对应的源文件的所述一个或多个数据块中的每一个数据块的索引,所述***包括:
用于将所述选定文件的索引节点的对应的索引中维护的物理磁盘地址处所述选定文件的存储在第一存储级别中的所述一个或多个数据块中的每一个数据块从所述第一存储级别复制到第二存储级别的装置;
用于在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中维护照抄值的装置,该照抄值是预留值,表示磁盘地址值不是真实的磁盘地址,需要另外的处理才能访问数据;以及
用于更新所述文件***,以包括用于通过所述选定文件的索引节点控制对所述一个或多个数据块的访问的受管理的区域的装置,其中,所述受管理的区域提供应用程序控制对所述一个或多个数据块的访问的机制。
25.根据权利要求24所述的***,进一步包括:
用于在所述第一存储级别中解除分配所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块的装置。
26.根据权利要求24所述的***,进一步包括:
用于在具有对所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的每一个数据块的索引的每一个快照文件也都被选择用于迁移之后,在所述第一存储级别中解除分配该数据块的装置。
27.根据权利要求25所述的***,其中,当所述文件***生成所述快照文件时,所述文件***被配置为在引用了所述对应的源文件的所述一个或多个数据块中的一个数据块的每一个快照文件的索引节点的每一个索引中分配照抄值。
28.根据权利要求27所述的***,其中,对于引用了所述对应的源文件的数据块的每一个快照文件的索引节点的每一个索引,所述文件***被配置为当在所述源文件中修改所述数据块时,将该索引中的所述照抄值转换为物理磁盘地址。
29.根据权利要求25所述的***,进一步包括:
用于在引用了所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块中的任何一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中分配照抄值的装置,以及
用于更新所述文件***以包括具有向其分配了照抄值的索引的每一个快照文件的所述受管理的区域的装置,其中每一个所述受管理的区域都通过所述对应的快照文件的索引节点,控制对被复制到所述第二存储级别的所述一个或多个数据块的访问。
30.根据权利要求28所述的***,进一步包括:
用于在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求的装置;
用于将所述选定文件的在所述选定文件的索引节点的对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别的装置;以及
用于满足读取或修改所述选定文件的请求的装置,
其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了照抄值,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述对应的索引中维护了照抄值的每一个源文件的一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
31.根据权利要求28所述的***,进一步包括:
用于接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的照抄值的索引节点的所述文件***内的第一快照文件的请求的装置;
用于将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别的装置;以及
用于满足读取或修改所述选定文件的所述请求的装置。
32.根据权利要求29所述的***,进一步包括:
用于在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收读取或修改所述选定文件的请求的装置;
用于将所述选定文件的在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别的装置;以及
用于满足读取或修改所述选定文件的请求的装置,
其中,如果在所述选定文件的索引节点的被请求读取或修改所述选定文件的请求直接访问的所述一个或多个数据块中的任何一个数据块的所述对应的索引中维护了照抄值,则将所述多个源文件的为其在索引节点的到通过请求直接地访问的一个或多个数据块的所述对应的索引中维护了物理磁盘地址,并且为其在所述选定文件的索引节点的所述对应的索引中维护了照抄值的每一个源文件的一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
33.根据权利要求32所述的***,进一步包括:
用于将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址的装置。
34.根据权利要求32所述的***,进一步包括:
用于对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请求的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件,将所述快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址的装置。
35.根据权利要求29所述的***,进一步包括:
用于接收读取或修改具有带有引用了所述选定文件的被复制到所述第二存储级别并在所述第一存储级别中解除分配的所述一个或多个数据块中的一个数据块的索引中的照抄值的索引节点的所述文件***内的第一快照文件的请求的装置;
用于将所述选定文件的为其在所述选定文件的索引节点的所述对应的索引中维护了物理磁盘地址的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别的装置;以及
用于满足读取或修改所述选定文件的请求的装置。
36.根据权利要求35所述的***,进一步包括:
用于将引用了被复制到所述第一存储级别的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址的装置。
37.根据权利要求35所述的***,进一步包括:
对于引用了被复制到所述第一存储级别的为其接收了随后的访问所述快照文件的请求的所述一个或多个数据块中的一个数据块的所述文件***中的每一个快照文件,将所述快照文件的索引节点的每一个索引中的每一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
38.根据权利要求28所述的***,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;以及
将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数据块的文件***中的每一个快照文件的索引节点的所述对应的索引中维护了照抄值的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别。
39.根据权利要求29所述的***,进一步包括:
在所述选定文件的被复制到所述第二存储级别的所述一个或多个数据块已经在所述第一存储级别中解除分配之后,接收删除或截断所述选定文件的请求;
将所述选定文件的为其在引用了所述选定文件的所述一个或多个数据块中的一个数据块的文件***中的每一个快照文件的索引节点的所述对应的索引中维护了照抄值的所述一个或多个数据块中的每一个数据块,从所述第二存储级别复制到所述第一存储级别;以及
将引用了被复制到所述第一存储级别的所述一个或多个数据块中的每一个数据块的所述文件***中的所述快照文件的索引节点的所述索引中的至少一个照抄值转换为在所述第一存储级别中向其复制了所述对应的数据块的所述物理磁盘地址。
40.根据权利要求24所述的***,其中,所述多个源文件的每一个源文件的索引节点具有指向一个或多个间接数据块的磁盘地址指针,所述一个或多个间接数据块包含对所述源文件的所述一个或多个数据块的索引。
41.根据权利要求24所述的***,其中,所述第一存储级别是在处理单元控制下的联机存储器设备,在所述处理单元上执行了所述文件***。
42.根据权利要求41所述的***,其中,所述联机存储器设备包括硬盘驱动器阵列。
43.根据权利要求41所述的***,其中,所述第二存储级别包括通过网络与所述文件***进行通信的脱机存储器设备。
44.根据权利要求43所述的***,其中,所述脱机存储器设备包括从软盘、光盘以及磁带中选择的存储介质。
45.根据权利要求24所述的***,其中,所述选定文件是基于由文件***管理员指定的标准确定的。
46.根据权利要求24所述的***,其中,所述文件***符合Xopen文件***标准。
CN2008800248298A 2007-08-06 2008-07-21 用于提供快照的文件***的分层存储管理 Expired - Fee Related CN101743546B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/834,338 US8055864B2 (en) 2007-08-06 2007-08-06 Efficient hierarchical storage management of a file system with snapshots
US11/834,338 2007-08-06
PCT/EP2008/059545 WO2009019128A1 (en) 2007-08-06 2008-07-21 Hierarchical storage management for a file system providing snapshots

Publications (2)

Publication Number Publication Date
CN101743546A CN101743546A (zh) 2010-06-16
CN101743546B true CN101743546B (zh) 2013-03-27

Family

ID=39791020

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008800248298A Expired - Fee Related CN101743546B (zh) 2007-08-06 2008-07-21 用于提供快照的文件***的分层存储管理

Country Status (6)

Country Link
US (1) US8055864B2 (zh)
EP (1) EP2176795B1 (zh)
JP (1) JP5464554B2 (zh)
KR (1) KR101137299B1 (zh)
CN (1) CN101743546B (zh)
WO (1) WO2009019128A1 (zh)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US7865475B1 (en) * 2007-09-12 2011-01-04 Netapp, Inc. Mechanism for converting one type of mirror to another type of mirror on a storage system without transferring data
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor
US9442960B2 (en) * 2008-05-16 2016-09-13 Lawrence Livermore National Security, Llc High performance data layout and processing
US8024354B2 (en) * 2008-06-30 2011-09-20 International Business Machines Corporation System and method for managing data using a hierarchical metadata management system
US8190655B2 (en) * 2009-07-02 2012-05-29 Quantum Corporation Method for reliable and efficient filesystem metadata conversion
US8244679B1 (en) * 2009-08-31 2012-08-14 Symantec Corporation Systems and methods for using single-instance-storage information to reclaim storage space occupied by archived data elements
US8386731B2 (en) * 2009-09-14 2013-02-26 Vmware, Inc. Method and system for optimizing live migration of persistent data of virtual machine using disk I/O heuristics
DE112010003794B4 (de) 2009-09-24 2022-01-27 International Business Machines Corporation Datenspeicherung unter Verwendung von Bitmaps
GB2485696B (en) 2009-09-25 2016-10-19 Ibm Data storage
US8484164B1 (en) 2009-10-23 2013-07-09 Netapp, Inc. Method and system for providing substantially constant-time execution of a copy operation
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
WO2011117461A1 (en) * 2010-03-23 2011-09-29 Nokia Corporation Method and apparatus for managing files in an online account
WO2011142762A1 (en) * 2010-05-13 2011-11-17 Hewlett-Packard Development Company, L.P. File system migration
US8352426B2 (en) 2010-05-17 2013-01-08 Hitachi, Ltd. Computing system and data management method
US8290996B2 (en) * 2010-07-30 2012-10-16 International Business Machines Corporation Data sharing for file clones using reverse ditto references
US8954688B2 (en) 2010-10-06 2015-02-10 International Business Machines Corporation Handling storage pages in a database system
US8836714B2 (en) 2010-10-29 2014-09-16 The University Of Utah Research Foundation Rapid, interactive editing of massive imagery data
CN103221924B (zh) * 2010-11-22 2016-03-30 日立数据***工程英国有限公司 数据存储***中的文件克隆和去克隆
US8745329B2 (en) * 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
WO2012148841A1 (en) * 2011-04-29 2012-11-01 Google Inc. Method and apparatus for detecting memory access faults
US9069780B2 (en) * 2011-05-23 2015-06-30 Hewlett-Packard Development Company, L.P. Propagating a snapshot attribute in a distributed file system
US9330009B1 (en) * 2011-06-14 2016-05-03 Emc Corporation Managing data storage
US8538924B2 (en) * 2011-08-31 2013-09-17 Hitachi, Ltd. Computer system and data access control method for recalling the stubbed file on snapshot
JP2013125437A (ja) * 2011-12-15 2013-06-24 Fujitsu Ltd 制御装置、プログラムおよびストレージ装置
WO2013093957A1 (en) * 2011-12-19 2013-06-27 Hitachi, Ltd. Computer system and reclamation control method
WO2013091244A1 (zh) * 2011-12-23 2013-06-27 华为技术有限公司 文件***中数据的存储方法、访问方法及装置
JP5856680B2 (ja) * 2012-01-25 2016-02-10 株式会社日立製作所 ファイルクローンを利用したシングルインスタンス化方法及びそれを用いたファイルストレージ装置
US8639665B2 (en) * 2012-04-04 2014-01-28 International Business Machines Corporation Hybrid backup and restore of very large file system using metadata image backup and traditional backup
US11347443B2 (en) * 2012-04-13 2022-05-31 Veritas Technologies Llc Multi-tier storage using multiple file sets
WO2013160942A2 (en) 2012-04-25 2013-10-31 Hitachi, Ltd. File storage system and file cloning method
US9113164B1 (en) 2012-05-15 2015-08-18 Google Inc. Constant bit rate control using implicit quantization values
KR20130136184A (ko) * 2012-06-04 2013-12-12 삼성전자주식회사 컨텐츠 백업을 위한 방법 및 그 전자 장치
CN103513956B (zh) * 2012-06-26 2016-04-06 阿里巴巴集团控股有限公司 一种处理器处理数据的方法以及装置
US9020903B1 (en) * 2012-06-29 2015-04-28 Emc Corporation Recovering duplicate blocks in file systems
US9223500B1 (en) * 2012-06-29 2015-12-29 Emc Corporation File clones in a distributed file system
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US8935495B2 (en) 2012-08-21 2015-01-13 International Business Machines Corporation Storage management in a virtual environment
KR102050723B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
CN103049349B (zh) * 2012-11-29 2016-02-24 记忆科技(深圳)有限公司 基于分层存储的快照方法及***
CN102955861B (zh) * 2012-11-30 2017-04-12 华为技术有限公司 一种基于备份文件的索引文件生成方法和装置
US10484474B2 (en) * 2013-08-29 2019-11-19 Pure Storage, Inc. Rotating offline DS units
JP2015079409A (ja) 2013-10-18 2015-04-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 階層管理下の論理ボリュームのスナップショットの作成及び管理
CN104714792B (zh) * 2013-12-17 2019-02-26 腾讯科技(深圳)有限公司 多进程共享数据处理方法和装置
CN103793666A (zh) * 2014-01-24 2014-05-14 中经云数据存储科技(北京)有限公司 一种数据文件的保护方法及***
US20150355977A1 (en) * 2014-06-10 2015-12-10 Bradley C. Kuszmaul System and Method for Making a Backup Copy of Live Data
US10387369B1 (en) * 2014-06-30 2019-08-20 EMC IP Holding Company LLC Managing file deletions of files and versions of files in storage systems
US9886447B2 (en) 2014-08-22 2018-02-06 International Business Machines Corporation Performance of asynchronous replication in HSM integrated storage systems
US9727575B2 (en) * 2014-08-29 2017-08-08 Microsoft Technology Licensing, Llc File system with data block sharing
US20170083630A1 (en) * 2015-09-21 2017-03-23 Egemen Tas Method to virtualize large files in a sandbox
JP5991701B2 (ja) 2014-10-28 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
US9778845B2 (en) 2015-02-02 2017-10-03 Western Digital Technologies, Inc. File management system
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
WO2017011015A1 (en) * 2015-07-16 2017-01-19 Hewlett Packard Enterprise Development Lp Distributed file system with tenant file system entity
CN109542672B (zh) * 2015-09-25 2023-05-05 伊姆西Ip控股有限责任公司 用于回收快照存储空间中的存储块的方法和装置
CN106682003B (zh) * 2015-11-06 2019-09-20 中国电信股份有限公司 分布式存储命名空间的路径分割映射方法和装置
US9760305B2 (en) 2015-11-09 2017-09-12 International Business Machines Corporation Migration of data to sequential access medium
US9423962B1 (en) * 2015-11-16 2016-08-23 International Business Machines Corporation Intelligent snapshot point-in-time management in object storage
WO2017092016A1 (en) * 2015-12-03 2017-06-08 Huawei Technologies Co., Ltd. A method a source storage device to send a source file and a clone file of the source file to a backup storage device, a source storage device and a backup storage device
US10545990B2 (en) * 2016-03-31 2020-01-28 Veritas Technologies Llc Replication between heterogeneous storage systems
US11119978B2 (en) 2016-06-08 2021-09-14 Red Hat Israel, Ltd. Snapshot version control
CN106227587B (zh) * 2016-07-19 2019-05-10 浪潮(北京)电子信息产业有限公司 一种带快照虚拟机整机动态迁移方法及装置
US11726979B2 (en) 2016-09-13 2023-08-15 Oracle International Corporation Determining a chronological order of transactions executed in relation to an object stored in a storage system
US10860534B2 (en) 2016-10-27 2020-12-08 Oracle International Corporation Executing a conditional command on an object stored in a storage system
US10346354B2 (en) 2016-10-28 2019-07-09 Netapp, Inc. Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh
US10824589B2 (en) 2016-10-28 2020-11-03 Netapp, Inc. Snapshot metadata arrangement for efficient cloud integrated data management
US10275177B2 (en) * 2016-10-31 2019-04-30 Oracle International Corporation Data layout schemas for seamless data migration
JP6835968B2 (ja) * 2017-02-13 2021-02-24 ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation スタビングによるコンテンツ記憶の最適化
US10659531B2 (en) * 2017-10-06 2020-05-19 International Business Machines Corporation Initiator aware data migration
US10635548B2 (en) 2017-10-27 2020-04-28 Netapp, Inc. Data block name based efficient restore of multiple files from deduplicated storage
US10282099B1 (en) * 2017-10-27 2019-05-07 Netapp, Inc. Intelligent snapshot tiering
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
CN110019073A (zh) * 2017-12-29 2019-07-16 北京忆恒创源科技有限公司 使用kv存储设备提供文件***的方法及其文件***
US10769117B2 (en) 2018-01-18 2020-09-08 International Business Machines Corporation Effective handling of HSM migrated files and snapshots
CN110109868B (zh) * 2018-01-18 2023-07-18 伊姆西Ip控股有限责任公司 用于索引文件的方法、装置和计算机程序产品
KR102106689B1 (ko) * 2018-03-09 2020-05-04 한국과학기술원 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처
US11645237B2 (en) * 2018-05-10 2023-05-09 International Business Machines Corporation Replicating data utilizing a virtual file system and cloud storage
CN111522621A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 快照缓存创建方法、装置、电子设备及计算机存储介质
CN109960517B (zh) * 2019-03-14 2022-11-22 龙芯中科技术股份有限公司 镜像文件的制作方法、装置、***及存储介质
CN110659162B (zh) * 2019-09-27 2022-10-25 厦门市美亚柏科信息股份有限公司 一种tpsfs文件***的数据恢复方法、装置、***及存储介质
US11947799B1 (en) 2019-10-11 2024-04-02 Amzetta Technologies, Llc Systems and methods for using the TRIM command with solid state devices
CN111007990B (zh) * 2019-12-24 2023-09-19 曙光信息产业(北京)有限公司 一种对快照***中数据块引用进行快速定位的定位方法
KR102402709B1 (ko) 2020-11-02 2022-05-27 주식회사 나눔기술 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법
CN113742290B (zh) * 2021-11-04 2022-03-15 上海闪马智能科技有限公司 一种数据存储方法、装置、存储介质及电子装置
CN114077680B (zh) * 2022-01-07 2022-05-17 支付宝(杭州)信息技术有限公司 一种图数据的存储方法、***及装置
US11762603B2 (en) 2022-02-10 2023-09-19 International Business Machines Corporation Storing modified or unmodified portions of a file based on tape loading
CN114281791B (zh) * 2022-03-07 2022-07-22 阿里云计算有限公司 数据访问方法、***、设备及存储介质
CN116048562B (zh) * 2022-05-30 2023-10-27 荣耀终端有限公司 一种数据更新方法、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559035A (zh) * 2001-09-26 2004-12-29 Emc 对迁移和清除候选者的有效查找
CN1904847A (zh) * 2005-07-28 2007-01-31 国际商业机器公司 用于确定对源文件作出的改变以便传输到目标位置的方法和***

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216135B2 (en) * 2002-02-15 2007-05-08 International Business Machines Corporation File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7085785B2 (en) * 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
EP1349088B1 (en) * 2002-03-19 2010-11-03 Network Appliance, Inc. System and method for determining and transmitting changes in snapshots
US6792518B2 (en) * 2002-08-06 2004-09-14 Emc Corporation Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US7092976B2 (en) * 2003-06-24 2006-08-15 International Business Machines Corporation Parallel high speed backup for a storage area network (SAN) file system
US7555504B2 (en) * 2003-09-23 2009-06-30 Emc Corporation Maintenance of a file version set including read-only and read-write snapshot copies of a production file
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7546431B2 (en) * 2005-03-21 2009-06-09 Emc Corporation Distributed open writable snapshot copy facility using file migration policies
US7467282B2 (en) * 2005-04-05 2008-12-16 Network Appliance, Inc. Migrating a traditional volume to a virtual volume in a storage system
JP4704161B2 (ja) * 2005-09-13 2011-06-15 株式会社日立製作所 ファイルシステムの構築方法
AU2006331932B2 (en) 2005-12-19 2012-09-06 Commvault Systems, Inc. Systems and methods for performing data replication
US7865462B2 (en) * 2006-01-03 2011-01-04 Hitachi, Ltd. Apparatus and method for replicating data in file system
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559035A (zh) * 2001-09-26 2004-12-29 Emc 对迁移和清除候选者的有效查找
CN1904847A (zh) * 2005-07-28 2007-01-31 国际商业机器公司 用于确定对源文件作出的改变以便传输到目标位置的方法和***

Also Published As

Publication number Publication date
KR20100045974A (ko) 2010-05-04
JP2010536079A (ja) 2010-11-25
EP2176795A1 (en) 2010-04-21
US20090043978A1 (en) 2009-02-12
CN101743546A (zh) 2010-06-16
US8055864B2 (en) 2011-11-08
JP5464554B2 (ja) 2014-04-09
EP2176795B1 (en) 2015-03-25
WO2009019128A1 (en) 2009-02-12
KR101137299B1 (ko) 2012-04-19

Similar Documents

Publication Publication Date Title
CN101743546B (zh) 用于提供快照的文件***的分层存储管理
JP4568115B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
KR100962055B1 (ko) 컴퓨터 시스템들간의 객체 공유
US11023318B1 (en) System and method for fast random access erasure encoded storage
CN101404567B (zh) 用于访问备份数据的方法和计算机***
US7613752B2 (en) Systems and methods for using metadata to enhance data management operations
US8549051B2 (en) Unlimited file system snapshots and clones
CN107180092B (zh) 一种文件***的控制方法、装置及终端
CN103038767B (zh) 用于文件克隆的数据共享的方法和***
CN106662981A (zh) 存储设备、程序和信息处理方法
US7376681B1 (en) Methods and apparatus for accessing information in a hierarchical file system
CN102696010A (zh) 用于将数据高速缓存在固态存储设备上的装置、***和方法
CN101137981A (zh) 用于管理文件***中的内容存储的方法和装置
GB2439578A (en) Virtual file system with links between data streams
CN105339903A (zh) 恢复文件***对象
US7366836B1 (en) Software system for providing storage system functionality
CN111881107B (zh) 支持多文件***挂载的分布式存储方法
WO2008001094A1 (en) Data processing
GB2439577A (en) Storing data in streams of varying size
CN1604046A (zh) 用于管理关于目标卷与源卷之间关系的信息的方法和***
US9063656B2 (en) System and methods for digest-based storage
US7979665B1 (en) Method and apparatus for processing access requests in a computer system
US20240028566A1 (en) Efficient append-only file system for high-performance key-value stores
JP2008544397A (ja) ファイルシステム内へのコンテンツの格納を管理する方法および装置
Feng Rewriting Algorithms

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

CF01 Termination of patent right due to non-payment of annual fee