CN104272263A - 用于执行去重复操作的碎片控制 - Google Patents
用于执行去重复操作的碎片控制 Download PDFInfo
- Publication number
- CN104272263A CN104272263A CN201380022459.5A CN201380022459A CN104272263A CN 104272263 A CN104272263 A CN 104272263A CN 201380022459 A CN201380022459 A CN 201380022459A CN 104272263 A CN104272263 A CN 104272263A
- Authority
- CN
- China
- Prior art keywords
- deduplication
- fragment
- data set
- storage
- threshold value
- 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
Classifications
-
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在此介绍的技术能够用于文件系统的去重复操作,不会由于在所述文件系统中数据集的碎片而显著影响所述文件系统的读取性能。所述技术包括通过承载所述文件系统的存储服务器确定将会被引入到存储在所述文件系统中的数据集的碎片的级别,作为在所述数据集上执行去重复操作的结果。所述存储服务器接着将所述碎片的级别与一阈值比较,并基于比较所述碎片的级别与所述阈值的结果确定是否执行所述去重复操作。所述阈值表示在所述文件系统的所述数据集中的可接受的碎片的级别。
Description
相关申请交叉引用
本申请要求2012年2月29日提交的美国申请号13/408,051的优先权,其通过引用的方式被整体并入此文。
技术领域
本发明的至少一个实施例涉及由存储服务器存储的数据的去重复,且特别涉及在去重复的过程中控制被引入到数据集的碎片化级别。
背景技术
存储控制器是一种物理处理装置,用于存储和检索代表一个或多个主机的数据。网络存储控制器可被配置(例如,由硬件、软件、固件或它们的任何组合)以作为存储服务器操作,其为一个或多个联网客户端服务,以在一组大容量存储装置(诸如磁或光学存储磁盘、磁带,或闪存)中存储和管理数据。
大容量存储装置提供了一系列可存储数据的可寻址的位置。一些装置,例如磁带驱动器,仅允许存储位置被按顺序访问,而其他装置,诸如硬盘或闪存,允许随机访问。大容量存储装置可以被组合,以给予一具有某理想特性的单个装置更高层的印象。例如,独立磁盘冗余阵列(“RAID阵列”)可以包含在之中散布数据的两个或多个硬盘,以获得传输速度的增加、容错的改进或存储容量的简单增加。在RAID阵列中的各种装置上的数据放置(以及误差检测和校正信息的计算和存储)可以通过硬件和/或软件来管理。
许多同时代的数据处理系统消耗和/或产生大量数据。大容量存储装置,如硬盘驱动器通常被用来存储这些数据。为了跟上由这些处理系统所消耗和产生的数据量,大容量存储装置的存储容量和/或在大容量存储装置上的使用空间的效率可以被提高。一种用于增加在大容量存储装置上的空间使用效率的方法是执行消除存储在大容量存储装置上的冗余数据的去重复操作。
然而,去重复通常向被预先作为连续块存储在磁盘上的数据集引入碎片。每个可寻址的存储位置通常可以容纳多个数据字节,这样的位置被称为“块”。当数据集的数据块被分离和/或无读取顺序式存储时,数据集被称为是“被碎片化”。读取被碎片化数据集的过程可能造成存储系统执行多个读取操作以获得对应于数据集的数据块的内容。许多类型的大容量存储装置的机械性质限制了它们的速度为系统潜在处理速度的一小部分,特别是当数据集被碎片化并要求多次读取操作来检索数据集时。因为由去重复引起的碎片可能对存储系统性能产生负面影响,许多存储系统用户禁用去重复操作,因此不会从去重复的空间节省优势中受益。
因此,需要一种用于平衡去重复操作过程中引入碎片的影响和用户所期望的存储系统性能的技术。
发明内容
在此介绍的技术能够用于文件系统的去重复操作,不会由于在文件系统中数据集的碎片而显著影响文件系统的读取性能。在一个实施例中,承载文件系统的存储服务器确定将会被引入到存储在文件系统中的数据集的碎片的级别,以作为在数据集上进行去重复操作的结果。存储服务器接着将碎片的级别与一阈值比较,并确定是否基于比较的结果执行去重复操作。阈值表示在文件系统的数据集中的可接受的碎片的级别。
在一个实施例中,存储在文件系统中的数据的碎片的级别通过执行预读以计算在数据集上执行去重复操作后访问数据集所需的读取操作的数量以及通过计算碎片索引被确定,碎片索引是去重复操作后的读取操作的数量与访问一理想数据集的读取操作的数量的比值。理想数据集是指被存储在连续的物理数据块内并且能够以具有最低数量的读取操作被访问。碎片索引是由于去重复操作使得碎片增加的指示。
存储服务器可以通过确定物理卷块号(PVBN)的列表,对PVBN列表进行排序以及计算块的连续组数来计算在执行去重复操作后访问数据集的读取操作的数量,物理卷块号(PVBN)的列表将表示在去重复操作被执行后的数据集。
以上概括的技术的其它方面通过附图和下面的详细说明将是显而易见的。
附图说明
通过例子和非限制性附图对本发明的一个或多个实施例进行说明,在附图中,相同的引用代表相同的元件。
图1所示是网络存储系统的示例。
图2所示是可以实现一个或多个网络存储服务器的存储控制器的示例图。
图3示意性地示出了在存储服务器内的存储操作系统的体系结构的示例图。
图4A所示是文件系统中的文件的缓冲树的框图表示。
图4B所示是在文件系统上执行去重复过程后在文件系统中的文件的缓冲树的框图表示。
图5所示是用于确定是否执行去重复操作的过程的流程图。
图6所示是用于确定通过在数据集上执行去重复操作而将被引入的碎片的级别的流程图。
图7所示是在执行去重复操作之前计算在去重复后访问数据集的读取操作的数量的流程图。
具体实施方式
在本说明书中所提到的“实施例”、“一实施例”或类似的表达,表示在本发明的至少一实施例中包含所描述的特定的特征、结构或特性。在本说明书中出现的这类词汇不一定都是指相同的实施例。
图1所示是网络存储系统的示例,该系统包括多个客户端系统104、存储服务器108以及连接客户端服务器104和存储服务器108的网络106。如图1所示,存储服务器108与在大容量存储子系统105内的多个大容量存储装置112,诸如磁盘,建立连接。可选择地,一些或所有的大容量存储装置112可以是其它类型的存储器,诸如闪存、固态驱动器(SSD)、磁带存储器等等。但是,为了便于说明,存储装置112在此被假定为是磁盘。
存储服务器108可以是,例如,可得自公司的FAS-系列之一的存储服务器产品。客户端系统104通过网络106被连接到存储服务器108,网络106可以是分组交换网络,例如局域网(LAN)或广域网(WAN)。此外,存储服务器108可以经由交换结构(未示出)被连接到磁盘112,例如,交换结构可以是光纤分布式数据接口(FDDI)网络。值得注意的是,在网络数据存储环境中,任何其它合适的数量的存储服务器和/或大容量存储装置,和/或任何其它合适的网络技术,也可以被使用。
存储服务器108可以以一种传统的方式使得在磁盘112上的一部分或所有的存储空间可用于客户端系统104是。例如,每个磁盘112可以被实施,作为单独的磁盘、多个磁盘(例如,RAID组),或任何其它合适的大容量存储装置。在大容量存储子系统105内信息的存储可以被实施作为一个或多个存储卷,其包括配合以定义卷上的卷块号(VBN)空间的整体逻辑排列的物理存储磁盘112的集合。尽管不是必须的,每个卷一般与其自身的文件系统相关联。
与卷/文件系统相关联的磁盘通常被组成为一个或多个组,其中每个组可以作为独立(或廉价)磁盘冗余阵列(RAID)被操作。大多数RAID实现方式(如RAID-4级实现方式)通过跨越在RAID组中的给定数量的物理磁盘的数据“条带”的冗余写入和关于条带数据的奇偶校验信息的适当存储来增强数据存储的可靠性/完整性。RAID实现方式的一说明性的例子是RAID-4级实现方式,但应当理解的是,RAID实现方式的其它类型和级别可以根据本文描述的技术被使用。一个或多个RAID组一起形成集群。集群可以包含一个或多个卷。
图2所示是可以实施一个或多个网络存储服务器,例如,图1所示的存储服务器108的存储控制器的硬件体系结构的一示例的示意图。存储服务器是一个处理系统,其提供关于在大容量存储装置上,诸如大容量存储子系统105的磁盘112上的信息的存储、组织和检索的存储服务。在一个示例性实施例中,存储服务器108包括处理器子系统210,其包括一个或多个处理器。存储服务器108还包括内存220、网络适配器240和存储适配器250,全部由互连260互相连接。
存储服务器108可以被作为单-处理器或多-处理器存储服务器实施,该单-处理器的或多-处理器的存储服务器执行存储操作系统230以合逻辑地组织在磁盘112上的一个或多个文件系统中的数据,存储操作系统230优选地实施被称为存储管理器的高级别模块。
内存220说明性地包括由处理器210、适配器240和250可寻址的存储位置,以用于存储软件程序代码和与在此介绍的技术相关联的数据。处理器210和适配器可能,反过来,包括被配置来执行软件代码和操纵数据结构的处理元件和/或逻辑电路。通常位于内存中并且由处理元件执行的部分的存储操作系统230通过(除其他事项外)调用存储操作以支持由存储服务器108提供的存储服务来功能性地组织存储服务器108。对于本领域技术人员而言显而易见的是,其它处理器和内存实现方式,包括各种计算机可读存储介质,可以被用于存储和执行有关于在此介绍的技术的程序指令。
网络适配器240包括多个端口以通过点对点链路、广域网、经由公共网络(互联网)实施的虚拟专用网络或共享局域网络来连接存储服务器108与一个或多个客户端104或其他存储服务器。网络适配器240因此可以包括机械部件,以及将存储服务器108连接到网络106所需要的电学或信号电路。说明性地,网络106可以被作为以太网或光纤通道网络实施。每个客户端104可以根据预定义的协议(如传输控制协议/Internet协议(TCP/IP)),通过交换数据包或数据帧来经由网络106与存储服务器108进行通信。
存储适配器250与存储操作系统230协作以访问被客户端104请求的信息。信息可以被存储在任何类型的可写存储介质的附加阵列之上,可写存储介质如磁盘或磁带、光盘(例如,CD-ROM或DVD)、闪存、固态驱动器(SSD)、电子随机访问内存(RAM)、微机电和/或任何其它类似的用于存储信息(包括数据和奇偶校验信息)的介质。然而,如在本文中的示例性描述,信息被存储在磁盘112上。适配器250包括多个具有输入/输出(I/O)接口电路的端口,其经由诸如传统的高性能光纤通道连接拓扑结构的I/O互联布置与磁盘连接。
存储操作系统230便于对存储在磁盘112上的数据的客户端访问。在某些实施例中,存储操作系统230实现了随处写入文件系统,其与一个或多个虚拟化模块协作以“虚拟化”由磁盘112提供的存储空间。在某些实施例中,存储操作系统230的存储管理器310(图3)元件在逻辑上将信息组织为在磁盘112上的命名目录和文件的层次结构。每个“磁盘上的”文件可以被实现为被配置为存储信息的磁盘块集。如本文中所使用的,“文件”这个术语是指数据的任何逻辑容器。虚拟化模块可以允许存储管理器310进一步在逻辑上将信息组织为作为命名逻辑单元号(LUN)被导出的在磁盘上的块的层级结构。
图3示意性地示出了用在存储服务器108内的存储操作系统230的体系结构的示例图。在一个实施例中,存储操作系统230可以是Data ONTAPTM操作系统,其可以从NetApp公司获得,公司位于加州旧金山弯区,操作系统实现了随处写入文件布局(WAFLTM)文件系统。然而,另一存储操作系统可以选择性地被设计或改进,以根据本文所描述的技术使用。
存储操作系统230可被实现为用软件和/或固件进行编程的可编程电路,或作为专门设计的非可编程电路(即,硬件),或者是它们的组合。在如图所示的实施例中,存储操作系统230包括多个模块,或层。这些层包括存储管理器310,它是存储操作系统230的核心功能元件。存储管理器310向由存储服务器108管理的数据和来自客户端104的服务的读取和写入请求施加了一结构(例如,一个或多个文件系统)。
为了允许存储服务器通过网络106进行通信(例如,与客户端104),存储操作系统230还包括多协议层320和网络访问层330,逻辑上低于存储管理器310。多协议层320实现各种更高级别的网络协议,诸如网络文件系统(NFS)、通用互联网文件系统(CIFS)、超文本传输协议(HTTP)、因特网小型计算机系统接口(iSCSI),和/或备用/镜像协议,以使用户和/或应用程序能够获得存储在磁盘112上的数据。网络访问层330包括一个或多个网络驱动器以实现一个或多个较低级别的协议通过网络进行通信,诸如以太网、因特网协议(IP)、TCP/IP、光纤信道协议和/或用户数据报协议/因特网协议(UDP/IP)。
此外,为了允许该装置与存储子系统(例如,存储子系统105)进行通信,存储操作系统230包括存储访问层340和在逻辑上低于存储管理器310的相关联的存储驱动器层350。存储访问层340实现了较高级别的存储冗余算法,诸如RAID-4、RAID-5或RAID存储驱动器层350实现较低级别的存储装置访问协议,诸如光纤通道协议或小型计算机系统接口(SCSI)。
此外,在图3中所示是通过存储操作系统230、与读取或写入操作相关联、来自客户端接口至存储接口的数据流的路径360。因此,存储管理器310通过存储访问层340和存储驱动器层350访问存储子系统105。客户端104可以根据信息传递的客户端/服务器模型与存储服务器108交互。即,客户端104请求存储服务器108的服务,并且存储服务器可以通过网络106交换数据包以返回客户端请求的服务的结果。当以文件和目录的形式访问信息时,客户端可以通过在TCP/IP上使用基于文件的访问协议,诸如CIFS或NFS,来发出数据包。可选的,当以块的形式访问信息时,客户端可通过使用基于块的访问协议,如iSCSI和SCSI,来发出数据包。
在一个实施例中,存储管理器310实现了提供逻辑卷管理功能的基于消息的文件系统,用于访问存储在存储装置(诸如磁盘112)上的信息。即,除了提供文件系统语义,存储管理器310提供附加的存储效率功能,如去重复和压缩操作。存储管理器310可以实现WAFL文件系统(以下通常称“随处写入文件系统”),其具有磁盘上的格式表示,即基于块的使用,例如,4千字节(kB)块,以及采用索引节点(“inodes”)来识别文件和文件属性(诸如创建时间、访问权限、大小和块的位置)。文件系统采用文件来存储元数据,以描述其文件系统的布局;这些元数据文件包括,但不限于,索引节点文件。
在操作上,来自客户端104的请求被作为数据包通过计算机网络106转发至存储服务器108上,在那里被网络适配器240接收。(层330的)网络驱动器处理数据包并且,若是合适的,在转发至存储管理器310之前把它传送至多协议访问层用于附加的处理。在这里,存储管理器生成操作以加载(检索)来自磁盘112的请求数据。存储控制器接下来传送消息结构,包括RAID系统340的文件索引节点,文件索引节点被映射到磁盘标识符和磁盘块数并被发送至磁盘驱动器系统350的适当的驱动器(例如,SCSI驱动器)。磁盘驱动器从指定的磁盘112访问磁盘块数,并在内存220内加载请求的数据块用于通过存储服务器处理。根据请求的完成,存储服务器(以及操作系统)通过网络106向客户端104返回一回复。
虽然在图3中示出为单个单元,存储操作系统230可具有分布式体系结构。例如,多协议层320和网络访问层330可以被包含在N-模块(例如,N-刀片)内,而存储管理器310、存储访问层340和存储驱动层350被包含在单独的D-模块(例如,D-刀片)内。在这种情况下,N-模块和D模块(未示出)通过某种形式的物理互连进行通信(并且,可能的话,与其它N-模块和D-模块通信),并共同形成存储服务器节点。这样的存储服务器节点可以与一个或多个其它存储服务器节点连接以形成高度可扩展的存储服务器集群。
图4A是文件系统中的文件的缓冲树(buffer trees)的框图表示。文件系统中的每个文件被分配一个索引节点。例如,图4A包括通过存储在文件系统中的索引节点402-a和402-b表示的两个文件。每个索引节点402引用,例如使用指针,级别1(L1)间接块404。每个间接块404存储至少一个物理卷块号(PVBN)410。每个PVBN 410引用,例如使用指针,大容量存储装置408中的物理块406。如图4A所示,每个PVBN 410引用唯一的物理块406。例如,PVBN 410-b引用物理块406-b。应当注意的是,可能会存在间接块的附加级别(例如,级别2、级别3),这取决于文件的大小和布局。
图4B所示是在文件系统上执行去重复过程后,在文件系统中的文件的缓冲树的框图表示。在图4B所示的文件对应于图4A中的文件。如以上简要描述的,去重复操作消除了在文件系统中的冗余数据,以产生存储附加数据的空间。本质上,去重复删除了重复的数据块,仅在文件系统中存储唯一的块,并在此过程中产生少量的附加元数据。这个附加的元数据由存储管理器310使用来定位数据以响应请求。在一个实施例中,元数据包括散列值(例如,基于SHA-256)或“指纹”值以用于在文件系统中的每个块。在去重复过程中,数据块的散列值与其它存储在文件系统中的块的散列值比较,并且如果发现匹配(即,块是相同的),通过共享两个或多个间接块之间的物理块中的一个来消除冗余数据。
考虑图4A中由索引节点402-a和402-b表示的文件为例,如果经散列值比较后,数据块410-c,410-d和410-f被确定相同,则在去重复后一个块可以被共享而不是在磁盘上保留三个块。块共享在图4B中表示。在图4B的例子中,PVBN 410-d被指定为捐献者,而PVBN 410-c和410-f被指定为收受者。不再被收受者PVBN(即,块406-c和406-f)引用的底层物理块被释放且可以被存储管理器310使用以存储附加数据。
去重复操作通常向文件系统引入碎片。如图4A所示,存储管理器310按顺序向文件分配块(即,406-a,406-b,406-c)以提高存储系统的读取性能。当一个文件的块是连续的,文件可以由单一的读取操作访问,而不需要相对耗时的寻找操作来定位文件块。如图4B所示,当去重复操作共享数据的块,即文件的其余部分为非连续的,块的该连续布局块被打破。由于索引节点402-a引用被碎片化的块(即非连续块406-a,406-b和406-d),多次读取操作必须被执行以访问整个文件。
有一个观点认为,对存储系统性能的考虑压倒去重复的节省空间的好处,例如,当一个文件通过去重复变得非常零碎,该去重复读取文件导致在检索文件中的明显的延迟。这种糟糕的读取性能无法被必须经常访问数据的存储系统(例如,主存储系统)所接受的。因此,为了控制去重复所造成的的碎片而无需完全禁用去重复,存储管理器310在执行去重复之前可以确定读取性能将被降低至的程度,并决定是否根据该确定来执行去重复操作。
在一个实施例中,存储系统的用户(例如,存储管理员)可以选择可以被执行去重复操作所接受的碎片级别。例如,如果存储系统正被用于二级存储且用户知道对存储系统的读取/写入访问将不频繁时,用户可以设置去重复操作为最大节约空间和由于碎片而潜在地牺牲读取性能。然而,如果存储系统正被用作主存储,并且用户知道对存储系统的读取/写入访问将是频繁的,则用户可以设置去重复操为最高的性能且仅在碎片对存储系统的读取性能仅有一点或没有影响时执行去重复。同样地,可以有中间设置以在不同级别平衡节省存储空间和性能。
图5所示是用于确定是否执行去重复操作的流程图。本文所描述的过程被组织为在流程图中的操作顺序。然而,应当理解的是,至少有一些与这些过程相关联的操作可能被重新排序、补充或替代,但是仍执行相同的整体技术。
过程500始于步骤502,其中存储管理器310确定将通过在存储于文件系统中的文件上执行去重复操作而引入的碎片的级别。碎片的级别被确定而不必实际执行去重复操作。在步骤502中确定的碎片级别是指示性的读取性能,且如果去重复操作被执行,读取性能可以被预测。确定碎片的级别会参考图6和图7在下面更详细地描述。
在步骤504,通过存储管理器310将碎片级别与一阈值进行比较。如上面描述的那样,阈值可以由存储系统的用户确定并且可以依赖于存储系统的预期用途。例如,用作主存储的存储系统的阈值相对低于用作二级或备份存储的存储系统的阈值。在一个实施例中,相对较低的阈值指示存储系统的用户对可能与去重复引起的碎片相关的性能延迟更为敏感。根据碎片级别的计算方式,在一些实施例中,若碎片级别低于给定的阈值,可以得到良好的比较结果。
在图5所示的例子中,如果文件的碎片级别被确定为大于阈值,则过程继续到步骤508,其中存储管理器310确定去重复操作不应该被执行。然而,如果文件的碎片级别不高于阈值,则过程继续到步骤506,其中存储管理器310确定去重复操作应该被执行。去重复过程本身与本公开内容没有密切关系且任何已知的以及合适的去重复方法都可以被采用。图5所示的过程被重复用于在文件系统中的每个文件,以确定是否执行去重复操作。去重复操作可连续地或周期性地被执行。
图6所示是用于确定通过在文件上执行去重复操作而将被引入的碎片的级别的流程图。过程600是图5的步骤502的一个示例性实施例。过程始于步骤602,其中存储管理器310计算在去重复操作之后访问文件所需要的读取操作的数量。这个过程会参考图7在下面更详细地描述。
在步骤604中,存储管理器310计算访问一理想文件所需的读取操作的数量。该理想文件是存储在连续的物理数据块中的一个文件,并且能够以具有最低数量的读取操作被访问。在一个实施例中,访问文件所需的读取操作的数量可以通过执行预读操作来确定。预读操作从物理存储取出块,并将块存入内存。存储管理器可使用需要执行预读操作的读取操作的数量作为访问文件所需的读取操作的数量。
在一个实施例中,存储管理器310将写入分配到存储系统中的多达64个连续磁盘块的段,并且读取操作可以在多达64个连续块的磁盘的部分上被执行。因此,例如,对于一个由256个连续的磁盘块组成的理想文件,存储管理器310将会执行四个读取操作来获取整个文件。不过,在由去重复操作引入碎片后,该相同的预读可能会需要更多数量的读取操作。
在步骤606,存储管理器310计算在去重复操作后的文件的碎片索引。碎片索引是在去重复之后文件的碎片级别相对于理想文件的碎片的指示。使用来自上述的理想256块文件的例子,如果由于该文件是连续的而理想文件的预读采用四个读取操作以及由于碎片已被引入的去重复后的预读采用16个读取操作,则文件的碎片索引将是4。该碎片索引可以与一阈值进行比较,例如在图5的步骤504中,并且用于确定是否进行去重复操作。
图7所示是在执行去重复操作之前计算在去重复后访问文件的读取操作的数量的流程图。过程700是图6的步骤602的一示例性实施例。在步骤702中,存储管理器310定位所有捐献块的PVBN以在去重复操作中被使用。如上所述,存储系统为在文件系统中的每个块保留具有散列值或指纹的数据结构。在确定文件中的哪些块可以被替换为捐献块(通常称为块“共享”)时,存储管理器310将文件的每个块的散列值和在文件系统中的其他文件的被存储的散列值进行比较。
在可能地捐献块被定位之后,在步骤704,存储管理器310将原始文件的每个PVBN替换为表示文件的PVBN列表中的其相应的捐献块的PVBN,而无需实际将文件的逻辑块与PVBN关联。存储管理器接下来将PVBN列表排序,在步骤706,以表示在磁盘上的块的布局。在步骤708中,根据被排序的PVBN列表,存储管理器310计算在去重复之后访问文件所需要的读取操作的数量。在一个实施例中,存储管理器310通过对在PVBN列表中的连续块的组数进行计数来计算读取操作的数量。例如,如果有16组连续块,存储管理器310确定需要16个读取操作以在去重复之后访问文件。
上面介绍的技术可以由以软件和/或固件编程或配置的可编程电路来实现,或者它们可以完全通过特殊目的的“硬件”电路或以这些形式的组合来实现。这种特殊目的的电路(如果有)的形式可能是,例如,一个或多个专用应用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA),等等。
在执行此处介绍的技术中使用的软件或固件可被存储在机器可读存储介质上,并且可以由一个或多个通用目的或特殊目的的可编程微处理器执行。“机器可读存储介质”,作为在本文所用的术语,包括任何可以将信息以可由机器访问的形式(机器可以是,例如,计算机、网络装置、蜂窝电话、个人数字助理(PDA)、制造工具、具有一个或多个处理器的任何装置,等等)进行存储的机制。例如,一台机器可访问介质包括可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存装置),等等。
如本文所用的术语“逻辑”可包括,例如,特殊目的的硬线电路、与可编程电路结合的软件和/或固件,或它们的组合。
尽管已经参照特定的示例性实施例描述了本发明,但是应当认识到,本发明不限于所描述的实施例,而是可以在所附的权利要求的精神和范围内以修改和变型的方式来实施。因此,本说明书和附图应当在示例性的意义上而非在限制性的意义上进行理解。
Claims (24)
1.一种方法,包括:
由存储服务器计算将会被引入到被所述存储服务器存储的数据集的碎片的级别,作为在所述数据集上进行去重复操作的结果;以及
基于所述计算的结果,由所述存储服务器确定是否执行所述去重复操作。
2.根据权利要求1所述的方法,进一步包括,由所述存储服务器将所述碎片的级别与一阈值比较,以确定是否执行所述去重复操作。
3.根据权利要求1所述的方法,其中确定所述碎片的级别包括:
计算在所述去重复操作后访问所述数据集所需的读取操作的数量;
计算访问理想数据集所需的读取操作的数量;以及
基于所述去重复操作后访问所述数据集所需的所述读取操作的数量以及访问所述理想数据集所需的所述读取操作的数量,计算表示所述碎片的级别的碎片索引,其中确定是否执行所述去重复操作是基于所述碎片索引。
4.根据权利要求3所述的方法,其中所述碎片索引是在所述去重复操作之后访问所述数据集的所述读取操作的数量与访问所述理想数据集所需的所述读取操作的数量的比值。
5.根据权利要求3所述的方法,其中计算在所述去重复操作之后访问所述数据集所需的所述读取操作的数量包括:
确定将在所述去重复操作中被共享的在所述数据集中的多个块的每一个的捐献块的地址;
创建地址列表,所述地址列表包括在所述去重复操作之后的所述数据集的每一个所述块的地址;
对在所述地址列表中的所述地址按它们出现在存储装置上的顺序进行排序;
从所述地址列表计算在所述去重复操作之后访问所述数据集所需的所述读取操作的数量。
6.根据权利要求2所述的方法,其中所述阈值表示所述数据集的最大可接受的碎片的级别。
7.根据权利要求2所述的方法,进一步包括,执行所述去重复操作以响应确定所述碎片的级别低于所述阈值。
8.根据权利要求2所述的方法,进一步包括,不执行所述去重复操作以响应确定所述碎片的级别高于所述阈值。
9.根据权利要求2所述的方法,其中所述阈值的设定是基于用户的输入。
10.一种方法,包括:
计算表示碎片的级别的碎片索引,所述碎片将会被引入到被存储在存储服务器上的数据集,所述碎片索引作为在所述数据集上执行去重复操作的结果,其中所述碎片索引是在所述去重复操作之后访问所述数据集所需的读取操作的数量与访问理想数据集所需的读取操作的数量的比值;
将所述碎片索引与阈值比较,以确定是否执行所述去重复操作;以及
基于所述比较的结果执行所述去重复操作。
11.根据权利要求10所述的方法,进一步包括:
确定将在所述去重复操作中被共享的在所述数据集中的多个块的每一个的捐献块的地址;
创建地址列表,所述地址列表包括在所述去重复操作之后的所述数据集的每一个所述块的地址;
对在所述地址列表中的所述地址按它们出现在存储装置上的顺序进行排序;
从所述地址列表计算在所述去重复操作之后访问所述数据集所需的所述读取操作的数量。
12.根据权利要求10所述的方法,其中所述阈值表示所述数据集的最大可接受的碎片的级别。
13.根据权利要求10所述的方法,进一步包括:
执行所述去重复操作以响应确定所述碎片索引低于所述阈值。
14.根据权利要求10所述的方法,进一步包括:
不执行所述去重复操作以响应确定所述碎片索引高于所述阈值。
15.根据权利要求10所述的方法,其中所述阈值的设定是基于用户的输入。
16.一种存储服务器,包括:
处理器;
与所述处理器耦合的内存,所述内存存储当由所述处理器执行时引起所述处理器执行多个操作的指令,包括:
计算将会被引入到被所述存储服务器存储的数据集的碎片的级别,作为在所述数据集上进行去重复操作的结果;以及
基于所述计算的结果,确定是否执行所述去重复操作。
17.根据权利要求16所述的存储服务器,其中所述操作进一步包括将所述碎片的级别与阈值进行比较以确定是否执行所述去重复操作。
18.根据权利要求16所述的存储服务器,其中确定所述碎片的级别包括:
计算在所述去重复操作后访问所述数据集所需的所述读取操作的数量;
计算访问理想数据集所需的所述读取操作的数量;以及
基于所述去重复操作后访问所述数据集所需的所述读取操作的数量以及访问所述理想数据集所需的所述读取操作的数量,计算表示所述碎片的级别的碎片索引。
19.根据权利要求18所述的存储服务器,其中所述碎片索引是在所述去重复操作之后访问所述数据集的所述读取操作的数量与访问所述理想数据集所需的所述读取操作的数量的比值。
20.根据权利要求18所述的存储系统,其中计算在所述去重复操作后访问所述数据集所需的读取操作的数量包括:
确定将在所述去重复操作中被共享的在所述数据集中的多个块的每一个的捐献块的地址;
创建地址列表,所述地址列表包括在所述去重复操作之后的所述数据集的每一个所述块的地址;
对在所述地址列表中的所述地址按它们出现在存储装置上的顺序进行排序;
从所述地址列表计算在所述去重复操作之后访问所述数据集所需的所述读取操作的数量。
21.根据权利要求17所述的存储系统,其中所述阈值表示所述数据集的最大可接受的碎片的级别。
22.根据权利要求17所述的存储系统,其中所述操作进一步包括:
执行所述去重复操作以响应确定所述碎片的级别低于所述阈值。
23.根据权利要求17所述的存储系统,其中所述操作进一步包括:
不执行所述去重复操作以响应确定所述碎片的级别高于所述阈值。
24.根据权利要求17所述的存储服务器,其中所述阈值的设定是基于用户的输入。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/408,051 | 2012-02-29 | ||
US13/408,051 US9026503B2 (en) | 2012-02-29 | 2012-02-29 | Fragmentation control for performing deduplication operations |
PCT/US2013/027673 WO2013130410A1 (en) | 2012-02-29 | 2013-02-25 | Fragmentation control for performing deduplication operations |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104272263A true CN104272263A (zh) | 2015-01-07 |
Family
ID=49004399
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380022459.5A Pending CN104272263A (zh) | 2012-02-29 | 2013-02-25 | 用于执行去重复操作的碎片控制 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9026503B2 (zh) |
EP (1) | EP2820545B1 (zh) |
JP (1) | JP6122038B2 (zh) |
CN (1) | CN104272263A (zh) |
WO (1) | WO2013130410A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106066818A (zh) * | 2016-05-25 | 2016-11-02 | 重庆大学 | 一种提高重复数据删除备份系统恢复性能的数据布局方法 |
CN107632786A (zh) * | 2017-09-20 | 2018-01-26 | 杭州宏杉科技股份有限公司 | 一种数据重删的管理方法及装置 |
CN109359250A (zh) * | 2018-08-31 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 统一资源定位符处理方法、装置、服务器及可读存储介质 |
CN111459848A (zh) * | 2020-03-31 | 2020-07-28 | Oppo广东移动通信有限公司 | 一种文件碎片的整理方法、装置、存储介质及电子设备 |
CN113646741A (zh) * | 2019-04-19 | 2021-11-12 | Emc Ip控股有限公司 | 在文件夹/子文件夹结构中生成共同具有期望的可去重复性、压缩、聚类和通用性的文件集合并使其变形 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9933978B2 (en) | 2010-12-16 | 2018-04-03 | International Business Machines Corporation | Method and system for processing data |
US8732403B1 (en) * | 2012-03-14 | 2014-05-20 | Netapp, Inc. | Deduplication of data blocks on storage devices |
US8706971B1 (en) | 2012-03-14 | 2014-04-22 | Netapp, Inc. | Caching and deduplication of data blocks in cache memory |
JP6094267B2 (ja) * | 2013-03-01 | 2017-03-15 | 日本電気株式会社 | ストレージシステム |
US10127235B2 (en) * | 2013-03-06 | 2018-11-13 | Quest Software Inc. | Storage system deduplication with service level agreements |
US10642795B2 (en) * | 2013-04-30 | 2020-05-05 | Oracle International Corporation | System and method for efficiently duplicating data in a storage system, eliminating the need to read the source data or write the target data |
US10747440B2 (en) | 2014-09-24 | 2020-08-18 | Hitachi, Ltd. | Storage system and storage system management method |
CN105812405B (zh) * | 2014-12-29 | 2019-04-09 | 阿里巴巴集团控股有限公司 | 一种处理消息的方法、装置及系统 |
US10037336B1 (en) | 2015-03-27 | 2018-07-31 | EMC IP Holding Company LLC | Performing block deduplication using block sequence classifications |
CN105204783B (zh) * | 2015-10-13 | 2018-12-07 | 华中科技大学 | 一种基于数据生存期的固态盘垃圾回收方法 |
JP6406283B2 (ja) | 2016-03-01 | 2018-10-17 | 日本電気株式会社 | ストレージ装置およびストレージ方法 |
US10162554B2 (en) | 2016-08-03 | 2018-12-25 | Samsung Electronics Co., Ltd. | System and method for controlling a programmable deduplication ratio for a memory system |
JP7323801B2 (ja) | 2019-11-06 | 2023-08-09 | 富士通株式会社 | 情報処理装置および情報処理プログラム |
US11520695B2 (en) * | 2021-03-02 | 2022-12-06 | Western Digital Technologies, Inc. | Storage system and method for automatic defragmentation of memory |
US11809747B2 (en) * | 2021-12-21 | 2023-11-07 | Western Digital Technologies, Inc. | Storage system and method for optimizing write-amplification factor, endurance, and latency during a defragmentation operation |
US11809736B2 (en) | 2021-12-21 | 2023-11-07 | Western Digital Technologies, Inc. | Storage system and method for quantifying storage fragmentation and predicting performance drop |
US11847343B2 (en) | 2021-12-22 | 2023-12-19 | Western Digital Technologies, Inc. | Storage system and method for non-blocking coherent re-writes |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051252B2 (en) | 2005-03-11 | 2011-11-01 | Ross Neil Williams | Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system |
JP4915774B2 (ja) * | 2006-03-15 | 2012-04-11 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの制御方法 |
US7562203B2 (en) | 2006-09-27 | 2009-07-14 | Network Appliance, Inc. | Storage defragmentation based on modified physical address and unmodified logical address |
US7321962B1 (en) * | 2007-02-07 | 2008-01-22 | Network Appliance, Inc. | Technique for translating a hybrid virtual volume file system into a pure virtual file system data stream |
JP5060876B2 (ja) * | 2007-08-30 | 2012-10-31 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの消費電力低減方法 |
CN102203717A (zh) * | 2007-10-05 | 2011-09-28 | 帝斯科匹尔公司 | 固态驱动器优化器 |
US8447938B2 (en) * | 2008-01-04 | 2013-05-21 | International Business Machines Corporation | Backing up a deduplicated filesystem to disjoint media |
US8346730B2 (en) * | 2008-04-25 | 2013-01-01 | Netapp. Inc. | Deduplication of data on disk devices based on a threshold number of sequential blocks |
US9176978B2 (en) | 2009-02-05 | 2015-11-03 | Roderick B. Wideman | Classifying data for deduplication and storage |
US20110055471A1 (en) | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
JP4852135B2 (ja) * | 2009-09-30 | 2012-01-11 | 株式会社東芝 | データ分割方法及び装置 |
US8499131B2 (en) * | 2010-04-13 | 2013-07-30 | Hewlett-Packard Development Company, L.P. | Capping a number of locations referred to by chunk references |
US8244992B2 (en) | 2010-05-24 | 2012-08-14 | Spackman Stephen P | Policy based data retrieval performance for deduplicated data |
US20120036113A1 (en) | 2010-08-04 | 2012-02-09 | Mark David Lillibridge | Performing deduplication of input data at plural levels |
KR101652436B1 (ko) | 2010-08-17 | 2016-08-30 | 에스케이텔레콤 주식회사 | 분산파일 시스템에서의 중복 제거 장치 및 방법 |
CA2809224C (en) * | 2010-08-31 | 2016-05-17 | Nec Corporation | Storage system |
WO2012077162A1 (en) * | 2010-12-08 | 2012-06-14 | Hitachi, Ltd. | Storage apparatus |
US8825605B2 (en) * | 2011-10-11 | 2014-09-02 | Netapp, Inc. | Deduplication aware scheduling of requests to access data blocks |
US8615499B2 (en) * | 2012-01-27 | 2013-12-24 | International Business Machines Corporation | Estimating data reduction in storage systems |
-
2012
- 2012-02-29 US US13/408,051 patent/US9026503B2/en active Active
-
2013
- 2013-02-25 CN CN201380022459.5A patent/CN104272263A/zh active Pending
- 2013-02-25 WO PCT/US2013/027673 patent/WO2013130410A1/en active Application Filing
- 2013-02-25 EP EP13755844.1A patent/EP2820545B1/en active Active
- 2013-02-25 JP JP2014559940A patent/JP6122038B2/ja active Active
-
2015
- 2015-04-14 US US14/686,426 patent/US20150254268A1/en not_active Abandoned
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106066818A (zh) * | 2016-05-25 | 2016-11-02 | 重庆大学 | 一种提高重复数据删除备份系统恢复性能的数据布局方法 |
CN106066818B (zh) * | 2016-05-25 | 2019-05-17 | 重庆大学 | 一种提高重复数据删除备份系统恢复性能的数据布局方法 |
CN107632786A (zh) * | 2017-09-20 | 2018-01-26 | 杭州宏杉科技股份有限公司 | 一种数据重删的管理方法及装置 |
CN107632786B (zh) * | 2017-09-20 | 2020-04-07 | 杭州宏杉科技股份有限公司 | 一种数据重删的管理方法及装置 |
CN109359250A (zh) * | 2018-08-31 | 2019-02-19 | 阿里巴巴集团控股有限公司 | 统一资源定位符处理方法、装置、服务器及可读存储介质 |
CN113646741A (zh) * | 2019-04-19 | 2021-11-12 | Emc Ip控股有限公司 | 在文件夹/子文件夹结构中生成共同具有期望的可去重复性、压缩、聚类和通用性的文件集合并使其变形 |
CN111459848A (zh) * | 2020-03-31 | 2020-07-28 | Oppo广东移动通信有限公司 | 一种文件碎片的整理方法、装置、存储介质及电子设备 |
CN111459848B (zh) * | 2020-03-31 | 2023-10-31 | Oppo广东移动通信有限公司 | 一种文件碎片的整理方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2820545A1 (en) | 2015-01-07 |
WO2013130410A1 (en) | 2013-09-06 |
EP2820545B1 (en) | 2020-09-30 |
US9026503B2 (en) | 2015-05-05 |
US20130226881A1 (en) | 2013-08-29 |
US20150254268A1 (en) | 2015-09-10 |
EP2820545A4 (en) | 2015-11-11 |
JP6122038B2 (ja) | 2017-04-26 |
JP2015513741A (ja) | 2015-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104272263A (zh) | 用于执行去重复操作的碎片控制 | |
JP6198210B2 (ja) | コンピュータ実装された動的シャーディング方法 | |
CN106066896B (zh) | 一种应用感知的大数据重复删除存储系统及方法 | |
US9798728B2 (en) | System performing data deduplication using a dense tree data structure | |
US9207875B2 (en) | System and method for retaining deduplication in a storage object after a clone split operation | |
US8898117B2 (en) | System and method for file system level compression using compression group descriptors | |
US8290972B1 (en) | System and method for storing and accessing data using a plurality of probabilistic data structures | |
JP5932024B2 (ja) | 参照カウント伝播 | |
US8117388B2 (en) | Data distribution through capacity leveling in a striped file system | |
JP6050316B2 (ja) | データストレージシステムにおいて使用される方法及びネットワークストレージサーバ | |
US8180813B1 (en) | Content repository implemented in a network storage server system | |
US9565254B2 (en) | Object location service for network-based content repository | |
EP1880271B1 (en) | Data placement technique for striping data containers across volumes of a storage system cluster | |
US10956393B2 (en) | Data storage system and process for providing distributed storage in a scalable cluster system and computer program for such data storage system | |
US20110137966A1 (en) | Methods and systems for providing a unified namespace for multiple network protocols | |
US8171064B2 (en) | Methods and systems for concurrently reading direct and indirect data blocks | |
US9842114B2 (en) | Peer to peer network write deduplication | |
CN105051675A (zh) | 复制目标服务 | |
US8601214B1 (en) | System and method for write-back cache in sparse volumes | |
Fu et al. | Performance optimization for managing massive numbers of small files in distributed file systems | |
Wu et al. | Cloud storage performance enhancement by real-time feedback control and de-duplication | |
KR101531564B1 (ko) | 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 부하 분산 방법 및 시스템 | |
US20150134625A1 (en) | Pruning of server duplication information for efficient caching | |
US7584279B1 (en) | System and method for mapping block-based file operations to file level protocols | |
US8996487B1 (en) | System and method for improving the relevance of search results using data container access patterns |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150107 |