Details
-
Bug
-
Resolution: Duplicate
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
The OS_STATE_DEGRADED sent from the OST only reduces the probability that an OST will be used, to avoid placing load on an OST that is doing RAID rebuild, and will typically avoid the OST if they are otherwise equally used. It does not completely prevent the OST from being used if there are not enough other suitable OSTs available to meet the client's request.
If OSTs are already quite imbalanced due to uneven space usage, it appears that the "QOS" allocator does not take the OS_STATE_DEGRADED flag into account when selecting OSTs.
It seems that lod_alloc_qos() is doing many, but not all of the checks from lod_check_and_reserve_ost(), and it would be better if this function was split into two - lod_check_ost() to handle the first half of the "hard" reasons to skip an OST that can also be used in the first "good_osts" loop of lod_alloc_qos(), and lod_reserve_ost() to check the "soft" reasons (precreated and later) to skip an OST that can also be used in the second "nfound" loop of lod_alloc_qos().
Attachments
Issue Links
- is related to
-
LU-522 sanity.sh test_27x failed with "OST0 was degraded but new created file still use it"
-
- Resolved
-