Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-10911 FLR2: Read only erasure coding
  3. LU-20690

FLR-EC: handle '--ec k+p' components with p > k

XMLWordPrintable

    • Icon: Technical task Technical task
    • Resolution: Unresolved
    • Icon: Major Major
    • Lustre 2.18.0
    • Lustre 2.18.0
    • None
    • 3
    • 9223372036854775807

      EC layouts today require k >= p. This is not a Cauchy/ISA-L limit,
      it comes from storing parity as RAID0|PARITY, where the p
      parity objects of a raidset are concatenated along the file offset.
      The parity component then needs
      stripeset_count * raidset_count * p * stripe_size of
      extent, which no longer fits a finite PFL extent once p > k (for
      example --ec 2+3 -E 2M).

      Lifting the restriction is useful for small components that should
      survive a 2-OST failure. The first component of a PFL file is only a
      few stripes but covers most files, and --ec 1+2 (LU-20568) or
      --ec 2+3 are exactly the layouts a k >= p rule forbids.

      As suggested in LU-20568, this can be handled by giving the parity
      component its own layout pattern rather than reusing RAID-0. Storing
      parity as LOV_PATTERN_PARITY makes the component RAID-10 shaped:
      the raidsets of one stripe set are striped like RAID-0, one
      stripe_size each, while inside a raidset the p parity stripes
      share a single file offset like RAID-1. The parity component then
      always fits the extent of the data component, for any k and p.

      Unlike RAID-1 the parity stripes are not replicas, so the client must
      not fan a write out to all of them: resync and verify address one
      parity stripe at a time, while punch and truncate still apply to every
      parity object.

      EC has not shipped, so the old RAID0|PARITY encoding does not need
      to be kept. The p <= k checks in lfs and llapi can be
      dropped, with k+p <= 256 and p <= 15 remaining.

            wc-triage WC Triage
            squalfof Keguang Xu
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: