1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-13 10:02:38 +00:00
Commit Graph

53 Commits

Author SHA1 Message Date
Robert Watson
f315f7629f Don't attempt to make devices if we're using devfs. This
substantially cleans up the output when running the vinum
management tool, and also makes it work better.

Long sustained silence from:	grog
2003-11-17 15:56:00 +00:00
Greg Lehey
dd3b91651f Remove label command. It has been deprecated since December 1998, and
recent changes broke it altogether.

Prompted by:  phk
2003-06-12 05:55:59 +00:00
Greg Lehey
b4756f9967 vinum_read: Don't lock configuration from userland. If vinum(8)
crashes, the config remains locked and causes all
            subsequent start or read attempts to fail.  This is part
            of a fix for the recently reported hangs.

Approved by:  re (scottl)
2003-05-08 00:33:57 +00:00
David E. O'Brien
8d5c19ffbc Centralize _PATH_* definitions.
Submitted by:	Tim Kientzle <kientzle@acm.org> (embellished by me)
2003-05-05 22:49:23 +00:00
Greg Lehey
b2cf87ecc1 vinum_start: Call vinum_read with correct number of parameters. 2003-05-05 08:33:36 +00:00
Greg Lehey
3a508bbd0a vinum_readpol: Get this right.
Submitted by:	Allan Saddi <allan@saddi.com>

vinum_read: White space cleanup.
2003-05-05 05:27:19 +00:00
Greg Lehey
888c270436 Rewrite of startup code:
vinum_read:
  Accept 0 parameters, hand an empty string to the kernel if so.
  Use new ioctl VINUM_READCONFIG, not VINUM_CREATE, to read config.

vinum_start: When passed 0 parameters, drop the devstat kludge and
     call vinum_read instead.  It's no longer necessary to distinguish
     between "start" and "read" if no parameters are passed, and
     probably one of them should go away.
2003-05-04 05:13:17 +00:00
Greg Lehey
d82c72d742 Move most #includes to vext.h.
Change name of history file to History to avoid name conflicts.

Don't try to make devices unless devfs has been removed.

Don't accept resetconfig command from a file.

Abused by:  Jens Schweikhardt <schweikh@schweikhardt.net>

Remove dead code (#if 0)

vinum_mirror: Don't try to create mirrors with 0 drives.

Found by: mismatch between enum kw in two different files.
2003-05-01 01:39:49 +00:00
Poul-Henning Kamp
26c4bf80c2 Update to use current version of devstat API. 2003-03-15 20:49:38 +00:00
Poul-Henning Kamp
c9260270a0 Add #include <sys/resource.h> 2003-02-16 15:31:26 +00:00
Joerg Wunsch
1b915d506b While being here, remove a couple of unused "default:" labels in switch
statements, now that gcc loudly complains about them.

MFC after:	1 week
2003-01-16 23:49:34 +00:00
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