| NetApp, Inc. Patent applications |
| Patent application number | Title | Published |
| 20120110252 | System and Method for Providing Performance-Enhanced Rebuild of a Solid-State Drive (SSD) in a Solid-State Drive Hard Disk Drive (SSD HDD) Redundant Array of Inexpensive Disks 1 (Raid 1) Pair - The present invention is a method for implementing a storage system. The storage system may include a disk array having a disk drive pair which includes a solid-state disk drive and a hard disk drive. The method may include the step of copying a data subset of a data set from the hard disk drive to a spare solid-state disk drive during a solid-state disk drive rebuild process. The data subset includes a first amount of data and the data set includes a second amount of data, where the first amount of data is less than the second amount of data. The method may further include the step of receiving a read request from a host server requesting the data subset. The method further includes the step of directing the read command to the spare solid-state disk drive. | 05-03-2012 |
| 20120102135 | SEAMLESS TAKEOVER OF A STATEFUL PROTOCOL SESSION IN A VIRTUAL MACHINE ENVIRONMENT - The disclosed technique uses virtual machines in solving a problem of persistent state for storage protocols. The technique provides for seamless, persistent, storage protocol session state management on a server, for higher availability. A first virtual server is operated in an active role in a host system to serve a client, by using a stateful protocol between the first virtual server and the client. A second, substantially identical virtual server is maintained in a passive role. In response to a predetermined event, the second virtual server takes over for the first virtual server, while preserving state for a pending client request sent to the first virtual server in the stateful protocol. The method can further include causing the second virtual server to respond to the request before a timeout which is specific to the stateful protocol can occur. | 04-26-2012 |
| 20120084509 | Application Independent Storage Array Performance Optimizer - A system comprising a performance module and an application. The performance module may be configured to (i) monitor a LUN for a predetermined amount of time, (ii) capture information relating to the LUN, and (iii) store the information. The application may be configured to (i) retrieve the information, (ii) analyze the information, (iii) generate a configuration based on the analysis of the information and (iv) send the configuration to the performance module. The performance module may reconfigure the LUN based on the configuration. | 04-05-2012 |
| 20120072565 | Configuration Verification, Recommendation, and Animation Method for a Disk Array in a Storage Area Network (SAN) - A system and method for establishing a storage area network (SAN) is described. The method includes providing a predefined template for inputting data associated with a SAN. A first tool may utilize the template to validate an entered SAN configuration based on accessing data in a database. A second tool may utilize the template to generate a valid SAN configuration, based on accessing SAN data in a database, if component data is entered. An animated configuration of a valid SAN is generated based on at least one of the input SAN configuration or the input component data. | 03-22-2012 |
| 20110197088 | METHOD AND SYSTEM TO PROVIDE A COMPLIANCE CLOCK SERVICE SUITABLE FOR CLOUD DEPLOYMENT - A method and system for providing an improved compliance clock service are described. An example method comprises establishing a system compliance clock (SCC) for a storage system that provides a compliant storage service, and establishing, for a volume in the storage system, a volume compliance clock (VCC). A current value of the SCC may be periodically updated based on hardware ticks monitored at the associated storage node. The volume compliance clock is to update its value based on a current value of the SCC. | 08-11-2011 |
| 20110191780 | METHOD AND APPARATUS FOR DECOMPOSING I/O TASKS IN A RAID SYSTEM - A data access request to a file system is decomposed into a plurality of lower-level I/O tasks. A logical combination of physical storage components is represented as a hierarchical set of objects. A parent I/O task is generated from a first object in response to the data access request. A child I/O task is generated from a second object to implement a portion of the parent I/O task. The parent I/O task is suspended until the child I/O task completes. The child I/O task is executed in response to an occurrence of an event that a resource required by the child I/O task is available. The parent I/O task is resumed upon an event indicating completion of the child I/O task. Scheduling of any child I/O task is not conditional on execution of the parent I/O task, and a state diagram regulates the child I/O tasks. | 08-04-2011 |
| 20110179232 | METHOD AND SYSTEM FOR ALLOCATING DATA OBJECTS FOR EFFICIENT READS IN A MASS STORAGE SUBSYSTEM - A system and method for allocating data objects across multiple physical storage devices in a mass storage subsystem first determines a set of physical properties associated with the physical storage devices. The system assigns portions of the mass storage subsystem to a first division or a second division based on the physical properties, such that read operations directed to logically related data stored in the first division can be executed more efficiently than read operations directed to data stored in the second division. During operation, the system stores data objects with a low SLR in the second division, which may be allocated according to any well-known file system. If a write request is for a new data object with a high SLR, the system stores the new data object in a set of neighboring primary data chunks in the first division. For subsequent write requests that modify a stored data object, the system stores the modified data in a spillover data chunk located in proximity to the primary data chunk. | 07-21-2011 |
| 20110145523 | ELIMINATING DUPLICATE DATA BY SHARING FILE SYSTEM EXTENTS - A hardware and/or software facility to enable emulated storage devices to share data stored on physical storage resources of a storage system. The facility may be implemented on a virtual tape library (VTL) system configured to back up data sets that have a high level of redundancy on multiple virtual tapes. The facility organizes all or a portion of the physical storage resources according to a common store data layout. By enabling emulated storage devices to share data stored on physical storage resources, the facility enables deduplication across the emulated storage devices irrespective of the emulated storage device to which the data is or was originally written, thereby eliminating duplicate data on the physical storage resources and improving the storage consumption of the emulated storage devices on the physical storage resources. | 06-16-2011 |
| 20110145403 | AUTO-CREATION OF STORAGE RESOURCE MANAGEMENT PATHS - A method and an apparatus to automatically create storage resource management (SRM) paths has been presented. In one embodiment, the method includes monitoring a data storage system to collect configuration data of storage objects in the data storage system and automatically creating a storage resource management (SRM) path for a storage object in the data storage system using at least a portion of the configuration data in response to a user request to scan the storage object. | 06-16-2011 |
| 20110137966 | METHODS AND SYSTEMS FOR PROVIDING A UNIFIED NAMESPACE FOR MULTIPLE NETWORK PROTOCOLS - A network storage server system includes a presentation layer that presents multiple namespaces over the same data stored in an object store, allowing users to simultaneously access data over multiple protocols. The system supports object location independence of the stored data objects by introducing a layer of indirection between directory entries and storage locations of stored data objects. In one embodiment, the directory entry of a data object points to a redirector file that includes an object locator (e.g., an object handle or a global object ID) of the data object. The directory entries of data objects are stored in a directory namespace (e.g., NAS path namespace). In another embodiment, a global object ID of the data object is directly encoded within the directory entry of the data object. | 06-09-2011 |
| 20110125797 | USING LUN TYPE FOR STORAGE ALLOCATION - In an embodiment of the invention, an apparatus uses a LUN (logical unit number) data type for storage allocation. The apparatus includes a storage appliance that specifies a LUN data type for a LUN. The storage appliance then allocates data blocks in the LUN based on the LUN data type. The storage appliance allocates data blocks in the LUN as contiguous data blocks or as non-contiguous data blocks, based on the LUN data type. The LUN data type may be, for example, database data type, user data type, or binary data type. | 05-26-2011 |
| 20110099351 | Use of Similarity Hash to Route Data for Improved Deduplication in a Storage Server Cluster - A technique for routing data for improved deduplication in a storage server cluster includes computing, for each node in the cluster, a value collectively representative of the data stored on the node, such as a “geometric center” of the node. New or modified data is routed to the node which has stored data identical or most similar to the new or modified data, as determined based on those values. Each node stores a plurality of chunks of data, where each chunk includes multiple deduplication segments. A content hash is computed for each deduplication segment in each node, and a similarity hash is computed for each chunk from the content hashes of all segments in the chunk. A geometric center of a node is computed from the similarity hashes of the chunks stored in the node. | 04-28-2011 |
| 20110055261 | Methods and Systems for Concurrently Reading Direct and Indirect Data Blocks - Methods and systems for concurrently reading direct and indirect data blocks of a data object stored in a network storage server system. In one embodiment, upon receiving a request to read a data object, the storage server identifies a location of an indirect data-block of the data object and a total number of direct data-blocks associated with the data object. Using this information, the storage server concurrently reads, using a single read operation, both the indirect data-block and a specific number of data blocks that are contiguous with the location of the indirect data-block. The specific number is commensurate with the total number of direct-data blocks associated with the data object. In one embodiment, the storage server verifies whether the data object is represented using a contiguous-mode layout scheme before performing the concurrent single-read operation to read the data object. | 03-03-2011 |
| 20110016085 | METHOD AND SYSTEM FOR MAINTAINING MULTIPLE INODE CONTAINERS IN A STORAGE SERVER - A system and method for maintaining multiple inode containers is used to manage file system objects in a single logical volume of a network storage server. The system provides multiple inode containers to store metadata for file system objects in the logical volume. The system may use a first inode container to store private inodes used by the storage server and a second inode container to store public inodes that are useable by clients of the storage server. During a replication process, a source storage server generates a set of replication operations based on inodes in the public inode container and excluding inodes in the private inode container. In a destination server implementing multiple inode containers, the server generates inodes based on the replication operations and stores the inodes in the public inode container. These new inodes are stored in the public inode container with the same inode number or identifier as the corresponding inode on the source storage server. | 01-20-2011 |
| 20110010599 | N-WAY PARITY TECHNIQUE FOR ENABLING RECOVERY FROM UP TO N STORAGE DEVICE FAILURES - An n-way parity protection technique enables recovery of up to n storage device (e.g., disk) failures in a parity group of a storage array encoded to protect against n-way disk failures. The storage array is created by first configuring the array with m data disks, where m=p−1 and p is a prime number and a row parity disk. n−1 diagonal parity disks are then added to the array. Each diagonal parity set (i.e., diagonal) is associated with a slope that defines the data and row parity blocks of the array that are included in the diagonal. All diagonals having a common slope within a parity group are organized as a diagonal parity class. For each diagonal parity class, a diagonal parity storage disk is provided to store the diagonal parity. | 01-13-2011 |
| 20100281230 | MECHANISMS FOR MOVING DATA IN A HYBRID AGGREGATE - At least certain embodiments disclose a method, system and apparatus for relocating data between tiers of storage media in a hybrid storage aggregate encompassing multiple tiers of heterogeneous physical storage media including a file system to automatically relocate the data between tiers. The hybrid storage aggregate includes one or more volumes, each volume including a volume block number space spanning at least a first-tier of storage media and a second tier of storage media of the multiple tiers of heterogeneous physical storage media and the hybrid storage aggregate further includes a control module to cooperatively manage the tiers of the multiple tiers of heterogeneous physical storage media and a file system coupled with the control module, the file system including a policy module configured to make policy decisions based on a set of one or more policies and configured to automatically relocate data between different tiers of the multiple tiers of heterogeneous physical storage media based on the set of policies. | 11-04-2010 |
| 20100281216 | METHOD AND APPARATUS FOR DYNAMICALLY SWITCHING CACHE POLICIES - A method implements a cache-policy switching module in a storage system. The storage system includes a cache memory to cache storage data. The cache memory uses a first cache configuration. The cache-policy switching module emulates the caching of the storage data with a plurality of cache configurations. Upon a determination that one of the plurality of cache configurations performs better than the first cache configuration, the cache-policy switching module automatically applies the better performing cache configuration to the cache memory for caching the storage data. | 11-04-2010 |
| 20100281214 | DATA DISTRIBUTION THROUGH CAPACITY LEVELING IN A STRIPED FILE SYSTEM - A data distribution technique is configured to provide capacity leveling in a striped file system. When a new node is added to a striped volume set, the striping table is evolved to accommodate the newly added node. Each node of a cluster is illustratively associated with a capacity value that takes into account, e.g., processor speed, number of processors, hardware configuration and/or software available for the node. During the evolution process of the striping table, the technique apportions stripes of the SVS among the nodes in a manner so that they are optimally assigned to the nodes in accordance with each node's capacity value. By utilizing the evolutionary striping table that incorporates capacity values, heterogeneous nodes may be utilized to their maximum capacity within a striped volume set, thereby reducing underutilized processing resources. | 11-04-2010 |
| 20100281081 | PREDICTING SPACE RECLAMATION IN DEDUPLICATED DATASETS - A technique for determining an amount of storage space that would be recovered in a storage system by deleting a list of logical containers of data is provided. In one embodiment, data blocks referenced by the list of files are first identified. The data blocks (e.g., deduplicated data blocks) may be referenced by two or more files. A number of references made by the identified list of files to each data block is compared against a number of references made by all files stored in a dataset of the storage system. A total amount of storage space is then calculated based on a sum of storage spaces utilized by each data block for which the two reference numbers match. This total amount of storage space is the storage space that would be reclaimed through deletion of the identified list of files. | 11-04-2010 |
| 20100223759 | COMPUTER CHASSIS HANDLE - An computer chassis handle may comprise: (a) at least one handle portion rotatable about a first axis of rotation; and (b) at least one support portion rotatable about a second axis of rotation. | 09-09-2010 |
| 20100180153 | SYSTEM AND METHOD FOR REDUNDANCY-PROTECTED AGGREGATES - The present invention provides a system and a method for utilizing a parity protection module to back up data on striped aggregates. Specifically, the system computes party data for data stored at a particular location of each of a plurality of constituent aggregates, and stores the parity on one of the constituent aggregates that is a parity owner for that particular location of data. In the event one of the constituent aggregates fails, new data may still be accessed by the system (the striped aggregates), both to write new data, and to read data stored on the failed aggregate. In particular, the parity protection module allows clients to read data from a failed aggregate by running a reverse parity computation, which may also be used to restore the data to the failed aggregate. | 07-15-2010 |
| 20100174879 | ESTIMATING SPACE IN A COMPRESSED VOLUME - A method and system for estimating space in a compressed volume to enable a storage server to respond to write requests before actually compressing and/or allocating data on disk. In some embodiments, in response to receiving a request to store data, the storage server estimates the amount of storage space required to store the data on disk. The storage server compares the estimated amount with the amount of available disk space. When the amount of available disk space is less than the estimated space, the storage server sends a response indicating that the request failed. Otherwise, when the amount of available disk space is greater than or equal to the estimate space, the storage server sends a response indicating that the request succeeded. The response is sent before the storage server allocates any disk space in connection with the request. | 07-08-2010 |
| 20100153415 | Method and Apparatus to Implement a Hierarchical Cache System with pNFS - A method implements a hierarchical cache system with a parallel Network File System (pNFS) configuration for a storage system. Upon receiving a request by the hierarchical cache system to access data stored in the storage system, the method divides the data into a plurality of data segments and distributes the plurality of data segments to a plurality of cache servers of the cache system. The method responds to the request a metadata layout for the plurality of data segments distributed among the plurality of cache servers. Based on the metadata layout, the plurality of data segments can be concurrently retrieved from the plurality of cache servers. | 06-17-2010 |
| 20100153350 | METHODS AND SYSTEMS FOR VALIDATING ACCESSIBILITY AND CURRENCY OF REPLICATED DATA - Systems and processes for determining and validating accessibility and currency, i.e., the actual status, of data replicated in a networked environment are disclosed. According to the disclosed process, a replicated-data policy for replicating data is defined, and access paths between network devices or between applications running on the network devices are monitored, for example, by a replicated-data monitor. Also monitored are the data replication activities in the network. The currency, i.e., timeliness, and accessibility of a replica by a network device is then compared with the requirements in the replicated-data policy and discrepancies with the replicated-data policy are identified, optionally accompanied by a notification. | 06-17-2010 |
| 20100114889 | REMOTE VOLUME ACCESS AND MIGRATION VIA A CLUSTERED SERVER NAMESPACE - A system and method that provides users of network data storage systems with the ability to gain the advantages of a clustered storage server system, in which volumes stored on multiple server nodes are linked into a virtual global hierarchical namespace, without first having to migrate their data to the clustered storage server system. The system employs an extended virtual global hierarchical namespace that allows client systems to access, via the extended global namespace, volumes stored on the clustered storage server system and on one or more storage servers that are remote from and do not constitute a part of the clustered system. The extended global namespace can also be employed to perform migration of volume data among the multiple nodes of the clustered storage server system and the remote storage servers. | 05-06-2010 |
| 20100114833 | REMOTE OFFICE DUPLICATION - 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, sending the one or more data blocks to the one or more backup servers via the network interface. | 05-06-2010 |
| 20100106990 | POWER SAVINGS USING DYNAMIC STORAGE CLUSTER MEMBERSHIP - A system for controlling power usage in a storage cluster by dynamically controlling membership in the storage cluster is disclosed. The storage cluster includes multiple storage servers that provide access to one or more storage subsystems. The power management system uses a power management policy to set parameters for controlling membership in the storage cluster and monitors the storage cluster based on the policy. Based on the monitoring, the system detects when the number of storage servers in the storage cluster should be reduced or increased. To reduce the number, the system selects a storage server to deactivate and directs the selected storage server to migrate storage resources (e.g. data, metadata) associated with the server to a different storage server. The system then deactivates the selected storage server by directing it to transition to a low power mode. The system may increase the number of servers in the storage cluster by reversing these steps. | 04-29-2010 |
| 20100106933 | METHOD AND SYSTEM FOR MANAGING STORAGE CAPACITY IN A STORAGE NETWORK - A system for managing configuration of a storage network having multiple storage resources is disclosed. The system uses a storage management policy to set parameters for detecting storage resource problems in the storage network. The system monitors the storage resources in the storage network based on the storage management policy. Based on the monitoring, the system detects limited storage resource conditions, and identifies one or more potential solutions to the condition. After identifying potential solutions, the system simulates effects on the storage resources of implementing individual solutions. Based on the simulations, the system then implements one or more selected solutions. These solutions may be selected automatically or by a user. | 04-29-2010 |
| 20100094999 | LIMITING SIMULTANEOUS DATA TRANSFERS AND EFFICIENT THROTTLE MANAGEMENT - A network storage server implements a method to limit simultaneous data transfers and efficient throttle management. The number of processes that can be simultaneously performed in the network storage server is limited. For the processes that do not exceed the limiting number, and are therefore allowed to be simultaneously performed, a throttle control is implemented on each of the processes to limit the amount of system resources that can be allocated to each of the processes. The processes are performed on the network storage server, and a total amount of system resources allocated to these processes does not exceed the available system resources of the network storage server. | 04-15-2010 |
| 20100088296 | SYSTEM AND METHOD FOR ORGANIZING DATA TO FACILITATE DATA DEDUPLICATION - A technique for organizing data to facilitate data deduplication includes dividing a block-based set of data into multiple “chunks”, where the chunk boundaries are independent of the block boundaries (due to the hashing algorithm). Metadata of the data set, such as block pointers for locating the data, are stored in a tree structure that includes multiple levels, each of which includes at least one node. The lowest level of the tree includes multiple nodes that each contain chunk metadata relating to the chunks of the data set. In each node of the lowest level of the buffer tree, the chunk metadata contained therein identifies at least one of the chunks. The chunks (user-level data) are stored in one or more system files that are separate from the buffer tree and not visible to the user. | 04-08-2010 |
| 20100083247 | System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA - A processing system includes a plurality of virtual machines which have shared access to a non-volatile solid-state memory (NVSSM) subsystem, by using remote direct memory access (RDMA). The NVSSM subsystem can include flash memory and other types of non-volatile solid-state memory. The processing system uses scatter-gather lists to specify the RDMA read and write operations. Multiple reads or writes can be combined into a single RDMA read or write, respectively, which can then be decomposed and executed as multiple reads or writes, respectively, in the NVSSM subsystem. Memory accesses generated by a single RDMA read or write may be directed to different memory devices in the NVSSM subsystem, which may include different forms of non-volatile solid-state memory. | 04-01-2010 |
| 20100076805 | Adaptive Scheduling Of Storage Operations Based On Utilization Of Multiple Client And Server Resources In A Distributed Network Storage System - Scheduling operations such as asynchronous file system operations in a network storage system is accomplished by applying a bid-price online auction methodology, in which bid (willingness-to-pay) values and price (cost) values are dynamically set by storage clients and a storage server, respectively, based on utilization of computing resources. The system provides a framework for adaptively scheduling asynchronous file system operations, managing multiple key resources of the distributed file system, including network bandwidth, server I/O, server CPU, and client and server memory utilization. The system can accelerate, defer, or cancel asynchronous requests to improve application-perceived performance. Congestion pricing via online auctions can be employed to coordinate the use of system resources by clients, so clients can detect shortages and adapt their resource usage. | 03-25-2010 |
| 20100066171 | MULTIPLE POWER SOURCE POWER SUPPLY - A multiple power source power supply may include multiple power sources fed by separate power sources. A multiple power source power supply may also include a first power factor correction circuitry and a second power factor correction circuitry. A multiple power source power supply may also include a single converter. A plurality of multiple power source power supplies may be combined to provide a cost and energy efficient power supply system. | 03-18-2010 |
| 20100064168 | TRANSACTIONAL FAILOVER OF DATA SETS - A network storage server implements a method to perform transactional failover of data sets. Multiple storage objects are organized into primary and secondary data sets, and a disaster recovery policy is configured for failing-over a primary data set to a secondary data set. A failover operation is defined for the disaster recovery policy. The failover operation includes multiple failover actions. During a failover situation, the failover operation is invoked to fail-over the primary data set. The failover operation is transactionally processed to ensure that all failover actions of the failover operation are performed in a single transaction. | 03-11-2010 |
| 20100058002 | SYSTEM AND METHOD FOR FILE SYSTEM LEVEL COMPRESSION USING COMPRESSION GROUP DESCRIPTORS - A system and method for transparently compressing file system data using compression group descriptors is provided. When data contained within a compression group be compressed beyond a predefined threshold value, a compression group descriptor is included in the compression group that signifies that the data for the group of level 0 blocks is compressed into a lesser number of physical data blocks. When performing a read operation, the file system first determines the appropriate compression group that contains the desired data and determines whether the compression group has been compressed. If so, the file system decompresses the data in the compression group before returning the decompressed data. If the magic value is not the first pointer position, then the data within the compression group was previously stored in an uncompressed format, and the data may be returned without performing a decompression operation. | 03-04-2010 |
| 20100049726 | SYSTEM AND METHOD FOR COMPRESSION OF PARTIALLY ORDERED DATA SETS - A system and method for compression of partially ordered data sets is provided. A first record of the data set is compressed by encoding the record using a Fibonacci encoding technique. Thereafter, for each subsequent record N, the N−1 | 02-25-2010 |
| 20100042790 | SCALABLE DEDUPLICATION OF STORED DATA - In a method and apparatus for scalable deduplication, a data set is partitioned into multiple logical partitions, where each partition can be deduplicated independently. Each data block of the data set is assigned to exactly one partition, so that any two or more data blocks that are duplicates of each are always be assigned to the same logical partition. A hash algorithm generates a fingerprint of each data block in the volume, and the fingerprints are subsequently used to detect possible duplicate data blocks as part of deduplication. In addition, the fingerprints are used to ensure that duplicate data blocks are sent to the same logical partition, prior to deduplication. A portion of the fingerprint of each data block is used as a partition identifier to determine the partition to which the data block should be assigned. Once blocks are assigned to partitions, deduplication can be done on partitions independently. | 02-18-2010 |
| 20100023621 | LOAD-DERIVED PROBABILITY-BASED DOMAIN NAME SERVICE IN A NETWORK STORAGE CLUSTER - DNS name resolution is integrated into each node in a network storage cluster, to allow load balancing of network addresses, using a weighted random distribution to resolve DNS requests. A node in the cluster gathers statistics on utilization of resources, such as CPU utilization and throughput, on nodes in the cluster and distributes those statistics to all other nodes. Each node uses the same algorithm to generate weights for the various IP addresses of the cluster, based on the statistics distributed to it. The weights are used to generate a weighted list of available network addresses. In response to a DNS request, a DNS in a given node randomly indexes into the weighted address list to resolve requests to a network address. The weights are chosen so that the DNS is likely to pick an IP address which has a low load, to balance port and node usage over time. | 01-28-2010 |
| 20100017496 | METHOD AND SYSTEM FOR USING SHARED MEMORY WITH OPTIMIZED DATA FLOW TO IMPROVE INPUT/OUTPUT THROUGHOUT AND LATENCY - The data path in a network storage system is streamlined by sharing a memory among multiple functional modules (e.g., N-module and D-module) of a storage server that facilitates symmetric access to data from multiple clients. The shared memory stores data from clients or storage devices to facilitate communication of data between clients and storage devices and/or between functional modules, and reduces redundant copies necessary for data transport. It reduces latency and improves throughput efficiencies by minimizing data copies and using hardware assisted mechanisms such as DMA directly from host bus adapters over an interconnection, e.g. switched PCI-e “network”. This scheme is well suited for a “SAN array” architecture, but also can be applied to NAS protocols or in a unified protocol-agnostic storage system. The storage system can provide a range of configurations ranging from dual module to many modules with redundant switched fabrics for I/O, CPU, memory, and disk connectivity. | 01-21-2010 |
| 20090320042 | SYSTEM AND METHOD FOR ACHIEVING HIGH PERFORMANCE DATA FLOW AMONG USER SPACE PROCESSES IN STORAGE SYSTEM - Fault isolation capabilities made available by user space can be provided for a embedded network storage system without sacrificing efficiency. By giving user space processes direct access to specific devices (e.g., network interface cards and storage adapters), processes in a user space can initiate Input/Output requests without issuing system calls (and entering kernel mode). The multiple user spaces processes can initiate requests serviced by a user space device driver by sharing a read-only address space that maps the entire physical memory one-to-one. In addition, a user space process can initiate communication with another user space process by use of transmit and receive queues similar to transmit and receiver queues used by hardware devices. And, a mechanism of ensuring that virtual addresses that work in one address space reference the same physical page in another address space is used. | 12-24-2009 |
| 20090319772 | IN-LINE CONTENT BASED SECURITY FOR DATA AT REST IN A NETWORK STORAGE SYSTEM - A network storage server receives multiple write requests from a set of clients via a network and internally buffers multiple data blocks written by the write requests. At a consistency point, the storage server commits the data blocks to a nonvolatile mass storage facility. The consistency point process includes using a storage operating system in the network storage server to compress the data blocks, encrypt selected data blocks, and store the compressed and (possibly) encrypted data blocks in the nonvolatile mass storage facility. Data blocks can also be fingerprinted in parallel with compression and/or encryption, to facilitate subsequent deduplication. Data blocks can be indexed and classified according to content or attributes of the data. Encryption can be applied at different levels of logical container granularity, where a separate, unique cryptographic key is used for each encrypted logical container. | 12-24-2009 |
| 20090313367 | METHODS AND SYSTEMS FOR PREDICTIVE CHANGE MANAGEMENT FOR ACCESS PATHS IN NETWORKS - Methods and systems for predictive change management in a network are provided. A configuration change can be specified and pre-validated according to the access path policy, before the actual changes are implemented. The conformance of the implemented configuration change with the access path policy is validated after implementation, because of possible consequential effects of the configuration change. If a change in one or more access paths is specified, then associated component events can be simulated before implementation, so that root causes for resulting access path violations can be detected and remedied before the changes are made. | 12-17-2009 |
| 20090292861 | USE OF RDMA TO ACCESS NON-VOLATILE SOLID-STATE MEMORY IN A NETWORK STORAGE SYSTEM - A network storage controller uses a non-volatile solid-state memory (NVSSM) subsystem which includes raw flash memory as stable storage for data, and uses remote direct memory access (RDMA) to access the NVSSM subsystem, including to access the flash memory. Storage of data in the NVSSM subsystem is controlled by an external storage operating system in the storage controller. The storage operating system uses scatter-gather lists to specify the RDMA read and write operations. Multiple client-initiated reads or writes can be combined in the storage controller into a single RDMA read or write, respectively, which can then be decomposed and executed as multiple reads or writes, respectively, in the NVSSM subsystem. Memory accesses generated by a single RDMA read or write may be directed to different memory devices in the NVSSM subsystem, which may include different forms of non-volatile solid-state memory. | 11-26-2009 |
| 20090276514 | DISCARDING SENSITIVE DATA FROM PERSISTENT POINT-IN-TIME IMAGE - A network storage server implements a method to discard sensitive data from a Persistent Point-In-Time Image (PPI). The server first efficiently identifies a dataset containing the sensitive data from a plurality of datasets managed by the PPI. Each of the plurality of datasets is read-only and encrypted with a first encryption key. The server then decrypts each of the plurality of datasets, except the dataset containing the sensitive data, with the first encryption key. The decrypted datasets are re-encrypted with a second encryption key, and copied to a storage structure. Afterward, the first encryption key is shredded. | 11-05-2009 |
| 20090268903 | NETWORK STORAGE SERVER WITH INTEGRATED ENCRYPTION, COMPRESSION AND DEDUPLICATION CAPABILITY - A network storage server receives multiple write requests from a set of clients via a network and internally buffers multiple data blocks written by the write requests. At a consistency point, the storage server commits the data blocks to a nonvolatile mass storage facility. The consistency point process includes using a storage operating system in the network storage server to compress the data blocks, encrypt selected data blocks, and store the compressed and (possibly) encrypted data blocks in the nonvolatile mass storage facility. Data blocks can also be fingerprinted in parallel with compression and/or encryption, to facilitate subsequent deduplication. Data blocks can be indexed and classified according to content or attributes of the data. Encryption can be applied at different levels of logical container granularity, where a separate, unique cryptographic key is used for each encrypted data container. | 10-29-2009 |
| 20090172666 | SYSTEM AND METHOD FOR AUTOMATIC STORAGE LOAD BALANCING IN VIRTUAL SERVER ENVIRONMENTS - Methods and systems for periodically analyzing and correcting storage load imbalances in a storage network environment including virtual machines are described. These methods and systems account for various resource types, logical access paths, and relationships among different storage environment components. Load balancing may be managed in terms of input/output (I/O) traffic and storage utilization. The aggregated information is stored, and may be used to identify and correct load imbalances in a virtual server environment in order to prevent primary congestion and bottlenecks. | 07-02-2009 |