Patent classifications
G06F2206/1012
Electronic storage system
Methods and systems for electronic storage are provided. A storage system comprises a plurality of storage system front ends, a plurality of storage system back ends, and a plurality of solid state drive (SSD) agents. Each storage system front end resides on a server of a plurality of servers. Each server of the plurality of servers comprises one or more storage system back ends of the plurality of storage system back ends. Each storage system front end is able to receive I/O requests and relay information associated with the I/O requests to a relevant storage system back end. The relevant storage system back end communicates metadata associated with the I/O request to an SSD via an SSD agent.
Ultra high-speed low-latency network storage
Non-volatile memory over fabric (NVMe-oF) is used to stream video, computer games, and the like to client devices from network storage embodied by solid state storage devices (SSDs). To provide for redundancy, multiple copies of a single piece of content, e.g., a computer game or video file, are stored on multiple SSDs. To provide information to address the block-level storage based on a client demand for the content, a data structure correlates each content with the SSDs and related block numbers at which the content is stored. Sourcing of the content as it is being streamed may be dynamically switched between SSDs to provide for load balancing or loss of a SSD.
DUAL-CONTROLLER STORAGE SYSTEMS
Dual-controller storage systems and methods for controlling the dual-controller storage systems are provided. The dual-controller storage system may include a first controller, a second controller, at least one expander, a first storage array, and a second storage array. The at least one expander may be connected with the first controller, the second controller, the first storage array, and the second storage array. The first controller and the second controller may be communicatively connected via a network. When the first controller and the second controller both work in a normal state, the first controller may be configured to control the first storage array, and the second controller may be configured to control the second storage array. The first controller and the second controller may work in synchronization.
SYSTEMS AND METHODS FOR BALANCING MULTIPLE PARTITIONS OF NON-VOLATILE MEMORY
Systems and methods for balancing multiple partitions of non-volatile memory devices are provided. Embodiments discussed herein execute a balance proportion scheme in connection with a NVM that is partitioned to have multiple partition types. Each partition type has an associated endurance that defines an average number of program/erase (P/E) cycles it can endure before it reaches failure. For example, a first partition type may have a substantially greater endurance than a second partition type. The balance proportion scheme ensures that, even though each partition type has a different associated endurance, all partition types are used proportionally with respect to each other to balance their respective P/E cycles. This way, both partition types will reach the upper limits of their respective endurance levels out at approximately the same time.
SCALING PERFORMANCE IN A STORAGE SERVER WITH STORAGE DEVICES
Provided is a method of packet processing, the method including receiving an input/output (IO) request from a host, selecting a drive corresponding to the IO request using a hashing algorithm or a round-robin technique, and establishing a connection between the host and the drive.
Quality of service policy sets
Disclosed are systems, computer-readable mediums, and methods for managing input/output operations within a system including at least one client and a storage system. A processor receives information regarding allocated input-output operations (IOPS) associated with a client accessing a storage system storing client data. The information includes a number of allocated total IOPS, a number of allocated read IOPS, and a number of allocated write IOPS. The processor also receives a requested number of write IOPS associated with the at least one client's request to write to the storage system. The processor determines a target write IOPS based on the number of allocated total IOPS, the number of allocated write IOPS and the requested number of write IOPS, and executes the determined target write IOPS within the first time period.
MANAGING I/O CONNECTIONS USING VIRTUAL HOST PORTS
Bandwidth consumption and/or an I/O transmission rate on an I/O path between a port of a storage system and a physical host port may be managed, including determining when multiple virtual host ports correspond to (i.e., are mapped to) a same physical host port. This virtual host port mapping information may be used to more accurately determine bandwidth consumption and I/O transmission rates on I/O connections along an I/O path including the physical host port, and to adjust the bandwidth consumption and/or I/O transmission rate on one more of these I/O connections according to bandwidth thresholds and I/O count thresholds defined for the I/O path (e.g., for the Physical host port of the I/O path).
Managing I/O connections using virtual host ports
Bandwidth consumption and/or an I/O transmission rate on an I/O path between a port of a storage system and a physical host port may be managed, including determining when multiple virtual host ports correspond to (i.e., are mapped to) a same physical host port. This virtual host port mapping information may be used to more accurately determine bandwidth consumption and I/O transmission rates on I/O connections along an I/O path including the physical host port, and to adjust the bandwidth consumption and/or I/O transmission rate on one more of these I/O connections according to bandwidth thresholds and I/O count thresholds defined for the I/O path (e.g., for the Physical host port of the I/O path).
Distributed data blocks using storage path cost values
Example distributed storage systems, controller nodes, and methods provide distributed and redundant data blocks accessed based on storage path cost values. Storage elements are accessible through hierarchical storage paths traversing multiple system components. Data blocks are distributed among the storage elements. System costs are calculated based on the storage path for reaching each storage element and a storage path is selected based on a comparison of the system costs for each storage element. Data blocks are accessed through the selected storage path.
Write sort management in a multiple storage controller data storage system
In one aspect of write sort management in accordance with the present disclosure, a write sort task related to write sorting a write list of data units to be destaged to storage, is assigned to a storage controller to improve the load balance among plural storage controllers. In one embodiment, available processing capacities of each of the storage controllers is determined by, for example, polling each of the storage controllers. A write sort task may then be assigned to a selected storage controller as a function of determined available processing capacities of each of the storage controllers to improve the load balance among the storage controllers. Other aspects and advantages are provided, depending upon the particular application.