[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