recent changes prohibit vinum swap.
Robert Watson
rwatson at freebsd.org
Fri Sep 26 15:39:19 PDT 2003
On Fri, 26 Sep 2003, David Gilbert wrote:
> Recent changes to -CURRENT prohibit vinum swap:
>
> [1:6:306]root at mu:~> swapon /dev/vinum/swapmu swapon: /dev/vinum/swapmu:
> Operation not supported by device
In order to support swapping, Vinum will need to be modified to use struct
disk and the disk(9) API, rather than exposing its storage devices
directly via struct cdevsw and make_dev(9). I.e., Vinum probably needs to
start approaching things as "disks" rather than "devices", a distinction
that's becoming more mature in -CURRENT.
>From a quick read of vinumconfig.c, I'm guessing this wouldn't be hard to
implement. Some subset of struct sd, struct plex, and struct volume will
need to start holding a struct disk instance which would be passed to
disk_create() instead of a call to make_dev(). Much of the remainder will
just consist of a bit of tweaking to make Vinum extract its data from
bp->bio_disk->d_drv1 instead of bp->b_dev, replacing the ioctl dev_t
argument with a disk argument, etc.
I recently noticed that Vinum may be averse to blocksizes other than 512
bytes. Or at least, I can get Vinum mirrors up and running on md devices
backed to memory, but not to swap, and the usual reason for problems on
that front is the 4k blocksize for swap-backed md devices.
I also noticed that the vinum commandline tool is a bit devfs-unfriendly,
or at least, it gets pretty verbose about how all the files/directories it
wants to create are already present. It could be that a test for devfs
conditionally causing a test for EEXIST would go a long way in muffling
the somewhat loud complaining :-).
Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org Network Associates Laboratories
More information about the freebsd-current
mailing list