Details
-
Bug
-
Resolution: Not a Bug
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
When running "lfs migrate" on a PFL file, it appears that the client/MDS are needlessly creating multiple sets of OST objects:
# lfs setstripe -E 1M -c 1 -E 16M -c 4 -E eof -c -1 /mnt/testfs/pfl
# fallocate -L 4M /mnt/testfs/pfl
# lfs getstripe /mnt/testfs/pfl | grep l_ost_idx
- 0: { l_ost_idx: 0, l_fid: [0x100000000:0xed5:0x0] }
- 0: { l_ost_idx: 3, l_fid: [0x100030000:0x653:0x0] }
- 1: { l_ost_idx: 1, l_fid: [0x100010000:0xb93:0x0] }
- 2: { l_ost_idx: 2, l_fid: [0x100020000:0x62c:0x0] }
- 3: { l_ost_idx: 0, l_fid: [0x100000000:0xed7:0x0] }
# lfs migrate /mnt/testfs/pfl
# lfs getstripe /mnt/testfs/pfl | grep l_ost_idx
- 0: { l_ost_idx: 0, l_fid: [0x100000000:0xed8:0x0] }
- 0: { l_ost_idx: 3, l_fid: [0x100030000:0x655:0x0] }
- 1: { l_ost_idx: 1, l_fid: [0x100010000:0xb95:0x0] }
- 2: { l_ost_idx: 2, l_fid: [0x100020000:0x62e:0x0] }
- 3: { l_ost_idx: 0, l_fid: [0x100000000:0xeda:0x0] }
# lfs migrate /mnt/testfs/pfl
# lfs getstripe /mnt/testfs/pfl | grep l_ost_idx
- 0: { l_ost_idx: 0, l_fid: [0x100000000:0xedb:0x0] }
- 0: { l_ost_idx: 3, l_fid: [0x100030000:0x657:0x0] }
- 1: { l_ost_idx: 1, l_fid: [0x100010000:0xb97:0x0] }
- 2: { l_ost_idx: 2, l_fid: [0x100020000:0x630:0x0] }
- 3: { l_ost_idx: 0, l_fid: [0x100000000:0xedd:0x0] }
# lfs migrate /mnt/testfs/pfl
# lfs getstripe /mnt/testfs/pfl | grep l_ost_idx
- 0: { l_ost_idx: 0, l_fid: [0x100000000:0xede:0x0] }
- 0: { l_ost_idx: 3, l_fid: [0x100030000:0x659:0x0] }
- 1: { l_ost_idx: 1, l_fid: [0x100010000:0xb99:0x0] }
- 2: { l_ost_idx: 2, l_fid: [0x100020000:0x632:0x0] }
- 3: { l_ost_idx: 0, l_fid: [0x100000000:0xee0:0x0] }
As can be seen from the above, each "lfs migrate" command increments most OST FIDs by two, and OST0000 by three (because it has two separate objects for this file). The filesystem has 4 OSTs.