Abstract: Available performance capacities of storage servers and storage devices in a storage infrastructure are determined using a plurality of metrics, wherein each of the storage devices is managed by one of the storage servers. Each aggregate is hosted by a storage server and includes multiple storage devices. A relationship between the plurality of metrics is analyzed. An aggregate from which to allocate storage capacity to a volume from a plurality of aggregates is selected based on the available performance capacities and the relationship between the plurality of metrics. The selection is performed without information about properties of the volume. Storage capacity of the selected aggregate is automatically allocated to the volume. After said allocation, the plurality of aggregates is approximately load balanced.
Type:
Grant
Filed:
April 29, 2008
Date of Patent:
December 7, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Darren Charles Sawyer, Kesari Mishra, Swaminathan Ramany
Abstract: A rule-based performance analysis tool and a method analyze metrics from a network storage system and generate recommendations for resolving actual or anticipated performance problems. The tool and method collect system metrics from one or more sources, including a storage appliance and optional user-reported comments and/or information about proposed changes to the network storage system. A rule base is applied against the collected metrics and user inputs. Each rule is associated with one or more metrics and has one or more threshold values. A rule can analyze a rate of change of a metric. For each triggered rule, the tool provides an output that includes an explanation of the rule, a suggested action to alleviate or avoid the problem that triggered the rule and, optionally, a priority level. The outputs are presented in a hierarchical display.
Abstract: The battery apparatus introduced here provides a tool for reliably measuring the run time to empty of a battery used in a network storage server for protection of data during a failure mode. The battery run time to empty can be determined by a management controller based on battery information generated by a controller and received at the management controller. The information received at the management controller includes run time to empty, voltage, current and current battery capacity.
Type:
Grant
Filed:
March 5, 2010
Date of Patent:
November 23, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Allen J. Kilbourne, II, George Totolos, Jr.
Abstract: A nonvolatile system memory of a server of a network file computer system temporarily stores data received from client computers prior to the data being stored on a mass storage device. A single copy of the data and pointers which corresponds to the memory addresses of the data are stored in a temporary memory storage portion, preferably partitioned from nonvolatile system memory. The pointers are used to access the data to enable the transfer and writing of the data from the temporary memory storage to the mass storage device. Writing the data occurs during the normal operation of the network file computer system or after an unclean shutdown. The use of the pointers increases the performance of the network file computer system by conserving system memory storage space and reducing system memory traffic.
Abstract: A system is provided to improve storage server performance. The system comprises a receiving component of a storage server to receive a partner server's file system metadata while the partner server operates in a normal mode. The partner server's file system metadata is stored in the storage servers metadata cache and is used to mount the partner server's file system when the first server transitions into a takeover mode of operation.
Type:
Grant
Filed:
April 3, 2006
Date of Patent:
November 16, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Sriram S. Rao, Joydeep Sen Sarma, Alan L. Rowe
Abstract: A method and apparatus for synchronizing updates to a large set of global counters are described. In one embodiment, the method includes making updates to a global state in response to a file system making changes to data in memory. In parallel, updates are made to a copy of the global state in a temporary buffer in response to the file system flushing the data changes to a mass storage device. The temporary buffer thus includes a set of deltas representing the changes to be made to the global state in response to the changed data in memory being pushed to the mass storage device. The method further includes merging the deltas in the temporary buffer with the global state.
Abstract: The invention provides a method and system for persistent context-based behavior injection in a computing system, such as in a redundant storage system or another system having a layered or modular architecture. Behaviors that are injected can be specified to have triggering conditions, such that the behavior is not injected unless the conditions are true. Triggering conditions may include a selected ordering of conditions and a selected context for each behavior. In a system having a layered architecture, behavior injection might be used to evaluate correct responses in the face of cascaded errors in a specific context or thread, other errors that are related by context, concurrent errors, or multiple errors. Behavior injection uses non-volatile memory to preserve persistence of filter context information across possible system errors, for reporting of the results of behavior injection, and to preserve information across recovery from system errors. Multiple behavior injection threads are also provided.
Type:
Grant
Filed:
May 19, 2008
Date of Patent:
November 9, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Scott Schoenthal, Srinivasan Viswanathan
Abstract: An apparatus and method for referencing physical location of data objects stored within a logical container. The method may include receiving an access request from a client for a particular data object stored in a logical container having a plurality of data objects stored collectively in the logical container, and referencing a physical location of the particular data object within the logical container in response to the access request. The logical container includes at least one block, and each block of the logical container includes multiple extents to store data from at least one data object. The block is a fundamental unit of storage space.
Type:
Grant
Filed:
April 27, 2007
Date of Patent:
November 2, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Colin Stebbins Gordon, Pratap Vikram Singh, Donald Alvin Trimmer
Abstract: A management server maintains a set of metadata describing a storage structure of a storage server. In response to a change of the storage structure, the management server automatically updates the set of metadata. The management server also manages information indicating what portion of the set of metadata is cached locally at a storage management client application. If that portion of the set of metadata is updated in response to the change of the storage structure, the management server sends information to update the metadata cached locally at the storage management client application so that the cached metadata is consistent with the set of metadata at the management server. By caching data at the storage management client application and at the network storage management server, the present invention advantageously avoids sending unnecessary requests to the storage server, thereby reducing network latency.
Abstract: A disk-less quorum device in a clustered storage system includes non-volatile memory to store status information regarding the cluster and each storage controller in the cluster. The quorum device maintains a bitmap, shared by the controllers in the cluster, in the non-volatile memory. The bitmap indicates the status of a write operation to any data block or parity block. A “dirty” data unit in the bitmap indicates that a write operation has been submitted but is not yet finished. Upon submitting a write request (to update a data block or a parity block) to the storage facility, a controller sets the corresponding data unit “dirty” in the bitmap. After receiving an acknowledgement from the storage facility indicating that the operation has been completed, the controller clears the corresponding data unit. If a controller fails during a write operation, another controller can use the bitmap to re-establish data consistency.
Abstract: A system, a method, and a computer program product for providing continuous data protection and long-term data protection of data in a storage system. A persistent point-in-time Image (PPI) image of the data is created and stored at a first storage. The data at the first storage is updated frequently to provide continuous data protection. A copy of the dataset is created and stored in a secondary storage. The copy of the dataset stored in a secondary storage is updated and backed up less frequently than the PPIs image of data stored at the first storage to ensure long-term data protection.
Type:
Grant
Filed:
October 31, 2006
Date of Patent:
November 2, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Gokul Nadathur, Andrew C. Meyer, Mike Szelong, Aseem Vaid
Abstract: A storage system, such as a storage server, receives a list of volume block numbers (VBNs) in a multi-block read request. In response to the request, the storage system coalesces the list into one or more chains of sequential VBNs. The storage system issues each chain to the storage subsystem.
Abstract: A method of managing power states of memory modules while performing memory access operations is disclosed. Memory modules are in a power saving state until an access operation involving the module is to be performed. The module is placed in an operational mode, then the access operation is performed, then the module is returned to the power saving state. Apparatus and systems using the method are also disclosed and claimed.
Type:
Grant
Filed:
March 26, 2007
Date of Patent:
October 26, 2010
Assignee:
Network Appliance, Inc.
Inventors:
George Totolos, Jr., Scott M. Westbrook
Abstract: A method of operating a storage server includes executing a process of restoring a data set in an active file system of the storage server from a persistent point-in-time image of a data set, and during the process of restoring the data set, servicing input/output requests directed at the data set by a client of the storage server.
Abstract: Virtual interfaces on a cluster of servers in a mass data storage system are automatically reconfigured by transferring an internet protocol (IP) address hosting responsibility from one operative port to another operative port within the cluster, in response to a change in operative status of any port within the cluster.
Type:
Grant
Filed:
April 24, 2008
Date of Patent:
October 19, 2010
Assignee:
Network Appliance, Inc.
Inventors:
James Andrew Ignatuk, David Phillip Kutz
Abstract: Integrating a file system with a RAID array that exports precise information about the arrangement of data blocks in the RAID subsystem. The present invention uses separate current-write location (CWL) pointers for each disk in the disk array where the pointers simply advance through the disks as writes occur. The present invention writes on the disk with the lowest CWL pointer. A new disk is chosen only when the algorithm starts allocating space for a new file, or when it has allocated N blocks on the same disk for a single file. A sufficient number of blocks are defined as all the buffers in a chunk of N sequential buffers in a file. The result is that CWL pointers are never more than N blocks apart on different disks, and large files have N consecutive blocks on the same disk.
Type:
Grant
Filed:
March 13, 2007
Date of Patent:
October 19, 2010
Assignee:
Network Appliance, Inc.
Inventors:
David Hitz, Michael Malcolm, James Lau, Byron Rakitzis
Abstract: Non-disruptive server replacement for session-based clients. An embodiment of a method includes establishment of a session between a storage server and a client, with the storage server including a session data structure for the session, and transferring an operation of the storage server to a replacement storage server. Transferring the operation of the storage server includes generating an image the session data structure and placing the image in the replacement storage server, transferring operation of the session data structure in the storage server to the image of the session data structure in the replacement storage server, and transferring a network address of the storage server to the replacement storage server.
Type:
Grant
Filed:
April 29, 2005
Date of Patent:
October 12, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Garrett Mueller, Roger Cox, Gyanendra Pradhan
Abstract: A storage system, such as a file server, uses pathname aliasing and exports a stored resource to clients by advertising to the clients a different pathname than the actual pathname of the resource.
Type:
Grant
Filed:
April 30, 2004
Date of Patent:
October 12, 2010
Assignee:
Network Appliance, Inc.
Inventors:
Thomas D. Haynes, Mark Muhlestein, David B. Noveck
Abstract: A storage system filter provides protocol aware filter operations that avoid I/O blocking or calling thread holding. A filter framework includes a filter controller that handles request and response calls to filters that are registered with the filter framework. Filters may be loaded and unloaded in a consistent state, and the filter framework provides services for the filters for common functions. Filters may operate in a user mode or a kernel mode and may be invoked in a synchronous, an asynchronous, or an asynchronous release mode. Filter registration may include registration for I/O resources, and may include tagging of I/O requests and responses to contribute to preventing conflicts.
Abstract: A method and system for generating and restoring a backup image are disclosed. According to one aspect of the invention, a server receives a request to generate a backup image. The request includes a selection a backup path. Based on the backup path, the server generates a list of files and/or directories to backup. However, before writing the files to the backup image, the server generates an offset map to indicate where in the backup image each file will be located. The server then writes the offset map to the backup image. During a restore operation, the server receives a request to restore files, including a selection of files and/or directories to restore. The server reads the offset map from the beginning of the backup image to quickly determine the location in the backup image of selected files.