All of lore.kernel.org
 help / color / mirror / Atom feed
From: waxhead <waxhead@dirtcellar.net>
To: George Shammas <btrfs@shamm.as>, Phillip Susi <phill@thesusis.net>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: What exactly is BTRFS Raid 10?
Date: Sat, 20 Aug 2022 00:29:44 +0200	[thread overview]
Message-ID: <6f014dda-94d1-63cb-9ffb-583c34431a3d@dirtcellar.net> (raw)
In-Reply-To: <a6b0c534-4f05-4f60-a7fa-f33cfce990d7@www.fastmail.com>



George Shammas wrote:
> On Fri, Aug 19, 2022, at 2:10 PM, Phillip Susi wrote:
>>> The Raid 1 example there also likely needs a bit of explanation or
>>> validation, as all the blocks are written to one device. In that raid
>>> one example three devices could be lost as long as it is not one of
>>> them is the first device. It also cannot be accurate once the amount
>>> stored is above 1 full drive.
>>
>> It is meant to show a *possible* layout, not every potential layout.
>> The data may be stored like than and then yes, you could lose multiple
>> drives and still recover as long as the lost drives were 2, 3, and 4.
> 
> I wouldn't expect all potential layouts, but maybe the _worst_ possible layout and an text. IE. If the layout blocks is random and only guarantees that each block will be on two disks. That would mean raid1 setup of 4 disks is pretty much guaranteed to have data loss if _any_ two disks fail.  This is important and should be made clear somewhere.
>
I am just a regular user , but yes, BTRFS "RAID" is (IMHO) a stupid name 
and confuses people easily. RAID1 means two instances of the data. That 
is why RAID1c3 and RAID1c4 exists which gives you a bit more redundancy 
(3 instances and 4 instances in case it was not obvious).

RAID10 is also just 2 instances of the data spread over as many disks a 
possible. E.g. any two disk lost means you might be in trouble.

Another interesting fact (last time I checked) is that BTRFS allows for 
interesting configurations like data in RAID6 mode and metadata in 
RAID10. This is a problem since small files can be stored directly in 
metadata and since RAID10 can have dataloss with two disks lost and 
RAID6 should not, you have to pick your configuration with care.

Now this sounds awfully critical, but BTRFS is a fantastic filesystem 
and have saved me from silent corruption more than once.

There is also a fantastic little tool on the web (that should have a 
ncurses version to be honest) here : https://carfax.org.uk/btrfs-usage/

That gives you a pretty good idea about what is happening if you play 
around with the values a bit. Good luck :)



  parent reply	other threads:[~2022-08-19 22:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-19 16:49 What exactly is BTRFS Raid 10? George Shammas
2022-08-19 18:10 ` Phillip Susi
2022-08-19 22:01   ` George Shammas
2022-08-19 22:18     ` Chris Murphy
2022-08-19 22:37       ` George Shammas
2022-08-19 22:29     ` waxhead [this message]
2022-08-22 19:51     ` Phillip Susi
2022-08-20 11:28 ` Goffredo Baroncelli
2022-08-20 18:11   ` Andrei Borzenkov
2022-08-21  0:23     ` 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=6f014dda-94d1-63cb-9ffb-583c34431a3d@dirtcellar.net \
    --to=waxhead@dirtcellar.net \
    --cc=btrfs@shamm.as \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=phill@thesusis.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.