[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