
Valerie Aurora has published a
great article in LWN about btrfs:
"You probably have heard of the cool new kid on the file system block - after all, Linus Torvalds is using it as his root file system on one of his laptops. But you might not know much about it beyond a few high-level keywords - copy-on-write, checksums, writable snapshots - and a few sensational rumors and stories - the Phoronix benchmarks, btrfs is a ZFS ripoff, btrfs is a secret plan for Oracle domination of Linux, etc. When it comes to file systems, it's hard to tell truth from rumor from vile slander. In this article, we'll take a behind-the-scenes look at the design and development of btrfs on many levels."
Member since:
2005-07-08
Btrfs can handle multiple devices and create filesystems out of the pool space, and use different mirroring/stripping policies. You can see the internal details of it here http://btrfs.wiki.kernel.org/index.php/Multiple_Device_Support .
You won't guess it from the LWN article linked because all the multidevice/mirroring/stripping thing is not done at that level. The root btree has not knowledge of that. It's the chunk tree (which is just another btree, but using different keys) where "chunks" (big portions of data allocated from the device allocation tree, and from where the extent tree allocates space) store their mirror/strip configurations.
You don't use the same tool to create filesystems and to manage them. You can create them with mkfs, and you "manage" them with btrfsctl and btrfs-vol. Yes, ZFS command line tool is nice, but for btrfs it'd just a matter of creating a readline program. It's not exactly the most critical issue in btrfs now.