automatic dump and restore over

2004-01-11 Thread Rickard Dahlstrand
Hi,

I think I have a plan for upgrading a large number of computers over the network. I 
would really appreciate some help finding flaws in this idea.

All the servers is installed with one partition for /, one for /var/. When I do the 
initial install I move the /etc to /var/etc and synlink /etc to point at /var/etc. 
This should make the / partition exactly the same on all the servers.

On the reference server (where I do all the upgrades)  I then use dump to create a 
file from the / partition. This file is the zipped and moved to my laptop from 
installation on all the other servers.

The laptop is then connected to the same network as the server that needs upgrading. 
The laptop is running DHCP, TFTP and NFS services.

All servers are set to boot using PXE and once I reboot it the server boots an image 
from the laptop containing a picobsd dist with a modified startup script. 

This script automatically mounts the hard drive on the server and a directory on the 
laptop containing the dump-file from the reference server. Then it uses restore to 
write the dump-file over the / partition on the server.

After the upgrade is complete I reboot the server without the DHCP server active and 
the server should boot using the new / partition.

Can this work? I have read that dump/restore is the best solution for backing up 
disks. Could there be any problems using restore on a partition already allocated?

Thanks, Rickard.
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: automatic dump and restore over

2004-01-11 Thread Matthew Seaman
On Sun, Jan 11, 2004 at 12:00:12PM +0100, Rickard Dahlstrand wrote:

 All the servers is installed with one partition for /, one for /var/. When I do the 
 initial install I move the /etc to /var/etc and synlink /etc to point at /var/etc. 
 This should make the / partition exactly the same on all the servers.

If you move /etc like this, you'll make the machines so treated
unbootable.  There's critical stuff in /etc that has to be in the root
partition for the boot process to be able to find it.

 On the reference server (where I do all the upgrades)  I then use dump to create a 
 file from the / partition. This file is the zipped and moved to my laptop from 
 installation on all the other servers.
 
 The laptop is then connected to the same network as the server that needs upgrading. 
 The laptop is running DHCP, TFTP and NFS services.
 
 All servers are set to boot using PXE and once I reboot it the server boots an image 
 from the laptop containing a picobsd dist with a modified startup script. 
 
 This script automatically mounts the hard drive on the server and a directory on the 
 laptop containing the dump-file from the reference server. Then it uses restore to 
 write the dump-file over the / partition on the server.
 
 After the upgrade is complete I reboot the server without the DHCP server active and 
 the server should boot using the new / partition.
 
 Can this work? I have read that dump/restore is the best solution for backing up 
 disks. Could there be any problems using restore on a partition already allocated?

It strikes me as a lot more complicated than the recommended method,
which is to designate one machine as a 'build box', where you build
all of the OS and kernels you need.  You then NFS export /usr/src and
/usr/obj and mount them on the machine you want to update.  Then you
can use 'make installkernel', 'make installworld' and 'mergemaster' to
do the update.  Possibly with a few other steps here and there -- for
full instructions start with:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/small-lan.html

However, if you decide to stick with your first idea, then I'd make
a few changes:

i) Copy the contents of /etc to your /var as a backup.  Leave the
   original /etc in place on the root partition.  If you're going
   to be doing this sort of thing regularly, then you can set up a
   cron(8) job: the net/rsync port will let you do the copies very
   efficiently.

   ii) Before you rewrite your root partition, you should run newfs(8)
   on it to blank it.  restore(8) can overwrite a populated
   partition, but it works best given an empty filesystem.
 
  iii) After you've restored your example root partition, copy back
   the contents of /etc.  Note that this will wipe out any updates
   to files within /etc which came as part of the upgrade.
   mergemaster(8) will help you fix things up, or you can be
   selective about what contents of /etc you actually keep backed
   up

-- 
Dr Matthew J Seaman MA, D.Phil.   26 The Paddocks
  Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey Marlow
Tel: +44 1628 476614  Bucks., SL7 1TH UK


pgp0.pgp
Description: PGP signature


Re: automatic dump and restore over

2004-01-11 Thread Rickard Dahlstrand
Thanks for all the good answers. Just one final question.

Do you think it is at all possible to do this update without rebooting? It would save 
time but I assume that this is impossible.

The reason I thinking of doing it this way is because I need to distribute the update 
on a bootable cd. I need a method that is as failsafe as it can be without any 
user-interaction (Except for turning the power switch).

Thanks, Rickard.

- Original Message - 
From: Matthew Seaman [EMAIL PROTECTED]
To: Rickard Dahlstrand [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Sunday, January 11, 2004 1:51 PM
Subject: Re: automatic dump and restore over

On Sun, Jan 11, 2004 at 12:00:12PM +0100, Rickard Dahlstrand wrote:
 
  All the servers is installed with one partition for /, one for /var/. When I do 
  the initial install I move the /etc to /var/etc and synlink /etc to point at 
  /var/etc. This should make the / partition exactly the same on all the servers.
 
 If you move /etc like this, you'll make the machines so treated
 unbootable.  There's critical stuff in /etc that has to be in the root
 partition for the boot process to be able to find it.
 
  On the reference server (where I do all the upgrades)  I then use dump to create a 
  file from the / partition. This file is the zipped and moved to my laptop from 
  installation on all the other servers.
  
  The laptop is then connected to the same network as the server that needs 
  upgrading. The laptop is running DHCP, TFTP and NFS services.
  
  All servers are set to boot using PXE and once I reboot it the server boots an 
  image from the laptop containing a picobsd dist with a modified startup script. 
  
  This script automatically mounts the hard drive on the server and a directory on 
  the laptop containing the dump-file from the reference server. Then it uses 
  restore to write the dump-file over the / partition on the server.
  
  After the upgrade is complete I reboot the server without the DHCP server active 
  and the server should boot using the new / partition.
  
  Can this work? I have read that dump/restore is the best solution for backing up 
  disks. Could there be any problems using restore on a partition already allocated?
 
 It strikes me as a lot more complicated than the recommended method,
 which is to designate one machine as a 'build box', where you build
 all of the OS and kernels you need.  You then NFS export /usr/src and
 /usr/obj and mount them on the machine you want to update.  Then you
 can use 'make installkernel', 'make installworld' and 'mergemaster' to
 do the update.  Possibly with a few other steps here and there -- for
 full instructions start with:
 
 http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/small-lan.html
 
 However, if you decide to stick with your first idea, then I'd make
 a few changes:
 
 i) Copy the contents of /etc to your /var as a backup.  Leave the
original /etc in place on the root partition.  If you're going
to be doing this sort of thing regularly, then you can set up a
cron(8) job: the net/rsync port will let you do the copies very
efficiently.
 
ii) Before you rewrite your root partition, you should run newfs(8)
on it to blank it.  restore(8) can overwrite a populated
partition, but it works best given an empty filesystem.
  
   iii) After you've restored your example root partition, copy back
the contents of /etc.  Note that this will wipe out any updates
to files within /etc which came as part of the upgrade.
mergemaster(8) will help you fix things up, or you can be
selective about what contents of /etc you actually keep backed
up
 
 -- 
 Dr Matthew J Seaman MA, D.Phil.   26 The Paddocks
   Savill Way
 PGP: http://www.infracaninophile.co.uk/pgpkey Marlow
 Tel: +44 1628 476614  Bucks., SL7 1TH UK
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]