Use this information to configure the SPDK for sharing RAM devices using NVMe™/TCP on the target server.
Make sure that you have:
- Programmed the DPU with an appropriate FPGA image. See Link-Storage™ Software FPGA images.
- Installed the SPDK on the target server. See Installing the SPDK on the Target Server.
- Installed the Link-Storage™ Software package on the DPU. See Installing the Napatech SDPK on the DPU.
Note: The following prompt is used to indicate which part of the system
to run the provided commands on.
target#: The remote server with storage disks.
-
Check the disk status.
target# cd spdk target# scripts/setup.sh statusAn output example:
Hugepages node hugesize free / total node0 1048576kB 0 / 0 node0 2048kB 10240 / 10240 Type BDF Vendor Device NUMA Driver Device Block devices I/OAT 0000:00:04.0 8086 6f20 unknown ioatdma - - I/OAT 0000:00:04.1 8086 6f21 unknown ioatdma - - I/OAT 0000:00:04.2 8086 6f22 unknown ioatdma - - I/OAT 0000:00:04.3 8086 6f23 unknown ioatdma - - I/OAT 0000:00:04.4 8086 6f24 unknown ioatdma - - I/OAT 0000:00:04.5 8086 6f25 unknown ioatdma - - I/OAT 0000:00:04.6 8086 6f26 unknown ioatdma - - I/OAT 0000:00:04.7 8086 6f27 unknown ioatdma - - -
Configure the SPDK.
Specify the number of huge pages.
target# export NRHUGE=10240Run the setup script to allocate huge page memory.
target# PCI_ALLOWED=' ' ./scripts/setup.shAn output example:
0000:00:04.7 (8086 6f27): Skipping denied controller at 0000:00:04.7 0000:00:04.6 (8086 6f26): Skipping denied controller at 0000:00:04.6 0000:00:04.5 (8086 6f25): Skipping denied controller at 0000:00:04.5 0000:00:04.4 (8086 6f24): Skipping denied controller at 0000:00:04.4 0000:00:04.3 (8086 6f23): Skipping denied controller at 0000:00:04.3 0000:00:04.2 (8086 6f22): Skipping denied controller at 0000:00:04.2 0000:00:04.1 (8086 6f21): Skipping denied controller at 0000:00:04.1 0000:00:04.0 (8086 6f20): Skipping denied controller at 0000:00:04.0 INFO: Requested 10240 hugepages but 10240 already allocatedPCI_ALLOWED=' 'is used to prevent storage devices from being bound to any drivers. -
Verify the status.
target# scripts/setup.sh statusAn output example:
Hugepages node hugesize free / total node0 1048576kB 0 / 0 node0 2048kB 10240 / 10240 Type BDF Vendor Device NUMA Driver Device Block devices I/OAT 0000:00:04.0 8086 6f20 unknown ioatdma - - I/OAT 0000:00:04.1 8086 6f21 unknown ioatdma - - I/OAT 0000:00:04.2 8086 6f22 unknown ioatdma - - I/OAT 0000:00:04.3 8086 6f23 unknown ioatdma - - I/OAT 0000:00:04.4 8086 6f24 unknown ioatdma - - I/OAT 0000:00:04.5 8086 6f25 unknown ioatdma - - I/OAT 0000:00:04.6 8086 6f26 unknown ioatdma - - I/OAT 0000:00:04.7 8086 6f27 unknown ioatdma - -Note: The output may vary depending on the system. -
Start the nvmf_tgt application and keep this terminal open.
target# build/bin/nvmf_tgt -e all -m 0x1 -r /var/tmp/spdk.sockwhere:
-e all: Enables all available subsystems.-m 0x1: Specifies the mask of core mask. In this case, it's set to 0x1, indicating that it runs on core 0.-r /var/tmp/spdk.sock: Specifies the location of the SPDK control socket. This socket is used for communicating with the SPDK application to issue commands and retrieve information.
An output example:
[2025-01-28 13:50:24.296736] Starting SPDK v25.01-pre git sha1 e01cb43b8 / DPDK 24.03.0 initialization... [2025-01-28 13:50:24.296823] [ DPDK EAL parameters: nvmf --no-shconf -c 0x1 --huge-unlink --no-telemetry --log-level=lib.eal:6 --log-level=lib.cryptodev:5 --log-level=lib.power:5 --log-level=user1:6 --base-virtaddr=0x200000000000 --match-allocations --file-prefix=spdk_pid3231155 ] [2025-01-28 13:50:24.337088] app.c: 919:spdk_app_start: *NOTICE*: Total cores available: 1 [2025-01-28 13:50:24.463366] app.c: 612:app_setup_trace: *NOTICE*: Tracepoint Group Mask all specified. [2025-01-28 13:50:24.463408] app.c: 616:app_setup_trace: *NOTICE*: Use 'spdk_trace -s nvmf -p 3231155' to capture a snapshot of events at runtime. [2025-01-28 13:50:24.463416] app.c: 618:app_setup_trace: *NOTICE*: 'spdk_trace' without parameters will also work if this is the only [2025-01-28 13:50:24.463423] app.c: 619:app_setup_trace: *NOTICE*: SPDK application currently running. [2025-01-28 13:50:24.463431] app.c: 620:app_setup_trace: *NOTICE*: Or copy /dev/shm/nvmf_trace.pid3231155 for offline analysis/debug. [2025-01-28 13:50:24.463510] reactor.c: 995:reactor_run: *NOTICE*: Reactor started on core 0
Related concepts