From: Andrei Borzenkov <arvidjaar@gmail.com>
To: Qu Wenruo <quwenruo.btrfs@gmx.com>, Qu Wenruo <wqu@suse.com>,
Scoopta <mlist@scoopta.email>,
linux-btrfs@vger.kernel.org
Subject: Re: Using btrfs raid5/6
Date: Thu, 5 Dec 2024 19:53:08 +0300 [thread overview]
Message-ID: <d906fbb8-e268-4dbd-a33a-8ed583942580@gmail.com> (raw)
In-Reply-To: <a5982710-0e14-4559-82f0-7914a11d1306@gmx.com>
05.12.2024 01:34, Qu Wenruo wrote:
>
>
> 在 2024/12/5 05:47, Andrei Borzenkov 写道:
>> 04.12.2024 07:40, Qu Wenruo wrote:
>>>
>>>
>>> 在 2024/12/4 14:04, Scoopta 写道:
>>>> I'm looking to deploy btfs raid5/6 and have read some of the previous
>>>> posts here about doing so "successfully." I want to make sure I
>>>> understand the limitations correctly. I'm looking to replace an md+ext4
>>>> setup. The data on these drives is replaceable but obviously ideally I
>>>> don't want to have to replace it.
>>>
>>> 0) Use kernel newer than 6.5 at least.
>>>
>>> That version introduced a more comprehensive check for any RAID56 RMW,
>>> so that it will always verify the checksum and rebuild when necessary.
>>>
>>> This should mostly solve the write hole problem, and we even have some
>>> test cases in the fstests already verifying the behavior.
>>>
>>
>> Write hole happens when data can *NOT* be rebuilt because data is
>> inconsistent between different strips of the same stripe. How btrfs
>> solves this problem?
>
> An example please.
You start with stripe
A1,B1,C1,D1,P1
You overwrite A1 with A2
Before you can write P2, system crashes
After reboot D goes missing, so you now have
A2,B1,C1,miss,P1
You cannot reconstruct "miss" because P1 does not match A2. You can
detect that it is corrupted using checksum, but not infer the correct data.
MD solves it by either computing the extra parity or by buffering full
stripe before writing it out. In both cases it is something out of band.
>
>>
>> It probably can protect against data corruption (by verifying checksum),
>> but how can it recover the correct content?
>>
>
next prev parent reply other threads:[~2024-12-05 16:53 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-04 3:34 Using btrfs raid5/6 Scoopta
2024-12-04 4:29 ` Andrei Borzenkov
2024-12-04 4:49 ` Scoopta
2024-12-04 4:40 ` Qu Wenruo
2024-12-04 4:50 ` Scoopta
2024-12-04 19:17 ` Andrei Borzenkov
2024-12-04 22:34 ` Qu Wenruo
2024-12-05 16:53 ` Andrei Borzenkov [this message]
2024-12-05 20:27 ` Qu Wenruo
2024-12-06 3:59 ` Andrei Borzenkov
2024-12-06 4:16 ` Qu Wenruo
2024-12-06 18:10 ` Goffredo Baroncelli
2024-12-07 7:37 ` Andrei Borzenkov
2024-12-07 20:26 ` Qu Wenruo
2024-12-10 2:34 ` Zygo Blaxell
2024-12-10 19:36 ` Goffredo Baroncelli
2024-12-11 1:47 ` Jonah Sabean
2024-12-11 7:26 ` Zygo Blaxell
2024-12-11 19:39 ` Goffredo Baroncelli
2024-12-15 7:49 ` Zygo Blaxell
2024-12-21 18:32 ` Proposal for RAID-PN (was Re: Using btrfs raid5/6) Forza
2024-12-22 12:00 ` Goffredo Baroncelli
2024-12-23 7:42 ` Andrei Borzenkov
2024-12-24 9:31 ` Goffredo Baroncelli
2024-12-06 2:03 ` Using btrfs raid5/6 Jonah Sabean
2024-12-07 20:48 ` Qu Wenruo
2024-12-08 16:31 ` Jonah Sabean
2024-12-08 20:07 ` Qu Wenruo
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=d906fbb8-e268-4dbd-a33a-8ed583942580@gmail.com \
--to=arvidjaar@gmail.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=mlist@scoopta.email \
--cc=quwenruo.btrfs@gmx.com \
--cc=wqu@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox