[OpenAFS] Offline migration of AFS partition files (i.e. the contents of `/vicepX`)

Ciprian Dorin Craciun ciprian.craciun@gmail.com
Sat, 2 Mar 2019 22:42:16 +0200


On Wed, Dec 5, 2018 at 3:29 PM Harald Barth <haba@kth.se> wrote:
> > Can I safely `rsync` the files from the old partition to the new one?
>
> For Linux (The "new" server partition layout):
>
> If the file tree really is exactly copied (including all permissions
> and chmod-bits) then you have everything you need.



I would like to follow-up on this with some additional questions,
which I'll try to keep as succinct as possible.  (Nothing critical,
however I would like to have a little bit more insight into this.)

(A)  When you state `exactly copied` you mean only the following
(based on the `struct stat` members):
* `st_uid` / `st_gid`;
* `st_mode`;  (i.e. permissions;)
* `st_atim`, `st_mtim` and `st_ctim`?  (i.e. timestamps)
* no ACL's, no `xattr` (or `user_xattr`);
* anything else?

(B)  Also (based on what I gathered by "peeking" into the `/vicepX`
partition) there are only plain folders and plain files, without any
symlinks or hard-links.

(C)  Moreover based on the same observations, I guess that the
metadata (i.e. uid/gid/permissions/timestamps) for the actual folders
inside of `/vicepX` don't matter much.  (Only the matadata for the
actual files do.)



(D)  (Not really related to migration)  Am I to assume that some of
the files inside `AFSIDat` are identical in contents to the actual
files on the `/afs` structure?  (Disregarding all meta-data, including
filenames.)  Moreover am I to assume that all the files accessible
from `/afs` are found somewhere inside `AFSIDat` with identical
contents?

I.e. formalizing the last one:  if one would take any file accessible
under `/afs` and would compute its SHA1, then by looking into all
`/vicepX` partitions belonging to that cell, one would definitively
find a matching file with that SHA1.



My curiosity into all this is because I want to prepare some `rsync`
and `cpio` snippets that perhaps could help others in a similar
endeavor.  Moreover (although I know there are at least two other
"official" ways to achieve this) it can serve as an alternative backup
mechanism.

BTW, is there a document that outlines the actual layout of the
`/vicepX` structure?  I've searched a bit but found nothing useful.

Thanks for the feedback,
Ciprian.