Subject: Re: VPS mailing list, BSD interest?
To: Kevin P. Neal <kpneal@pobox.com>
From: Jim Reid <jim.reid@eurocontrol.be>
List: tech-kern
Date: 10/03/1996 10:43:41
>>>>> "Kevin" == "Kevin P Neal" <kpneal@pobox.com> writes:
Kevin> It would actually break FFS for a partition to grow
Kevin> underneath it?
Not necessarily. For those who are unfortunate to have LVM, there is a
utility called extendfs which allows you to expand the filesystem -
here it's just ufs, but I suppose would work for vxfs too - into new
logical volumes.
Kevin> Would newfs_ffs (or whatever) know which devices could
Kevin> support the filesystem? How would that work?
I guess it works by having some kernel struct which has a number of
block counts and disk devices and offsets which comprise each logical
volume.
Kevin> Lemmie see if I have this straight: 1) User program decides
Kevin> to grow/shrink a partition. 2) User program tells
Kevin> partition to grow/shrink 3) Virtual partition asks for the
Kevin> permission of the filesystem 4) Assuming they agree, they
Kevin> work together somehow to do whatever -- Filesystem must
Kevin> make sure there is enough space available to shrink down
Kevin> into. Non-resizable filesystems would just veto the whole
Kevin> shebang.
Not exactly. In the LVM paradigm, physical volumes - disks or bits of
disks can be added and removed from a logical volume more or less at
will. [Obviously there are sanity checks that the PV isn't used.] Once
you've added a new PV to the logical volume, extendfs is used to
diddle the superblocks so the filesystem can use the new space.
Kevin> Ok. Doesn't this assume that whatever is sitting on top of
Kevin> the partition is a filesystem? What if it isn't? What if a
Kevin> database or something or other is sitting on top? Would
Kevin> resizing be possible? Wouldn't the mechanism of
Kevin> communicating the resize be different because of the user
Kevin> program hitting the disk instead of going through a
Kevin> filesystem?
It depends on what it's being used for.
Kevin> Third case: What do you do about resizing a swap partition?
This is hardly different from adding an extra swap device. Just add a
vnode which points at the extra space and use swapon to make the
kernel use it.