Details
-
Technical task
-
Resolution: Fixed
-
Major
-
None
-
None
-
8893
Description
This is a sub-task for striped directory in DNE phase II.
1. add setstripedir and getstripeddir to lfs.
2. add related changes to client side, llite ioctl, allocate fid for stripe, packed RPC etc.
3. The related process needs to change as well
created/looked up under stripe directory,
Client will first calculate the hash according to the name and lmv_hash_type of the striped directory, then get the MDT index according to the hash, and sends the create/lookup request to that MDT.
Readdir of striped directory
During readdir, client will iterate all of stripes, and for each stripe, it will get stripe lock, then read directory entries.
Getattr of striped directory
Client needs to walk through all of the stripes to get attributes from all of the stripe and then merge them together.
size/blocks/nlink: add all together from every stripe.
ctime/mtime/atime: choose the newest one as the xtime of the striped directory.
uid/gid: should be same for all stripes.
4. On the MDT side, in mdt_md_create, the master MDT sends object create updates to each remote MDT to create the stripes.