-
公开(公告)号: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.
-
3.
公开(公告)号: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.
-
公开(公告)号:US09946484B2
公开(公告)日:2018-04-17
申请号:US14815581
申请日:2015-07-31
Applicant: NetApp, Inc.
Inventor: Mark Regester , Randolph Sterns
CPC classification number: G06F3/0635 , G06F3/0613 , G06F3/0689 , G06F11/16
Abstract: A method includes: communicating input output (I/O) operations between a first storage controller and a storage drive, wherein the storage drive includes a first port and a second port, further wherein the first controller accesses the second port of the storage drive via a second storage controller; measuring bandwidth utilization on a first channel of a plurality of channels between the first storage controller and the storage drive; and in response to measuring the bandwidth utilization, changing a routing scheme for the I/O operations with respect to either the first port or the second port or both.
-
公开(公告)号: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.
-
6.
公开(公告)号:US20170031610A1
公开(公告)日:2017-02-02
申请号:US14815581
申请日:2015-07-31
Applicant: NetApp, Inc.
Inventor: Mark Regester , Randolph Sterns
IPC: G06F3/06
CPC classification number: G06F3/0635 , G06F3/0613 , G06F3/0689 , G06F11/16
Abstract: A method includes: communicating input output (I/O) operations between a first storage controller and a storage drive, wherein the storage drive includes a first port and a second port, further wherein the first controller accesses the second port of the storage drive via a second storage controller; measuring bandwidth utilization on a first channel of a plurality of channels between the first storage controller and the storage drive; and in response to measuring the bandwidth utilization, changing a routing scheme for the I/O operations with respect to either the first port or the second port or both.
Abstract translation: 一种方法包括:在第一存储控制器和存储驱动器之间传送输入输出(I / O)操作,其中所述存储驱动器包括第一端口和第二端口,其中所述第一控制器经由所述第一端口和第二端口访问所述存储驱动器的第二端口 第二存储控制器; 测量所述第一存储控制器和所述存储驱动器之间的多个通道的第一通道上的带宽利用率; 并且响应于测量带宽利用率,改变相对于第一端口或第二端口或两者的I / O操作的路由方案。
-
公开(公告)号:US11644978B2
公开(公告)日:2023-05-09
申请号:US17509523
申请日:2021-10-25
Applicant: NETAPP, INC.
Inventor: Randolph Sterns , Charles Binford , Joseph Blount , Joseph Moore , William P. Delaney
IPC: G06F3/06 , G06F12/0868
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.
-
公开(公告)号:US11500592B2
公开(公告)日:2022-11-15
申请号:US16707651
申请日:2019-12-09
Applicant: NetApp, Inc.
Inventor: William P. Delaney , Keith Moyer , Randolph Sterns , Joseph Moore , Joseph Blount , Charles Binford
IPC: G06F3/06
Abstract: A method, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.
-
公开(公告)号:US11175831B2
公开(公告)日:2021-11-16
申请号:US15496841
申请日:2017-04-25
Applicant: NETAPP, INC.
Inventor: Randolph Sterns , Charles Binford , Joseph Blount , Joseph Moore , William P. Delaney
IPC: G06F3/06 , G06F12/0868
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.
-
公开(公告)号:US20180364922A1
公开(公告)日:2018-12-20
申请号:US16110704
申请日:2018-08-23
Applicant: NetApp, Inc.
Inventor: Randolph Sterns
Abstract: A high availability storage controller monitors characteristics representative of I/O workload related to processor and mirroring channel utilization. These are input into a model of the system, which provides a threshold curve therefore. The storage controller compares the monitored characteristics against the threshold curve. In write-back mirroring mode, the storage controller determines to remain in that mode when the characteristics fall below the threshold curve and switch to write-through mode when the characteristics fall at or above the threshold curve. In write-through mode, the storage controller determines to remain in that mode when the characteristics fall at or above a lower threshold derived from the generated threshold curve and switch to write-back mirroring mode when the characteristics fall below the lower threshold. The storage controller may repeat this monitoring, comparing, and determining whether to switch over time for a feedback loop to provide a responsive and dynamic caching mode system.
-
-
-
-
-
-
-
-
-