Computational storage for logical volumes that span physical devices
Systems, apparatuses and methods may provide for technology that identifies a first namespace descriptor, a device memory descriptor, and a first request to execute a program on a logical volume that spans a plurality of physical drives, selects a first target drive from the plurality of physical drives based on the first namespace descriptor, and configures the first target drive to execute the program on first input data associated with the first namespace descriptor and write a first output of the program to a first memory region in an internal memory of the first target drive. In one example, the technology maps the device memory descriptor to the first memory region.
1 . A computing system comprising:
a hardware interface to couple to a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device; and
a processor to execute logical volume management (LVM) to manage the plurality of physical drives, including to allocate a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives, the LVM to issue a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, issuance of the CS command, including the LVM to:
select a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion, send first input data,
and receive a first output of the program from a first memory region in the local memory of the first target drive.
2 . The computing system of claim 1 , wherein to issue the CS command to execute the program on the first target drive includes the LVM to:
transfer the first input data from a first namespace to the local memory of the first target drive, and
initiate an execution of the program on the first target drive.
3 . The computing system of claim 1 , wherein the LVM is further to:
select a second target drive from the plurality of physical drives based on a second namespace
descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.
4 . The computing system of claim 3 , wherein to issue the CS command to execute the program on the second target drive includes the LVM to:
transfer the second input data from a second namespace to the local memory of the second target drive,
transfer the first output from the local memory of the first target drive to the local memory of the second target drive, and
initiate an execution of the program on the second target drive.
5 . The computing system of claim 3 , wherein the the LVM is further to write the program to the plurality of physical drives.
6 . The computing system of claim 1 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.
7 . The computing system of claim 6 , wherein the LVM is to store the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.
8 . The computing system of claim 6 , further comprising storing the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.
9 . A storage system comprising:
a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device; and
a logical volume management (LVM) device to manage the plurality of physical drives, including to allocate a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives, the LVM device to issue a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, issuance of the CS command, including the LVM device to:
select a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion, send first input data,
and receive a first output of the program from a first memory region in the local memory of the first target drive.
10 . The storage system of claim 9 , wherein to issue the CS command to execute the program on the first target drive includes the LVM device to:
transfer the first input data from a first namespace to the local memory of the first target drive; and
initiate an execution of the program on the first target drive.
11 . The storage system of claim 9 , wherein the LVM device is further to:
select a second target drive from the plurality of physical drives based on a second namespace
descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.
12 . The storage system of claim 11 , wherein to issue the CS command to execute the program on the second target drive includes the LVM device to:
transfer the second input data from a second namespace to the local memory of the second target drive;
transfer the first output from the local memory of the first target drive to the local memory of the second target drive; and
initiate an execution of the program on the second target drive.
13 . The storage system of claim 11 , wherein the the LVM device is further to write the program to the plurality of physical drives.
14 . The storage system of claim 9 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.
15 . The storage system of claim 14 , wherein the LVM device is to store the first namespace descriptor, the device memory descriptor, and the host memory descriptor in a descriptor library accessed as a layer of indirection specific to issuance of CS commands.
16 . A method comprising:
in a storage system having a plurality of physical drives, the plurality of physical drives being computational storage (CS) having a local memory and a computational resource at a storage device, allocating a composed namespace that spans the plurality of physical drives with portions stored in the plurality of physical drives; and
issuing a CS command to execute a program at a storage device for a logical volume stored in the plurality of physical drives, including:
selecting a first target drive from the plurality of physical drives based on a first namespace descriptor that identifies the first target drive for a first data portion and a first local memory offset for program execution on the first data portion;
sending first input data; and
receiving a first output of the program from a first memory region in the local memory of the first target drive.
17 . The method of claim 16 , wherein issuing the CS command to execute the program on the first target drive includes:
transferring the first input data from a first namespace to the local memory of the first target drive; and
initiating an execution of the program on the first target drive.
18 . The method of claim 16 , further including:
selecting a second target drive from the plurality of physical drives based on a second namespace descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion;
sending second input data; and
configuring descriptor that identifies the second target drive for a second data portion and a second local memory offset for program execution on the second data portion, send second input data, and receive a second output of the program from a second memory region in the local memory of the second target drive.
19 . The method of claim 18 , wherein to execute the program on the second target drive includes:
transferring the second input data from a second namespace to the local memory of the second target drive;
transferring the first output from the local memory of the first target drive to the local memory of the second target drive; and
initiating an execution of the program on the second target drive.
20 . The method of claim 16 , wherein the first namespace descriptor identifies a namespace extent used in the CS command, and wherein the first namespace descriptor is associated with a device memory descriptor that identifies the local memory offset for the CS command and with a host memory descriptor that identifies a region in host memory for the CS command.