Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.14.0, Lustre 2.12.5
-
None
-
3
-
9223372036854775807
Description
Running "lfs mirror extend" on an existing file doesn't use the existing layout for the new file, nor the default filesystem layout on the root directory. Instead it seems to always create a plain layout using the filesystem default stripe_count and stripe_size. For example, the lcme_mirror_id: 1 components were initially created from the filesystem default layout, and the lcme_mirror_id: 2 component was created with "lfs mirror extend -N1" (default stripe_count=4):
/mnt/testfs/pfl0.2 lcm_mirror_count: 2 lcm_entry_count: 4 lcme_mirror_id: 1 lcme_flags: init lcme_extent.e_start: 0 lcme_extent.e_end: 134217728 lmm_stripe_count: 1 lmm_stripe_size: 1048576 lmm_pool: ddn_ssd lmm_objects: - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x12a:0x0] } lcme_mirror_id: 1 lcme_flags: init lcme_extent.e_start: 134217728 lcme_extent.e_end: 4294967296 lmm_stripe_count: 2 lmm_stripe_size: 1048576 lmm_pool: ddn_ssd lmm_objects: - 0: { l_ost_idx: 0, l_fid: [0x100000000:0x109:0x0] } - 1: { l_ost_idx: 1, l_fid: [0x100010000:0x12b:0x0] } lcme_mirror_id: 1 lcme_flags: 0 lcme_extent.e_start: 4294967296 lcme_extent.e_end: EOF lmm_stripe_count: -1 lmm_stripe_size: 1048576 lmm_pool: ddn_hdd lcme_mirror_id: 2 lcme_flags: init lcme_extent.e_start: 0 lcme_extent.e_end: EOF lmm_stripe_count: 4 lmm_stripe_size: 1048576 lmm_pool: ddn_hdd lmm_objects: - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x12c:0x0] } - 1: { l_ost_idx: 3, l_fid: [0x100030000:0xc8:0x0] } - 2: { l_ost_idx: 2, l_fid: [0x100020000:0x88:0x0] } - 3: { l_ost_idx: 0, l_fid: [0x100000000:0x10a:0x0] }
At a minimum, "lfs mirror extend -N file" should use the stripe_count from the last initialized component, since it is 99% likely that the file will never be modified after it is first written and closed. It would be even better to copy the stripe_size as well, but not the pool.