经去重复文件的细粒度部分召回的制作方法

文档序号:9291675阅读:339来源:国知局
经去重复文件的细粒度部分召回的制作方法
【专利说明】经去重复文件的细粒度部分召回
[0001] 置量
[0002] 数据优化(有时称为数据去重复)指的是减少需要储存在盘上或需要跨网络进行 传送的数据的物理字节量而不会损害原始数据的保真性或完整性。通过减少存储和/或传 送数据所需的资源,数据优化因此导致硬件成本(用于存储)以及数据管理成本(例如,备 份)的节约。随着数字存储的数据的数量增长,这些成本节约变得重要。
[0003] 数据优化通常使用用于消除持久存储的文件之内和之间的冗余的技术的组合。一 种数据去重复技术用于标识一个或多个文件中的数据的相同部分,并在物理上只存储一个 唯一区域(块),同时与文件相关联地维护对该块的引用。另一优化技术是例如通过存储经 压缩的块来将数据去重复与压缩混合。
[0004] 经优化/去重复的文件的数据因此被存储在块存储中的诸个块或压缩的块中,其 中文件本身被保留为包括对这些块的引用的"残根"。当用户或应用需要访问经去重复的 文件时,去重复引擎将数据带回到存储器中(被称为再融合(rehydration))或带回到盘中 (被称为召回)。当用户或应用修改该数据时,可能需要召回/再融合旧的经优化数据来确 保数据一致性和完整性。
[0005] 因为需要(可能)解压各块、因为分块引入的文件分割、以及因为块存储的位置/ 实现,再融合或召回的过程在数据访问时引入等待时间。完整文件召回引入高等待时间和 相对可观的I/O开销。当文件较大时,等待时间和资源消耗问题更为恶化。
[0006] 此外,在完整大文件已被召回时,去重复邀请可能需要再次将该文件去重复。这 要求大量资源并影响总体数据去重复吞吐量,考虑到典型的去重复系统需要管理的大量数 据,这也是一挑战。

【发明内容】

