[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