CN103207883A - 用于元数据持久存储的方法 - Google Patents
用于元数据持久存储的方法 Download PDFInfo
- Publication number
- CN103207883A CN103207883A CN2012100831449A CN201210083144A CN103207883A CN 103207883 A CN103207883 A CN 103207883A CN 2012100831449 A CN2012100831449 A CN 2012100831449A CN 201210083144 A CN201210083144 A CN 201210083144A CN 103207883 A CN103207883 A CN 103207883A
- Authority
- CN
- China
- Prior art keywords
- metadata
- mapping
- data
- scope
- daily record
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供用于某项事务的元数据磁盘布局内映射范围和非映射范围的自动更新。事务包含映射范围和非映射范围的改变。映射范围的改变可以在10MB元数据的数据磁盘区域内的任意位置并且也可以在非映射区域。写日志将被加入每一次迁移中。针对每一次迁移都创建一项事务并且其中包含有映射和非映射的改变。在重启之后将应用写日志。为了提供更好的数据完整性,块层级序号、块编号和CRC被保留用于主副本和辅助副本。
Description
背景技术
分级存储管理(HSM)是一种在高成本存储介质和低成本存储介质之间也就是热层和冷层之间自动移动数据的数据存储技术。HSM***之所以存在,是因为高速存储设备(例如硬盘驱动器阵列)与较慢的设备(例如光盘和磁带驱动器)相比(存储每字节)更加昂贵。HSM***将批量的企业数据存储在较慢的设备上,并随后在需要时将数据拷贝至较快的磁盘驱动器。实际上,HSM是将快速磁盘驱动器转化为用于较慢的海量存储设备的高速缓存。HSM***监测数据的使用方式,并对关于能够将哪些数据安全地移动至较慢的设备以及应该将哪些数据保留在快速设备上做出最佳推测。在一种典型的HSM应用中,经常使用的数据文件被存储在磁盘驱动器上,但是如果这些数据文件在一定的时间段(通常是几个月)内没有被使用,那么就会最终被迁移到磁带中。如果用户确实要重新使用磁带上的文件,那么就将文件自动移回磁盘存储器。优点在于存储的数据总量可以远远大于可用的磁盘存储容量,而且由于磁带上只有很少使用的文件,因此大多数用户通常都不会察觉到任何的减速。HSM有时被称作分层存储。HSM(最初是DFHSM,现在是DFSMShsm)首先由IBM在其大型计算机上实施以降低数据存储成本,并简化从较慢介质中取回数据。用户不需要知道数据存储在哪里以及如何取回数据;计算机将会自动取回数据。对于用户来说唯一的不同是数据返回的速度。后来,IBM将HSM引入其AIX操作***,并随后引入其他的类Unix操作***,例如Solaris,HP-UX和Linux。HSM也在DECVAX/VMS***和Alpha/VMS***上实施。最初的实施日期应该可以根据VMS***实施手册或VMS产品说明书手册而容易地确定。近来,串行ATA(SATA)盘的发展已经为三级HSM建立了重要的市场:文件从高性能的光纤通道存储区域网络设备迁移至略慢但是却便宜得多的总容量为几T或更多的SATA磁盘阵列,并随后最终从SATA磁盘迁移至磁带。HSM的最新发展是在硬盘驱动器和闪存存储器方面,其中闪存存储器要比磁盘快30倍以上,但是磁盘要便宜得多。
发明内容
本发明的实施例因此可以包括一种用于层驱动器***交换操作中的元数据持久存储方法。所述方法可以包括创建当前事务条目,将元数据的改变加入事务条目,范围信息包括映射信息和非映射信息,通过用写日志将当前事务条目写入写日志内的下一个自由条目单元而将事务条目刷新至元数据磁盘区域,由元数据模块根据用于受影响数据块的当前事务元数据信息更新元数据区域。
本发明的实施例可以进一步包括一种用于在层驱动器***内各层之间转移数据时的元数据持久存储***。所述***可以包括主机;元数据模块,所述模块包含多种范围信息;以及写日志。当前事务条目由主机创建并将范围信息加入事务条目。事务条目被刷新为元数据模块中的元数据。事务被排序为写日志中的队列,其中写日志将当前事务条目写入下一个自由条目单元。元数据模块根据当前事务的元数据信息更新元数据并刷新受影响的任何数据块。
附图简要说明
图1是层驱动器布局的示意图。
图2是虚拟、映射范围和非映射范围的示意图。
图3是映射范围表和非映射范围表的表达。
图4a是一种TD布局的示例。
图4b示出了图4a中初始映射范围的元数据细节。
图4c示出了图4a中初始非映射范围的元数据细节。
图4d示出了用于图4b和图4c中TD范围0到非映射范围的热交换中的元数据条目改变。
图4e示出了用于TD范围2到非映射范围的热交换中的元数据条目改变。
图4f示出了用于TD范围17的冷交换中的元数据条目改变。
图4g示出了TD范围0的冷交换中的元数据条目改变。
图4h示出了TD范围2的冷交换中的元数据条目改变。
图5示出了元数据设计的数据结构。
图6示出了用于磁盘上元数据的数据格式。
图7示出了磁盘上的元数据布局。
图8是用于其他模块的元数据模块接口。
图9是用于交换操作的事务条目状态图。
具体实施方式
在概念上,HSM类似于能在大多数计算机CPU中找到的高速缓存,其中以非常高的速度运行的少量昂贵的SRAM存储器被用于存储经常使用的数据,但是当必须载入新数据时就要将最近最少使用的数据驱逐到较慢但却大得多的主DRAM存储器中。
要迁移数据是出于多种原因。某些原因涉及信息值的改变,而另一些原因则涉及不同的基本原理。
为了保存1TB热层容量(映射和非映射范围)的元数据,元数据通常被保存在一定容量的热层虚拟驱动器(VD)内。可行的是在交换操作期间能够修改热层VD区域内任何位置(映射和非映射)的元数据。对于交换操作,为了保持重启之后数据完整性,映射的重定位信息和非映射信息应该以很小单位(atomic fashion)的方式被保存(持久存储)在磁盘区域内。这就意味着,如果映射被更新而非映射未被更新或者只有局部映射被更新,那么就会有数据损坏。如果一个256K的块被用于将元数据区域写入磁盘内,那么就可能会随之发生数据损坏。针对每一次交换操作都将映射和非映射数据写入磁盘,这需要更新整个区域,从而造成对该区域的挥霍性使用。热层的使用寿命会由于对整个区域的连续写操作而下降。
本发明的一个实施例因此可以包括用于分层(例如通过LSI的Cachecade***和LSI的MegaRAID卡内的产品进行分层)的***和方法。该实施例包括在基于PCI的RAID适配器内分层。可以创建被主机视为虚拟驱动器(VD)的层驱动器(TD)。在TD内数据被复制到慢速驱动器例如SAS、SATA、硬盘(冷层)或者被复制到相对快速的驱动器例如SAS、SATA SSD驱动器(热层)。如果其访问要求加速主机的读写性能,那么就将TD上的IO转移到热层驱动器。可以有各种方法(例如高速缓存其中SSD驱动器可用的DRAM内的数据,以便提升性能),但是较快存储介质的容量可能对于用户来说是不可用的。SSD的容量被包含在TD内并且分层会加速主机的IO性能。由于Cachecade和LSI的MegaRAID卡是用于示例性的目的,因此本领域技术人员应该能够理解除此以外的可应用性。
在本发明的一个实施例中,数据以被称为范围的数据单位的形式在各层之间转移。范围是包含用于分层操作的连续数据块的数据集合。冷层数据是较少访问的数据并且因此可以被认为是当前相对比较不重要的数据。热层数据是比较频繁访问的数据并且因此可以被认为是当前相对更为重要的数据。分层模块在层驱动器的不同层之间交换数据。1MB的范围容量可以被用作转移的数据单位并且利用元数据接口来保存TD范围(映射和非映射数据)的重定位位置。分层功能具有两种基本的交换操作-冷交换和热交换。交换操作从可以在热层或冷层上的非映射区域中获得非映射范围,然后将数据从热层或冷层内的初始位置转移并更新映射的新位置以及将初始范围更新为非映射。冷交换操作是将数据从热范围转移至冷范围,然后更新与该数据转移相关的映射和非映射的元数据部分。对于冷交换,使用的是冷层上的非映射区域。热交换操作是将数据从冷范围转移至热范围,然后更新与该数据转移相关的映射和非映射的元数据部分。对于热交换,使用的是热层上的非映射区域。
在本发明的一个实施例中有三种范围类型。虚拟范围被用于记录冷层范围的跟踪信息。映射范围被用于保留热层的映射信息,而非映射范围被用于保存TD的非映射范围信息。5%的TD热层大小在TD创建期间被保留用于非映射范围。这5%对于用户来说不可用。在迁移之后,该非映射区域可以位于冷层或热层区域内。因此,共有5%的TD大小被保留用于非映射范围。被交换的范围将被复制到相反层上的非映射范围(例如热范围转移至非映射的冷范围)。这就减少了交换操作的次数并且避免了数据损坏。即使在交换操作之后发生了供电中断,直到针对映射和非映射位置更新完元数据之前,数据仍将位于其初始位置。保留用于非映射范围的空间百分比可以根据性能需求而改变。
在本发明的一个实施例中,为了保存(映射范围和非映射范围的)元数据,对于1TB的热层大小,我们需要大约10MB。元数据将被保存在热层VD内。元数据磁盘布局应具有数据头、日志区域、映射区域和非映射区域。可行的是修改(映射和非映射的)元数据可以根据交换操作在热层VD中10MB区域内的任何位置进行。对于交换操作,映射的重定位信息和非映射的重定位信息应该以很小单位的方式持久存储在磁盘内从而确保重启之后的数据完整性。这就意味着如果映射数据被更新而非映射数据未被更新或映射数据仅被部分更新,那么就会有数据损坏。在本发明的一个实施例中,每一次交换操作都创建一项事务。该事务将在更新映射和非映射范围之前被写入日志区域。
图1是层驱动器布局的示意图。层驱动器100示出了多个驱动器层级110。在VD上创建TD并且将其暴露给主机作为新的逻辑驱动器。创建VD是本领域内公知的。TD的顶层表示冷层或冷VD。在本发明的一个实施例中,存在多个冷VD 120。TD的底层表示热层或热VD。在本发明的一个实施例中,存在多个热VD 130。在冷VD120和热VD 130之间是根据从冷到热的策略选择而在重要性上有所变化的多个中间VD 140。
针对每一次数据迁移都创建一项事务。该事务可以包含在本说明书中予以介绍的映射和非映射改变。针对每一次交换操作都可以创建一项新事务。事务包含映射和非映射范围的改变。写日志可以被加入每一次迁移中。在重启之后,写日志将被应用于存储器内的元数据区域和元数据磁盘区域。为了提供更好的数据完整性,块层级序号和CRC可以被保留用于主副本和辅助副本。
元数据管理器可以将元数据逐一写到磁盘上或者写在容量为256K的连续块内。块的容量可以根据热层规格针对性能需求而增大或减小。如果一项事务分布跨越了多个块,则如果供电中断有可能导致数据损坏,那么元数据就会处于不稳定状态。通过实施元数据日志,事务记录就被跟踪记录在持久存储区域例如元数据区域中保留的空间内,这样就能在启动期间应用日志条目从而实现元数据更新的自动化。在本发明的一个实施例中,只保留日志的一个副本。如果日志条目不可用或者无法以其他方式读取,那么整个TD就都不会工作(online)。
图2是虚拟的映射范围和非映射范围的示意图。冷VD 120包含至少一个并且可能是多个的虚拟范围122。这些虚拟范围122可以具有1MB的范围大小并且为热交换而跟踪记录该虚拟范围。热VD 130包含至少一个并且可能是多个的映射范围132。这些映射范围132可以具有1MB的范围大小。映射范围132被映射用于迁移之后的冷VD范围或者初始卷创建期间的热VD范围。每一个冷VD 120和热VD 130都包括至少一个并且可能是多个的非映射范围124,134。非映射范围124,134可以具有1MB的范围大小。非映射范围124,134可以被用于(热或冷)交换操作。5%的TD热层大小被保留用于非映射范围。
图3是映射和非映射范围表300的表达。映射范围表310包括热TD范围索引编号312、源TD指向范围314和链接TD指向范围编号316。非映射范围表320包括热TD范围索引编号322、LD编号324和LD范围编号326。
在创建初始布局时,源TD指向范围314可以包含TD指向范围编号312并且链接TD指向范围编号316应为无效。非映射范围表320包含不具有任何主机数据的TD范围。5%的TD热层大小被保留用于非映射范围并且这5%在TD创建期间对用户不可用。在迁移之后,非映射区域可以位于冷层或热层内。应该理解,非映射范围表的大小可以通过保存TD指向范围而不是LD目标编号和ID范围编号而减小。
冷交换和热交换操作是后台操作。冷交换是将数据从热VD范围区域迁移至非映射冷范围区域,并相应地更新用于映射和非映射范围的元数据。类似地,热交换是将数据从冷层迁移至热层,并更新元数据信息。如果冷层线性地映射当前位于热层内但是***想要移回冷层的范围数据,那么就会将这些数据移回到它们在冷层上的初始线性映射位置。例如,考虑具有15MB冷层和17MB热层的TD。两个非映射范围将被合并,以使得存在一个用于理解布局的附加非映射范围。对于1TB的热层大小,需要18MB的元数据(8MB用于映射范围且410KB用于非映射范围,用于每一个主数据和辅助数据的报头)。图4a是一种TD布局的示例。TD布局400包括一系列的TD指向范围编号410、范围信息420和LD信息430。TD大小是VD大小(虚拟范围440、映射范围450、非映射范围460和元数据470)之和减去非映射范围460的大小和元数据的大小。对于图4a中30MB的TD来说,TD大小为33MB-2MB-1MB=30MB。
图4b示出了图4a中初始映射范围的元数据细节。源TD指向编号410对应于图4a中的源TD指向编号(16-29)。映射索引412从0增加到15。图4b示出了图4a中初始非映射范围的元数据细节。非映射索引412从0增加到1。
图4d示出了用于图4b和图4c中TD范围0到非映射范围的热交换中的条目改变。索引14 412涉及图4b中的索引14并且索引0412涉及图4c中的索引0。
图4e示出了用于TD范围2到非映射范围的热交换。映射条目改变被表示为索引15 412。非映射条目改变被表示为索引1 412。
图4f示出了用于TD范围17的冷交换。映射条目改变被表示为索引1和14 412。非映射条目改变被表示为索引0 412。
图4g示出了用于TD范围0的冷交换。映射条目改变被表示为索引14和15 412。非映射条目改变被表示为索引1 412。对于本示例有两种迁移操作。第一种操作包括将现有冷数据转移至下一个未使用的冷空间。第二种操作包括将TD范围0的热区域转移至冷区域。
图4h示出了TD范围2的冷交换。TD范围2当前在示出的示例中是热的。映射条目改变被表示为索引1和15 412。非映射条目改变被表示为索引0 412。对于本示例来说共有两种迁移操作。第一种操作包括将链接范围转移至其下一个非映射的冷位置。如果没有冷的非映射位置,那么它就会因此去往其初始位置而不是转移到任何其他的位置。如果TD范围17被转移至热范围14并避免将冷范围2交换至其初始位置,那么自由的热范围编号就有可能会丢失。本发明的目的不是通过移动冷范围2来实现。TD范围17被转移至热范围14而不是将TD范围17转移至其初始位置,由此就会使操作复杂化。在本发明的实施例中,在将一个范围从其映射位置转移至其初始(热或冷)位置时使得操作保持简单。第二种操作包括将TD范围2转移至其初始的冷位置。
在本发明的一个实施例中,根据用于转移至热区域的访问计数来跟踪记录虚拟范围。使用的访问计数可以是跟踪信息或其他信息。类似地,根据用于转移至冷区域的访问计数来跟踪记录映射范围(热区域)。一旦虚拟范围准备就绪转移至热区域,也就是该范围已经获得了足够次数的访问计数,那么它就有资格在分配了映射范围之后进入到热索引段内。最近最少访问的列表将跟踪记录对一个范围的访问。
图5示出了元数据设计的数据结构。元数据设计500包括映射结构510、非映射机构520和迁移模型530。结构tm_metadata_mapped_extent_data__t 510被用于将数据从迁移组件传送至元数据模块。它也具有用于映射范围信息的磁盘数据格式。结构tm_metadata_unmapped_extent_data_t 520被用于将数据从迁移组件传送至元数据模块并且也具有用于非映射范围信息的磁盘数据格式。
从迁移管理器传送结构tm_metadata_extent_info_t用于“put”和“get”操作。如前所述,metadata_table_index字段具有进入映射或非映射数组的索引。如果迁移模块需要映射范围信息,那么字段is_mapped_extent将包含“真”。Mapped_data具有mapped_extent信息并且unmapped_extent包含非映射范围信息。迁移模块传送migration_tag。随后即可利用它来取消元数据的更新。这就能实现回滚语义。
图6示出了用于磁盘上元数据的数据格式。磁盘上数据结构600包括映射结构610、用于映射块和非映射块的块头结构620、元数据头结构630、日志结构640、日志块头结构650和非映射结构660。
图7示出了磁盘上的元数据布局。布局700包括元数据头块710、写日志区域720、映射范围区域730和非映射范围区域740。TD持久存储数据(DDF数据)将具有指向VD内元数据区域并且在图7中被称为X的指针。tm_metadata_hdr_t 710被保持在元数据布局的开始处。如图7中所示,接下来的256K块被保留用于写日志720并且tm_mtedata_journal_block_hrt_t被写在X+256K处。随后tm_metadata_journal_extent_info_t的元数据数组被持久存储。元数据映射段始于X+256K+256K处并且每一个256K的块都以tm_metadata_block_hdr_t开始。tm_metadata_block_hdr_t将具有与该块相关联的CRC和序号。非映射段的其余部分将被映射为tm_metadata_unmapped_extent_data_t的数组。256K作为块大小被当作示例使用的原因是对于SSD驱动器可以增强性能。但是,应该理解为了更好的性能、擦写次数和寿命,可以选择不同的块大小以优化用于不同的VD大小选择。每一个块的序号、CRC、矩阵代数一般说明编码(magic)、块编号都被用于在重启期间验证块条目。从主存储或辅助存储中选择恰当的块。
元数据头也具有矩阵代数一般说明编码,将字段编码以区分主存储或辅助存储并识别出元数据块。头包含用于保存映射条目编号、非映射条目编号和日志起始地址的字段。字段TD范围大小被用于***的入口。
在本发明的一个实施例中,以下是元数据操作,参见图8:
tm_metadata_init
在本发明的一个实施例中,在***启动期间调用该tm_metadata_init以用于存储器或其他资源的模块层级的初始化。
Tm_metadata_fini
在本发明的一个实施例中,在***关闭期间调用该Tm_metadata_fini以用于模块层级存储器和其他资源的清除。
Tm_metadata_mgr_td_init
在本发明的一个实施例中,Tm_metadata_mgr_td_init识别出TD内构成热层中一部分的VD。Tm_metadata_mgr_td_init划出VD内的构成图7中所述的热层的用于存储元数据的空间。其在热层上预先分配足够的空间以支持每个TD高达1TB的热层辅助存储,而与创建时的TD大小无关。元数据头在核心存储器中更新,但是随后的刷新操作刷新一次头、日志初始条目和映射/非映射初始条目。Tm_metadata_mgr_td_init还可以分配映射、非映射和日志缓存的存储器。
Tm_metadata_td_load
在本发明的一个实施例中,在TD工作时或者在重启期间调用Tm_metadata_td_load。这一应用编程接口(API)将磁盘上的元数据布局移植到存储器中,其中包括头、日志条目、映射条目和非映射条目。Tm_metadata_td_load还可以利用块层级序号来选择最新的元数据副本。而且,Tm_metadata_td_load从起始索引开始到结束索引重新应用日志条目以获得存储器中的正确数据。Tm_metadata_td_load用验证过的核心内副本来更新主副本和辅助副本。最后,Tm_metadata_td_load调用由调用程序传递的回调进程以指示元数据更新完成。回调是对可执行代码或作为参数传递给其他代码的一部分可执行代码的引用。这就允许较低层级的软件层调用在较高层级的层内定义的子程序(或函数)。
Tm_metadata_td_get
在本发明的一个实施例中,Tm_metadata_td_get在请求加载之后向调用程序传递范围信息。
Tm_metadata_td_put
在本发明的一个实施例中,迁移模块可以在热/冷交换操作之后利用该API来更新元数据核心区域内的元数据改变。该模块将向当前事务中增加条目。
Tm_metadata_td_flush
在本发明的一个实施例中,在对各个范围完成put操作后,迁移模块利用Tm_metadata_td_flush来完成事务以持久存储利用Tm_metadata_td_put传送的元数据。迁移模块将当前事务加入写日志队列中。如果磁盘上持久存储的写日志当前不在进程中,那么就可以开始写日志。写日志将很可能快速地完成256K的块。在写日志的块完成之后,事务就转移至256K块大小的元数据写入。只有发生改变的块才会针对该事务进行写操作。在完成受影响的元数据的更新之后,如果还有针对写日志的待决事务,那么将针对该事务开启日志条目。在对于特定事务完成了所有的受影响块后,将调用传送到刷新操作的回调。
Tm_metadata_td_quiesce
在本发明的一个实施例中,可以调用该API以确保指定TD上所有元数据管理器的操作均已完成并且没有计划要开始的新的元数据操作。还可以在删除TD时调用该API以确保对后台VD的任何悬置的IO均已被清除或完成。在完成了所有的待决操作之后,即可用回调参数来调用回调。
Tm_metadat_td_delete
在本发明的一个实施例中,Tm_metadat_td_delete释放在映射、非映射和日志条目初始化期间分配的元数据缓存。
Tm_metadataJd_rollback
在本发明的一个实施例中,由迁移模块调用Tm_metadataJd_rollback以移除已被赋予迁移标记的元数据。
图9是用于交换操作的事务条目状态图。交换操作900示出了用于一项事务的元数据更新步骤。该事务被创建用于包含被修改的映射和非映射条目的交换操作。在第一步骤910,如果当前没有事务条目,那么tm_metadata_put(put)就创建一项事务。在下一个步骤920,put操作将范围信息条目加入当前事务中。在下一个步骤930,刷新操作将事务排入日志队列中。在下一个步骤940,atm_metadata_flush(刷新操作)开始日志的写操作。步骤940中的日志写操作在图9中被示出为日志条目和日志块条目945。随后操作在步骤950排列事务的元数据刷新队列。在移动元数据刷新队列之后,元数据模块获得事务并根据事务元数据信息更新(映射和非映射的)元数据区块,然后仅刷新受影响的块960、965、970、975。针对每一个块计算CRC和序号。更新元数据中的主区域和辅助区域。在完成元数据的刷新之后,交换操作在980处完成。
在重启之后,映射和非映射的元数据区域都从磁盘中读取。从最老的日志条目开始应用日志事务条目。计算用于每一个块的CRC并且更新用于每一个元数据块的序号。日志的元数据区域随后被清除以用于下一次更新。更新的元数据块被持久存储在元数据区域内。
如果在移动当前事务元数据刷新队列的步骤950之后的元数据更新期间发生电源故障,那么可以通过写日志条目恢复映射信息。如果在将当前事务刷新到元数据的步骤930之后但是在日志写操作的步骤940之前发生电源故障,那么将不会有元数据条目。在此情况下,初始范围将具有该数据。
向存储器中的位置写数据可能会潜在地留下具有不一致的数据的其他位置。该问题可以通过使用对不同地址空间不重叠的存储器布局加以解决,或者在映射改变时必须刷新存储器(或部分存储器)。而且,CRC是循环冗余检验。这是一种在数字网络和存储设备中常用的错误检测码,用于检测原始数据中的意外改变。进入这些***中的数据块获得根据其内容除以多项式的余数而附加的短校验值部分。在提取时,重复该计算并且如果校验值不匹配则可以对推测的数据损坏采取校正动作。“校验”值通常是冗余码,原因在于它不会向数据加入信息,并且实施算法也相对简单。本领域技术人员应该理解刷新操作和CRC的实施都是可用于保持数据完整性的手段示例。更新序号将决定数据的最新副本,块编号将给出附加的数据一致性校验,并且主副本和辅助副本可以有助于从块层级的故障中恢复。
本发明的上述说明内容是为了解释和说明而给出,而不应认为是将本发明穷举或限制为公开的精确形式,并且根据以上的教导也可以有其他可行的修改和变形。选择和介绍的实施例是为了更好地阐述本发明的原理及其实际应用以由此使本领域技术人员能够在例如适合于特定预期用途的不同实施例和不同变形中更好地利用本发明。应该意识到所附权利要求应被解读为包括本发明除去现有技术限定以外的其他可选实施例。
Claims (5)
1.一种用于层驱动器***交换操作中的元数据持久存储的方法,所述方法包括:
创建当前事务条目;
将元数据的改变加入所述事务条目,所述范围信息包括映射信息和非映射信息;
通过利用写日志将当前事务条目写入到所述写日志内的下一个空闲条目位置而将所述事务条目刷新至元数据磁盘区域;
利用元数据模块根据用于受影响的数据块的当前事务元数据信息更新所述元数据区域。
2.如权利要求1所述的方法,进一步包括:
针对每一个元数据块计算CRC序号和块编号并保存主副本和辅助副本。
3.如权利要求3所述的方法,其中所述层驱动器***是RAID***。
4.如权利要求1所述的方法,进一步包括:
如果在刷新所述事务条目之后出现所述层驱动器的电源的中断,则通过所述写日志恢复映射和非映射信息。
5.一种用于在层驱动器***内的各层之间移动数据时持久存储元数据的***,包括:
主机;
元数据模块,所述元数据模块包含多个范围信息;以及
写日志;
其中当前事务条目由所述主机创建,并且所述范围信息被加入到所述事务条目,所述事务条目被刷新到所述元数据模块中的元数据,所述事务被排队为写日志中的队列,其中所述写日志将当前事务条目写入下一个空闲条目位置,并且所述元数据模块根据当前事务的元数据信息更新所述元数据并刷新任何受影响的数据块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/348,799 | 2012-01-12 | ||
US13/348,799 US20130185503A1 (en) | 2012-01-12 | 2012-01-12 | Method for metadata persistence |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103207883A true CN103207883A (zh) | 2013-07-17 |
Family
ID=47044863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012100831449A Pending CN103207883A (zh) | 2012-01-12 | 2012-03-27 | 用于元数据持久存储的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20130185503A1 (zh) |
EP (1) | EP2639710A2 (zh) |
JP (1) | JP2013143124A (zh) |
KR (1) | KR20130083356A (zh) |
CN (1) | CN103207883A (zh) |
TW (1) | TW201329714A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516549A (zh) * | 2013-09-27 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件***元数据日志机制 |
CN106020726A (zh) * | 2016-05-23 | 2016-10-12 | 联想(北京)有限公司 | 写入元数据的方法、设备、以及存储装置 |
CN109726033A (zh) * | 2017-10-31 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 映射的raid数据存储***中的基于驱动器盘区的寿命终止检测和主动复制 |
CN111435331A (zh) * | 2019-01-14 | 2020-07-21 | 杭州宏杉科技股份有限公司 | 存储卷写数据方法、装置、电子设备及机器可读存储介质 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140244897A1 (en) * | 2013-02-26 | 2014-08-28 | Seagate Technology Llc | Metadata Update Management In a Multi-Tiered Memory |
WO2015130314A1 (en) | 2014-02-28 | 2015-09-03 | Hewlett-Packard Development Company, L.P. | Mapping mode shift |
US20160019224A1 (en) * | 2014-07-18 | 2016-01-21 | Commvault Systems, Inc. | File system content archiving based on third-party application archiving rules and metadata |
US10824362B2 (en) | 2015-03-27 | 2020-11-03 | Hewlett Packard Enterprise Development Lp | File migration to persistent memory |
CN107209720B (zh) | 2015-04-02 | 2020-10-13 | 慧与发展有限责任合伙企业 | 用于页面高速缓存的***及方法以及存储介质 |
US10459947B2 (en) * | 2016-02-05 | 2019-10-29 | International Business Machines Corporation | Frequency dependent partial index |
US10365891B2 (en) | 2016-04-06 | 2019-07-30 | International Business Machines Corporation | Object storage support for tiered storage archive with removable media |
RU2017104408A (ru) * | 2017-02-10 | 2018-08-14 | СИГЕЙТ ТЕКНОЛОДЖИ ЭлЭлСи | Составные топологии хранения данных для объектов данных |
US11029862B2 (en) * | 2017-04-25 | 2021-06-08 | Netapp, Inc. | Systems and methods for reducing write tax, memory usage, and trapped capacity in metadata storage |
US11113312B2 (en) * | 2017-06-29 | 2021-09-07 | Microsoft Technology Licensing, Llc | Reliable hierarchical storage management with data synchronization |
KR102441997B1 (ko) * | 2017-11-01 | 2022-09-08 | 한국전자통신연구원 | 네트워크에서 메타데이터의 동기화를 제어하는 장치 및 그 방법 |
US11106378B2 (en) * | 2018-11-21 | 2021-08-31 | At&T Intellectual Property I, L.P. | Record information management based on self describing attributes |
CN111461160B (zh) * | 2019-11-11 | 2023-07-14 | 天津津航技术物理研究所 | 抗云雾、烟雾干扰红外成像导引头目标跟踪方法 |
US11579771B2 (en) | 2020-05-12 | 2023-02-14 | Seagate Technology Llc | Data storage layouts |
US11418247B2 (en) | 2020-06-30 | 2022-08-16 | Hewlett Packard Enterprise Development Lp | High spatial reuse for mmWave Wi-Fi |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6067635A (en) * | 1995-10-27 | 2000-05-23 | Lsi Logic Corporation | Preservation of data integrity in a raid storage device |
US5974503A (en) * | 1997-04-25 | 1999-10-26 | Emc Corporation | Storage and access of continuous media files indexed as lists of raid stripe sets associated with file names |
US6606629B1 (en) * | 2000-05-17 | 2003-08-12 | Lsi Logic Corporation | Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique |
US6665814B2 (en) * | 2000-11-29 | 2003-12-16 | International Business Machines Corporation | Method and apparatus for providing serialization support for a computer system |
US6775792B2 (en) * | 2001-01-29 | 2004-08-10 | Snap Appliance, Inc. | Discrete mapping of parity blocks |
US6990667B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Server-independent object positioning for load balancing drives and servers |
US6990547B2 (en) * | 2001-01-29 | 2006-01-24 | Adaptec, Inc. | Replacing file system processors by hot swapping |
US6862609B2 (en) * | 2001-03-07 | 2005-03-01 | Canopy Group, Inc. | Redundant storage for multiple processors in a ring network |
US8005792B2 (en) * | 2004-05-14 | 2011-08-23 | Oracle International Corporation | System and method for managing versions of metadata |
US20060259527A1 (en) * | 2005-05-13 | 2006-11-16 | Devarakonda Murthy V | Changed files list with time buckets for efficient storage management |
US8843691B2 (en) * | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
US20120010995A1 (en) * | 2008-10-23 | 2012-01-12 | Savnor Technologies | Web content capturing, packaging, distribution |
US8365082B2 (en) * | 2008-10-23 | 2013-01-29 | Savnor Technologies Llc | Universal content referencing, packaging, distribution system, and a tool for customizing web content |
US8788941B2 (en) * | 2010-03-30 | 2014-07-22 | Itxc Ip Holdings S.A.R.L. | Navigable content source identification for multimedia editing systems and methods therefor |
US9170892B2 (en) * | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
-
2012
- 2012-01-12 US US13/348,799 patent/US20130185503A1/en not_active Abandoned
- 2012-02-14 TW TW101104796A patent/TW201329714A/zh unknown
- 2012-03-26 KR KR1020120030381A patent/KR20130083356A/ko not_active Application Discontinuation
- 2012-03-27 CN CN2012100831449A patent/CN103207883A/zh active Pending
- 2012-04-11 JP JP2012089827A patent/JP2013143124A/ja active Pending
- 2012-10-09 EP EP12187756.7A patent/EP2639710A2/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516549A (zh) * | 2013-09-27 | 2014-01-15 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件***元数据日志机制 |
CN103516549B (zh) * | 2013-09-27 | 2018-03-27 | 浪潮电子信息产业股份有限公司 | 一种基于共享对象存储的文件***元数据日志机制 |
CN106020726A (zh) * | 2016-05-23 | 2016-10-12 | 联想(北京)有限公司 | 写入元数据的方法、设备、以及存储装置 |
CN106020726B (zh) * | 2016-05-23 | 2019-11-26 | 联想(北京)有限公司 | 写入元数据的方法、设备、以及存储装置 |
CN109726033A (zh) * | 2017-10-31 | 2019-05-07 | 伊姆西Ip控股有限责任公司 | 映射的raid数据存储***中的基于驱动器盘区的寿命终止检测和主动复制 |
CN109726033B (zh) * | 2017-10-31 | 2022-05-06 | 伊姆西Ip控股有限责任公司 | 提供raid数据保护的方法、数据存储***和计算机可读介质 |
CN111435331A (zh) * | 2019-01-14 | 2020-07-21 | 杭州宏杉科技股份有限公司 | 存储卷写数据方法、装置、电子设备及机器可读存储介质 |
CN111435331B (zh) * | 2019-01-14 | 2022-08-26 | 杭州宏杉科技股份有限公司 | 存储卷写数据方法、装置、电子设备及机器可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20130185503A1 (en) | 2013-07-18 |
JP2013143124A (ja) | 2013-07-22 |
EP2639710A2 (en) | 2013-09-18 |
TW201329714A (zh) | 2013-07-16 |
KR20130083356A (ko) | 2013-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103207883A (zh) | 用于元数据持久存储的方法 | |
US7363540B2 (en) | Transaction-safe FAT file system improvements | |
US10521131B2 (en) | Storage apparatus and storage control apparatus | |
JP4292882B2 (ja) | 複数のスナップショット維持方法及びサーバ装置及びストレージ装置 | |
US7174420B2 (en) | Transaction-safe FAT file system | |
US8280858B2 (en) | Storage pool scrubbing with concurrent snapshots | |
CN102779096B (zh) | 一种基于页块面三维的闪存地址映射方法 | |
US9075754B1 (en) | Managing cache backup and restore | |
CN109407979A (zh) | 多线程持久性b+树数据结构设计与实现方法 | |
CN100426259C (zh) | 一种存储器文件数据虚拟存取方法 | |
US20090100237A1 (en) | Storage system that dynamically allocates real area to virtual area in virtual volume | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
US20150143021A1 (en) | Equalizing wear on storage devices through file system controls | |
US6629203B1 (en) | Alternating shadow directories in pairs of storage spaces for data storage | |
US11989423B2 (en) | Techniques for zoned namespace (ZNS) storage using multiple zones | |
CN106104515A (zh) | 利用非易失性存储器的文件***设计和故障恢复方法 | |
US9411692B2 (en) | Applying write elision | |
CN111414320B (zh) | 基于日志文件***的非易失内存构建磁盘cache的方法及*** | |
CN113704217A (zh) | 一种分布式持久性内存文件***中元数据及数据组织架构方法 | |
US11620062B1 (en) | Resource allocation techniques using a metadata log | |
CN113656396A (zh) | 非统一内存访问架构下的持久性内存索引构建方法 | |
US11868256B2 (en) | Techniques for metadata updating and retrieval | |
US11954352B2 (en) | Techniques for lock contention reduction in a log structured system | |
US11663128B1 (en) | Techniques for performing metadata updates for cache consistency | |
US20240232020A1 (en) | Replication techniques using a metadata log |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C05 | Deemed withdrawal (patent law before 1993) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130717 |