[Lustre-devel] HSM comments

DEGREMONT Aurelien aurelien.degremont at cea.fr
Mon Nov 3 07:30:02 PST 2008

Nathaniel Rutman a écrit :
>      5.4 unlink
>   1. A client issues an unlink for a file to the MDT.
>   2. The MDT includes the "hsm_exists" bit in the changelog unlink entry
>   3. The policy engine determines if the file should be removed from HSM
>   4. Policy engine sends HSMunlink FID to coordinator via MDT ioctl
>         1. Yuck - we can't do direct ioctls on the MDT from a client
>            node. We can only do ioctls on a file.
>                maybe we need to implement a .lustre/device/XXX dir,
>                where all MDT/OSTs are listed, and act as stub files for
>                handling ioctls.                or maybe policy engine 
> talks to agent / tool directly
>                for unlinks?

Can't we add an ioctl on /dev/obd or /mnt/lustre root dir ? or even on 
.lustre/fid and passing the fid in ioctl args?
I'm not fond of .lustre/device/XXX dirs...
>   5. The coordinator sends a request to one of its agent for the
>      corresponding removal.
>   6. The agent spawns the HSM tool to do this removal.
>   7. When HSM removal is complete, policy engine cancels changelog
>      unlink record
>         1. How does agent/HSM tool signal to policy engine that HSM
>            removal is complete?
>   8. In case of agent crash, unlink record will remain uncancelled in
>      the changelog; policy engine should restart processing at the
>      first uncancelled record.
> There's two open issues:
> - How for policy engine to tell coordinator to unlink an HSM object, 
> when no corresponding object exists on the MDT for us to ioctl() on
>    -which coordinator to talk to for CMD?
If we implement an ioctl like
ioctl(.lustre/fid, HSMUnlink, fid=0x0000121561), can the API find the 
good MDT from the FID ? FLD can do this for an already removed file?)

> - How does HSMunlinkHelper return a signal to the policy engine that 
> the removal is complete
>    -if policy engine directly calls HSMunlinkHelper this is easy...
I think there is a more general issue concerning feedback for the 
PolicyEngine. Surely the PolicyEngine will need information for other 
request it sent to the Coordinator. We should think of a more general 
mechanism to inform it of the success or failure of its requests.

Should the HSM (succesfull) event become changelog 
events....(hsm_copyin/hsm_copyout/hsm_remove)? Can another program be 
interested in such events?


More information about the lustre-devel mailing list