On Tue, Sep 04, 2018 at 07:55:00PM -0600, Chris Murphy wrote:
> https://rwmj.wordpress.com/2018/09/04/nbdkit-as-a-flexible-alternative-to-loopback-mounts/
> 
> This is a pretty cool writeup. I can vouch Btrfs will format mount,
> write to, scrub, and btrfs check works on an 8EiB (virtual) disk.
>
> The one thing I thought might cause a problem is the ndb device has a
> 1KiB sector size, but Btrfs (on x86_64) still uses 4096 byte "sector"
> and it all seems to work fine despite that.

Thanks for the kind words.  I did an updated post verifying what you
said and also noting that the ‘nbd-client -b’ option can be used to
adjust the sector size:

  
https://rwmj.wordpress.com/2018/09/05/nbdkit-for-loopback-pt-5-8-exabyte-btrfs-filesystem/

Btrfs still seems to believe the sector size is 4k, although as you
say it doesn't seem to cause any issues.

> Anyway, maybe it's useful for some fstests instead of file backed
> losetup devices?

One interesting feature of nbdkit is that you can write your own
plugins.  For my demonstration, I used the nbdkit-memory-plugin which
implements a purely in-memory sparse array:

  https://github.com/libguestfs/nbdkit/blob/master/plugins/memory/memory.c
  https://github.com/libguestfs/nbdkit/tree/master/common/sparse

But to test btrfs you might want to write a custom plugin.  For
example you might choose a sparse array implementation which is more
suitable for storing specifically btrfs metadata structures, or can
spill to a disk file (which nbdkit-memory-plugin cannot, except swap).

Another thing that's interesting from a testing point of view is the
ability to inject block device errors on demand.  You can either do
this using the supplied nbdkit-error-filter:

  
https://rwmj.wordpress.com/2018/09/04/nbdkit-for-loopback-pt-2-injecting-errors/

or if you were writing your own plugin you'd probably want to do it
there.

Anyway hope you find it interesting.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top

Reply via email to