Patents by Inventor Peter F. Corbett

Peter F. Corbett has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7849057
    Abstract: An on-disk structure of a file system has the capability to efficiently manage and organize data containers, such as snapshots, stored on a storage system. A multi-bit, monotonically increasing, snapshot identifier (“snapid”) is provided that represents a snapshot and that increases every time a snapshot is generated for a volume of the storage system. The snapid facilitates organization of snapshot metadata within, e.g., a data structure used to organize metadata associated with snapshot data. In the illustrative embodiment, the data structure is a balanced tree structure configured to index the copy-out snapshot data blocks. The snapid is also used to determine which blocks belong to which snapshots. To that end, every block that is used in a snapshot has an associated “valid-to” snapid denoting the newest snapshot for which the block is valid. The oldest snapshot for which the block is valid is one greater than the valid-to field of the next older block at the same file block number.
    Type: Grant
    Filed: March 30, 2007
    Date of Patent: December 7, 2010
    Assignee: NetApp, Inc.
    Inventors: Michael Kazar, Peter F. Corbett
  • Patent number: 7743210
    Abstract: A system and method performs cross stripe write operations to a striped volume set (SVS) comprising of a plurality of volumes. A cross stripe write operation is directed to a first volume striping module (VSM) serving a first data volume where the entire write data of the operation is written to the volume. The first VSM then forwards excess data that extends beyond the boundary of a stripe to a second VSM for storage on a second data volume.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: June 22, 2010
    Assignee: NetApp, Inc.
    Inventors: Richard P. Jernigan, IV, Robert Wyckoff Hyer, Jr., Peter F. Corbett
  • Patent number: 7698501
    Abstract: A storage system architecture comprises one or more volumes distributed across the plurality of nodes interconnected as a cluster. The volumes are organized as a striped volume set (SVS) and configured to store content of data containers served by the cluster in response to data access requests issued by clients. The content of each data container is apportioned among the volumes of the SVS to thereby improve efficiency and storage service provided by the cluster. Each data container is implemented on each of the volumes of the SVS as a sparse data container which stores data amongst sections of sparseness within the data container.
    Type: Grant
    Filed: December 1, 2005
    Date of Patent: April 13, 2010
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Richard P. Jernigan, IV
  • Publication number: 20100050015
    Abstract: A method for recovering from three failed data storage devices is disclosed. A plurality of data storage devices hold data, and a row parity storage device holds row parity for them. The data storage devices and the row parity storage device form a set of storage devices. A diagonal parity storage device and an anti-diagonal parity storage device hold parity computed diagonally over the set of storage devices. In the event of a failure of three data storage devices of the set of storage devices, a first failed storage device is chosen for first restoration. A missing block of the first failed storage device is computed by using the remaining set of storage devices, and the diagonal parity storage device, and the anti-diagonal parity storage device. The remaining two failed storage devices are restored by a diagonal parity restoration technique.
    Type: Application
    Filed: November 6, 2009
    Publication date: February 25, 2010
    Inventors: Peter F. Corbett, Atul Goel
  • Patent number: 7657537
    Abstract: A system and method specifies batch execution ordering of requests in a cluster of storage systems or nodes. Each node is generally organized as a network element and a disk element. One or more sessions are established between the elements in the cluster. Each session comprises a plurality of channels disposed over connections, wherein each channel enables multiple requests to be sent over a connection. Each request is identified by a unique identifier (“request id”) that is generally defined as the combination of a channel number and a sequence number. The request id is extended to include a batch number that provides an execution ordering directive within a channel. All requests with the same batch number in a channel can be executed in arbitrary order or concurrently. Ordering is imposed only when the batch number changes, e.g., increases.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: February 2, 2010
    Assignee: NetApp, Inc.
    Inventor: Peter F. Corbett
  • Patent number: 7647451
    Abstract: A technique places content, such as data, of one or more data containers on volumes of a striped volume set (SVS). The placement of data across the volumes of the SVS allows specification of a deterministic pattern of fixed length. That is, the pattern determines a placement of data of a data container that is striped among the volumes of the SVS. The placement pattern is such that the stripes are distributed exactly or nearly equally among the volumes and that, within any local span of a small multiple of the number of volumes, the stripes are distributed nearly equally among the volumes. The placement pattern is also substantially similar for a plurality of SVSs having different numbers of volumes.
    Type: Grant
    Filed: April 24, 2008
    Date of Patent: January 12, 2010
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Robert M. English, Steven R. Kleiman
  • Patent number: 7640484
    Abstract: A triple parity (TP) technique reduces overhead of computing diagonal and anti-diagonal parity for a storage array adapted to enable efficient recovery from the concurrent failure of three storage devices in the array. The diagonal parity is computed along diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the diagonal parity sets except one is stored on the diagonal parity disk. Similarly, the anti-diagonal parity is computed along anti-diagonal parity sets that collectively span all data disks and a row parity disk of the array. The parity for all of the anti-diagonal parity sets except one is stored on the anti-diagonal parity disk. The TP technique provides a uniform stripe depth and an optimal amount of parity information.
    Type: Grant
    Filed: December 15, 2005
    Date of Patent: December 29, 2009
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Atul Goel
  • Patent number: 7627715
    Abstract: A method for constructing an extended array of storage devices that enables storage of more than one parity block per stripe on a single device of the array is disclosed. Each device is divided into blocks. The blocks are organized into stripes across the devices, wherein each stripe contains a first number of parity blocks from each of a second number of parity storage devices of the array. Data blocks are stored on a third number of data storage devices, to thereby construct the array to enable storage of more than one parity block per stripe on a single device, wherein the extended array is recoverable from any one or two storage device failures.
    Type: Grant
    Filed: January 31, 2005
    Date of Patent: December 1, 2009
    Assignee: NetApp, Inc.
    Inventor: Peter F. Corbett
  • Patent number: 7617370
    Abstract: Provided is a method and system for data allocation within a storage system architecture. One or more nodes of the storage system architecture provides access to striped data stored on a striped volume set. Each node can store a volume of the striped volume set. Further, the striped volume set is identified by a striping table. When modifying the storage system architecture, such as adding a volume to, or removing a volume from, the striped volume set, the striping table is rearranged to accurately identify the location of striped data on the striped volume set. At least one restriping process implemented on the striping table affects the volume utilization efficiency, hot-spotting behavior, and distribution efficiency of the striped volume set.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: November 10, 2009
    Assignee: NetApp, Inc.
    Inventors: Richard P. Jernigan, IV, Allen Tracht, Peter F. Corbett
  • Patent number: 7603553
    Abstract: A system and method to make file handles opaque to other network devices is provided. The system and method encrypts a file handle after it is generated and returns the encrypted file handle to a requesting client. The system and method may also generate a hash table storing hash key, a copy of the encrypted file handle and a copy of the unencrypted file handle. Upon a later receipt of an encrypted file handle, the system and method may hash the encrypted file handle to identify an appropriate hash table entry and it's associated unencrypted hash key. Alternately, the system may decrypt every received encrypted file handle and not utilize a hash table.
    Type: Grant
    Filed: April 25, 2003
    Date of Patent: October 13, 2009
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, David B. Noveck
  • Patent number: 7577692
    Abstract: The present invention provides a system and method for reserving space to guarantee file writability in a file system supporting PCPIs. An administrator of a storage system implants a set of space reservation policies to ensure that clients of the storage system do not receive an out of space error in response to overwriting a section of a particular file.
    Type: Grant
    Filed: April 25, 2003
    Date of Patent: August 18, 2009
    Assignee: NetApp, Inc.
    Inventors: Peter F. Corbett, Cheryl Thompson, Robert M. English, Jeffrey L. Heller
  • Patent number: 7509525
    Abstract: A method for storing data for correction of multiple data storage failures in a storage array is presented. The storage array is organized as a plurality of sub-arrays, each sub-array including a set of data storage devices and a plurality of local parity storage blocks, each of the plurality of local storage blocks storing parity information for a corresponding sub-array. A plurality of diagonal parity sets is computed, one diagonal parity set for each sub-array. A global diagonal parity is computed by logically combining together a plurality of the diagonal parity sets. The global diagonal parity is stored in a plurality of global diagonal parity storage blocks.
    Type: Grant
    Filed: June 2, 2006
    Date of Patent: March 24, 2009
    Assignee: Network Appliance, Inc.
    Inventors: Steven R. Kleiman, Robert M. English, Peter F. Corbett
  • Publication number: 20090024814
    Abstract: A technique provides an administrative path for accessing a writeable master storage volume in a mirrored storage environment. Illustratively, a writeable master storage volume stores a master set of data addressable by a corresponding pathname, and zero or more read-only (e.g., load-balancing) mirrored storage volumes are configured to store a mirrored set of the master set of data, the mirrored set also addressable by the corresponding pathname. Clients may read data from either the master storage volume or one of the mirrored storage volumes (e.g., according to a configured access location, such as a local mirrored volume if one exists) by issuing read requests having the corresponding pathnames. Also, each client may specifically access the master set of data from the master storage volume by issuing an access (e.g., read/write) request having a specified master storage volume pathname prefix prepended to the corresponding pathname.
    Type: Application
    Filed: May 30, 2008
    Publication date: January 22, 2009
    Inventors: Michael Eisler, Peter F. Corbett, Michael L. Kazar, Daniel S. Nydick, J. Christopher Wagner
  • Patent number: 7466659
    Abstract: A system and method efficiently performs version negotiation of a network protocol executing on storage systems or nodes of a cluster. A session layer of a network protocol executing on the nodes manages the creation and termination of sessions between a pair of nodes in the cluster. Notably, session version negotiation occurs during session creation and, as such, is accomplished using a single request/response “create session” exchange. Session version negotiation is effected using contents of protocol tag and version fields of headers associated with the request and response messages exchanged between the nodes. The version field contains a proposed version of the protocol for use by the nodes in the session. The protocol tag field contains values or tags that define the context in which the request and response messages are used during the create session exchange. Interface version negotiation is performed after session version negotiation.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: December 16, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Michael Kazar, Peter F. Corbett
  • Patent number: 7443872
    Abstract: A system and method multiplexes channels over multiple connections between one or more nodes. Each node includes a cluster fabric interface module adapted to implement a novel network protocol that enables intra-cluster communication among the nodes. The network protocol is a multi-layered protocol that integrates a session infrastructure and an application operation set into a session layer. The network protocol is illustratively a request/response protocol wherein a node (requester) receiving a data access request from a client redirects that request to another node (responder) that services the request and, upon completion, returns a response.
    Type: Grant
    Filed: April 29, 2005
    Date of Patent: October 28, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Michael Kazar
  • Patent number: 7437652
    Abstract: A method for correcting double failures in a storage array has the following steps. A storage array is organized as a plurality of concatenated sub-arrays, each sub-array including a set of data storage devices and a row parity storage device. Row parity is computed for each row of each sub-array. The row parity of a particular sub-array is stored on a row parity storage device of the particular sub-array. A diagonal parity is computed across the concatenated sub-arrays. A double storage device failure is corrected using both the sub-array row parity and the diagonal parity.
    Type: Grant
    Filed: April 12, 2006
    Date of Patent: October 14, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Robert M. English, Peter F. Corbett, Steven R. Kleiman
  • Patent number: 7409494
    Abstract: A file system layout apportions an underlying physical volume into one or more virtual volumes (vvols) of a storage system. The underlying physical volume is an aggregate comprising one or more groups of disks, such as RAID groups, of the storage system. The aggregate has its own physical volume block number (pvbn) space and maintains metadata, such as block allocation structures, within that pvbn space. Each vvol has its own virtual volume block number (vvbn) space and maintains metadata, such as block allocation structures, within that vvbn space. Notably, the block allocation structures of a vvol are sized to the vvol, and not to the underlying aggregate, to thereby allow operations that manage data served by the storage system (e.g., snapshot operations) to efficiently work over the vvols. The file system layout extends the file system layout of a conventional write anywhere file layout system implementation, yet maintains performance properties of the conventional implementation.
    Type: Grant
    Filed: April 30, 2004
    Date of Patent: August 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: John K. Edwards, Blake H. Lewis, Robert M. English, Eric Hamilton, Peter F. Corbett
  • Patent number: 7409625
    Abstract: A method for enabling recovery from concurrent failure of a plurality of storage devices in a storage array is disclosed. The method stores data on a first plurality of storage devices of the storage array. The first plurality of storage devices may have a number of storage devices equal to a prime number greater then three. Row parity is stored on one or more storage devices of the storage array. A diagonal parity set is computed for the plurality of storage devices. The diagonal parity set is stored on an additional diagonal parity device, the diagonal parity device separate from the first plurality of storage devices.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: August 5, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, Steven R. Kleiman, Robert M. English
  • Patent number: 7398460
    Abstract: A method for organizing and distributing parity blocks among storage devices of an array coupled to a storage system is disclosed. First the array is configured with a predetermined number of devices. Each device is divided into blocks. The blocks are organized into stripes, wherein each stripe contains at least one first device that holds at least one row parity block, at least one second device that holds at least one diagonal parity block, and a plurality of devices that hold data blocks. An extra parity block is appended within each stripe. Each data block is assigned to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed.
    Type: Grant
    Filed: January 31, 2005
    Date of Patent: July 8, 2008
    Assignee: Network Appliance, Inc.
    Inventor: Peter F. Corbett
  • Patent number: 7376796
    Abstract: A lightweight coherency control protocol ensures consistency of data containers, such as a file, and associated data buffers stored on one or more volumes served by a plurality of nodes, e.g., storage systems, connected as a cluster. Each data buffer is associated with a current cache sequence number comprising a load generation value and an update count value. The load generation value is incremented every time an inode of a file is loaded into a memory of the storage system. Once the inode is loaded and its load generation value is set, then the appropriate buffer of a buffer tree for the file is loaded into the memory. The update count value is incremented each time the buffer is updated with a write request/operation. Therefore, each buffer loaded into memory is tagged with the load generation value and an update count from the time that buffer is loaded.
    Type: Grant
    Filed: November 1, 2005
    Date of Patent: May 20, 2008
    Assignee: Network Appliance, Inc.
    Inventors: Peter F. Corbett, J. Christopher Wagner