[0007] 提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表 性概念的选集。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在 以限制所要求保护的主题的范围的任何方式来使用。
[0008] 简言之,本文公开的主题的各方面涉及一种技术,其中细粒度部分召回机制被配 置成与文件相关联地维护跟踪哪一个或多个文件数据范围相对于包括块存储中的干净数 据的干净范围而言是脏范围(例如,因为数据写)的信息。每一个脏范围具有独立于文件 系统范围跟踪粒度的大小。
[0009] 在一个方面,描述了在一个或多个跟踪数据结构中跟踪部分召回的文件的哪些范 围是脏的。基于一个或多个转储清除准则,可将所述一个或多个跟踪结构从易失性存储器 中懒惰地转储清除到非易失性存储器。
[0010] 在一个方面,描述了优化打开文件,包括使用跟踪哪一个或多个文件范围是脏的 以及哪一些是干净的数据。在优化结束时,只有干净范围被截除。
[0011] 结合附图阅读以下【具体实施方式】,本发明的其他优点会变得显而易见。
[0012] 附图简沐
[0013] 作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或 相似的元素,附图中:
[0014] 图1是根据一个示例实施例的表示将经去重复文件的各范围召回成部分经去重 复文件和/或访问部分经去重复文件的数据的示例组件的框图。
[0015] 图2是根据一个示例实施例的可被用来跟踪相对大文件的更细颗粒的召回范围 的示例分层数据结构的表示。
[0016] 图3是根据一个示例实施例的可被用来跟踪相对大文件的更细颗粒的召回范围 的示例分层数据结构的另一表示。
[0017] 图4是根据一个示例实施例的表示延迟转储清除操作的的示例步骤的流程图。
[0018] 图5是根据一个示例实施例的将写数据从存储器转储清除到盘同时保留数据完 整性和崩溃一致性的延迟转储清除所涉及的组件和操作的表示。
[0019] 图6A-6C是根据一个不例实施例的在打开文件来写入时优化文件的表不。
[0020] 图7是根据一个示例实施例的表示在打开文件来写入的同时如何优化文件的流 程图。
[0021] 图8是表示示例性非限制联网环境的框图,其中可实现本文所描述的各种实施 例。
[0022] 图9是表示示例性非限制计算系统或运行环境的框图,其中可实现本文所描述各 种实施例的一个或多个方面。
【具体实施方式】
[0023] 美国专利申请S/N 12/970,848(微软代理案卷号331301. 01,现已于2014年2月 4日授权为美国专利No. 8, 645, 335) -般涉及只将经优化文件的各范围召回到盘(即,部 分召回),以减轻完整文件召回的性能惩罚和等待时间。尽管这在许多情况下工作极其良 好,但部分召回的粒度由文件系统范围跟踪粒度(例如,在NTFS稀疏文件的情况下是64KB) 来规定,从而在小随机写的情况下仍然导致高等待时间和IOPS(每秒输入/输出操作)浪 费。此外,在此描述的技术在每一个写上使用文件系统和盘转储清除,从而增加了等待时间 和IOPS开销。这些特性限制了部分召回解决方案支持具有小读/写简档(如VDI(虚拟桌 面基础结构)或其他超V (管理程序)场景)的工作负荷的能力。
[0024] 本文描述的技术的各方面一般涉及基于应用所写的跟踪数据范围(即"脏"范围) 的更细颗粒(细粒度)的部分召回,其中跟踪数据范围的粒度不依赖于范围跟踪的任何文 件系统粒度。如将理解的,这样的更细颗粒细粒度部分召回避免了在就地写入新数据时对 从块存储读取数据的需求(避免写时复制),并从而降低等待时间和IOPS问题。
[0025] 还提供了保留数据完整性和崩溃一致性的延迟转储清除机制,而无需在每一个写 时的转储清除,从而节省甚至更多IOPS并降低写的等待时间。在一个方面,还描述了支持 在数据去重复解决方案优化文件时进行细粒度部分召回的能力,基本上允许数据去重复解 决方案优化打开文件,同时支持在去重复系统优化它们时正被用户/应用修改的文件。
[0026] 应当理解,本文中的任何示例均是非限制的。因此,本发明不限制于在此描述的任 何具体的实施例、方面、概念、结构、功能或示例。相反,此处所描述的任何一个实施例、方 面、概念、结构、功能或示例都是非限制性的,可以以一般而言在计算和进行数据处理时提 供好处和优点的各种方式来使用本发明。
[0027] 图1示出相对于经去重复的文件102的细粒度部分召回示例概念。一般而言,当 文件被完全去重复时,该文件与元数据104相关联,该元数据104包括将块存储108中的文 件块(例如,C3、C6和C7)映射回逻辑文件的去重复(去重)元数据106。例如,对于完全 去重复,当应用110请求读取文件时,去重复机制112 (例如,实现在文件系统过滤器中)访 问块存储108中所引用的各个块(或者,当仅有一个块时访问一个块),并在适当的任何解 压之后,将块作为召回的文件数据来返回到存储器。从应用110的角度而言,数据是原封不 动的,因此若非延迟,应用110的用户不了解或不关心文件是否被去重复。
[0028] 存在使文件从经去重复的状态改变成非经去重复的状态的一个或多个操作。这包 括当用户或进程向文件写入时,使得位于写偏移位置处的经修改的文件数据不再匹配于否 则包含"干净"数据的一个或多个。完全召回整个文件以支持这样的文件修改通常是低效 的。上述美国专利申请SN. 12/970, 848提供只召回文件的一部分的更高效的"部分召回"操 作,但如上所述,具有各种低效性。
[0029] 如本文所描述的,提供了跟踪脏数据范围的细粒度部分召回机制114,其中脏范围 对应于写,且是在文件上分配且被去重复系统跟踪的范围。这将经去重复的文件留在部分 经去重复的状态(部分经去重复的文件102),包含脏(已写)文件数据116以及对干净数 据的引用,例如块存储中的各个块。所跟踪的脏文件范围的示例粒度可例如在512字节边 界上对齐(但在给定实现中,可以使用更小或更大的对齐边界)。粒度与文件系统范围跟踪 粒度无关,且因而一般可被显著地更细颗粒化。
[0030] 脏范围中的数据包含已写数据,并且如果这一已写数据与部分召回对齐相对齐 (例如,默认512字节),则对于这一范围,没有数据需要从块存储中被召回。如果文件修改 ("写")没有对齐,则边缘(脏数据之前和/或之后的任何数据)被从块存储召回,使得文 件数据范围被对齐;在这种情况下,脏范围包含旧数据(在来自块存储的未对齐的一个或 多个边缘中)和已写数据两者。注意,一些数据写(例如,超V写)是扇区对齐的,由此对 于跟踪脏范围而言无需召回。然而,如本文所使用的,"召回"的范围指的是脏范围,因为脏 数据在文件中,而不论来自块存储的任何实际召回是否发生。
[0031] 例如,在图1中,考虑512字节的范围是脏的,因为其对应数据中的至少一些自
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1