IP Library › Granted Patent US 11,429,280
Granted Patent B2
US 11,429,280 · App. 16/847,095 · Granted Aug 30, 2022

Computer product, method, and system to dynamically manage storage devices accessed remotely over a network

Inventors: James P. Freyensee (Hillsboro, OR); Dave B. Minturn (Hillsboro, OR); Phil C. Cayton (Warren, OR); Jay E. Sternberg (North Plains, OR); Anthony J. Knapp (Beaverton, OR)
Assignee: Intel Corporation
G06F3/061G06F3/067G06F3/0632G06F3/0659G06F3/0665G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,429,280
App. No.
16/847,095
Granted
Aug 30, 2022
Kind
B2
Abstract

A computer product, method, and system to generate a virtual subsystem to process read and write requests to storage devices. A virtual controller is configured in a memory device to provide a representation of a controller in a computer system. At least one virtual storage is configured in the memory device. A virtual storage is assigned a quantity of physical storage configured in a plurality of storage devices, wherein the virtual storage maps to addresses in the quantity of physical storage. At least one virtual storage is assigned to a virtual controller. A host is assigned to the virtual storage assigned to the virtual controller. The host assigned the virtual storage is allowed to direct read and write requests to the quantity of physical storage assigned to the virtual storage.

Claims (57)

1. A computer readable storage media comprising a plurality of instructions that in response to being executed by a computer system, cause the computer system to:

configure, in a memory device, a virtual subsystem to provide at least one host system access to at least one storage device coupled with the computer system;

configure, in the memory device, at least one virtual namespace for the virtual subsystem, the at least one virtual namespace assigned to a plurality of physical namespaces including logical blocks configured in a plurality of physical storage devices coupled with the computer system, each physical namespace to include logical blocks configured in a quantity of physical storage included in the at least one storage device;

and

assign at least one host system to the at least one virtual namespace, wherein the at least one virtual namespace indicates at least one physical namespace and at least one storage device including the at least one physical namespace to which the at least one virtual namespace is assigned, and the at least one host system to direct read and write requests to the at least one physical namespace of the at least one storage device assigned to the at least one virtual namespace.

2. The computer readable storage media of claim 1 , wherein the at least one virtual namespace indicates at least two physical namespaces in the at least one storage device.

3. The computer readable storage media of claim 1 , wherein the at least one virtual namespace comprises two virtual namespaces, the two virtual namespaces assigned to different ranges of addresses within one physical namespace in one of the at least one storage device.

4. The computer readable storage media of claim 3 , wherein the two virtual namespaces in the at least one storage device are assigned to different host systems from among the at least one host system.

5. The computer readable storage media of claim 4 , wherein the instructions further cause the computer system to:

configure, in the memory device, at least one virtual controller in the virtual subsystem, wherein each of the at least one virtual controller is assigned at least one virtual namespace.

6. The computer readable storage media of claim 5 , wherein one virtual controller is assigned a first virtual namespace assigned to a first host system and a second virtual namespace assigned to a second host system, wherein first and second virtual namespaces map to first and second ranges of addresses, respectively, in one of the at least one storage device.

7. The computer readable storage media of claim 5 , wherein at least two virtual controllers are assigned a same virtual namespace assigned to one physical namespace to provide shared access to the physical namespace.

8. The computer readable storage media of claim 1 , wherein the instructions further cause the computer system to:

receive from the at least one host system a read or write request directed to a target virtual namespace;

determine a physical namespace and a storage device including the determined physical namespace to which the target virtual namespace maps; and

send to the determined storage device the received read or write request directed to the determined physical namespace.

9. The compute readable storage media of claim 1 , wherein a target system, the at least one host system, and the at least one storage device implement a logical device interface protocol to communicate read and write requests between the at least one host system and the at least one storage device, wherein the target system communicates with the at least one host system using a fabric protocol and wherein the targets system and the at least one storage device communicate using a bus interface protocol, wherein the instructions further cause the computer system to:

receive from the at least one host system a packet in the fabric protocol encapsulating a read or write request in the logical device interface protocol directed to a target virtual namespace;

determine a physical namespace and storage device including the physical namespace to which the target virtual namespace maps;

generate a modified read or write request in the logical device interface protocol directed to the determined physical namespace to perform the received read or write request; and

send to the determined storage device, using the bus interface protocol, the modified read or write request directed to the determined physical namespace.

10. The compute readable storage media of claim 9 , wherein the logical device interface protocol comprises a Non-volatile Memory Express (NVMe) protocol and wherein the bus interface protocol comprises a Peripheral Component Interconnect Express (PCIe) protocol.

11. A system comprising:

