摘要 |
Various systems, methods, apparatuses, and computer-readable media for accessing a storage device are described. In certain example embodiments, an active/active fault-tolerant storage device comprising two or more controllers may be implemented. In one aspect, each controller may have two or more processing entities for distributing the processing of the I/O requests. In one embodiment, the configuration of the components, modules and the controller board may be arranged in a manner to enhance heat dissipation, reduce power consumption, spread the power and work load, and reduce latency. In one embodiment, each controller may be coupled to the non-volatile memory (NVM) blades comprising the non-volatile memory (NVM) storage medium. In one example implementation, a standardized protocol, such as the Peripheral Component Interconnect Express protocol may be used for communicating amongst the various components of the controller and also the NVM storage medium. |
主权项 |
1. A storage device comprising:
a plurality of non-volatile memory (NVM) blades, each NVM blade comprising non-volatile memory; a first processor coupled to the plurality of NVM blades, wherein the first processor is configured to:
receive a first input/output (I/O) request;determine if the first I/O request is a first read request or a first write request;in response to determining that the first I/O request is a first read request,
determine a location in a first target NVM blade from which first data is to be read;request and receive the first data associated with the first I/O request from the first target NVM blade; andin response to determining that the first I/O request is a first write request;
determine the location in the first target NVM blade at which second data is to be stored;transmit second data to the first target NVM blade for storing the second data in the first target NVM blade; and a second processor coupled to the plurality of NVM blades, wherein the second processor is configured to:
receive a second I/O request;determine if the second I/O request is a second read request or a second write request;in response to determining that the second I/O request is a second read request,
determine a location in a second target NVM blade from which third data is to be read; andrequest and receive the third data associated with the second I/O request from the second target NVM blade; andin response to determining that the second I/O request is a second write request;
determine the location in the second target NVM blade at which fourth data is to be stored; andtransmit fourth data to the second target NVM blade for storing the fourth data in the second target NVM blade. |