Storage Performance Development Kit (SPDK)
 help / color / mirror / Atom feed
From: Luse, Paul E <paul.e.luse at intel.com>
To: spdk@lists.01.org
Subject: Re: [SPDK] RAID1E POC Status
Date: Thu, 26 Sep 2019 15:30:37 +0000	[thread overview]
Message-ID: <4C033218-7C76-4B93-BE75-38B5AFD20D78@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 4427 bytes --]

Hi Xiadong,

Thanks for taking a look!  Yes we can totally limit configurations if nothing else to simplify both UT and functional test code.  I'll probably work on breaking this patch a bit over the weekend so it's easier to see what's specific to RAID1E or not. Right now this is sort of a fun science project as it also would need some basic config on disk to store disk and volume state (at a minimum) over reboots and one could argue that at least a semi-intelligent rebuild scheme would be needed.

If you've got other ideas please feel free to share!!

-Paul

On 9/26/19, 8:24 AM, "SPDK on behalf of Liu, Xiaodong" <spdk-bounces(a)lists.01.org on behalf of xiaodong.liu(a)intel.com> wrote:

    Hi, Paul
    Thank you for the quick refreshment on your ongoing RAID enhancement.
    Your RAID1E implementation really simplifies the code and its logics.
    
    From my understanding, since all RAID1E situations share a same formula, just with different arguments.
    So just one idea: We can even break up the limitation that number of copies N must be less than or equal to number of disks M.
    Even N > M might be meaningless, or even stupid, but who knows, maybe some user has that type of weird usage scenario.
    
    How about also supporting N>M, like:
    4 disk R1 (5 copeis)
    D1        D1         D1        D1
    D1        D2        D2        D2
    D2        D2        D3        D3
    D3        D3        D3        D4
    D4        D4        D4        D4
    
     --Thanks
    From Xiaodong
    
    -----Original Message-----
    From: SPDK [mailto:spdk-bounces(a)lists.01.org] On Behalf Of Luse, Paul E
    Sent: Sunday, September 22, 2019 11:43 PM
    To: Storage Performance Development Kit <spdk(a)lists.01.org>
    Subject: [SPDK] RAID1E POC Status
    
    Quick refresher lab, this implantation lays out strips as follow.  Dn for Data where n is the copy number for that strip.
    
    2 disk R1E (1 copy of data, RAID0)
    D1         D2
    D3         D4
    D5         D6
    
    3 disk R1E (2 copies of data)
    D1         D1         D2
    D2         D3         D3
    D4         D4         D5...
    
    3 disk R1 (3 copeis)
    D1         D1         D1
    D2         D2         D2
    D3         D3         D3
    
    So some key points as this patch is just a POC:
    
    
    *       Major benefit is, of course, shared code.  Although I added a function table for RAID related stuff, RAID1E doesn't need it. RAID0 is just a special case of RAID1E (num_copes =1).
    
    o   It also rotates which data copy to read.
    
    *       Because of code movement, experiencing a bit this patch is larger than it needs to be.  Just take a look at
    
    o   raid0_1e_start_rw_request() which now shares the same completion handler as the base_bdev focused functions like reset, unmap, etc.
    
    *       Some of the non-data payload functions are coded but they're likely incomplete and full of small bugs as I haven't tested them yet
    
    *       r/w have been pretty thoroughly tested (for a POC) w/data integrity testing Multiple variants of:
    
    o   num drives 3,4,5
    
    o   num copies 2,3,4
    
    o   strip sizes from 512 to 128
    
    o   strip size & io_size combo (size < strip, size == strip, size > strip)
    
    o   outstanding IO from 1-64
    
    *       there's no UT or config stuff (but only one small change is needed for config), right the RAID1 config is hardcoded so to change recompile
    
    *       this can be broken into 4 or 5 patches probably, if we pursue it I will do so of course
    
    
    Still just a POC and a lot of work to do before we'd consider production worthy if we decide to continue with it (I'll work on putting a list together over the next few weeks).
    
    Feedback is welcome but please don't review the patch as if it were being considered for merge, right now it's just a proof of concept to facilitate discussion.  Thanks!!!
    
    
    https://review.gerrithub.io/c/spdk/spdk/+/468187
    
    _______________________________________________
    SPDK mailing list
    SPDK(a)lists.01.org
    https://lists.01.org/mailman/listinfo/spdk
    _______________________________________________
    SPDK mailing list
    SPDK(a)lists.01.org
    https://lists.01.org/mailman/listinfo/spdk
    


             reply	other threads:[~2019-09-26 15:30 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-26 15:30 Luse, Paul E [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-09-27 20:50 [SPDK] RAID1E POC Status David Butterfield
2019-09-26 15:24 Liu, Xiaodong
2019-09-22 15:42 Luse, Paul E

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=4C033218-7C76-4B93-BE75-38B5AFD20D78@intel.com \
    --to=spdk@lists.01.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