CPC G06F 11/2092 (2013.01) [G06F 3/061 (2013.01); G06F 3/0659 (2013.01); G06F 3/0688 (2013.01); G06F 13/4027 (2013.01); G06F 2201/85 (2013.01)] | 20 Claims |
1. A computer program product comprising a non-transitory computer readable medium and non-transitory program instructions embodied therein, the program instructions being configured to be executable by a processor to cause the processor to perform operations comprising:
causing a non-volatile memory device to establish a plurality of namespaces including a first namespace and a second namespace, wherein each namespace is uniquely associated with at least a specific portion of a storage space of the non-volatile memory device;
assigning, for each of the plurality of namespaces, a host to access the namespace, including assigning a first host to access the first namespace and a second host to access the second namespace;
establishing a plurality of software-defined storage controllers including a first software-defined storage controller and a second software-defined storage controller, wherein each software-defined storage controller has access to the plurality of namespaces over a drive interface fabric and has access to the hosts assigned to the plurality of namespaces over a host interconnect fabric;
causing the first software-defined storage controller to handle input-output operations to and from the first namespace;
causing the second software-defined storage controller to handle input-output to and from the second namespace;
causing, in response to failure of the second software defined controller, the first software-defined storage controller to take over handling of the input-output operations to and from the second namespace; and
causing, in response to failure of the second software-defined storage controller, the second host to direct input-output operations destined for the second namespace to the first software-defined storage controller.
|