Closed GaoBo1997 closed 4 years ago
Hey, could you post information about the exact QEMU version you're using? FTL officially works on the OCSSD surfaced by this version of QEMU: https://github.com/spdk/qemu/tree/spdk-3.0.0 and some settings suggest this isn't what's being used here. In the meantime could you also check with the following geometry settings: num_grp=1,num_pu=8 and Metadata Size: 0
I use this QEMU: https://github.com/OpenChannelSSD/qemu-nvme
I read the FTL guide: https://spdk.io/doc/ftl.html
but I don't know the setting lmetadata=/path/to/md/file
means.
I will try https://github.com/spdk/qemu/tree/spdk-3.0.0 later and feedback.
ok. When I use this version of QEMU:
https://github.com/spdk/qemu/tree/spdk-3.0.0
everything is ok.
And the FTL guide need to be updated: https://spdk.io/doc/ftl.html
lmetadata=/path/to/md/file
is nod recognized, while metadata=/path/to/md/file
is true.
And the bdev_ftl_create
command's option -l
is no more recognized.
And one more question, why the metadata file is separated from the ocssd file? In pblk, metadata is stored in the ocssd file. And how to calculate the size of metadata file? I would appreciate it if you could answer my question. Thank you!
Thanks for pointing out the documentation mismatch. The version of QEMU SPDK's fork was based of didn't have any sector metadata support initially. The separate file was at first only used to save information about sector state in OCSSD drives (ie. erased, written, etc.) and was eventually utilized for sector metadata as well.
Thank you for your help! My problem has been solved. And I will close the issue.
Expected Behavior
I open two command windows. One runs
./scripts/setup.sh
and./app/spdk_tgt/spdk_tgt
, and another one runs the following commands:It should restore metadata from the device and create bdev ftl successfully.
Current Behavior
But the following is current behavior:
More information:
The windows which runs
./app/spdk_tgt/spdk_tgt
shows:Run
./examples/nvme/identify/identify
:I use qemu-nvme to create a ocssd image and load it.
Possible Solution
Maybe my method is wrong...
Steps to Reproduce
1. qemu-nvme
2. spdk
Context (Environment including OS version, SPDK version, etc.)
spdk version is newest. I suppose that is SPDK v20.01-pre git sha1 159703c9d / DPDK 19.11.0. I download the newest spdk today.