Commit Graph

42 Commits

Author SHA1 Message Date
Greg Lehey
942081a325 vinum_start: examine storage array devices, not just disks.
Submitted by:	Holger Kipp <holger.kipp@alogis.com>
PR:		37458
MFC after: 	5 days
		(to get 4.6 code freeze)
2002-04-26 04:21:59 +00:00
Dag-Erling Smørgrav
d397408818 Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
Greg Lehey
1e1442dda0 Correct typo.
Submitted by: Normand Leclerc <leclercn@videotron.ca>
2001-06-11 00:43:26 +00:00
Greg Lehey
b3e6c926ea vinum_debug: Check for kernel module debug support, print error
message if not present.
2001-05-23 05:22:19 +00:00
Greg Lehey
e829a4ea32 Tidy up header files. Don't include stuff we don't need.
Remove 'vinum_perror'.

Only call make_devices if we're not running devfs.

Use userland expurgated versions of kernel structures, since that's
what the ioctls return now.

Update help list, which was lagging behind reality.

checkupdates: move to list.c to simplify header file mess.

vinum_stripe, vinum_mirror, vinum_raid4, vinum_raid5: change the
default stripe size from 256 k to 279 k, thus hopefully spreading
superblocks more evenly.
2001-05-22 02:38:11 +00:00
David E. O'Brien
1d9153d7ad Use _PATH_DEV.
Reviewed by:	grog
2001-02-28 17:50:29 +00:00
Alfred Perlstein
729d4f1db0 Fix vinum for both devfs and non-devfs systems.
userland tool:

  Use the vfs.devfs.generation sysctl to test for devfs presense
  (thanks phk!) when devfs is active it will not try to create the
  device nodes in /dev and therefore will not complain about the
  failure to do so.

  Revert the change in the #define for VINUM_DIR in the kernel
  header so that vinum can find its device nodes.

  Replace perror() with vinum_perror() to print file/line when
  DEVBUG is defined (not defined by default).

kernel:

  Don't use the #define names for the "superdev" creation since
  they will be prepended by "/dev/" (based on VINUM_DIR), instead
  use string constants.

  Create both debug and non-debug "superdev" nodes in the devfs.

Problem noticed and fix tested by: Martin Blapp <mblapp@fuchur.lan.attic.ch>
2001-02-20 22:07:36 +00:00
Greg Lehey
0b01781882 Correct some comments.
vinum_attach: Get correct names (were being overwritten).

Submitted by:	Terry Glanfield <Terry.Glanfield@program-products.co.uk>
2000-12-20 05:05:39 +00:00
Greg Lehey
25bcb8d376 Clean up now that setproctitle() is in libc.
Submitted by: 	brian
2000-09-03 01:29:29 +00:00
Greg Lehey
9a9b24fca0 vinum_start: Set the revive blocksize correctly.
checkparity: Allow the -v flag to display progress.
2000-06-07 04:09:55 +00:00
Greg Lehey
abda606acd attach command: allow attaching striped or parity plexes if the -f
option is given.  This will break the data in the plex.
2000-06-02 03:52:05 +00:00
Greg Lehey
a744e0d33d start plex/subdisk:
Add -i option to delay between blocks copied, to reduce performance
   impact.

   Remove -v option, things work now.

Rewrite parity maintenance functions.

Rebuildparity: Add -v option to check whether it was broken before
rebuilding each block.
2000-05-11 07:29:09 +00:00
Greg Lehey
cef69d78bb Implement vinum_rebuildparity, which had got forgotten. In the
process, move the body of vinum_rebuildparity and vinum_checkparity to
a new function, parityops.

Implicitly-sanctioned-by:	jkh
2000-03-01 07:19:33 +00:00
Greg Lehey
85882abb00 New function checkupdates: check whether configuration updates are
enabled and print a warning message in varous places if they are not.

Fix typos in comments.

Change some indents to approach style(9).

initvol: If init fails, place the subdisks in a "down" state.

