Closed ryderhsu0129 closed 2 years ago
@ryderhsu0129 : Thanks for reporting, we're digging into the cause of this
What kernel version are you using?
@yhr my kernel version is 5.10.32.
If I disable multipath by adding nvme-core.multipath=NO to grub file,
then I have the scheduler mq-deadline option in the sysfs node :
$cat /sys/block/nvme0n1/queue/scheduler
[mq-deadline] none
I can create ZenFS success after doing the above action.
Is it not possible to create a ZenFS with the multipath function turned on?
@ryderhsu0129 : It looks like it might be a restriction/issue in the kernel, continuing to look into it. You could disable the check in the code as a temporary workaround for testing purposes (https://github.com/westerndigitalcorporation/zenfs/blob/d226fb48824dd7a6a479495c8cb11801c06fe7bc/fs/zbd_zenfs.cc#L202)
ZenFS works 99.9% out of the time without the deadline scheduler. Its only in rare cases where the kernel decides to split and reorder writes errors can occur.
@yhr ok i got it, thanks for your reply.
I have established the relevant environment to create ZenFS, using the mkfs command got some error :
$./zenfs mkfs --zbd=nvme0n1 --aux_path=/usr/src/zenfs_temp
Failed to open zoned block device: nvme0n1, error: Invalid argument: Current ZBD scheduler is not mq-deadline, set it to mq-deadline.but I can only set scheduler to mq-deadline on nvme0c0n1, nvme0n1 doesn't have the option :
$cat /sys/block/nvme0n1/queue/scheduler
none$cat /sys/block/nvme0c0n1/queue/scheduler
[mq-deadline] nonethen I specify --zbd argument to nvme0c0n1, and got another error :
$./zenfs mkfs --zbd=nvme0c0n1 --aux_path=/usr/src/zenfs_temp
Failed to open zoned block device: nvme0c0n1, error: Invalid argument: Failed to open zoned block device for read: No such file or directorylooks like the command doesn't recognize the ZBD device, how should i solve it?thanks!