Patent classifications
G06F2211/103
Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
An apparatus, system, and method are disclosed for data block usage information synchronization for a non-volatile storage volume. The method includes referencing first data block usage information for data blocks of a non-volatile storage volume managed by a storage manager. The first data block usage information is maintained by the storage manager. The method also includes synchronizing second data block usage information managed by a storage controller with the first data block usage information maintained by the storage manager. The storage manager maintains the first data block usage information separate from second data block usage information managed by the storage controller.
Systems and Methods for Identifying Storage Resources That Are Not In Use
An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
Systems and methods for identifying storage resources that are not in use
A method for managing data in a NAND flash storage system is provided. The method includes one or more of receiving an empty data segment directive at a storage controller, returning a data string including data of a predetermined logic level in response to a read command requesting to read data associated with a logical identifier included in the empty data segment directive, maintaining an index of mapping between the logical identifier and a physical storage location, updating the index to indicate data at the physical storage location does not need to be preserved, monitoring one or more physical storage locations, including the physical storage location, to determine a percentage of the one or more physical storage locations that do not need to be preserved, and initiating garbage collection on the one or more physical storage locations in response to the percentage reaching a threshold. The empty data segment directive includes a logical identifier associated with the physical storage location.
Systems and methods for identifying storage resources that are not in use
An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
Systems and methods for identifying storage resources that are not in use
An apparatus, system, and method are disclosed for managing a non-volatile storage medium. A storage controller receives a message that identifies data that no longer needs to be retained on the non-volatile storage medium. The data may be identified using a logical identifier. The message may comprise a hint, directive, or other indication that the data has been erased and/or deleted. In response to the message, the storage controller records an indication that the contents of a physical storage location and/or physical address associated with the logical identifier do not need to be preserved on the non-volatile storage medium.
Apparatus, system, and method for destaging cached data
Apparatuses, systems, methods, and computer program products are disclosed for destaging cached data. A method includes caching write in a nonvolatile solid-state cache by appending the data to a log of the nonvolatile solid-state cache. The log includes a sequential, log-based structure preserved in the nonvolatile solid-state cache. A method includes destaging at least a portion of the data from the nonvolatile solid-state cache to the backing store in a cache log order. The cache log order comprises an order in which the data was appended to the log of the nonvolatile solid-state cache.
SYSTEMS AND METHODS FOR STORAGE PARALLELISM
One method includes streaming a data segment to a write buffer corresponding to a virtual page including at least two physical pages. Each physical page is defined within a respective solid-state storage element. The method also includes programming contents of the write buffer to the virtual page, such that a first portion of the data segment is programmed to a first one of the physical pages, and a second portion of the data segment is programmed to a second one of the physical pages.
Systems and methods for storage space recovery
One apparatus includes a storage division selection module configured to select a storage division of a solid-state storage medium for recovery. The solid-state storage medium includes a plurality of storage divisions. Each storage division includes a plurality of storage locations. The apparatus also includes an erase module configured to erase the selected storage division. The apparatus includes a storage division recovery module configured to store a sequence indicator in the erased storage division. The sequence indicator is indicative of an ordered sequence of the plurality of storage divisions, and the sequence indicator is determined by reading information stored with data on the plurality of storage divisions.
Object sharding in a host-side processing device for distributed storage
A host-side network processing device coupled between a storage system and a host machine may encode a data object according to a sharding technique. Encoding the data object may include receiving, from the host machine, a data object and a request to store the data object. The network processing device may send a request for a plurality of storage locations to the storage system. The network processing device may receive a location list including a plurality of location identifiers from the storage system, where each location identifier corresponds to a respective storage location. The network processing device may determine an encoding matrix and encode the data object into a plurality of shards based on the encoding matrix according to a sharding technique. The network processing device may generate a plurality of storage requests that each specify a different location identifier and that each includes a respective shard.
Apparatus, system, and method for a storage area network
An apparatus and system are disclosed for a storage area network (SAN). In one embodiment, a computer system includes an internal storage device and an internal storage controller. In this embodiment, the internal storage controller is configured to implement a SAN that includes at least the internal storage device and a storage device external to the computer system. In this embodiment, the internal storage controller is further configured to service a storage request received from a client that involves data stored by the internal storage device. In this embodiment, the internal storage controller is configured to communicate with the external storage device via a network.