Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.16.0
-
None
-
3
-
9223372036854775807
Description
The LOV_USES_DEFAULT_STRIPE flag is never set during OST object allocation, so min_stripe_count() does not allow reducing the stripe count set on a file. This can result in the MDS trying to allocate objects on too many OSTs, especially when the space is imbalanced, or OSTs are deactivated by "osp.*.max_create_count=0".
It also appears that lod_statfs_and_check() is expecting lod_statfs_check() to only return -ENOSPC, so it isn't skipping an OST when it is mounted read-only or when max_create_count=0. It would probably be better to change lod_statfs_and_check() to skip the OST if lod_statfs_check() returns any error, since all of them are reasons to skip an OST.
Also, it appears that the merged MDT and OST QOS allocation does skip MDTs marked with OS_STATFS_ENOINO.
Attachments
Issue Links
- is related to
-
LU-17856 sanity: test_56xe fail
- Reopened
-
LU-16981 LBUG in lod_striped_create, fewer stripes allocated than requested
- Resolved
-
LU-17199 'lfs setstripe -C -1' can be set beyond overstripe count > 2000
- Resolved
-
LU-16578 osp prealloc_status stuck at -11 after MDT failover
- Closed
-
LU-16938 "lfs setstripe -C -1" stripes too widely, should be limited to OST_COUNT
- Resolved
- is related to
-
LU-16014 sanity test_27M: crash in lod_qos_prep_create()
- Resolved
-
LU-16648 sanity test_27M: crashed in lod_statfs_and_check()
- Resolved
-
LU-12624 DNE3: striped directory allocate stripes by QoS
- Resolved