-
公开(公告)号:US11662929B2
公开(公告)日:2023-05-30
申请号:US17008978
申请日:2020-09-01
Applicant: NetApp, Inc.
Inventor: Randolph Sterns , Charles Binford , William P. Delaney , Joseph Blount , Reid Kaufmann , Joseph Moore
CPC classification number: G06F3/064 , G06F3/067 , G06F3/0607 , G06F3/0689 , G06F11/1004
Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
-
公开(公告)号:US11449239B2
公开(公告)日:2022-09-20
申请号:US17001294
申请日:2020-08-24
Applicant: NetApp, Inc.
Inventor: Randolph Sterns , Charles Binford , William Delaney , Joseph Blount , Keith Moyer , Joseph Moore
Abstract: A system for tracking metadata changes and recovering from system interruptions. With host I/O, corresponding metadata incremental changes are aggregated and stored in a write-ahead log before being performed to their in-memory buffers. As those buffers are flushed, checkpoints are created and stored in the log. As the log wraps to the start, older entries are overwritten after they are freed from any remaining dependencies by newer checkpoints. If metadata entities have not created new checkpoints, they are instructed to in order to free up space for new aggregated batches and checkpoints. After an interruption, the wrap point is located in the log. From the wrap point, the log is scanned backwards to provide checkpoints to metadata entities. The log is then scanned forwards to perform changes specified by aggregated batches. The metadata entities' volatile memory states are recovered to what they were before the interruption.
-
公开(公告)号:US10127117B2
公开(公告)日:2018-11-13
申请号:US15820586
申请日:2017-11-22
Applicant: NetApp, Inc.
Inventor: Charles Binford , Theresa Segura , William Hetrick
Abstract: A system and method for improving storage system performance by maintaining data integrity during bulk export to a cloud system is provided. A backup host reads a selected volume from the storage system via an I/O channel. The storage system remains online during bulk export and tracks I/O to the selected volume in a tracking log. The backup host compresses, encrypts, and calculates a checksum for each data block of the volume before writing a corresponding data object to export devices and sending a checksum data object to the cloud system. The devices are shipped to the cloud system, which imports the data objects and calculates a checksum for each. The storage system compares the imported checksums with the checksums in the checksum data object, and adds data blocks to the tracking log when errors are detected. An incremental backup is performed based on the contents of the tracking log.
-
公开(公告)号:US09990261B2
公开(公告)日:2018-06-05
申请号:US15142999
申请日:2016-04-29
Applicant: NetApp, Inc.
Inventor: Joseph Blount , William P. Delaney , Charles Binford , Joseph Moore , Randolph Sterns
CPC classification number: G06F11/2069 , G06F3/0619 , G06F3/065 , G06F3/0689 , G06F11/1092 , G06F2201/805 , G06F2211/104 , H04L67/1097
Abstract: Systems and techniques for recovering a storage array are disclosed. These systems and techniques include determining a size corresponding to a storage stripe of the storage array. Pieces assigned to the storage stripe are identified. A storage configuration corresponding to the pieces assigned to the storage stripe is detected. Ordinal information and parity information are determined corresponding to the pieces assigned to the storage stripe. The size determined corresponding to the storage stripe, identification of the pieces assigned to the storage stripe, the storage configuration, the ordinal information, and the parity information is stored in a data store to reconstruct lost or corrupted metadata corresponding to the storage array.
-
公开(公告)号:US09830233B2
公开(公告)日:2017-11-28
申请号:US15010101
申请日:2016-01-29
Applicant: NetApp, Inc.
Inventor: Charles Binford , Theresa Segura , William Hetrick
CPC classification number: G06F11/1464 , G06F3/0619 , G06F3/0665 , G06F3/067 , G06F17/30575 , G06F2201/84 , H04L9/12 , H04L67/1095 , H04L67/1097
Abstract: A system and method for improving storage system performance by maintaining data integrity during bulk export to a cloud system is provided. A backup host reads a selected volume from the storage system via an I/O channel. The storage system remains online during bulk export and tracks I/O to the selected volume in a tracking log. The backup host compresses, encrypts, and calculates a checksum for each data block of the volume before writing a corresponding data object to export devices and sending a checksum data object to the cloud system. The devices are shipped to the cloud system, which imports the data objects and calculates a checksum for each. The storage system compares the imported checksums with the checksums in the checksum data object, and adds data blocks to the tracking log when errors are detected. An incremental backup is performed based on the contents of the tracking log.
-
公开(公告)号:US20170316041A1
公开(公告)日:2017-11-02
申请号:US15142828
申请日:2016-04-29
Applicant: NetApp, Inc.
Inventor: William P. Delaney , Joseph Blount , Charles Binford , Joseph Moore , Randolph Sterns , Jeff Stilger
IPC: G06F17/30
CPC classification number: G06F16/2246 , G06F16/2237 , G06F16/9017
Abstract: A method for mapping a first address space to a second address space is provided. In some embodiments, the method includes creating a first array of lookup entries and one or more second arrays of metadata entries for maintaining an ordering among the lookup entries using a tree structure. Each of the metadata entries includes one or more data index values identifying a corresponding one of the lookup entries by its position in the first array and one or more metadata index values identifying a corresponding one of the metadata entries by its position in one of the one or more second arrays. The method further includes receiving a request including a lookup value, traversing the tree structure to locate a lookup entry corresponding to the lookup value, and when the lookup value is located among the lookup entries, using the located lookup entry to process the request.
-
7.
公开(公告)号:US20170308303A1
公开(公告)日:2017-10-26
申请号:US15135161
申请日:2016-04-21
Applicant: NetApp, Inc.
Inventor: Randolph Sterns , Charles Binford , William P. Delaney , Joseph Blount , Reid Kaufmann , Joseph Moore
Abstract: A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.
-
公开(公告)号:US12265716B2
公开(公告)日:2025-04-01
申请号:US18191985
申请日:2023-03-29
Applicant: NetApp, Inc.
Inventor: Randolph Sterns , Charles Binford , William P. Delaney , Joseph Blount , Reid Kaufmann , Joseph Moore
Abstract: The application relates to writing arbitrarily sized data extents using in-line descriptors, such as headers or footers, into physical blocks to describe the data extents in those physical blocks. Some data extents may be smaller than the size of a physical block, and some data extents may be larger than the size of a physical block. A given physical block therefore includes an in-line descriptor for a data extent in that block, indicating that the data extent starts within that block and also an offset from the beginning of the block to where the data extent starts. The in-line descriptor is included within the block so that when the block is read both the data and the descriptor are read, thereby eliminating performance penalty for reading the descriptor information.
-
公开(公告)号:US20170315924A1
公开(公告)日:2017-11-02
申请号:US15143135
申请日:2016-04-29
Applicant: NetApp, Inc.
Inventor: Joseph Blount , William P. Delaney , Charles Binford , Joseph Moore , Randolph Sterns
IPC: G06F12/10
CPC classification number: G06F12/10 , G06F11/3034 , G06F2212/1044 , G06F2212/154 , G06F2212/262 , G06F2212/263 , G06F2212/7201
Abstract: A method, a computing device, and a non-transitory machine-readable medium for allocating memory to data structures that map a first address space to a second is provided. In some embodiments, the method includes identifying, by a storage system, a pool of memory resources to allocate among a plurality of address maps. Each of the plurality of address maps includes at least one entry that maps an address in a first address space to an address in a second address space. An activity metric is determined for each of the plurality of address maps, and a portion of the pool of memory is allocated to each of the plurality of address maps based on the respective activity metric. The allocating of the portion of the memory pool to a first map may be performed in response to a merge operation being performed on the first map.
-
公开(公告)号:US20170147441A1
公开(公告)日:2017-05-25
申请号:US14947816
申请日:2015-11-20
Applicant: NetApp, Inc.
Inventor: Charles Binford , Reid Kaufmann , Jeff Weide
CPC classification number: G06F11/1451 , G06F3/0619 , G06F3/065 , G06F3/0665 , G06F3/067 , G06F11/1435 , G06F11/1464 , G06F11/1469 , G06F11/1471 , G06F2201/80 , G06F2201/84
Abstract: A system and method for recovering a dataset is provided that analyzes the dataset as it currently exists in order to determine those portions that do not need to be recovered. In some embodiments, the method includes identifying a dataset stored on a set of storage devices and corresponding to a first point in time. A request to restore the dataset to a second point in time is received, and a subset of the dataset is identified that is different between the first point in time and the second point in time. Data associated with the subset is selectively retrieved that corresponds to the second point in time, and the retrieved data is merged with the dataset stored on the set of storage devices. The two points in time may have any relationship, and in various examples, the method performs a roll-back or a roll-forward of the dataset.
-
-
-
-
-
-
-
-
-