-
公开(公告)号:US09529546B2
公开(公告)日:2016-12-27
申请号:US14150689
申请日:2014-01-08
Applicant: NetApp, Inc.
Inventor: Rajesh Sundaram , Jeffrey S. Kimmel , Blake H. Lewis
IPC: G06F3/0484 , G06F3/06
CPC classification number: G06F3/0641 , G06F3/0604 , G06F3/0608 , G06F3/0643 , G06F3/067 , G06F3/0688 , G06F2003/0697
Abstract: In one embodiment, a layered file system includes a volume layer and an extent store layer configured to provide sequential log-structured layout of data and metadata on solid state drives (SSDs) of one or more storage arrays. The data is organized as variable-length extents of one or more logical units (LUNs). The metadata includes volume metadata mappings from offset ranges of a LUN to extent keys and extent metadata mappings of the extent keys to storage locations of the extents on the SSDs. The extent store layer maintaining the extent metadata mappings determines whether an extent is stored on a storage array, and, in response to determination that the extent is stored on the storage array, returns an extent key for the stored extent to the volume layer to enable global inline de-duplication that obviates writing a duplicate copy of the extent on the storage array.
Abstract translation: 在一个实施例中,分层文件系统包括卷层和盘区存储层,其被配置为在一个或多个存储阵列的固态驱动器(SSD)上提供数据和元数据的顺序日志结构布局。 数据被组织为一个或多个逻辑单元(LUN)的可变长度范围。 元数据包括从LUN的偏移范围到扩展密钥的卷元数据映射以及扩展密钥到SSD上的扩展区的存储位置的扩展元数据映射。 维护盘区元数据映射的盘区存储层确定盘区是否存储在存储阵列上,并且响应于确定盘区存储在存储阵列上,将存储的盘区的盘区密钥返回到卷层以启用 全局内联重复数据删除,从而避免在存储阵列上写入扩展区的重复副本。
-
公开(公告)号:US20160110120A1
公开(公告)日:2016-04-21
申请号:US14518088
申请日:2014-10-20
Applicant: NetApp, Inc.
Inventor: Jayalakshmi Pattabiraman , Nikhil Mattankot , Deekshith Belchapada , Blake H. Lewis , Subramaniam Periyagaram , Satya Suresh Chouta Naga Veera , Rohit Singh , Rajesh Khandelwal , James Robert Morefield
IPC: G06F3/06
CPC classification number: G06F3/064 , G06F3/0613 , G06F3/0616 , G06F3/0683 , G06F7/06 , G06F12/02 , G06F12/023 , G06F2212/1016
Abstract: A first plurality of block identifiers is sorted based, at least in part, on a measure of spatial locality. A second plurality of block identifiers is sorted based, at least in part, on the measure of spatial locality. At least the first plurality of block identifiers and the second plurality of block identifiers are incrementally merged into a third plurality of block identifiers based, at least in part, on the measure of spatial locality. A block of data corresponding to metadata associated with a plurality of block identifiers of the third plurality of block identifiers is updated.
Abstract translation: 至少部分地基于空间局部性的度量来排序第一多个块标识符。 至少部分地基于空间局部性的度量来排序第二多个块标识符。 至少部分地基于空间局部性的度量,至少第一多个块标识符和第二多个块标识符被递增地合并到第三多个块标识符中。 对应于与第三多个块标识符的多个块标识符相关联的元数据的数据块被更新。
-
13.
公开(公告)号:US20160070495A1
公开(公告)日:2016-03-10
申请号:US14929018
申请日:2015-10-30
Applicant: NetApp, Inc.
Inventor: Subramaniam Periyagaram , Sandeep Yadav , Blake H. Lewis , Rickard E. Faith
CPC classification number: G06F3/0619 , G06F3/061 , G06F3/064 , G06F3/0641 , G06F3/065 , G06F3/067 , G06F3/0689 , G06F11/00 , G06F11/2056 , G06F12/023 , G06F12/121 , G06F2211/1014 , G06F2212/1044 , G06F2212/401 , H04L67/1097
Abstract: A system and method for logically organizing compressed data. In one aspect, a destination storage server receives a write request that includes multiple data blocks and specifies corresponding file block numbers. An extent-based file system executing on the storage server accesses intermediate block entries that each associates one of the file block numbers with a respective extent block number. The file system, in cooperation with a compression engine, compresses the data blocks into a set of one or more compressed data blocks. The file system stores the compressed data blocks at physical locations corresponding to physical block numbers and allocates, within an extent map, pointers from an extent ID to the extent block numbers, and pointers from the extent ID to the physical block numbers.
Abstract translation: 一种用于逻辑组织压缩数据的系统和方法。 一方面,目的地存储服务器接收包含多个数据块的写请求,并指定相应的文件块号。 在存储服务器上执行的基于范围的文件系统访问中间块条目,每个条目将文件块号码之一与相应的扩展块号码相关联。 与压缩引擎协作的文件系统将数据块压缩成一组一个或多个压缩数据块。 文件系统将压缩数据块存储在对应于物理块号码的物理位置处,并且在盘区图中分配从盘区ID到块号码的指针,以及从盘区ID到物理块号的指针。
-
公开(公告)号:US09268502B2
公开(公告)日:2016-02-23
申请号:US14027994
申请日:2013-09-16
Applicant: NetApp, Inc.
Inventor: Ling Zheng , Blake H. Lewis , Kayuri H. Patel
CPC classification number: G06F17/30327 , G06F3/0611 , G06F3/0619 , G06F3/0638 , G06F3/0641 , G06F3/0655 , G06F3/0665 , G06F3/067 , G06F3/0689 , G06F17/30 , G06F17/30292
Abstract: In one embodiment, a node coupled to one or more storage devices executes a storage input/output (I/O) stack having a volume layer. The volume layer manages volume metadata embodied as mappings from offsets of a logical unit (LUN) to extent keys associated with storage locations for extents on the one or more storage devices. Volume metadata is maintained as a dense tree metadata structure representing successive points in time. The dense tree metadata structure has multiple levels, wherein a top level of the dense tree metadata structure represents newer volume metadata changes and descending levels of the dense tree metadata structure represent older volume metadata changes. The node accesses a latest version of changes to the volume metadata by searching from the top level to the descending levels in the dense tree metadata structure.
Abstract translation: 在一个实施例中,耦合到一个或多个存储设备的节点执行具有体积层的存储输入/输出(I / O)堆栈。 卷层管理体现为从逻辑单元(LUN)的偏移到与一个或多个存储设备上的范围的存储位置相关联的扩展密钥的映射的卷元数据。 卷元数据被保持为表示连续时间点的密集树元数据结构。 密集树元数据结构具有多个层次,其中密集树元数据结构的顶层表示较新的卷元数据更改,密集树元数据结构的下降层表示较旧的卷元数据更改。 节点通过从密级树元数据结构中的顶层到下行级别进行搜索来访问对卷元数据的最新版本的更改。
-
公开(公告)号:US09256378B2
公开(公告)日:2016-02-09
申请号:US13901385
申请日:2013-05-23
Applicant: NetApp, Inc.
Inventor: Ling Zheng , Blake H. Lewis , Daniel W. Ting , Robert M. English , Stephen L. Manley
CPC classification number: G06F3/0641 , G06F3/0608 , G06F3/0683
Abstract: A method for sharing data blocks in a hierarchical file system in a storage server includes allocating a plurality of data blocks in the file system, and sharing data blocks in the file system, without using a persistent point-in-time image, to avoid duplication of data blocks. A method for identifying data blocks that can be shared includes computing a fingerprint for each of multiple data blocks to be written to a storage facility and storing the fingerprint with information identifying the data block in an entry in a set of metadata. The set of metadata is used to identify data blocks which are duplicates.
Abstract translation: 一种用于在存储服务器中的分层文件系统中共享数据块的方法包括在文件系统中分配多个数据块,并且在不使用持久时间点图像的情况下共享文件系统中的数据块,以避免重复 的数据块。 一种用于识别可共享的数据块的方法包括:计算要写入存储设施的多个数据块中的每一个的指纹,以及将标识数据块的信息存储在一组元数据中的条目中。 元数据集用于识别重复的数据块。
-
16.
公开(公告)号:US09201918B2
公开(公告)日:2015-12-01
申请号:US14084137
申请日:2013-11-19
Applicant: NetApp, Inc.
Inventor: Ling Zheng , Blake H. Lewis
CPC classification number: G06F3/061 , G06F3/0604 , G06F3/0644 , G06F3/0646 , G06F3/0685 , G06F3/0688 , G06F17/30327
Abstract: In one embodiment, a node of a cluster executing a storage input/output (I/O) stack having a volume layer, stores a multi-level dense tree metadata structure. Each level of the dense tree metadata structure includes volume metadata entries for storing volume metadata. One or more non-volatile logs (NVLogs) are updated. The one or more NVLogs including a volume layer log configured to record changes to the volume metadata, wherein volume metadata entries inserted into a top-level of the dense tree metadata structure are recorded in the volume layer log. The node writes volume metadata entries from the volume layer log to one or more storage devices to be stored as extents.
Abstract translation: 在一个实施例中,执行具有卷层的存储输入/输出(I / O)堆栈的集群的节点存储多级密集树元数据结构。 密集树元数据结构的每一级包括用于存储卷元数据的卷元数据条目。 一个或多个非易失性日志(NVLogs)被更新。 一个或多个NVLog,包括配置为记录卷元数据的更改的卷层日志,其中插入到密集树元数据结构的顶层的卷元数据条目被记录在卷层日志中。 节点将卷元数据条目从卷层日志写入一个或多个存储设备以作为扩展区存储。
-
公开(公告)号:US10042853B2
公开(公告)日:2018-08-07
申请号:US15239125
申请日:2016-08-17
Applicant: NetApp, Inc.
Inventor: Rajesh Sundaram , Stephen Daniel , Jeffrey S. Kimmel , Blake H. Lewis
Abstract: A flash-optimized, log-structured layer of a file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The log-structured layer of the file system provides sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging variable compression and variable length data features of the storage I/O stack. The data may be organized as an arbitrary number of variable-length extents of one or more host-visible logical units (LUNs) served by the nodes. The metadata may include mappings from host-visible logical block address ranges (i.e., offset ranges) of a LUN to extent keys, as well as mappings of the extent keys to SSD storage locations of the extents. The storage location of an extent on SSD is effectively “virtualized” by its mapped extent key (i.e., extent store layer mappings) such that relocation of the extent on SSD does require update to volume layer metadata (i.e., the extent key sufficiently identifies the extent).
-
公开(公告)号:US20180095685A1
公开(公告)日:2018-04-05
申请号:US15820004
申请日:2017-11-21
Applicant: NetApp, Inc.
Inventor: Janice D'Sa , Ling Zheng , Blake H. Lewis
CPC classification number: G06F3/0619 , G06F3/0607 , G06F3/0626 , G06F3/0644 , G06F3/0665 , G06F3/067 , G06F3/0689 , H04L67/1097
Abstract: A N-way merge technique efficiently updates metadata in accordance with a N-way merge operation managed by a volume layer of a storage input/output (I/O) stack executing on one or more nodes of a cluster. The metadata is embodied as mappings from logical block addresses (LBAs) of a logical unit (LUN) accessible by a host to durable extent keys, and is organized as a multi-level dense tree. The mappings are organized such that a higher level of the dense tree contains more recent mappings than a next lower level, i.e., the level immediately below. The N-way merge operation is an efficient (i.e., optimized) way of updating the volume metadata mappings of the dense tree by merging the mapping content of all three levels in a single iteration, as opposed to merging the content of the first level with the content of the second level in a first iteration of a two-way merge operation and then merging the results of the first iteration with the content of the third level in a second iteration of the operation.
-
19.
公开(公告)号:US20160357776A1
公开(公告)日:2016-12-08
申请号:US15239125
申请日:2016-08-17
Applicant: NetApp, Inc.
Inventor: Rajesh Sundaram , Stephen Daniel , Jeffrey S. Kimmel , Blake H. Lewis
CPC classification number: G06F17/30138 , G06F3/0604 , G06F3/0608 , G06F3/0616 , G06F3/064 , G06F3/0643 , G06F3/0644 , G06F3/0647 , G06F3/0659 , G06F3/0679 , G06F3/0685 , G06F3/0688 , G06F12/0246 , G06F17/30185 , G06F17/30218 , G06F2003/0697 , G06F2212/2022 , G06F2212/7208
Abstract: A flash-optimized, log-structured layer of a file system of a storage input/output (I/O) stack executes on one or more nodes of a cluster. The log-structured layer of the file system provides sequential storage of data and metadata (i.e., a log-structured layout) on solid state drives (SSDs) of storage arrays in the cluster to reduce write amplification, while leveraging variable compression and variable length data features of the storage I/O stack. The data may be organized as an arbitrary number of variable-length extents of one or more host-visible logical units (LUNs) served by the nodes. The metadata may include mappings from host-visible logical block address ranges (i.e., offset ranges) of a LUN to extent keys, as well as mappings of the extent keys to SSD storage locations of the extents. The storage location of an extent on SSD is effectively “virtualized” by its mapped extent key (i.e., extent store layer mappings) such that relocation of the extent on SSD does require update to volume layer metadata (i.e., the extent key sufficiently identifies the extent).
Abstract translation: 存储输入/输出(I / O)堆栈的文件系统的闪存优化的日志结构化层在集群的一个或多个节点上执行。 文件系统的日志结构化层在集群中的存储阵列的固态驱动器(SSD)上提供数据和元数据(即,日志结构化布局)的顺序存储,以减少写入放大,同时利用可变压缩和可变长度 存储I / O堆栈的数据特征。 数据可以被组织为由节点服务的一个或多个主机可见逻辑单元(LUN)的可变长度范围的任意数量。 元数据可以包括从LUN到扩展密钥的主机可见逻辑块地址范围(即,偏移范围)的映射,以及扩展密钥到扩展区的SSD存储位置的映射。 SSD上的盘区的存储位置被其映射的盘区密钥(即,盘区存储层映射)有效地“虚拟化”,使得SSD上盘区的重新定位需要更新到卷层元数据(即,扩展密钥足够地识别 程度)。
-
公开(公告)号:US09471248B2
公开(公告)日:2016-10-18
申请号:US14838614
申请日:2015-08-28
Applicant: NetApp, Inc.
Inventor: Ling Zheng , Blake H. Lewis , Kayuri H. Patel
CPC classification number: G06F3/065 , G06F3/0604 , G06F3/0619 , G06F3/0659 , G06F3/067 , G06F3/0685 , G06F3/0688 , G06F3/0689 , G06F11/1464 , G06F17/30575 , G06F2201/84 , G06F2212/262
Abstract: In one embodiment, a node coupled to one or more storage devices executes a storage input/output (I/O) stack having a volume layer, a persistence layer and an administration layer that interact to create a copy of a parent volume associated with a storage container on the one or more storage devices. A copy create start message is received at the persistence layer from the administration layer. The persistence layer ensures that dirty data for the parent volume is incorporated into the copy of the parent volume. New data for the parent volume received at the persistence layer during creation of the copy of the parent volume is prevented from incorporation into the copy of the parent volume. A reply to the copy create start message is sent from the persistence layer to the administration layer to initiate the creation of the copy of the parent volume at the volume layer.
Abstract translation: 在一个实施例中,耦合到一个或多个存储设备的节点执行具有卷层,持久层和管理层的存储输入/输出(I / O)堆栈,所述卷层,持久层和管理层进行交互以创建与 存储容器在一个或多个存储设备上。 在管理层的持久层收到复制创建开始消息。 持久层确保父卷的脏数据合并到父卷的副本中。 在创建父卷的副本期间,在持久层处收到的父卷的新数据将被阻止并入父卷的副本。 将复制创建开始消息的答复从持久层发送到管理层,以启动在卷层创建父卷的副本。
-
-
-
-
-
-
-
-
-