From: Andrei Borzenkov <arvidjaar@gmail.com>
To: Duncan <1i5t5.duncan@cox.net>, linux-btrfs@vger.kernel.org
Subject: Re: unsolvable technical issues?
Date: Sat, 30 Jun 2018 08:32:25 +0300 [thread overview]
Message-ID: <9b482289-c96f-dac3-d2e7-db6a32596334@gmail.com> (raw)
In-Reply-To: <pan$15832$609432db$876d9a8a$e5840f46@cox.net>
30.06.2018 06:22, Duncan пишет:
> Austin S. Hemmelgarn posted on Mon, 25 Jun 2018 07:26:41 -0400 as
> excerpted:
>
>> On 2018-06-24 16:22, Goffredo Baroncelli wrote:
>>> On 06/23/2018 07:11 AM, Duncan wrote:
>>>> waxhead posted on Fri, 22 Jun 2018 01:13:31 +0200 as excerpted:
>>>>
>>>>> According to this:
>>>>>
>>>>> https://stratis-storage.github.io/StratisSoftwareDesign.pdf Page 4 ,
>>>>> section 1.2
>>>>>
>>>>> It claims that BTRFS still have significant technical issues that may
>>>>> never be resolved.
>>>>
>>>> I can speculate a bit.
>>>>
>>>> 1) When I see btrfs "technical issue that may never be resolved", the
>>>> #1 first thing I think of, that AFAIK there are _definitely_ no plans
>>>> to resolve, because it's very deeply woven into the btrfs core by now,
>>>> is...
>>>>
>>>> [1)] Filesystem UUID Identification. Btrfs takes the UU bit of
>>>> Universally Unique quite literally, assuming they really *are*
>>>> unique, at least on that system[.] Because
>>>> btrfs uses this supposedly unique ID to ID devices that belong to the
>>>> filesystem, it can get *very* mixed up, with results possibly
>>>> including dataloss, if it sees devices that don't actually belong to a
>>>> filesystem with the same UUID as a mounted filesystem.
>>>
>>> As partial workaround you can disable udev btrfs rules and then do a
>>> "btrfs dev scan" manually only for the device which you need.
>
>> You don't even need `btrfs dev scan` if you just specify the exact set
>> of devices in the mount options. The `device=` mount option tells the
>> kernel to check that device during the mount process.
>
> Not that lvm does any better in this regard[1], but has btrfs ever solved
> the bug where only one device= in the kernel commandline's rootflags=
> would take effect, effectively forcing initr* on people (like me) who
> would otherwise not need them and prefer to do without them, if they're
> using a multi-device btrfs as root?
>
This requires in-kernel device scanning; I doubt we will ever see it.
> Not to mention the fact that as kernel people will tell you, device
> enumeration isn't guaranteed to be in the same order every boot, so
> device=/dev/* can't be relied upon and shouldn't be used -- but of course
> device=LABEL= and device=UUID= and similar won't work without userspace,
> basically udev (if they work at all, IDK if they actually do).
>
> Tho in practice from what I've seen, device enumeration order tends to be
> dependable /enough/ for at least those without enterprise-level numbers
> of devices to enumerate.
Just boot with USB stick/eSATA drive plugged in, there are good chances
it changes device order.
> True, it /does/ change from time to time with a
> new kernel, but anybody sane keeps a tested-dependable old kernel around
> to boot to until they know the new one works as expected, and that sort
> of change is seldom enough that users can boot to the old kernel and
> adjust their settings for the new one as necessary when it does happen.
> So as "don't do it that way because it's not reliable" as it might indeed
> be in theory, in practice, just using an ordered /dev/* in kernel
> commandlines does tend to "just work"... provided one is ready for the
> occasion when that device parameter might need a bit of adjustment, of
> course.
>
...
>
> ---
> [1] LVM is userspace code on top of the kernelspace devicemapper, and
> therefore requires an initr* if root is on lvm, regardless. So btrfs
> actually does a bit better here, only requiring it for multi-device btrfs.
>
next prev parent reply other threads:[~2018-06-30 5:32 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-21 23:13 unsolvable technical issues? waxhead
2018-06-22 2:39 ` Chris Murphy
2018-06-27 18:50 ` waxhead
2018-06-28 14:46 ` Adam Borowski
2018-06-22 5:48 ` Nikolay Borisov
2018-06-23 22:01 ` waxhead
2018-06-24 3:55 ` Jukka Larja
2018-06-24 8:41 ` waxhead
2018-06-24 15:06 ` Ferry Toth
2018-06-23 5:11 ` Duncan
2018-06-24 20:22 ` Goffredo Baroncelli
2018-06-25 11:26 ` Austin S. Hemmelgarn
2018-06-30 3:22 ` Duncan
2018-06-30 5:32 ` Andrei Borzenkov [this message]
2018-07-02 11:49 ` Austin S. Hemmelgarn
2018-07-03 7:35 ` Duncan
2018-07-03 11:54 ` Austin S. Hemmelgarn
2018-07-02 11:44 ` Austin S. Hemmelgarn
2018-06-25 14:20 ` David Sterba
2018-06-25 13:36 ` David Sterba
2018-06-25 16:43 ` waxhead
2018-06-25 16:54 ` Hugo Mills
2018-06-30 3:59 ` Duncan
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=9b482289-c96f-dac3-d2e7-db6a32596334@gmail.com \
--to=arvidjaar@gmail.com \
--cc=1i5t5.duncan@cox.net \
--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).