From: Christoph Anton Mitterer <calestyo@scientia.net>
To: linux-btrfs@vger.kernel.org
Subject: Re: stability matrix (was: Is stability a joke?)
Date: Thu, 15 Sep 2016 04:14:04 +0200 [thread overview]
Message-ID: <1473905644.8603.44.camel@scientia.net> (raw)
In-Reply-To: <5dec6544a78a0301a8e0cd9086179f99@crc.id.au>
[-- Attachment #1: Type: text/plain, Size: 5269 bytes --]
Hey.
As for the stability matrix...
In general:
- I think another column should be added, which tells when and for
which kernel version the feature-status of each row was
revised/updated the last time and especially by whom.
If a core dev makes a statement on a particular feature, this
probably means much more, than if it was made by "just" a list
regular.
And yes I know, in the beginning it already says "this is for 4.7"...
but let's be honest, it's pretty likely when this is bumped to 4.8
that not each and every point will be thoroughly checked again.
- Optionally even one further column could be added, that lists bugs
where the specific cases are kept record of (if any).
- Perhaps a 3rd Status like "eats-your-data" which is worse than
critical, e.g. for things were it's known that there is a high
chance for still getting data corruption (RAID56?)
Perhaps there should be another section that lists general caveats
and pitfalls including:
- defrag/auto-defrag causes ref-link break up (which in turn causes
possible extensive space being eaten up)
- nodatacow files are not yet[0] checksummed, which in turn means
that any errors (especially silent data corruption) will not be
noticed AND which in turn also means the data itself cannot be
repaired even in case of RAIDs (only the RAIDs are made consistent
again)
- subvolume UUID attacks discussed in the recent thread
- fs/device UUID collisions
- the accidental corruption that can happen in case colliding
fs/device UUIDs appear in a system (and telling the user that
this is e.g. the case when dd'ing and image or using lvm
snapshots, probably also when having btrfs on MD RAID1 or RAID10)
- the attacks that are possible when UUIDs are known to an attacker
- in-band dedupe
deduped are IIRC not bitwise compared by the kernel before de-duping,
as it's the case with offline dedupe.
Even if this is considered safe by the community... I think users
should be told.
- btrfs check --repair (and others?)
Telling people that this may often cause more harm than good.
- even mounting a fs ro, may cause it to be changed
- DB/VM-image like IO patterns + nodatacow + (!)checksumming
+ (auto)defrag + snapshots
a)
People typically may have the impression:
btrfs = checksummed => als is guaranteed to be "valid" (or at least
noticed)
However this isn't the case for nodatacow'ed files, which in turn is
kinda "mandatory" for DB/VM-image like IO patterns, cause otherwise
these would fragment to heavily (see (b).
Unless claimed by some people, none of the major DBs or VM-image
formats do general checksumming on their own, most even don't support
it, some that do wouldn't do it without app-support and few "just"
don't do it per default.
Thus one should bump people to this situation and that they may not
get this "correctness" guarantee here.
b)
IIRC, it doesn't even help to simply not use nodatacow on such files
and using auto-defrag instead to countermeasure the fragmenting, as
that one doesn't perform too well on large files.
For specific features:
- Autodefrag
- didn't that also cause reflinks to be broken up? that should be
mentioned than as well, as it is (more or less) for defrag and
people could then assume it's not the case for autodefrag (which I
did initially)
- wasn't it said that autodefrag performs bad with files > ~1GB?
Perhaps that should be mentioned too
- defrag
"extents get unshared" is IMO not an adequate description for the end
user,... it should perhaps link to the defrag article and there
explain in detail that any ref-linked files will be broken up, which
means space usage will increase, and may especially explode in case
of snapshots
- all the RAID56 related points
wasn't there recently a thread that discussed a more serious bug,
where parity was wrongly re-calculated which in turn caused actual
data corruption?
I think if that's still an issue "write hole still exists, parity
not checksummed" is not enough but one should emphasize that data may
easily be corrupted.
- RAID*
No userland tools for monitoring/etc.
- Device replace
IIRC, CM told me that this may cause severe troubles on RAID56
Also, the current matrix talks about "auto-repair"... what's that? (=>
should be IMO explained).
Last but not least, perhaps this article may also be the place to
document 3rd party things and how far they work stable with btrfs.
For example:
- Which grub version supports booting from it? Which features does it
[not] support (e.g. which RAIDs, skinny-extents, etc.)?
- Which forensic tools (e.g. things like testdisk) do work with btrfs?
- Which are still maintained/working dedupe userland tools (and are
they stable?)
Cheers,
Chris.
[0] Yeah I know, a number of list regulars constantly tried to convince
me that this wasn't possible per se, but a recent discussion I had
with CM seemed to have revealed (unless I understood it wrong) that
it wouldn't be generally impossible at all.
[-- Attachment #2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 5930 bytes --]
next prev parent reply other threads:[~2016-09-15 2:14 UTC|newest]
Thread overview: 93+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-11 8:55 Is stability a joke? Waxhead
2016-09-11 9:56 ` Steven Haigh
2016-09-11 10:23 ` Martin Steigerwald
2016-09-11 11:21 ` Zoiled
2016-09-11 11:43 ` Martin Steigerwald
2016-09-11 12:05 ` Martin Steigerwald
2016-09-11 12:39 ` Waxhead
2016-09-11 13:02 ` Hugo Mills
2016-09-11 14:59 ` Martin Steigerwald
2016-09-11 20:14 ` Chris Murphy
2016-09-12 12:20 ` Austin S. Hemmelgarn
2016-09-12 12:59 ` Michel Bouissou
2016-09-12 13:14 ` Austin S. Hemmelgarn
2016-09-12 14:04 ` Lionel Bouton
2016-09-15 1:05 ` Nicholas D Steeves
2016-09-15 8:02 ` Martin Steigerwald
2016-09-16 7:13 ` Helmut Eller
2016-09-15 5:55 ` Kai Krakow
2016-09-15 8:05 ` Martin Steigerwald
2016-09-11 14:54 ` Martin Steigerwald
2016-09-11 15:19 ` Martin Steigerwald
2016-09-11 20:21 ` Chris Murphy
2016-09-11 17:46 ` Marc MERLIN
2016-09-20 16:33 ` Chris Murphy
2016-09-11 17:11 ` Duncan
2016-09-12 12:26 ` Austin S. Hemmelgarn
2016-09-11 12:30 ` Waxhead
2016-09-11 14:36 ` Martin Steigerwald
2016-09-12 12:48 ` Swâmi Petaramesh
2016-09-12 13:53 ` Chris Mason
2016-09-12 17:36 ` Zoiled
2016-09-12 17:44 ` Waxhead
2016-09-15 1:12 ` Nicholas D Steeves
2016-09-12 14:27 ` David Sterba
2016-09-12 14:54 ` Austin S. Hemmelgarn
2016-09-12 16:51 ` David Sterba
2016-09-12 17:31 ` Austin S. Hemmelgarn
2016-09-15 1:07 ` Nicholas D Steeves
2016-09-15 1:13 ` Steven Haigh
2016-09-15 2:14 ` Christoph Anton Mitterer [this message]
2016-09-15 9:49 ` stability matrix Hans van Kranenburg
2016-09-15 11:54 ` Austin S. Hemmelgarn
2016-09-15 14:15 ` Chris Murphy
2016-09-15 14:56 ` Martin Steigerwald
2016-09-19 14:38 ` David Sterba
2016-09-19 15:27 ` stability matrix (was: Is stability a joke?) David Sterba
2016-09-19 17:18 ` stability matrix Austin S. Hemmelgarn
2016-09-19 19:52 ` Christoph Anton Mitterer
2016-09-19 20:07 ` Chris Mason
2016-09-19 20:36 ` Christoph Anton Mitterer
2016-09-19 21:03 ` Chris Mason
2016-09-19 19:45 ` stability matrix (was: Is stability a joke?) Christoph Anton Mitterer
2016-09-20 7:59 ` Duncan
2016-09-20 8:19 ` Hugo Mills
2016-09-20 8:34 ` David Sterba
2016-09-19 15:38 ` Is stability a joke? David Sterba
2016-09-19 21:25 ` Hans van Kranenburg
2016-09-12 16:27 ` Is stability a joke? (wiki updated) David Sterba
2016-09-12 16:56 ` Austin S. Hemmelgarn
2016-09-12 17:29 ` Filipe Manana
2016-09-12 17:42 ` Austin S. Hemmelgarn
2016-09-12 20:08 ` Chris Murphy
2016-09-13 11:35 ` Austin S. Hemmelgarn
2016-09-15 18:01 ` Chris Murphy
2016-09-15 18:20 ` Austin S. Hemmelgarn
2016-09-15 19:02 ` Chris Murphy
2016-09-15 20:16 ` Hugo Mills
2016-09-15 20:26 ` Chris Murphy
2016-09-16 12:00 ` Austin S. Hemmelgarn
2016-09-19 2:57 ` Zygo Blaxell
2016-09-19 12:37 ` Austin S. Hemmelgarn
2016-09-19 4:08 ` Zygo Blaxell
2016-09-19 15:27 ` Sean Greenslade
2016-09-19 17:38 ` Austin S. Hemmelgarn
2016-09-19 18:27 ` Chris Murphy
2016-09-19 18:34 ` Austin S. Hemmelgarn
2016-09-19 20:15 ` Zygo Blaxell
2016-09-20 12:09 ` Austin S. Hemmelgarn
2016-09-15 21:23 ` Christoph Anton Mitterer
2016-09-16 12:13 ` Austin S. Hemmelgarn
2016-09-19 3:47 ` Zygo Blaxell
2016-09-19 12:32 ` Austin S. Hemmelgarn
2016-09-19 15:33 ` Zygo Blaxell
2016-09-12 19:57 ` Martin Steigerwald
2016-09-12 20:21 ` Pasi Kärkkäinen
2016-09-12 20:35 ` Martin Steigerwald
2016-09-12 20:44 ` Chris Murphy
2016-09-13 11:28 ` Austin S. Hemmelgarn
2016-09-13 11:39 ` Martin Steigerwald
2016-09-14 5:53 ` Marc Haber
2016-09-12 20:48 ` Waxhead
2016-09-13 8:38 ` Timofey Titovets
2016-09-13 11:26 ` Austin S. Hemmelgarn
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=1473905644.8603.44.camel@scientia.net \
--to=calestyo@scientia.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).