Symtoms
if there are inactive OSTs in Lustre, For example, `lfs quota -g` displays incorrect group quota information.
Disk quotas for grp somegroup (gid 743839): Filesystem kbytes quota limit grace files quota limit grace /l1fs/ [60844834] 5368709120 5368709120 - 520875 1536000 1536000 - Some errors happened when getting quota info. Some devices may be not working or deactivated. The data in "[]" is inaccurate.
But `lfs quota -vg`, shows that the -g query only calculated MDS usage; the OSTs were completely ignored.
Disk quotas for grp somegroup (gid 743839): Filesystem kbytes quota limit grace files quota limit grace /l1fs/ [60844834] 5368709120 5368709120 - 520875 1536000 1536000 - l1fs-MDT0000_UUID 8033385 - 9081961 - 89833 - 140394 - l1fs-MDT0001_UUID 11263295 - 12049665 - 75054 - 114715 - l1fs-MDT0002_UUID 4145664 - 5194240 - 46896 - 95260 - l1fs-MDT0003_UUID 37402490 - 38451066 - 309092 - 367189 - l1fs-OST0000_UUID 120479710 - 121254221 - - - - - l1fs-OST0001_UUID 118034400 - 118485127 - - - - - l1fs-OST0002_UUID 152981869 - 153762841 - - - - - l1fs-OST0003_UUID 48801192 - 49676307 - - - - - l1fs-OST0004_UUID 183502998 - 184046187 - - - - - l1fs-OST0005_UUID 96962209 - 97551268 - - - - - l1fs-OST0006_UUID 149271733 - 149734625 - - - - - l1fs-OST0007_UUID 134566891 - 135368253 - - - - - l1fs-OST0008_UUID 90752933 - 91434216 - - - - - l1fs-OST0009_UUID 451522372 - 452298694 - - - - - l1fs-OST000a_UUID[inact] [0] - [0] - - - - - l1fs-OST000b_UUID[inact] [0] - [0] - - - - - l1fs-OST000c_UUID 128210781 - 129259357 - - - - - l1fs-OST000d_UUID 135111789 - 135553464 - - - - - l1fs-OST000e_UUID 172676168 - 173543391 - - - - - l1fs-OST000f_UUID 319293477 - 320085881 - - - - - l1fs-OST0010_UUID[inact] [0] - [0] - - - - - l1fs-OST0011_UUID[inact] [0] - [0] - - - - - l1fs-OST0012_UUID 227441074 - 228363217 - - - - - l1fs-OST0013_UUID 377281871 - 378114418 - - - - - l1fs-OST0014_UUID 70815151 - 71856731 - - - - - l1fs-OST0015_UUID 131203811 - 131658833 - - - - - l1fs-OST0016_UUID 431622931 - 432561974 - - - - - l1fs-OST0017_UUID 392950142 - 393998547 - - - - - l1fs-OST0018_UUID 70524047 - 71376486 - - - - - l1fs-OST0019_UUID 110624379 - 111410170 - - - - - l1fs-OST001a_UUID 71612961 - 71904618 - - - - - l1fs-OST001b_UUID 214226076 - 215004318 - - - - - l1fs-OST001c_UUID 144839909 - 145719588 - - - - - l1fs-OST001d_UUID 206436746 - 207386488 - - - - - l1fs-OST001e_UUID 396445251 - 397164242 - - - - - l1fs-OST001f_UUID 84961369 - 85635381 - - - - - l1fs-OST0100_UUID 514 - 1049090 - - - - - l1fs-OST0101_UUID 1967 - 1050543 - - - - - l1fs-OST0102_UUID 857 - 1049433 - - - - - l1fs-OST0103_UUID 1028 - 1049604 - - - - - l1fs-OST0104_UUID 771 - 1049347 - - - - - l1fs-OST0105_UUID 24105 - 1072681 - - - - - l1fs-OST0106_UUID 1799 - 1050375 - - - - - l1fs-OST0107_UUID 1627 - 1050203 - - - - - l1fs-OST0108_UUID 942 - 1049518 - - - - - l1fs-OST0109_UUID 3247 - 1051823 - - - - - l1fs-OST010a_UUID 1627 - 1050203 - - - - - l1fs-OST010b_UUID 598 - 1049174 - - - - - Total allocated inode limit: 717558, total allocated block limit: 5266830837 Some errors happened when getting quota info. Some devices may be not working or deactivated. The data in "[]" is inaccurate.
Expected output for lfs quota -g : Sum of reachable OSTs plus MDT, still in parentheses
Cause
lov_quotactl() calculates a valid partial sum, returns `-ENETDOWN` due to an inactive OST, quotactl_ioctl() discards this partial sum.
The problem affects not only group quotas, but all quota types. Looking at the logic of the functions `lmv_quotactl()` and `quotactl_ioctl()`, it is clear that disabling MDT starting at 1 (not `mdt0`) would also return incorrect information. Furthermore, if some MDTs are disabled, there is no warning about the inaccuracy of the output because `rc=0` and `QIF_SPACE` remain at the end of `lmv_quotactl()`.