Hi,

Chris Murphy suggested we move the discussion in this bugzilla thread:
https://bugzilla.kernel.org/show_bug.cgi?id=115851

To here, the mailing list.

Going to quote him to give context:
"This might be better discussed on list to ensure there's congruence in
dev and user expectations; and in particular I think this needs a design
that accounts for the realistic long term goal, so that a short term
scope doesn't interfere or make the long term more difficult.

The matrix of possibilities, most of which are not yet implemented in
btrfs-progs:

1. 1 dev seed -> 1 dev sprout
2. 2+ dev seed -> 1 dev sprout
3. 1 dev seed -> 2+ dev sprout
4. 2+ dev seed -> 2+ dev sprout

Near as I can tell 2, 3, 4 are not implemented. It's an immediate
problem whether and how the profile (single, raid0, raid1) is to be
inherited from seed to sprout. If I have a 4 disk raid1 volume, to
create a sprout must I add a minimum of two devices? Or is it valid to
have raid1 profile seed chunks, where writes to go single profile sprout
chunks? Anyway point is, it needs a design to answer these things.

Next, and even more importantly as it applies to the simple case of
single to single, the way we do this right now is beyond confusing
because the remount ro to rw changes the volume UUID being mounted. The
ro mount is the seed, the rw mount is the sprout. This is not really a
remount, it's a umount of the seed, and a mount of the sprout. But what
if there's more than one sprout? This is asking for trouble so I think
the remount rw should be disallowed making it clear the ro seed cannot
be mounted rw. Instead it's necessary to umount it and explicitly mount
the rw sprout, and which sprout.

Also part of the ambiguity is that 'btrfs dev add' is more like
mkfs.btrfs in the context of seed-sprout. The new device isn't really
added to the seed, because the seed is read only. What's really
happening is a mkfs.btrfs with a "backing device" which is the seed; in
some sense it has more in common with the mkfs.btrfs --rootdir option. 

So I even wonder if 'btrfs dev add' is appropriate for creating sprouts,
and if instead it should be in mkfs.btfs with a --seed option to specify
the backing seed, and thereby what we are making is a sprout, which has
a new UUID, and possibly different chunk profiles than the seed."

Thanks,
Luis
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to