NetApp Patent Applications

DECENTRALIZED PROCESSING OF WORKER THREADS

Granted: December 3, 2015
Application Number: 20150347187
One or more techniques and/or systems are provided for managing one or more worker threads. For example, a utility list queue may be populated with a set of work item entries for execution. A set of worker threads may be initialized to execute work item entries within the utility list queue. In an example, a worker thread may be instructed to operate in a decentralized manner, such as without guidance from a timer manager thread. The worker thread may be instructed to execute work item…

INTERCONNECT PATH FAILOVER

Granted: October 29, 2015
Application Number: 20150309892
One or more techniques and/or systems are provided for interconnect failover between a primary storage controller and a secondary storage controller. The secondary storage controller may be configured as a backup or failover storage controller for the primary storage controller in the event the primary storage controller fails. Data and/or metadata describing the data (e.g., data and/or metadata stored within a write cache) may be mirrored from the primary storage controller to the…

MIRRORING LOG DATA

Granted: October 29, 2015
Application Number: 20150312337
One or more techniques and/or systems are provided for mirroring a caching log data structure from a primary storage controller to a secondary storage controller over multiple interconnect paths. The secondary storage controller may be configured as a backup or failover storage controller for the primary storage controller in the event the primary storage controller fails. Data and/or metadata describing the data may be mirrored from the primary storage controller to the secondary…

REMOTE MONITORING POOL MANAGEMENT

Granted: October 8, 2015
Application Number: 20150288753
One or more techniques and/or systems are provided for remotely and/or automatically managing a monitoring pool of management servers configured to monitor resources, such as storage devices. For example, a monitoring installer package may be sent from a remote source to a management server for remote installation of a monitoring component capable of monitoring resources. The monitoring installer package may be remotely executed from the remote source to install the monitoring component…

MIRROR VOTE SYNCHRONIZATION

Granted: September 24, 2015
Application Number: 20150269041
One or more techniques and/or systems are provided for mirror vote synchronization. For example, a first storage device is located at a first storage site, and a second storage device is located at a second storage site. The second storage device is configured according to a data mirroring configuration where data from the first storage device is mirrored to the second storage device. Mirror vote metadata is generated based upon an up-to-date state of the data mirroring configuration.…

MANAGEMENT PACK SERVICE MODEL FOR MANAGED CODE FRAMEWORK

Granted: September 17, 2015
Application Number: 20150261524
One or more techniques and/or systems are provided for generating a class based upon a management pack and/or for generating a management pack based upon a class. For example, a management pack may comprise an object definition of an object that may be monitored by an operating system monitoring component (e.g., a storage device object may be stored within a database by the operating system monitoring component for monitoring of a storage device). The object definition may be extracted…

COALESCING SEQUENCES FOR HOST SIDE DEDUPLICATION

Granted: July 30, 2015
Application Number: 20150213047
One or more techniques and/or systems are provided for coalescing sequences for host side deduplication. A host device may receive a write command from a client device. The write command may comprise a set of data blocks that are to be written to a storage device. The host device may perform host side deduplication by identifying one or more data blocks of the write command that comprise data already stored by the storage device as storage device data blocks. The host device may evaluate…

TECHNIQUES FOR DYNAMICALLY ALIGNING A PARTITION WITH A BLOCK SIZE BOUNDARY

Granted: June 18, 2015
Application Number: 20150169252
Various embodiments are generally directed an apparatus and method for creating a target data structure on a target storage system, the target data structure including a prefix region, a data region and a suffix region for storing information from a source data structure. Further, embodiments are directed to setting a size of the prefix region to align a partition of the source data structure with a block size boundary of the target data structure.

AUTOMATIC OBJECT MODEL GENERATION

Granted: June 18, 2015
Application Number: 20150169436
A target device, such as a storage controller, may host an interface that manages objects, such as storage objects (e.g., logical unit numbers (LUNs), volumes, etc.), maintained by the storage controller. Accordingly, an object on the storage controller may be modeled as an object model, such as an object oriented library, based upon modeling information mined from the storage controller. The object model may be automatically generated, such as by discovering the interface to the object…

CONFIGURING NETWORK STORAGE SYSTEM OVER A NETWORK

Granted: September 25, 2014
Application Number: 20140289377
Network storage system configuration via a network is disclosed. An IP assignment component is configured to listen for IP assignment requests over the network. Responsive to identifying an IP assignment request originating from a network storage system, the IP assignment component assigns an IP address to the network storage system, and provides configuration access to the network storage system based upon the IP address. A network device management component is configured to send…

CLUSTER VIEW FOR STORAGE DEVICES

