[Btrfs-devel] Handling of big volumes in btrfs

Chris mason chris.mason at oracle.com
Sun Jan 20 16:16:51 PST 2008


On Saturday 19 January 2008, Jan Engelhardt wrote:
> Hi,
>
> >From the XFS list I gather that btrfs, being able to mount a >16 TB
>
> volume on a 32-bit x86 box, either has some special power - or bug.
> Which of the two is it?

mkfs.btrfs doesn't have to write past 16TB, so it isn't an issue from userland 
(btrfsck is a different story).  That would have to shift to O_DIRECT IO, 
which wouldn't be horrible now that Yan has extent_buffers ported.

From the kernel, you'll bump into the unsigned long radix tree, which is only 
32 bits.  Currently a single address_space is used as the backing for the 
block device, which is used for all metadata.

There aren't many functions that care about this, basically just the ones that 
read, write or find pages for extent_buffers.

So, btrfs could chain multiple address spaces together to go beyond 16TB, and 
abstract it out in extent_map.c:extend_buffer_page() and a handful of other 
spots.

-chris



More information about the Btrfs-devel mailing list