[Release] 22.05: SMA, accel_fw compress, virtio-blk transport abstraction
by Zawadzki, Tomasz
On behalf of the SPDK community I'm pleased to announce the release of SPDK 22.05!
This release contains the following new features:
- Storage Management Agent: Added a service providing a gRPC interface for orchestrating SPDK applications. Please see https://spdk.io/doc/sma.html for details.
- Accelerator framework compression: Added API for compress and decompress operations to the accelerator framework.
- Accelerator framework IAA: Added support for the Intel (R) Analytics Accelerator device.
- RAID concat: Added concat module to RAID bdev. This is a special RAID level that can add multiple underlying bdevs, extending the concat bdev size.
- virtio-blk transport abstraction: Added abstraction for creating virtio-blk transports, with the `vhost_user_blk` as the first one.
- vfio-user interrupt coalescing: Added adaptive interrupt feature for vfio-user transport. New parameter `disable_adaptive_irq` was added to the RPC `nvmf_create_transport`.
- NVMe multipath: Added support for active/active policy and selecting preferred I/O path.
- NVMe-oF RDMA: Added asynchronous qpair connect.
The full changelog for this release is available at:
https://github.com/spdk/spdk/releases/tag/v22.05
This release contains 749 commits from 63 authors with over 39k lines of code changed.
We'd especially like to recognize all of our first time contributors:
Alexis Lescouet
Alex Michon
Aviv Ben-David
Boris Glimcher
Chunsong Feng
Duan Zhang
Gal Hammer
Gu Zhimin
Jaroslaw Chachulski
Jon Kohler
Kamil Godzwon
Lu Zhipeng
Mike Gerdts
Milosz Linkiewicz
Samir Raval
Sebastian Brzezinka
Weiguo Li
Xiaoxiang Zhang
Yuriy Umanets
Ziv Hirsch
Thanks to everyone for your contributions, participation, and effort!
Thanks,
Tomek
2 months, 3 weeks
Preparation for SPDK 22.05 release
by Zawadzki, Tomasz
Hello all,
The merge window for SPDK 22.05 release will close by May 20th.
Please ensure all patches you believe should be included in the release are merged to 'master' branch by this date.
You can do it by adding a hashtag '22.05' in Gerrit on those patches.
The current set of patches that are tagged and need to be reviewed can be seen here:
https://review.spdk.io/gerrit/q/hashtag:%2222.05%22+status:open
On May 20th new branch 'v22.05.x' will be created, and a patch on it will be tagged as release candidate.
Then, by May 27th, a formal release will take place tagging the last patch on the branch as SPDK 22.05.
Between release candidate and formal release, only critical fixes shall be backported to the 'v22.05.x' branch.
Development can continue without disruptions on 'master' branch.
Thanks,
Tomek
2 months, 3 weeks
Best way to scale large number of bdevs
by iyoavco@gmail.com
Hi,
We need to expose ~1k of bdevs from 1 target where each bdev will only be used by 1 client.
I want to understand from resources management point of view what is my best way to do it.
1) We don't mind that initiator will be exposed to other bdevs except from the one it is using.
2) We consider 1 Subsystem per bdev as number of open ports is not an issue but not sure Id that's the right way
3) Other option is to use the max namespace per each subsystem
Thank you
2 months, 4 weeks
Best way to scale number of bdevs
by iyoavco@gmail.com
Hi,
We need to expose ~1k of bdevs from 1 target where each bdev will only be used by 1 client.
I want to understand from resources management point of view what is my best way to do it.
1) We don't mind that initiator will be exposed to other bdevs except from the one it is using.
2) We consider 1 Subsystem per bdev as number of open ports is not an issue but not sure Id that's the right way
3) Other option is to use the max namespace per each subsystem
Thank you
2 months, 4 weeks
[Release] 22.01.1: Maintenance LTS Release
by Zawadzki, Tomasz
On behalf of the SPDK community I'm pleased to announce the release of SPDK 22.01.1 LTS!
SPDK 22.01.1 is a bug fix and maintenance LTS release. Due to DPDK vhost CVE fixes users are strongly encouraged to upgrade.
The full changelog for this release is available at:
https://github.com/spdk/spdk/releases/tag/v22.01.1
Thanks to everyone for your contributions, participation, and effort!
Thanks,
Tomek
3 months
Why two perf processes can't scale out?
by 645505358@qq.com
Hi guys,
The nvmf_tgt is running in one node and perf is running in another node.
I first get the peak performance of nvmf_tgt by setting the io depth (-q) of perf to 64.
And the peak performance is 4GB/s.
Then I set the io depth of perf to 1 and found that the performance becomes 1GB/s.
This is understandable to me.
But when I run two perf with io depth equal to 1, the performance is shared by two perf processes (i.e., each has 500mb/s).
so, what resources are they competing for so that performance cannot scale?
Thanks.
3 months, 1 week
Can blobstore and blobfs be used together ?
by jamesxql@gmail.com
Hey guys, I have a question.
In the same process, can blobstore and blobfs be used to write data to the same hard disk at the same time, and is there a conflict between them?
If they can, how do I construct spdk_filesystem from an initialized spdk_blob_store?
3 months, 1 week
spdk_get_io_channel: *ERROR*: could not find io_device
by bsddiy@163.com
Hi,
I can open nvme device with SPDK API spdk_bdev_open_ext(),
but when I want to get a channel to do I/O, spdk_bdev_get_io_channel()
always return NULL, and it prints following error message:
thread.c:2122:spdk_get_io_channel: *ERROR*: could not find io_device 0x7f52ebb41180
The full log is here:
OAT: ioat_dmadev_probe(): Init 0000:80:01.7 on NUMA node 1
mlx5_net: No available register for sampler.
mlx5_common: No Verbs device matches PCI device 0000:b1:00.1, are kernel drivers loaded?
mlx5_common: Verbs device not found: 0000:b1:00.1
mlx5_common: Failed to initialize device context.
EAL: Requested device 0000:b1:00.1 cannot be used
TELEMETRY: No legacy callbacks, legacy socket not created
[2022-05-09 17:28:46.703804] bdev.c:6132:bdev_register: *DEBUG*: Inserting bdev Nvme0n1 into list
[2022-05-09 17:28:46.703850] bdev.c:6376:bdev_open: *DEBUG*: Opening descriptor 0x7f52e4381d10 for bdev Nvme0n1 on thread 0x7f52e433def0
[2022-05-09 17:28:46.703984] thread.c:2122:spdk_get_io_channel: *ERROR*: could not find io_device 0x7f52ebb41180
[2022-05-09 17:28:46.704000] bdev_nvme.c: 602:_bdev_nvme_add_io_path: *ERROR*: Failed to alloc io_channel.
[2022-05-09 17:28:46.704010] blobstore.c:3124:bs_channel_create: *ERROR*: Failed to create device channel.
[2022-05-09 17:28:46.704019] blobstore.c:5533:bs_register_md_thread: *ERROR*: Failed to get IO channel.
[2022-05-09 17:28:46.704059] bdev.c:6544:spdk_bdev_close: *DEBUG*: Closing descriptor 0x7f52e4381d10 for bdev Nvme0n1 on thread 0x7f52e433def0
[2022-05-09 17:28:46.704074] bdev.c:6376:bdev_open: *DEBUG*: Opening descriptor 0x7f52e4381fc0 for bdev Nvme0n1 on thread 0x7f52e433def0
[2022-05-09 17:28:46.704086] thread.c:2122:spdk_get_io_channel: *ERROR*: could not find io_device 0x7f52ebb41180
[2022-05-09 17:28:46.704094] bdev_nvme.c: 602:_bdev_nvme_add_io_path: *ERROR*: Failed to alloc io_channel.
[2022-05-09 17:28:46.704103] vbdev_gpt.c: 519:vbdev_gpt_read_gpt: *ERROR*: Failed to get an io_channel.
[2022-05-09 17:28:46.704110] bdev.c:6544:spdk_bdev_close: *DEBUG*: Closing descriptor 0x7f52e4381fc0 for bdev Nvme0n1 on thread 0x7f52e433def0
[2022-05-09 17:28:46.704133] vbdev_gpt.c: 572:vbdev_gpt_examine: *ERROR*: Failed to read info from bdev Nvme0n1
[2022-05-09 17:28:46.704549] bdev.c: 695:spdk_bdev_first: *DEBUG*: Starting bdev iteration at Nvme0n1
dev: Nvme0n1
===
Can anyone tell me the reason why I can not open a channel with a valid desc ?
Regards,
Skye Xu
3 months, 1 week