westerndigitalcorporation / zenfs

ZenFS is a storage backend for RocksDB that enables support for ZNS SSDs and SMR HDDs.
GNU General Public License v2.0
240 stars 88 forks source link

Binding the ZNS SSD question. #292

Closed N96114297 closed 2 months ago

N96114297 commented 3 months ago

Hello, I want to ask a question about device binding. According to #290 , I changed the zone management command from libzbd to spdk. But in mkfs, because I need to bind the ZNS SSD to the NVMe controller of SPDK in order to run SPDK (this will cause the path of the ZNS SSD to disappear), so my ZNS SSD cannot be found and ZenFS cannot be created. Is there a way to solve this problem? For example, without binding the device?

MaisenbacherD commented 3 months ago

Hi @N96114297

If I understand correctly you are trying to add SPDK as a storage backend to ZenFS. To use your ZNS SSD with SPDK you always need to unbind the device from the nvme driver and bind it to vfio (and therefore you won't see the device under /dev/nvmeXnX).

For the issue you have with mkfs you would need to add a new spdk-device parameter (eg PCI address or spdk bdev identifier) along with some logic to handle zbd_open within the zenfs util: https://github.com/westerndigitalcorporation/zenfs/blob/master/util/zenfs.cc

As @yhr mentioned you need to implement the ZonedBlockDeviceBackend for SPDK before.

N96114297 commented 2 months ago

OK! I understand what you mean.

Thanks for your response and suggestions, I'll try it!