Martin posted on Wed, 05 Aug 2015 09:06:40 +0200 as excerpted: > [W]hat is the penalty of a subvolume compared to a directory? From a > design perspective, couldn't all directories just be subvolumes? In addition to the performance issues mentioned by others, there's at least one further practical reason as well. Snapshots stop at subvolume boundaries. It's thus quite useful to use subvolumes to delineate the limits of the snapshot, saying, in effect, snapshot this dir (which happens to be a subvol not just a normal dir) recursively, but don't snapshot the subtree starting with this nested subdir (which again is a (different) subvol). Subvols act very much like directories, it is true. But they have a few additional properties and different behaviors, and it is the distinction between directories and subvols that makes them valuable /as/ subvols. Without a distinction, the whole reason to have subvols as a separate feature vanishes. (FWIW, the first systemd release, v219, to use btrfs subvolume in place of directories found out some of the behavior differences the hard way. Where it was previously doing mkdir, which returns success if the directory is already there, critical for a root filesystem keep read-only mounted by default, but with the required directories already created, on btrfs it tried to create a subvolume instead, which fails if there's a directory already there, particularly if it's a read-only mount. So the behavior creating a subvol differs from that of creating a subdir, and systemd's tmpfiles service was failing on read-only btrfs mounts as a result, while it previously succeeded, when it was only trying to create directories, which already existed. Oops! The bug was fixed in v221, but the experience does illustrate that while subvolumes behave in /many/ ways like subdirs, there are indeed small differences in behavior that can leap up and bite the unwary.) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
