From: "Goffredo Baroncelli <kreijack@libero.it>" <kreijack@libero.it>
To: <lists@colorremedies.com>, Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: R: Re: Question about btrfs as root filesystem
Date: Fri, 8 Nov 2013 13:55:06 +0100 (CET) [thread overview]
Message-ID: <29341211.3154771383915306434.JavaMail.defaultUser@defaultHost> (raw)
In-Reply-To: <5eb6a9cbd3a163b70c9cfe4a1b46a1fa@myjm.de>
>On Nov 7, 2013, at 4:45 PM, Michael Göhler <visit@myjm.de> wrote:
>> The boot subvolume is then set with 'btrfs subvolume set-default' and
mounted without subvol/subvolid option by Arch's default mount handler.
>
>I'm unconvinced it's a good idea for it to be used behind the scenes
> for the described purpose. Consider the following:
>
>1. btrfs subvolume set-default uses a user space tool and in
> my view it's primarily a user domain behavior modifier for the mount
command.
>
>2. It makes the actual mounted subvolume obscured, cat /proc/self/mountinfo
> doesn't show what subvolume is mounted unless subvol= is explicitly used in
/etc/fstab.
>
>3. Grub2 (and I'm pretty sure grubby) do not use the set-default. The GRUB
> intent for the prefix to search an absolute path, not one relative to the
> default subvolume. There's a bug that should very recently (week) be fixed,
> where GRUB fails to find prefix if set-default is changed. This maybe isn't
> affecting the particular layout you describe where only rootfs is on btrfs,
> rather than /boot being on its own subvolume.
>
Instead of using set-default, I am used to rename the subvolume.
I.E. I assume that the root filesystem is a subvolume always called
"__active".
When I want to rollback, I rename "__active" in "__broken" (or
remove it), then I rename (or re-snapshot) "snapshot-yyyymmdd"
in "__active".
>> That way, we ensure the best compatibility and lowest maintenance,
> as we don't overwrite default init functions.
>
>I'm sympathetic to the alternative problem, which is that you need to
> alter grub.cfg to use the proper rootflags=subvol= to explicitly use the
> proper snapshot, and also it would mean altering the /etc/fstab within
> that snapshot.
With rename you can address both the issues
>>
>> Now, if we snapshots the root subvolume, the child subvolumes are
>> not snapshoted with it. There is no back reference which would
>> allow Btrfs to auto-mount the original child subvolumes when we
>> mount the snapshot as new root filesystem. Of cause we could
>> snapshot the childs separately into their desired directories. But
>> this would not help, because our hook snapshots the snapshot again,
>> to keep it's original untouched while rolling back.
>> And we don't have fstab to find out the correct mount points at this early
boot stage.
>
>The fact of the matter is, we don't have the necessary metadata support in
> btrfs to understand the relationships between snapshots/subvolumes.
> There is a need for this, not least of which is the use case you're
> describing. This has come up with Fedora also for their offline
> updates rollback they want to eventually do. And it's also an issue
> with distribution installers which see these snapshots as wholly
> unique instances of existing installations, rather than as related
snapshots.
>
>
>>
>> Atm. all scenarios results in /usr/bin/init not found.
>>
>> So here comes my question:
>> Wouldn't it be helpful to add a --recursive option to 'btrfs subvolume
>> snapshot' to snapshot child subvolumes together with their parent?
>> Or maybe it is possible to add some functionality to reference the
>> child subvolumes on the snapshots fs-tree to allow auto-mounting?
>
> Well and it raises the problem of nested subvolumes making the parent
> subvolume undeletable. So I'd question the significant benefit of
> making nested subvolume in particular /var. It's complicating
> how the OS is to be put back together again.
IIRC the problem of removing a subvolume with a child subvolume,
already exists. IMHO the "btrfs sub snapshot" --recursive option
could have some valid uses cases. Of course we should add the
"btrfs sub delete" --recursive option also.
BTW I agree with Chris that partition the filesystem in too much
subvolume is a mess from a managemente POV. May be
adding an option to "ls" to highlight the subvolumes could
alleviate the problem ?
G.Baroncelli
>
>
>Chris Murphy--
>To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-
next prev parent reply other threads:[~2013-11-08 12:55 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-07 23:45 Question about btrfs as root filesystem Michael Göhler
2013-11-08 1:33 ` Chris Murphy
2013-11-08 13:41 ` Michael Göhler
2013-11-08 19:30 ` Chris Murphy
2013-11-08 9:39 ` Duncan
2013-11-08 12:55 ` Goffredo Baroncelli <kreijack@libero.it> [this message]
2013-11-08 17:44 ` Chris Murphy
2013-11-08 17:59 ` Goffredo Baroncelli
2013-11-08 19:43 ` Chris Murphy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=29341211.3154771383915306434.JavaMail.defaultUser@defaultHost \
--to=kreijack@libero.it \
--cc=linux-btrfs@vger.kernel.org \
--cc=lists@colorremedies.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.