Date: Sun, 24 Jan 1999 15:50:09 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: "Jordan K. Hubbard" <jkh@zippy.cdrom.com> Cc: John Birrell <jb@cimlogic.com.au>, peter@netplex.com.au (Peter Wemm), nsouch@teaser.fr, cvs-committers@FreeBSD.ORG Subject: Re: CVS totally broken on freefall Message-ID: <199901242350.PAA05539@apollo.backplane.com> References: <1427.917220014@zippy.cdrom.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:> This is a *VERY* good example of what not to do on a production system. :> People should know better. Grrr. : :You know of a better way of upgrading machines? If so, tell me now :before we do hub. :) : :I don't have full spares for each, so I can't do the old roll-over :from a hot spare trick. If this were a commercial shop I'd have one :or two super-spares in the corner, sure, but project funds are not :quite so abundant. :) : :- Jordan Your machines probably aren't configured to make upgrades easy, but basically what you do is have a template machine. This machine has the 'new' release fully installed, plus has a directory tree containing compatible old-release binaries and libraries. You NFS export this machine's /, /usr, /old/root, and /old/usr On each machine you wish to upgrade you do the following: (1) mount from the template machine: /old/root /old/usr /new/root /new/usr (2) re-ldconfig and re-path such that the only libraries you access are from /old/usr/lib and the only binaries you run are from /old/*. (3) Get rid of any unnecessary services. (4) start copying. Write a script to copy the stuff from /new/root and /new/usr to / and /usr ( at BEST we basically had a static / and /usr and so we could just mirror them minus our /conf/ME softlink which pointed to /conf/<hostname> depending on which machine it was ) NOTE: you can't just copy binaries and libraries, not unless you want to seg-fault the system ( sshd, tcsh, sh, etc... ). Instead, cp to filename.NEW and then mv -f ( rename over ). You probably have major customizations in / and /usr for each of your machines, so you have to be more careful. (5) Get the machine into shape. Install the new kernel and loader, new bootblocks, reboot. (6) Once the machine is up in its new configuration, you can do a full make buildworld / installworld without worrying about compatibility problems. Hell, if you did the copy right, you do not even have to do this. The other cool thing is, of course, that since you are using NFS mounts you can put the script to do all of this in one place: on the template machine. -Matt Matthew Dillon <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199901242350.PAA05539>