[SPDK] Re: Configuring SPDK NVMe over TCP initiator

Chethan Seshadri <chethan_seshadri at yahoo.com>
Newsgroups dev.linux.lists.spdk
Message-ID <[email protected]>
 Or is this configuration using Kernel mode TCP socket itself? If so, any steps as to how to integrate with the user mode TCP stack.
Regards,Chethan
    On Monday, January 25, 2021, 01:39:56 AM GMT+5:30, Chethan Seshadri <chethan_seshadri(a)yahoo.com> wrote:  
 
  Okay, so with the NVMe over TCP target configured on one VM and with two Malloc bdevs configured, I was able to discover them on the initiator size with the steps that Tomasz mentioned (along with creating the TCP transport). Thanks.
I guess I was referring to two things w.r.t user mode TCP stack...
   
   - The NVMe over TCP transport that SPDK uses/creates. I guess lib/nvme/nvme_tcp.c or lib/nvmf/tcp.c points to it.
   - The user mode TCP stack - I guess I was referring to the DPDK library files dpdk/lib/librte_gro/gro_tcp4.c or dpdk/lib/librte_gso/gso_tcp4.c. If these are not about the user mode TCP stack, then can you let me know how do I exercise any user mode TCP stack for this purpose

Thanks,Chethan 
    On Saturday, January 23, 2021, 12:01:58 AM GMT+5:30, Luse, Paul E <paul.e.luse(a)intel.com> wrote:  
 
 This question jumped out at me:

“> Also, does anyone know if I can use the user mode TCP stack bundled along
> with SPDK for regular TCP communication?”

Just to be clear there is no user mode TCP stack bundled with SPDK.  I think you meant the SPDK NVMe-OF initiator which is not “general purpose” as Tomek was explaining requires use of an SPDK application on the initiator side as highlighted below.

Hope that helps.

Thx
Paul

From: Zawadzki, Tomasz <tomasz.zawadzki(a)intel.com>
Date: Friday, January 22, 2021 at 11:26 AM
To: Storage Performance Development Kit <spdk(a)lists.01.org>
Subject: [SPDK] Re: Configuring SPDK NVMe over TCP initiator
Can you please describe how do you want to use the device on initiator side ?

rpc.py communicates with a running SPDK application instance on local host. So please make sure that an SPDK application you want to utilize on initiator side is running first.

On initiator start ./build/bin/spdk_tgt and issue the previously mentioned RPC. After it successfully connects to the NVMe-oF target,  'rpc.py bdev_get_bdevs' will display the connected bdev.

Similar things can be achieved with other SPDK applications like bdevperf or fio_plugin by using JSON configuration to those tools.

Thanks,
Tomek

> -----Original Message-----
> From: Chethan Seshadri <chethan_seshadri(a)yahoo.com>
> Sent: Friday, January 22, 2021 5:30 PM
> To: Storage Performance Development Kit <spdk(a)lists.01.org>
> Subject: [SPDK] Re: Configuring SPDK NVMe over TCP initiator
>
>  Thank you Michael and Tomasz.
> While I am able to setup the NVMe over TCP target successfully, for the
> initiator, I executed scripts/setup.sh followed by creating the NVMe device
> of NVMe over TCP resource using the bdev_nvme_attach_controller rpc
> method. But it fails at line # 71 of scripts/rpc/client.py which is basically
> connection establishment error because "Name or service not known". To
> the same NVMe over TCP target, I am able to establish a connection using nc
> i.e.#nc -z -v 10.10.10.1 4420 Do I have to execute any other steps other than
> scripts/setup.sh on the NVMe over TCP initiator side?
> Also, does anyone know if I can use the user mode TCP stack bundled along
> with SPDK for regular TCP communication?
> Thanks,Chethan
>    On Friday, January 22, 2021, 07:40:21 AM GMT+5:30, Michael Haeuptle
> <michaelhaeuptle(a)gmail.com> wrote:
>
>  Hi Chethan,
>
> take a look at https://spdk.io/doc/nvmf.html
> <https://spdk.io/doc/nvmf.html> for setting up the NVMF and
> https://spdk.io/doc/bdev.html#bdev_config_nvme
> <https://spdk.io/doc/bdev.html#bdev_config_nvme> for setting up an
> NVMe bdev.
>
> The basic steps are something like below (haven’t had a chance to verify
> these steps so they may need some adjustments):
>
> Follow https://spdk.io/doc/system_configuration.html
> <https://spdk.io/doc/system_configuration.html> to set up the
> environment. Basically, you have to run scripts/setup.sh and ensure that the
> NVMe device is using the vfio-pci or uio_pci_generic (lspci -vv to verify or run
> the script again to give status).
>
> Then create a bdev for the NVMe device and add it as a namespace to a
> NVMF subsystem:
>
> scripts/rpc.py bdev_nvme_attach_controller -b NVMe1 -t PCIe -a
> 0000:01:00.0
>
> scripts/rpc.py nvmf_create_transport -t TCP -u 16384 -m 8 -c 8192
> scripts/rpc.py nvmf_create_subsystem nqn.2016-06.io.spdk:cnode1 -a -s
> SPDK00000000000001 -d SPDK_Controller1 scripts/rpc.py
> nvmf_subsystem_add_ns nqn.2016-06.io.spdk:cnode1 NVMe1 scripts/rpc.py
> nvmf_subsystem_add_listener nqn.2016-06.io.spdk:cnode1 -t rdma -a
> 192.168.100.8 -s 4420
>
> — Michael
>
> > On Jan 21, 2021, at 5:08 AM, Chethan Seshadri
> <chethan_seshadri(a)yahoo.com> wrote:
> >
> > Hi,
> > Can anyone point me to the steps to configure SPDK NVMe over TCP
> initiator?
> > Thanks,Chethan
> > _______________________________________________
> > SPDK mailing list -- spdk(a)lists.01.org To unsubscribe send an email to
> > spdk-leave(a)lists.01.org
>
> _______________________________________________
> SPDK mailing list -- spdk(a)lists.01.org
> To unsubscribe send an email to spdk-leave(a)lists.01.org
>
> _______________________________________________
> SPDK mailing list -- spdk(a)lists.01.org
> To unsubscribe send an email to spdk-leave(a)lists.01.org
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org
_______________________________________________
SPDK mailing list -- spdk(a)lists.01.org
To unsubscribe send an email to spdk-leave(a)lists.01.org
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.