vinum_start(): If we're starting a plex, try doing it directly.  It's
possible that the state of the plex differs from that of the subdisks,
for example if somebody has used 'setupstate'.

New functions vinum_raid4 and vinum_raid5 to create RAID-4 and RAID-5
volumes, analagous to vinum_mirror and vinum_stripe.

vinum_checkparity: Don't try to check the parity of a non-parity plex,
print a rude remark instead.

Approved-by:  jkh
2000-02-29 06:19:42 +00:00
Peter Wemm
ea3ea274b1 Don't use /dev/vinum/rsd/XXX for init as it doesn't exist any more.
Without this change, you cannot do the required init on a new raid5 volume.

Reviewed by:	grog
Approved by:	jkh
2000-02-06 02:40:22 +00:00
Greg Lehey
2768093ea6 Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

Submitted-by:	Bernd Walter <ticso@cicely.de>

Add function vinum_mv, which moves subdisks to different drives.  This
function just does the low-level configuration changes; the resultant
subdisk is stale if it previously had any contents, otherwise it is
empty (i.e. in need of initializing if it's RAID-5).  We still need to
handle getting the contents moved over, but the current version will
suffice to migrate subdisks from a disk which has failed.

Submitted-by:	Marius Bendiksen <marius@marius.scancall.no>

vinum_start:  Get the revive block size right.
2000-01-05 05:55:57 +00:00
Greg Lehey
23528a021d Change the name of the v flag variable from 'verbose' to 'vflag',
indicating the multiple use (verbose or verify).

initsd: rewrite:
  Initialization is now done in the kernel.

  Verify (again!) if -v is specified.

  Allow specification of a blocksize, the length to be transferred in
  one transfer.

vinum_revive:
  Allow specification of a blocksize, the length to be transferred in
  one transfer.
1999-10-13 03:27:06 +00:00
Greg Lehey
fad2b6452b vinum_init: Fix message typo.
vinum_start: bzero the statinfo.dinfo struct.  The lack of this was
causing sporadic failures of the start command.

Add body of vinum_checkparity command.
1999-09-28 23:00:05 +00:00
Peter Wemm
7f3dea244c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Greg Lehey
b095b120af Tidy up some indentation and comments.
vinum_init(): Change name of variable plexindex to objindex, which
	      better describes its purpose.

initsd(): Add a second parameter to determine whether it should wait
	  for completion or not.  This allows it to DTRT when called
	  with the -w flag either directly or via initplex().

Add 'setstate' command (function vinum_setstate ()) to implement the
VINUM_SETSTATE_FORCE ioctl for diddling individual object states.
This is a repair tool which can also be used for panicing the system.
Use with utmost care if at all.

Add unimplemented commands 'checkparity' and 'rebuildparity'.  Watch
this space.
1999-08-24 02:31:19 +00:00
Greg Lehey
fc58bdab83 initsd: On completion, put the subdisk in 'initialized' status, not
'up'.  This matches changes in the kernel module.

Reported-by:	Bernd Walter <ticso@cicely.de>
		Remy Nonnenmacher <remy@synx.com>
1999-08-15 02:32:19 +00:00
Greg Lehey
f0012c01e2 vinum_init: add code to initialize subdisks as well as plexes. Also
provide for initializing volumes; this code is not yet complete.
1999-08-14 06:18:39 +00:00
Greg Lehey
d9170b4e00 vinum_init:
wait correctly for completion.
   set object in initializing state before initializing.
   Don't set the plex up, it should go up automatically.

vinum_start:
  If any objects are not up on start, list them.

  Requested-by: Steve Taylor <staylor@cybernet.com>

vinum_attach:
  Make sure we always have the object information before examining it.

vinum_replace:
  Start writing.

create_drive, vinum_concat, vinum_stripe, vinum_mirror:
  Check the ioctl return values correctly

vinum_readpol:
  Start writing.
1999-08-07 08:18:39 +00:00
Greg Lehey
ec2e2a6723 Remove the volume, plex, sd and drive commands which allowed the user
to bypass the create command.

vinum_stop:
  Allow -f option.

Add commands for simplified configuration:
  concat - create a volume with one concatenated plex
  stripe - create a volume with one striped plex
  mirror - create a volume with two concatenated or striped plexes

Egged-on-by:	  jkh
1999-07-02 08:01:12 +00:00
Greg Lehey
c3d71cfc5e Allow a 'start <drive>' command. 1999-06-22 05:53:11 +00:00
Greg Lehey
e0e022fc69 vinum_create:
If no file name is specified, create one and edit it with the editor
  specified in the EDITOR environment variable, by default vi.

vinum_help:
  Update.

Fix typos in messages.
1999-05-02 08:01:21 +00:00
Greg Lehey
409d8396f9 vinum_init: count dead children correctly when waiting for completion.
vinum_resetstats: count objects correctly.
1999-04-17 04:11:48 +00:00
Greg Lehey
fc7fafc1a1 Add -w option to init command: wait for init to complete before
returning.
1999-04-10 04:00:49 +00:00
Greg Lehey
4bd1924ddf vinum_resetstats: Reset stats for drives correctly when recursing. 1999-03-31 08:44:20 +00:00
Greg Lehey
22093445f5 vinum_start: Allow user to specify a plex. In this case, revive all
subdisks in need of revival.

vinum_stop:  sleep for a second before unloading.  This solves a race
	     condition with a potential daemon when the stop command
	     is specified on the command line.
1999-03-28 08:51:10 +00:00
Greg Lehey
1ea272a632 'start' command: check that the objects in question aren't already up,
and produce an intelligble message if they are.
1999-03-24 00:45:47 +00:00
Greg Lehey
1ae808e860 Correct ioctl calls VINUM_STARTCONFIG. The last commit broke the
'vinum start' command.
1999-03-23 23:24:00 +00:00
Greg Lehey
7a4bec173b vinum_create: pass 'force' flag to ioctl VINUM_STARTCONFIG.
Semantics:

  When creating a new drive, if the drive already has a vinum label,
  and name doesn't match the specified drive, do it anyway if the
  'force' flag is specified.

Continually-tripped-over-by:  Karl Pielorz <kpielorz@tdx.co.uk>
1999-03-23 04:54:59 +00:00
Greg Lehey
aa8e683270 create command: get the message right if an error occurs with a
non-verbose create.
1999-03-14 04:06:00 +00:00
Greg Lehey
ad4e71c7b7 create command: if an error occurs, print the offending line even if
the -v flag has not been set.
1999-03-13 07:43:28 +00:00
Greg Lehey
5e2b0861ec resetconfig: don't log the "obliterated" message, the kernel does that
for us.

	     Rebuild the (almost empty) /dev/vinum directory.

vinum_start:  remove superflous "read" parameter when starting with no
	      parameters.

vinum_stop:  without an argument, stop Vinum and remove the kld if
	     it's idle.

vinum_saveconfig: New command to save configuration.
1999-03-02 07:00:57 +00:00
Greg Lehey
f2c4d303d7 Extend 'start' command: if used without any parameters, vinum scans
all disks known to devstat for vinum drives and reads their
configuration.
1999-02-11 06:14:15 +00:00
Greg Lehey
0834a1f2db Update to reflect changes in kernel lkm 1999-01-21 00:44:11 +00:00
Greg Lehey
2d9a57cff5 Complete change from DEBUG to VINUMDEBUG. Now it still builds when
VINUMDEBUG is set as well.
1999-01-06 04:22:48 +00:00
Peter Wemm
6d553badba Tweaks as a result of having vinum statically buildable in a kernel. 1998-12-28 16:32:39 +00:00
Greg Lehey
d67b685b04 Remove kludge to set subdisk states when bringing up a plex 1998-11-02 04:12:28 +00:00
Greg Lehey
8644f7188f Import base vinum userland sources 1998-09-16 05:57:36 +00:00