摘要:
A hardware accelerated I/O data processing engine to execute a minimum number of types of I/O data processing commands in response to a stimulus from a host computer. The data processing engine, referred to as a command interpreter includes a command queue, a logic unit, a multiple purpose interface, at least one memory, and a controlling state machine, that each operate in concert with each other and without software control. The types of commands executed by the command interpreter can include, but are not limited to, an Initialize, Copy, DMA Read, DMA Write, Cumulative Exclusive OR, Verify, Compare, and ECC Check. The execution of commands that specify a source data location and a destination data location are characterized by a plurality of reads to an internal cache from the source data location for each bulk write from the internal cache to the destination data location. The locations of the data operated on by the command interpreter include a local I/O controller memory and a non-local I/O controller memory accessible to the command interpreter by way of an I/O bus.
摘要:
A method for communication between an initiator system and a block storage cluster may include receiving a first command at a first storage system included in a plurality of storage systems of the block storage cluster. The method may also include transmitting a referral response from the first storage system to the initiator system when at least a portion of the data associated in the first command is stored by a second storage system. The method may further include obtaining a segment start value and a corresponding port identifier based on the referral response, and directing a second command to at least a second storage system included in the plurality of storage systems of the block cluster.
摘要:
The present invention is a method for communication between an initiator system and a block storage cluster. The method includes receiving a command at a first storage system of a block storage cluster. The command is transmitted by the initiator system to the first storage system via a network and includes a request for data. The method further includes transferring the stored data from the first storage system to the initiator system via the network when data requested in the data request is stored by the first storage system. The method further includes transmitting a referral response from the first storage system to the initiator system when a portion of the data requested in the data request is not stored by the first storage system, but is stored by a second storage system of the block storage cluster. The referral response indicates to the initiator system that: a) not all of the requested data was transferred; and b) that the second storage system stores the portion of the requested data.
摘要:
The present disclosure is directed to a method for communication between an initiator system and a block storage cluster. The method may comprise receiving an initial data request from the initiator system to a first storage system, a portion of the data requested in the initial data request is not stored by the first storage system, but is stored by a second storage system; retrieving the portion of the data that is stored by the second storage system; forwarding the portion of the data to the initiator system; and transmitting a referral list comprising at least one referral from the first storage system to the initiator system, wherein the initiator system is configured for maintaining a referral cache based on the referral list, and a subsequent data request initiated by the initiator system is directed to the block storage cluster based on the referral cache.
摘要:
A method for communication between an initiator system and a block storage cluster may include receiving a first command at a first storage system included in a plurality of storage systems of the block storage cluster. The method may also include transmitting a referral response from the first storage system to the initiator system when at least a portion of the data associated in the first command is stored by a second storage system. The method may further include obtaining a segment start value and a corresponding port identifier based on the referral response, and directing a second command to at least a second storage system included in the plurality of storage systems of the block cluster.
摘要:
A method and/or system may be configured to receive an input/output (I/O) request from an initiator system, add priority information to a multiple path referral for each port on which data can be accessed, selectively omit ports on which data may be accessed, transmit the multiple path referral from the target to the initiator, and/or choose a path on the initiator with the highest performance.
摘要:
A method for communication between an initiator system and a block storage cluster may include receiving a first input/output (I/O) request from the initiator system. The method may also include sending a referral response from a first storage system included in a plurality of storage systems of the block storage cluster to the initiator system when data associated with the first I/O request is stored in more than one storage system of the plurality of storage systems of the block storage cluster. Additionally, the method may include directing a referral I/O to the first storage system and the second storage system for transferring data to or transferring data from the first storage system and the second storage system, and transferring data associated with the referral I/O to or transferring data associated with the referral I/O from the first storage system and the second storage system.
摘要:
A hardware implemented command queuing system in a hardware accelerated command interpreter engine. The command queuing system is an integral component of an autonomous hardware accelerated command interpreter type data processing engine that executes a programmable set of data processing commands in response to a stimulus from a host processor. The command queuing system is a configuration of registers and logic blocks that interact with a local host processor and other components within the command interpreter engine itself. The local host processor generates the commands to execute and the command queuing system queues the commands for seriatim execution by components within the command interpreter system. The command queue is a set of registers and command queue pointers that point to the next register available for writing a new command to the command queue, the next register that contains a command that is ready for executing, and the next register that contains the address of a completed command awaiting acknowledgment. The command queue pointers are managed by command queue interface control logic in the command queuing system. In the event of an error in executing any one command from the command queue, the command queuing system interacts with the local host processor to update the command queue pointers as needed to recover from the error and restart normal command queuing. The command queuing system also includes a set of control registers that contains internal command interpreter system operational status and local host processor accessible queuing and error status. The set of control registers are also managed by the command queue interface control logic in the command queuing system.
摘要:
The present disclosure is directed to a method for communication between an initiator system and a block storage cluster. The method may comprise initiating an input/output (I/O) request from the initiator system to a first storage system included in a plurality of storage systems of the block storage cluster, each of the plurality of storage systems comprising a plurality of data segments; receiving a referral response from the first storage system, the referral response providing information describing a layout of data requested in the I/O request; obtaining a virtual disk count, a segment size, and at least one indexed port identifier based on the referral response; and directing the I/O request from the initiator system to the block storage cluster based on the virtual disk count, the segment size, and the at least one indexed port identifier.