Subject: Re: Something like AIX's Journaled?
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Gary D. Duzan <gary@wheel.tiac.net>
List: current-users
Date: 11/19/1998 13:22:37
In Message <199811191602.LAA05286@Twig.Rodents.Montreal.QC.CA> ,
   der Mouse <mouse@Rodents.Montreal.QC.CA> wrote:

=>>> "AIX has had a Journaled file system for years - just add a hot swap
=>>> SCSI disk or SSA disk, give it to the volume group containing the
=>>> database and expand the filesystem - all while the system is running."
=>
=>> Having had some experience with AIX, this is in fact a very nice
=>> feature to have, and we don't have anything like it in NetBSD that I
=>> know of.  [...]  Very nice to have, and it would be an interesting
=>> project to add support for it to NetBSD.
=>
=>We have most of the pieces, actually.  Here's all we would need to add
=>as far as I can see:
=>
=>- A way to append new pieces to the end of a live ccd.
=>
=>- My fsresize, once fixed per M. Bouyer's remarks about the rotational
=>   layout data.  (I should do this but haven't yet.)
=>
=>- Something akin to Auspex's notion of filesystem "isolation", so that
=>   fsresize can update the superblock, coupled with a mount -o reload
=>   to make the kernel reread the superblock values, atomically with
=>   respect to other filesystem operations.  (Incidentally, mount.8 1.20
=>   doesn't list reload under the -o flag, despite mntopts.h listing it.
=>   If current is likewise, it probably should be fixed.)
=>
=>I think that's all we need.  We might not even need filesystem
=>isolation for a quick-and-dirty implementation.

   That might get some minimal functionality going, but you still
would have to use a BSD disklabel on the ccd with all the limitations
that implies. You're missing a layer of abstraction (or indirection)
that allows arbitrary placement of partitions on the disk, including
physically non-contiguous partitions. What you'd want is almost
like having a bunch of vnode disks configured for files inside a
file system on a ccd, but not quite.  For example, AIX's LVM allows
you to do things like removing a disk from a volume group, which
I assume forces any used blocks on that disk to other disks in the
volume group.  I don't think you could get the ccd+vnodes setup to
do this without serious work.
   Still, it might be interesting to have tools that manipulate
such a setup since it seems most of the infrastructure is there.
On the other hand, the NetBSD philosopy has always been to wait
and do things the "right" way instead of adding interim solutions
which are less elegant, so maybe not.

                                      Gary D. Duzan
                         Humble Practitioner of the Computing Arts