Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Oct 2002 10:16:39 +0200
From:      Poul-Henning Kamp <phk@critter.freebsd.dk>
To:        Scott Long <scott_long@btc.adaptec.com>
Cc:        Scott Long <scottl@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/etc MAKEDEV src/sbin/raidctl Makefile raidctl.8 raidctl.c rf_configure.c src/share/man/man4 Makefile raid.4 src/sys/conf NOTES files majors options src/sys/dev/raidframe rf_acctrace.c rf_acctrace.h rf_alloclist.c rf_alloclist.h ... 
Message-ID:  <1787.1035188199@critter.freebsd.dk>
In-Reply-To: Your message of "Sun, 20 Oct 2002 20:36:17 MDT." <20021021023616.GA79165@hollin.btc.adaptec.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <20021021023616.GA79165@hollin.btc.adaptec.com>, Scott Long writes:

>So now there are 3 software RAID implementations in FreeBSD.

RARI (Redundant Array of Raid Implementations)  ? :-)

My hope, (it isn't quite a plan yet) is that we can write/rewrite
some really good fundamental algorithms as individual GEOM
"class-lets":
	1-N mirroring
	N-1 striping
	N-1 concatenation
	RAID5
	etc.

Various "real" classes would then implement the necessary recognition
and configuration code, and employ the class-lets to do the real
work.

This is more or less the same way it's done with slicers now:
we have a geom_slice class-let, and geom_bsd, geom_mbr ...
classes which just configure the geom_slice to do the work.

Once we get past 5.0-R, I plan to pull ccd into GEOM this way
and use that for prototyping the APIs.

After that I would like to get the ATA-raid stuff migrated.

And that, I must confess is as far as my aspirations go right
now, vinum and raidframe are both out of scope for me, but I
will of course help out as best I can.

Here are a dump of my GEOM class idea sheet, if anybody wants
a neat project, I'll be happy to hand out:

    geom_secsize
	Change the appearant sectorsize of a device up or down.
	This, amongst other things, can be used to test filesystems
	and other code for sectorsize agnostism.  It can probably
	also simulate "block devices" well enough to fool VMWARE.
    geom_wipe
	This changes BIO_DELETE to BIO_WRITE and as such implements
	a basic secure erase function for filesystems which issue
	BIO_DELETE requests.
    geom_murphy
	A geom_class with configurable lossage usable for testing.
    geom_integ
	A geom class which saves a MD5 sum of each sector and checks
	that it reads back the same.  Useful for testing of drivers
	and geom classes.
    geom_udp
	A simple network-disk client implementation.
	Server is a userland process.
    geom_mirror
	1-N mirroring classlet
    geom_stripe
	N-1 striping classlet
    geom_concat
	N-1 concatenation classlet
    geom_ccd
	CCD compatibility class.
    geom_oops
	Implements copy-on-write and commit/abandon facilities.
	Could possibly do snapshots as well.

The list goes ever ever on...

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1787.1035188199>