a processor to process received read and write requests directed to at least one storage device;

a memory device; and

a computer readable storage medium including code that is executed by the processor to:

configure, in the memory device, a virtual subsystem to provide at least one host system access to at least one storage device coupled with a computer system;

configure, in the memory device, at least one virtual namespace for the virtual subsystem, the at least one virtual namespace assigned to a plurality of physical namespaces including logical blocks configured in a plurality of physical storage devices coupled with the computer system, each physical namespace to include logical blocks configured in a quantity of physical storage included in the at least one storage device;

and

assign at least one host system to the at least one virtual namespace, wherein the at least one virtual namespace indicates at least one physical namespace and at least one storage device including the at least one physical namespace to which the at least one virtual namespace is assigned, and the at least one host system to direct read and write requests to the at least one physical namespace of the at least one storage device assigned to the at least one virtual namespace.

12. The system of claim 11 , wherein the at least one virtual namespace indicates at least two physical namespaces in the at least one storage device.

13. The system of claim 11 , wherein a target system, the at least one host system, and the at least one storage device implement a logical device interface protocol to communicate read and write requests between the at least one host system and the at least one storage device, wherein the target system communicates with the at least one host system using a fabric protocol and wherein the targets system and the at least one storage device communicate using a bus interface protocol, wherein the code is further executed to:

receive from the at least one host system a packet in the fabric protocol encapsulating a read or write request in the logical device interface protocol directed to a target virtual namespace;

determine a physical namespace and storage device including the physical namespace to which the target virtual namespace maps;

generate a modified read or write request in the logical device interface protocol directed to the determined physical namespace to perform the received read or write request; and

send to the determined storage device, using the bus interface protocol, the modified read or write request directed to the determined physical namespace.

14. The system of claim 13 , wherein the logical device interface protocol comprises a Non-volatile Memory Express (NVMe) protocol and wherein the bus interface protocol comprises a Peripheral Component Interconnect Express (PCIe) protocol.

15. The system of claim 12 , wherein

the at least one virtual namespace comprises two virtual namespaces assigned to different ranges of addresses within one physical namespace in one of the at least one storage device.

16. The system of claim 15 , wherein the code is further executed to:

configure, in the memory device, indicate at least one virtual controller in the virtual subsystem, wherein each of the at least one virtual controller is assigned at least one virtual namespace.

17. A method, comprising:

configuring, in a memory device, a virtual subsystem to provide at least one host system access to at least one storage device coupled with a computer system;

configuring, in the memory device, at least one virtual namespace for the virtual subsystem, the at least one virtual namespace assigned to a plurality of physical namespaces including logical blocks configured in a plurality of physical storage devices coupled with the computer system, each physical namespace to include logical blocks configured in a quantity of physical storage included in the at least one storage device;

and

assigning at least one host system to the at least one virtual namespace, wherein the at least one virtual namespace indicates at least one physical namespace and at least one storage device including the at least one physical namespace to which the at least one virtual namespace is assigned, and the at least one host system to direct read and write requests to the at least one physical namespace of the at least one storage device assigned to the at least one virtual namespace.

18. The method of claim 17 , wherein the at least one virtual namespace indicates at least two physical namespaces in the at least one storage device.

19. The method of claim 17 , wherein target system, the at least one host system, and the at least one storage device implement a logical device interface protocol to communicate read and write requests between the at least one host system and the at least one storage device, wherein the target system communicates with the at least one host system using a fabric protocol and wherein the targets system and the at least one storage device communicate using a bus interface protocol, the method further comprising:

receiving from the at least one host system a packet in the fabric protocol encapsulating a read or write request in the logical device interface protocol directed to a target virtual namespace;

determine a physical namespace and storage device including the physical namespace to which the target virtual namespace maps;

generating a modified read or write request in the logical device interface protocol directed to the determined physical namespace to perform the received read or write request; and

sending to the determined storage device, using the bus interface protocol, the modified read or write request directed to the determined physical namespace.

20. The method of claim 19 , wherein the logical device interface protocol comprises a Non-volatile Memory Express (NVMe) protocol and wherein the bus interface protocol comprises a Peripheral Component Interconnect Express (PCIe) protocol.

21. The method of claim 18 , wherein

the at least one virtual namespace comprises two virtual namespaces assigned to different ranges of addresses within one physical namespace in one of the at least one storage device.

22. The method of claim 21 , further comprising:

configuring, in the memory device, at least one virtual controller in the virtual subsystem, wherein each of the at least one virtual controller is assigned at least one virtual namespace.

Continuity (2)
Continuation 15167908 · May 27, 2016
Related Publication 20200241749A1 · Jul 30, 2020