[Btrfs-devel] Device concatenation pushed out to the (really really) unstable tree

Chris Mason chris.mason at oracle.com
Mon Mar 24 12:41:49 PDT 2008


Hello everyone,

There is a considerable amount of work left in the multi-device code, but I'm 
on track to have the mirroring and striping done by the first week in April.  
My plan is to spend most of April testing and refining the code and cut a new 
stable release at the end of the month.  Minor patches and updates for v0.13 
may  find their way into the stable tree as well.

The current code drop can:

Create a filesystem with one or more devices
Dynamically allocate data and metadata from those devices
Fsck, debug-tree etc.

The ext3 conversion program and online resizing tools both need to be updated 
(they don't work) and there are a few more debugging printk/printfs than 
there really should be.  I haven't yet tested on 32 bit systems, so they 
probably don't work in minor ways.

Multi-device filesystems are mounted via a two step process.  First, an ioctl 
from userland on /dev/btrfs-control asks the kernel to scan a given partition 
for btrfs filesystems.  The kernel makes a map of FS uuids it has seen to the 
devices that must be opened to mount the FS.

Once all of the devices have been scanned, mount /dev/any-dev-in-the-fs /mnt 
will work.  btrfsctl -a will scan every block device on the system.  The scan 
must be redone any time you reload the btrfs module.

Example usage:

mkfs.btrfs /dev/sdb1 /dev/sdc1 /dev/sdd1
mount /dev/sdb1 /mnt

The example above skipped the scan because mkfs.btrfs calls the ioctl for you.  
If you were to reboot or unload the kernel module btrfsctl -a would be 
required.

mkfs.btrfs /dev/sdb1 /dev/sdc1
rmmod btrfs
btrfsctl -a
mount /dev/sdc1 /mnt

If you are using filesystems with only one device, btrfsctl -a is not 
required.  Good luck and happy testing.

-chris



More information about the Btrfs-devel mailing list