should I put my multi-device btrfs filesystem on disk partitions or raw devices?

Partitioning is just a way to split a disk up into multiple volumes which can be used independently. If you only want one volume per disk, partitioning doesn't buy you anything -- it just uses removes some disk space (yes, it's very small), and complicates things like aligning your data on harddrives with 4K sectors or flash drives. The only other reason to have a partition table is in order to boot off that drive. If there's no reason to have a partition table it's simpler to just omit it.


There are a number of disadvantages of partitioning. MBR wastes a whole "track". A track is number of sectors times sector size, but a real disc does have sectors and sector size is not 512o. A real disc has blocks which are 8 times larger for rotating disc and much larger for flash devices. This shifting to the next track may make it impossible to align "logical" sectors with actual blocks using stride and stripe.

In the old days you could define sector size in FAT, but MBR put an end to that.

If you are booting from the disc then BIOS needs a boot signature in the end of the first 512o so that it knows it can run this when its loaded. If you are running EFI get drunk. The file system would need to have a hole for this if it is to be used to boot the system.

XFS (mostly used on /var on rotating discs) does not have such a hole.


If I understand correctly, using whole disks will allow BTRFS to make some assumptions which allow some optimization of behavior.

Like, if granted full devices to work from, it can assume that it won't have anything challenging it for access to the device, and it can tailor its access methods instead of having to anticipate delays periodically from something else asking for data from somewhere else on the device, and having to wait for the drive to get back to it after handling the other request.