Each line in the pnfsd logfile has a similar basic format. They start with<date> <time> <ClientIP>-<UID>-<GID> - <command>followed by the neccessary argument for that command and they all end with the database return code in brackets followed by the nfs return code after the arrow.(<database rc>) -> <nfs rc>The database return codes are defined in dbfs/md2types.h and the nfs return code in the corresponding rfc. There is only one exception. The nfs return code (-222) indicates the request was not answered. This return code is used to make the client wait for a resource without blocking all the pnfsd's by the clients retries.
The most important argument type, which is used by all requests, is the nfs handle.<PnfsID>-<Pnfs Permission>The PnfsID is the object ID the the pnfs database. The pnfs permission contains the information about the current I/O mode and requested PNFS Layer of the object. Let the last two digests of the permission be <m><l>, the <l> specifies the layer, which can be 0...7. If <m> is zero I/O is enabled otherwise disabled for level zero.
lookupcreatelookup dir <dir handle> name <object name> : <result ID> <attributes>The attributes contain the type(t), the mode(m) and the inode(i) of the result object.writecreate dir <dir handle> name <object name> <attributes> : <result ID>The attributes contain the user id (uid) , the group id (gid), the size, the mode bits and the last access and last modification times.readwrite <object handle> <offset[hex]> <length[hex]>setattrread <object handle> <offset[hex]> <length[hex]>getattrsetattr <object handle> <attributes>The attributes contain the user id (uid) , the group id (gid), the size, the mode bits and the last access and last modification times.setattr <object handle> <attributes>The attributes contain the type (t ), mode (m), size (s) , inode (i) as well as the creation, modification and access time (cmat).