[OpenAFS] TSM client for OpenAFS

Anders Magnusson ragge@ltu.se
Thu, 02 Apr 2009 17:12:40 +0200


Hi,

we are currently deploying OpenAFS here at the university and also are 
stuck with TSM
for backups.  Currently there doesn't seems to exist any good AFS backup 
client for TSM,
and just storing volume dumps is not too appealing, both due to backup 
storage space and
simpleness in restoring single files.

So I have written a client that uses the TSM API for backup.  It reads 
the data directly out
of a volume and store all files in TSM as objects, while preserving 
ACLs, mountpoints etc.
Doing it this way will let AFS backups use the policies for objects, and 
also restores can
be performed via dsmc if necessary.

There are a few nits, though, that I haven't found a good way to 
handle.  Any suggestions
are welcome :-)

First is the storage of AFS data inside of TSM.  TSM has three 
identifiers for an object:
- filespace (typically mount point)
- High-level name (path inside mount point)
- Low-level name (filename)
Ideally the filespace should be the volume name, but TSM gets _really_ 
slow if there are
too many (a few hundred) filespaces.  Currently I just give it the 
cellname, and stores
the volume name in the HL name (like /volume/path-in-volume).  Other ideas?

Second is the storage of attributes and ACLs.  There is a 255-byte space 
available for
storing object attributes connected to each object.  This is not enough 
to store the ACLs
as clear-text, so I have to do pts lookups to translate them to their 
internal numbers
and store as such in the attribute block.  Any better ideas of how to do 
this?

So, if someone beside us need to use TSM for AFS and are interested in 
using this
client, feel free to give comments/ideas/whatever... :-)

-- ragge