-
公开(公告)号: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.
-
公开(公告)号: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.
-
13.
公开(公告)号: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.
-
14.
公开(公告)号:US20180107408A1
公开(公告)日:2018-04-19
申请号:US15496841
申请日:2017-04-25
Applicant: NETAPP, INC.
Inventor: Randolph Sterns , Charles Binford , Joseph Blount , Joseph Moore , William P. Delaney
IPC: G06F3/06 , G06F12/128 , G06F12/0811 , G06F12/0808
CPC classification number: G06F3/0617 , G06F3/061 , G06F3/0665 , G06F3/0689 , G06F12/0868 , G06F2212/1024 , G06F2212/1032 , G06F2212/263 , G06F2212/282 , G06F2212/286 , G06F2212/312
Abstract: A system shares I/O load between controllers in a high availability system. For writes, a controller determines based on one or more factors which controller will flush batches of data from write-back cache to better distribute the I/O burden. The determination occurs after the local storage controller caches the data, mirrors it, and confirms write complete to the host. Once it is determined which storage controller will flush the cache, the flush occurs and the corresponding metadata at a second layer of indirection is updated by that determined storage controller (whether or not it is identified as the owner of the corresponding volume to the host, while the volume owner updates metadata at a first layer of indirection). For a host read, the controller that owns the volume accesses the metadata from whichever controller(s) flushed the data previously and reads the data, regardless of which controller had performed the flush.
-
公开(公告)号:US20170300250A1
公开(公告)日:2017-10-19
申请号:US15131658
申请日:2016-04-18
Applicant: NetApp, Inc.
Inventor: Randolph Sterns , Charles Binford , William Delaney , Joseph Blount , Keith Moyer , Joseph Moore
CPC classification number: G06F3/0619 , G06F3/0605 , G06F3/0617 , G06F3/065 , G06F3/0683 , G06F11/1471 , G06F2201/805 , G06F2201/82 , G06F2201/84
Abstract: A system for tracking metadata changes and recovering from system interruptions is provided. 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.
-
公开(公告)号:US20170097875A1
公开(公告)日:2017-04-06
申请号:US14876063
申请日:2015-10-06
Applicant: NetApp, Inc.
Inventor: Martin Jess , Joseph Moore , Ziling Huang
IPC: G06F11/20
CPC classification number: G06F11/2069 , G06F11/1088 , G06F2201/805 , G06F2201/85
Abstract: A system, method, and machine-readable storage medium for recovering data in a distributed storage system are provided. In some embodiments, the method includes identifying a failing storage device of a first storage node having an inaccessible data segment. When it is determined that the inaccessible data segment cannot be recovered using a first data protection scheme, a first chunk of data associated with the inaccessible data segment is identified and a group associated with the first chunk of data is identified. A second chunk of data associated with the group is selectively retrieved from a second storage node such that data associated with an accessible data segment of the first storage node is not retrieved. The inaccessible data segment is recovered by recovering the first chunk of data using a second data protection scheme and the second chunk of data.
-
17.
公开(公告)号:US09547448B2
公开(公告)日:2017-01-17
申请号:US14188347
申请日:2014-02-24
Applicant: NETAPP, INC.
Inventor: Joseph Moore , Donald Humlicek , Jeffrey A. Stilger
IPC: G06F3/06
CPC classification number: G06F3/0611 , G06F3/061 , G06F3/0614 , G06F3/0619 , G06F3/064 , G06F3/0647 , G06F3/0659 , G06F3/0665 , G06F3/0685 , G06F3/0689 , G06F11/1076 , G06F12/0802 , G06F2212/1024 , G06F2212/60
Abstract: A system and method of transposed storage in RAID arrays includes a storage manager with an interface for receiving storage requests associated with multi-segment blocks stored in a storage array, a controller for processing the received storage requests and controlling the storage manager, and a write request handler. The storage array includes a plurality of storage devices for which consecutive logical addresses are assigned to different ones of the storage devices. The write request handler is configured to process block write requests and send segment write requests to the storage array based on the write requests so that each segment of a given multi-segment block is written to a single respective one of the storage devices in the storage array. In some embodiments, the storage manager further includes a read request handler configured to determine logical addresses of requested segments and send segment read requests to the storage array.
Abstract translation: 在RAID阵列中存储转置的系统和方法包括具有用于接收与存储在存储阵列中的多段块相关联的存储请求的接口的存储管理器,用于处理所接收的存储请求并控制存储管理器的控制器以及写入 请求处理程序。 存储阵列包括多个存储设备,其中连续的逻辑地址被分配给不同的存储设备。 写请求处理器被配置为基于写请求来处理块写请求并向存储阵列发送段写请求,使得给定多段块的每个段被写入存储器中的单个相应的一个存储设备 数组。 在一些实施例中,存储管理器还包括读取请求处理器,其被配置为确定所请求段的逻辑地址并向存储阵列发送段读取请求。
-
18.
公开(公告)号:US20150242139A1
公开(公告)日:2015-08-27
申请号:US14188347
申请日:2014-02-24
Applicant: NETAPP, INC.
Inventor: Joseph Moore , Donald Humlicek , Jeffrey A. Stilger
IPC: G06F3/06
CPC classification number: G06F3/0611 , G06F3/061 , G06F3/0614 , G06F3/0619 , G06F3/064 , G06F3/0647 , G06F3/0659 , G06F3/0665 , G06F3/0685 , G06F3/0689 , G06F11/1076 , G06F12/0802 , G06F2212/1024 , G06F2212/60
Abstract: A system and method of transposed storage in RAID arrays includes a storage manager with an interface for receiving storage requests associated with multi-segment blocks stored in a storage array, a controller for processing the received storage requests and controlling the storage manager, and a write request handler. The storage array includes a plurality of storage devices for which consecutive logical addresses are assigned to different ones of the storage devices. The write request handler is configured to process block write requests and send segment write requests to the storage array based on the write requests so that each segment of a given multi-segment block is written to a single respective one of the storage devices in the storage array. In some embodiments, the storage manager further includes a read request handler configured to determine logical addresses of requested segments and send segment read requests to the storage array.
Abstract translation: 在RAID阵列中存储转置的系统和方法包括具有用于接收与存储在存储阵列中的多段块相关联的存储请求的接口的存储管理器,用于处理所接收的存储请求并控制存储管理器的控制器以及写入 请求处理程序。 存储阵列包括多个存储设备,其中连续的逻辑地址被分配给不同的存储设备。 写请求处理器被配置为基于写请求来处理块写请求并向存储阵列发送段写请求,使得给定多段块的每个段被写入存储器中的单个相应的一个存储设备 数组。 在一些实施例中,存储管理器还包括读取请求处理器,其被配置为确定所请求段的逻辑地址并向存储阵列发送段读取请求。
-
19.
公开(公告)号:US20230229328A1
公开(公告)日:2023-07-20
申请号:US18191985
申请日:2023-03-29
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.
-
20.
公开(公告)号:US10802740B2
公开(公告)日:2020-10-13
申请号: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.
-
-
-
-
-
-
-
-
-