linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Murphy <lists@colorremedies.com>
To: Andrei Borzenkov <arvidjaar@gmail.com>
Cc: Chris Murphy <lists@colorremedies.com>,
	Kai Krakow <hurikhan77@gmail.com>,
	Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: 64-btrfs.rules and degraded boot
Date: Wed, 6 Jul 2016 12:57:16 -0600	[thread overview]
Message-ID: <CAJCQCtTVKA0DEqDhDDduTMMONo7XUrGD-VaDt2Zfsg_mqP762Q@mail.gmail.com> (raw)
In-Reply-To: <CAA91j0VEBRDUW+MehjtUqhZHi2dehnbY9w-_quEihRc1D=cpvQ@mail.gmail.com>

On Wed, Jul 6, 2016 at 12:24 PM, Andrei Borzenkov <arvidjaar@gmail.com> wrote:
> On Wed, Jul 6, 2016 at 8:19 PM, Chris Murphy <lists@colorremedies.com> wrote:
>>
>> I'm mainly concerned with rootfs. And I'm mainly concerned with a very
>> simple 2 disk raid1. With a simple user opt in using
>> rootflags=degraded, it should be possible to boot the system. Right
>> now it's not possible. Maybe just deleting 64-btrfs.rules would fix
>> this problem, I haven't tried it.
>>
>
> While deleting this rule will fix your specific degraded 2 disk raid 1
> it will break non-degraded multi-device filesystem. Logic currently
> implemented by systemd assumes that mount is called after
> prerequisites have been fulfilled. Deleting this rule will call mount
> as soon as the very first device is seen; such filesystem is obviously
> not mountable.

Seems like we need more granularity by btrfs ioctl for device ready,
e.g. some way to indicate:

0 all devices ready
1 devices not ready (don't even try to mount)
2 minimum devices ready (degraded mount possible)


Btrfs multiple device single and raid0 only return code 0 or 1. Where
raid 1, 5, 6 could return code 2. The systemd default policy for code
2 could be to wait some amount of time to see if state goes to 0. At
the timeout, try to mount anyway. If rootflags=degraded, it mounts. If
not, mount fails, and we get a dracut prompt.

That's better behavior than now.

> Equivalent of this rule is required under systemd and desired in
> general to avoid polling. On systemd list I outlined possible
> alternative implementation as systemd service instead of really
> hackish udev rule.

I'll go read it there. Thanks.


-- 
Chris Murphy

  reply	other threads:[~2016-07-06 18:57 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-05 18:53 64-btrfs.rules and degraded boot Chris Murphy
2016-07-05 19:27 ` Kai Krakow
2016-07-05 19:30   ` Chris Murphy
2016-07-05 20:10     ` Chris Murphy
2016-07-06  9:51       ` Andrei Borzenkov
2016-07-06 11:45         ` Austin S. Hemmelgarn
2016-07-06 11:55           ` Andrei Borzenkov
2016-07-06 12:14             ` Austin S. Hemmelgarn
2016-07-06 12:39               ` Andrei Borzenkov
2016-07-06 12:48                 ` Austin S. Hemmelgarn
2016-07-07 16:52                   ` Goffredo Baroncelli
2016-07-07 18:23                     ` Austin S. Hemmelgarn
2016-07-07 18:58                       ` Chris Murphy
2016-07-07 19:14                         ` Chris Murphy
2016-07-07 19:59                         ` Austin S. Hemmelgarn
2016-07-07 20:20                           ` Chris Murphy
2016-07-08 12:24                             ` Austin S. Hemmelgarn
2016-07-11 21:07                               ` Chris Murphy
2016-07-12 15:34                                 ` Austin S. Hemmelgarn
2016-07-07 20:13                         ` Goffredo Baroncelli
2016-07-07 19:41                       ` Goffredo Baroncelli
2016-07-06 12:49             ` Tomasz Torcz
2016-07-06 17:19         ` Chris Murphy
2016-07-06 18:04           ` Austin S. Hemmelgarn
2016-07-06 18:23             ` Chris Murphy
2016-07-06 18:29               ` Andrei Borzenkov
2016-07-06 19:17               ` Austin S. Hemmelgarn
2016-07-06 20:00                 ` Chris Murphy
2016-07-07 17:00                   ` Goffredo Baroncelli
2016-07-06 18:24           ` Andrei Borzenkov
2016-07-06 18:57             ` Chris Murphy [this message]
2016-07-07 17:07               ` Goffredo Baroncelli
2016-07-07 16:37 ` Goffredo Baroncelli

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=CAJCQCtTVKA0DEqDhDDduTMMONo7XUrGD-VaDt2Zfsg_mqP762Q@mail.gmail.com \
    --to=lists@colorremedies.com \
    --cc=arvidjaar@gmail.com \
    --cc=hurikhan77@gmail.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).