public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
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?
>>
> 


  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