[LU-3893] lfs getstripe in nested directories does not indicate pools exist Created: 06/Sep/13 Updated: 04/Sep/14 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Minor |
| Reporter: | Colin Faber [X] (Inactive) | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 1 |
| Labels: | None | ||
| Severity: | 3 |
| Rank (Obsolete): | 10162 |
| Description |
|
When assigning a directory an OST pool, nested (sub) directories fail to indicate that they have a pool assigned to them when queried with lfs getstripe All looks good so far.. [root@coolermaster lustre]# lfs getstripe test
test
stripe_count: -1 stripe_size: 1048576 stripe_offset: -1 pool: test
[root@coolermaster lustre]# cd test
[root@coolermaster test]# touch y
[root@coolermaster test]# lfs getstripe y
y
lmm_stripe_count: 1
lmm_stripe_size: 1048576
lmm_layout_gen: 0
lmm_stripe_offset: 0
lmm_pool: test
obdidx objid objid group
0 4 0x4 0
Um.. where did pool info go??? [root@coolermaster test]# mkdir x [root@coolermaster test]# lfs getstripe x x stripe_count: -1 stripe_size: 1048576 stripe_offset: -1 Creating a file, indicates that the pool is infact inhieritied [root@coolermaster test]# cd x
[root@coolermaster x]# touch y
[root@coolermaster x]# lfs getstripe y
y
lmm_stripe_count: 1
lmm_stripe_size: 1048576
lmm_layout_gen: 0
lmm_stripe_offset: 0
lmm_pool: test
obdidx objid objid group
0 5 0x5 0
There also seems to be another bug here, lfs getstripe format changes depending on output context. |
| Comments |
| Comment by Colin Faber [X] (Inactive) [ 06/Sep/13 ] |
|
Maybe something else is going on here... Ah so... This might be, because the directory it self is empty in this test. It seems inherited pools are only visible if the directory contains some other file. This makes sense. I'm not sure if this would be a bug with lfs getstripe or not, possibly lfs getstripe should look at the obd index allocation, if none, pull the pool data from the parent directory. -cf |
| Comment by Scott Dolecki [ 04/Sep/14 ] |
|
Files created in the nested directories do not get assigned to the proper pool. Initially the files created within the nested directories are assigned to the correct pool. Somewhere around 20k files the new files being created no longer stay contained with the correct pool. Versions : {2.5.1, 2.6.0}Test setup : mdt, ost0, ost1 all located on a single machine. The same behavior has been observed on a larger system with multiple mdts and osts located on separated machines. Test steps : mkdir /mnt/lustre/ost0
lfs setstripe --pool lustre.ost0 /mnt/lustre/ost0
for x in {0..100}
do
for y in {0..100}
do
mkdir -p /mnt/lustre/ost0/${x}/${y}
for z in {0..100}
do
dd if=/dev/zero of=/mnt/lustre/ost0/${x}/${y}/${z}.img bs=1M count=1
done
done
done
|
| Comment by Scott Dolecki [ 04/Sep/14 ] |
|
I will gladly look into this problem if someone can direct me to the source code that might be responsible for the pool assignment when mkdir is called. I am not new to lustre but am new to the lustre source code. Thank you |