Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.14.0
-
None
-
Two OST pools with two different sizes of OSTs within the same filesystem
-
3
-
9223372036854775807
Description
Here is an example. create two OST pools with 12 OSTs. pool 'nvme' consists of OST index[0-7].
lctl pool_new scratch.nvme lctl pool_new scratch.hdd lctl pool_add scratch.nvme OST[0-7] lctl pool_add scratch.hdd OST[8-b]
If an client creates 48 files (new files) into an directory which is associated with 8 OSTs by OST pool, it would expect 6 OST objects per OST, but results was totally unbalanced.
Test was repeated 5 times, and here is a result how many OST objects allocated to each OST in each test.
Used 8 of 12 OSTs with an OST pool
ost index 0 1 2 3 4 5 6 7 t1. 4 10 3 8 5 6 8 4 t2. 6 5 6 7 8 4 10 2 t3. 3 10 8 6 5 9 6 1 t4. 4 10 6 5 4 6 8 5 t5. 6 6 7 4 6 5 8 6
If filesystem created on just 8 OSTs and no OST pool, OST objects were allocated to across 8 OSTs in an balanced and round-robin worked perfectly.
Just 8 OST without OST pool
ost index 0 1 2 3 4 5 6 7 t1. 6 6 6 6 6 6 6 6 t2. 6 6 6 6 6 6 6 6 t3. 6 6 6 6 6 6 6 6 t4. 6 6 6 6 6 6 6 6 t5. 6 6 6 6 6 6 6 6