David, On 2019/06/13 22:45, David Sterba wrote: > On Thu, Jun 13, 2019 at 04:59:23AM +0000, Naohiro Aota wrote: >> On 2019/06/13 2:50, David Sterba wrote: >>> On Fri, Jun 07, 2019 at 10:10:06PM +0900, Naohiro Aota wrote: >>>> btrfs zoned block device support >>>> >>>> This series adds zoned block device support to btrfs. >>> >>> The overall design sounds ok. >>> >>> I skimmed through the patches and the biggest task I see is how to make >>> the hmzoned adjustments and branches less visible, ie. there are too >>> many if (hmzoned) { do something } standing out. But that's merely a >>> matter of wrappers and maybe an abstraction here and there. >> >> Sure. I'll add some more abstractions in the next version. > > Ok, I'll reply to the patches with specific things. > >>> How can I test the zoned devices backed by files (or regular disks)? I >>> searched for some concrete example eg. for qemu or dm-zoned, but closest >>> match was a text description in libzbc README that it's possible to >>> implement. All other howtos expect a real zoned device. >> >> You can use tcmu-runer [1] to create an emulated zoned device backed by >> a regular file. Here is a setup how-to: >> http://zonedstorage.io/projects/tcmu-runner/#compilation-and-installation > > That looks great, thanks. I wonder why there's no way to find that, all > I got were dead links to linux-iscsi.org or tutorials of targetcli that > were years old and not working. The site went online 4 days ago :) We will advertise it whenever we can. This is intended to document all things "zoned block device" including Btrfs support, when we get it finished :) > > Feeding the textual commands to targetcli is not exactly what I'd > expect for scripting, but at least it seems to work. Yes, this is not exactly obvious, but that is how most automation with linux iscsi is done. > > I tried to pass an emulated ZBC device on host to KVM guest (as a scsi > device) but lsscsi does not recognize that it as a zonde device (just a > QEMU harddisk). So this seems the emulation must be done inside the VM. > What driver did you use for the drive ? virtio block ? I have not touch that driver nor qemu side, so zoned block dev support is likely missing. I will add it. That would be especially useful for testing with a real drive. In the case of tcmu runner, the initiator can be started in the guest directly and the target emulation done either in the guest if loopback is used, or on the host using iscsi connection. The former is what we use all the time and so is well tested. I have to admit that testing with iscsi is lacking... Will add that to the todo list. Best regards. -- Damien Le Moal Western Digital Research