Granted: July 24, 2014
Application Number: 20140207760
One or more techniques and/or systems are provided for generating a macroscopic cluster view of storage devices, as opposed to merely an isolated view from an individual node. For example, nodes within a node cluster may be queried for storage device reports comprising storage device information regarding storage devices with which the nodes are respectively connected (e.g., I/O performance statistics, path connections, storage device attributes, status, error history, etc.). The storage…

COMMUNICATION WITH TWO OR MORE STORAGE DEVICES VIA ONE SAS COMMUNICATION PORT

Granted: May 22, 2014
Application Number: 20140143460
One or more techniques and/or systems are disclosed for enabling communication between a SAS communication port of a SAS communication component and multiple storage devices. In a first example, a first SAS to SATA bridge chip and a second SAS to SATA bridge chip may be configured to route data from a SAS communication component to multiple storage devices. In a second example, a SAS to SATA bridge chip and a port multiplier may be configured to route data from a SAS communication…

STATISTICAL PROFILING OF CLUSTER TASKS

Granted: May 15, 2014
Application Number: 20140136698
A variety of complex multiphase tasks may execute within a cluster network environment. It may be advantageous to track and analyze the processing of such multiphase tasks. Accordingly, one or more techniques and/or systems are disclosed for tracking the processing of a multiphase task within a cluster network environment. In particular, runtime support for recording task processing annotations may be embedded into a multiphase task using an analysis model. The analysis model may specify…

HOST SIDE DEDUPLICATION

Granted: May 15, 2014
Application Number: 20140136789
One or more techniques and/or systems are provided for performing host side deduplication. Host side deduplication may be performed upon writeable data within a write request received at a host computing device configured to access data stored by a storage server. The host side deduplication may be performed at the host computing device to determine whether the writeable data is already stored by the storage server based upon querying a host side cache comprising data stored by a storage…

NON-DISRUPTIVE FAILOVER OF RDMA CONNECTION

Granted: May 15, 2014
Application Number: 20140136880
A novel RDMA connection failover technique that minimizes disruption to upper subsystem modules (executed on a computer node), which create requests for data transfer. A new failover virtual layer performs failover of an RDMA connection in error so that the upper subsystem that created a request does not have knowledge of an error (which is recoverable in software and hardware), or of a failure on the RDMA connection due to the error. Since the upper subsystem does not have knowledge of…

REMOTE OFFICE DUPLICATION

Granted: April 10, 2014
Application Number: 20140101398
Remote office deduplication comprises calculating one or more fingerprints of one or more data blocks, sending the one or more fingerprints to one or more backup servers via a network interface, receiving from the one or more backup servers an indication of which one or more data blocks corresponding to the one or more fingerprints should be sent to the one or more backup servers, and if the indication indicates one or more data blocks to be sent to the one or more backup servers,…

INTERCLUSTER RELATIONSHIP MANAGEMENT

Granted: March 20, 2014
Application Number: 20140082285
Data storage and management systems can be interconnected as clustered systems to distribute data and operational loading. Further, independent clustered storage systems can be associated to form peered clusters. As provided herein, methods and systems for creating and managing intercluster relationships between independent clustered storage systems, allowing the respective independent clustered storage systems to exchange data and distribute management operations between each other…

VIRTUAL MACHINE FAULT TOLERANCE

Granted: February 20, 2014
Application Number: 20140053022
One or more techniques and/or systems are provided for hosting a virtual machine from a snapshot. In particular, a snapshot of a virtual machine hosted on a primary computing device may be created. The virtual machine may be hosted on a secondary computing device using the snapshot, for example, when a failure of the virtual machine on the primary computing device occurs. If a virtual machine type (format) of the snapshot is not supported by the secondary computing device, then the…

DATA RECOVERY FOR FAILED MEMORY DEVICE OF MEMORY DEVICE ARRAY

Granted: February 6, 2014
Application Number: 20140040661
Some aspects of the disclosure relate to a data storage system that includes multiple memory device storage devices. If a memory device of a memory device array fails within a first data storage device, some portions of the lost or corrupted data from the failed memory device are recovered by reading them from a second data storage device. Other portions of the lost or corrupted data from the failed memory device are recovered from parity information in the first data storage device.

CLONING VIRTUAL MACHINES

Granted: December 26, 2013
Application Number: 20130346976
While current solutions for cloning virtual machines can involve copying and duplicating files associated to a virtual machine (VM), systems and techniques can be devised to create thin clones of a VM using the VM's associated storage system to copy and deduplicate storage for the VMs. One can create a base VM in a directory of a storage container attached to a hypervisor, and then map the storage container to a volume on a storage system. One can clone the base VM using a snapshot of…