Upgrade of server by moving drives,[OpenAFS] Upgrade of server by moving drives

Harald Barth haba@kth.se
Tue, 26 Feb 2019 03:25:40 +0100 (CET)

> We would prefer to move the array containing our vicep* partitions from
> the old to the new server and bring that one up.

Yes, that is possible. Nothing on the /vicep* says what server it was
on, that info is only on the VLDB(s) in the DB servers. The identity
of the file server is the uuid ( vos listaddr -printuuid ). Then a
fileserver has one or more IPs. The uuid is on the fileserver stored
in the sysid file.

If you have the DB and file servers on seperate computers i makes the
procedure shown below easier because you can do one thing at the time.
As long as you have another DB server up and running it should work as
well with a DB server on the same computer but I have not tested this
as we always have fileservers and DB servers seperate.

This is how I upgrade a fileserver without move (backups taken
and verified before you start yada-yada-yada):

1. Make new fileserver with temporary IP and test
   with temporary /vicepa

2. Shutdown fileserver process (but keep computer up) and remove test

3. Copy (overwrite) the sysid file from the old fileserver (most
   likely /var/lib/openafs/local/sysid) to the new one

4. Shutdown old file server process and remove the sysid file and IP
   numbers so I don't start a duplicate by accident. Then shutdown OS.

5. Connect storage to new file server and make it visible as exactly
   the same /vicep* as on the old one. This may need a reboot depending
   on the storage. Move IP numbers to new server.

6. Start new fileserver process with the same sysid and IP of the old
   one. The new fileserver now looks like the old one to the VLDB.

7. Clean up the temp IP/sysid in the VLDB.

8. Enjoy 
   (you had downtime from 4 to 6 but that might be done quite fast)

If you screw up with the sysid or want to connect differnent /vicep*
to different future servers, (that can not be done with the sysid
trick), that can be repaired with the vos syncvldb command.

DB servers you upgrade by having several and then upgrade the one that
is not the current syncsite. When starting empty, that non-syncsite
will then be recloned automatically. The udebug command is your friend
there to monitor what's going on.