Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-11868

ZFS ea size limited to 32K

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.13.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      The ZFS OSD limits the ea size to DXATTR_MAX_ENTRY_SIZE, which defaults to 32K.

      This is done when ddp_max_ea_size is set:

      param->ddp_max_ea_size = DXATTR_MAX_ENTRY_SIZE;

       

      Per Alex Z., this is probably incorrect, since ZFS can use dedicated objects for EAs.

      This was discovered and confirmed in testing overstriping (LU-9846):
      https://testing.whamcloud.com/test_sets/ea834356-1552-11e9-9ed8-52540065bddc

      Specifically, test 27ci:
      This is a test for overstriping, which is > 1 stripe per OST. This tries to create 2000 stripes.
      It works on ldiskfs (with ea_inode) enabled, but on ZFS, we only get 1363 total stripes

      32768/24 bytes per stripe = 1365

      So, minus a little for the rest of the layout EA, this matches.

       

      So 32K is too small, especially if we increase the stripe limit to 10K, as the overstriping patch series does in a later patch.  The question is what should the limit be.

       

      I would suggest as a possible value:
      /* Maximum EA size is limited by LNET_MTU for remote objects */
      #define OSD_MAX_EA_SIZE 1048364

      Which is currently in the ldiskfs OSD, but is clearly not ldiskfs specific.

      I'm curious to get feedback here.

      Attachments

        Issue Links

          Activity

            People

              pfarrell Patrick Farrell (Inactive)
              pfarrell Patrick Farrell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: