Re: bcachefs: can bcachefs export block devices?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> On Wed, May 25, 2016 at 02:47:29PM -0700, Eric Wheeler wrote:
> > Does bcachefs's implementation reuse and update the existing 
> > bcache code such that the block device driver inherits the bcachefs 
> > improvements?  I understand the cache superblock changed, maybe the cached 
> > dev super too.
> 
> Yes, all of the existing functionality is still there (though some of it's
> broken at the moment because I haven't been running those tests; if you're
> interested in using bcache-dev for the old style caching (there are performance
> and robustness improvements) it wouldn't take me long to get it working again).

I can test that once its working.  Would it use the same bcachefs tools 
for formatting superblocks?

Relatedly, can you point out the best place to abstract cachemeta-v1 vs. 
cachemeta-v2 for simultaneous use?  Could it be just a bunch of function 
pointers in the cachedev struct and assignment during initialization for 
v1/v2?  Have the call arguments changed? What functions would need 
abstractions (the smallest v1/v2 intersection)?

> > Can bcachefs provide /dev/bcacheN devices without loop.ko?  
> > 
> > If so, are these simply filesystem objects (files)?
> 
> The way it works is the first 4096 inode numbers are owned by the block device
> interface - inodes in that range are for either cached devices or thin
> provisioned volumes. The filesystem code owns inode numbers >= 4096.
> 
> So while blockdev volumes/cached data do have inodes, they're not reachable via
> the filesystem because there will never be dirents that point to them (also,
> they use a different inode type with extra fields for the UUID/label).

Thats a neat implementation.  Would creating a dirent for such an inode 
expose the block device with the same size and content (and ordering) if 
if the inode were compatable?  Would the blockdev be block-size aligned 
versus the file or might the file have an alignment requirement?

I'm particularly excited about this as a precursor to snapshot support, 
especially if udev could help produce something like this:

  /dev/disk/by-path/bcache-mydiskfile -> /dev/bcacheN
  /dev/disk/by-path/bcache-mydisksnap -> /dev/bcacheN+1


--
Eric Wheeler

On Wed, 25 May 2016, Kent Overstreet wrote:

> 
> However - there isn't anything preventing us from writing a bit of new code and
> hooking it up to an ioctl or sysfs interface to say "look up this path and
> create a block device for that file". The only remotely tricky bit would be
> pagecache cache coherency, but I think you get the new block device to just use
> the same address_space (pagecache cache for an inode) as the filesystem inode.
> 
> So, probably doable in ~100 lines of code or so.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux