Btrfs Working On RAID1 Round-Robin Read Balancing

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • elml
    replied
    Originally posted by phoronix View Post
    Phoronix: Btrfs Working On RAID1 Round-Robin Read Balancing

    ... RAID1 round-robin read balancing...

    https://www.phoronix.com/news/Btrfs-...d-Robin-Coming
    Hallelujah!

    The old trick of selection of "which mirrored disk" by "modulo PID" completely ignored the loading on whichever disk...

    That old selection by PID may well be fine for a blizzard of small reads for Twits... Too often it was hopeless for media work where one single disk in a cluster would too often suffer a pile-up...

    So, this new scheme should undo the need for raid10...

    Meanwhile, whatever happened to the patches that were submitted that actually did try to do load balancing?...


    Be excellent to one another!
    Martin
    Last edited by elml; 18 December 2024, 08:11 PM.

    Leave a comment:


  • S.Pam
    replied
    Originally posted by bezirg View Post

    How can RAID1 give you same disk space as RAID10?
    You can read about the supported Profiles ("RAID" modes) here https://wiki.tnonline.net/w/Btrfs/Pr...files_Overview

    For example RAID1c4 has 4 copies of the data and can survive 3 broken disks.

    Leave a comment:


  • Developer12
    replied
    Originally posted by Britoid View Post

    RAID in BTRFS also works very differently to standard raid. The disks are not identical, you can't just read the same location on a second drive.
    Same with ZFS, but somehow they didn't screw this up. Multiplexing based on a process' PID has got to be one of the most hacky bandaid solutions I've ever heard of. Not only do you now introduce a weird dependency on a userspace property (oops, two processes randomly have similar PIDs and both try to always read from the same disk, killing performance) but you also kill your performance in cases with massive single-process consumers like, say, databases. Pretty important use case. Should have just done it right the first time.

    Leave a comment:


  • waxhead
    replied
    Originally posted by curfew View Post
    Either it is impossible because the codebase is shit, or it's just code waiting to be written. "It is complicated" is not an excuse for programmers.
    With this comment you only make a fool out of yourself. First you need to understand how BTRFS store data, then you need to look at the implementation. I also doubt you have done any serious programming yourself considering your last sentence there.

    Leave a comment:


  • microcode
    replied
    Originally posted by curfew View Post
    Either it is impossible because the codebase is shit, or it's just code waiting to be written. "It is complicated" is not an excuse for programmers.
    You sound like somebody who has never worked on a piece of software like this... btrfs is a filesystem, if they screw up an update millions of people are harmed. Statistically speaking, if btrfs introduces a data corruption bug to make the on-disk format suit round robin reads better, then one or more people will commit suicide from the third or fourth order consequences.

    Leave a comment:


  • mbod
    replied
    Originally posted by EphemeralEft View Post

    Unless what BTRFS calls “RAID1” is not really RAID1, that’s not correct; RAID1 only has as much usable capacity as the the size of its smallest member because every member in the RAID stores the same content.
    That is exactly the difference between btrfs and any other RAID1 solution. It is very confusing that btrfs calls is RAID1.

    btrfs RAID1 is this: It takes any number of disks with any size and it ensures that a data block has 2 copies residing on 2 different drives. Thats it. This is not what mdadm or ZFS call RAID1.

    Leave a comment:


  • mbod
    replied
    Originally posted by cynic View Post

    RAID is not intended for avoiding losing data. The tool for that purpouse is backup.
    Anyway btrfs is much better than "classical" RAID when it comes to preventing losing data.

    In a normal RAID1 (or 10), If one of the copies of the data gets corrupted, the data is lost​ (because you cannot tell which copy is the the good one).
    In btrfs, being it checksummed, you can detect and fix the corrupted copy.

    With a classic raid 1 you have double the chance of data corruption compared to a single device.
    You are mixing two things here. Redundancy on device level and redundancy on file level.

    RAID1 is redundancy on device level. And that works also for mdadm or any other RAID1 implementation.

    Redundancy on file level can only work if checksums are available. And that works well with ZFS also.



    Leave a comment:


  • irusensei
    replied
    I’ve recently noticed this while doing a full backup of a multi TB mirrored btrfs volume. The drives are in an external enclosure with one activity led for each drive. Only 1 out of 2 leds were blinking as I read the data.

    Leave a comment:


  • ElectricPrism
    replied
    Since we're talking about what cooks everyone's noodle -- what cooks my noodle is that I had to do a double take reading that RAID1 Mirroring is "striped", I understand the usage is figuratively to indicate a "block" -- but in the other RAID topologies the data is quite literally striped -- in RAID 1 -- maybe I am mistaken but it quite literally is not AFAIK.

    Edit: As it's been pointed out earlier, even though some of us use RAID1 to mitigate potential mechanical drive failures, it's not a backup in the same way that Snapshots are not a backup. Offsite backup with snapshotting, and cold storage are important to incorporate into data safeguarding.
    Last edited by ElectricPrism; 16 December 2024, 04:58 AM.

    Leave a comment:


  • curfew
    replied
    Originally posted by microcode View Post

    Rarely matters. They call it raid1 in the config for familiarity but it really is just mirroring. It is also a more complex thing on btrfs than on block device RAID (where the block addresses are the same for everything).
    Either it is impossible because the codebase is shit, or it's just code waiting to be written. "It is complicated" is not an excuse for programmers.

    Leave a comment:

Working...
X