Hash: SHA1

On Sun, Mar 04, 2007 at 11:29:44PM +0200, Arthur Sherman wrote:
> This is a bit farer than I ment to go :) , but it sounds interesting.
> I'll give it a try in my leisure time.
> BTW, how changes, such as to mysql db or new virus defs, would be saved in
> this image?
> How do you create such image and load it at a boot time?

For the database you can use MySQL Cluster:

You build a network of database servers which operate strictly out of main
memory, with automatic failover if some servers go down.  Obviously you
should make occasional backups in case they all go down at once.

For virus defs, have your bootscripts download and install the latest
definitions when you boot up.  Start over with a new image when the download
gets unwieldly.

To set it all up:

1. Create and mount a loopback filesystem that's no bigger than your RAM.

2. Do a minimal install of your favorite distro onto the loopback
FS (use debootstrap for Debian or something analogous for others 
distros) plus whatever software you need to run on the server.

3. Chroot into it, configure everything the way you want it, and add the
logic I mentioned above into the boot scripts.

4. Set up an initrd which creates a ramdisk (this is different from tmpfs,
see /usr/src/linux/Documentation/ramdisk.txt) the same size as your loopback
fs, dds the loopback image onto the ramdisk, mounts it, and then pivot_roots
to it.

5. Add an appropriate initrd= option to your kernel command line.

This will all take some doing!  Don't expect much help from your distro.
I suggest using Slackware because it will stay out of your way.  You might
want to practice all this in VMWare before you start ripping the guts out
of a production box.

- -- 
Daniel Franke         [log in to unmask]
|----| =|\     \\\\    
|| * | -|-\---------   Man is free at the instant he wants to be. 
- -----| =|  \   ///     --Voltaire
Version: GnuPG v1.4.6 (GNU/Linux)