-
Lai Siyao authored
Similar to file OST object allocation, introduce directory stripe allocation by space usage, but they don't share the same code because of the many differences between them: file has mirrors, PFL, object precreation; while for directory, the first stripe is always on the same MDT where its master object is on. The changes include: * add lod_mdt_alloc_qos() to allocate stripes by space/inode usage. * add lod_mdt_alloc_rr() to allocate stripes round-robin. * add lod_mdt_alloc_specific() to allocate stripes in the old way. * add sysfs support for lmv_desc field in LOD structure, and move those remain in procfs to sysfs. This patch also changes LMV QoS code: * mkdir by QoS if user mkdir by command 'lfs mkdir -i -1 ...', or the parent directory default LMV starting MDT index is -1. * with the above change, 'space' hash flag is useless, remove all related code. * previously 'lfs mkdir -i -1' QoS code is in lfs_setdirstripe(), but now it's done in LMV, remove the old code. Update sanity 413a 413b to support QoS mkdir of both plain and striped directories. Update lfs-setdirstripe man to reflect the changes. Signed-off-by: Lai Siyao <lai.siyao@whamcloud.com> Change-Id: I8f5f8e46faae68ffd9a49a4ac1d450e951e979c5 Reviewed-on: https://review.whamcloud.com/35825 Tested-by: jenkins <devops@whamcloud.com> Tested-by: Maloo <maloo@whamcloud.com> Reviewed-by: Andreas Dilger <adilger@whamcloud.com> Reviewed-by: Hongchao Zhang <hongchao@whamcloud.com> Reviewed-by: Oleg Drokin <green@whamcloud.com>
c1d0a355