1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-17 10:26:15 +00:00
Commit Graph

191 Commits

Author SHA1 Message Date
Greg Lehey
a0d74c6e9d Document the correct default states for additional plexes of a
multi-plex volume.

Confusion reported by: many

Clarify recommendations for default plex stripe size.
2000-11-14 20:54:37 +00:00
Ruslan Ermilov
70b25a7daf Spell the `daemon' correctly. 2000-11-14 13:53:03 +00:00
Ruslan Ermilov
b5c508fba3 Use Fx macro wherever possible. 2000-11-14 11:20:58 +00:00
Greg Lehey
5a7e6cbe50 Add 'setupstate' to RAID-10 example.
Tripped-over-by:	Nicole Harrington <nicole@picturetrail.com>
2000-09-23 00:18:31 +00:00
Greg Lehey
673fac08fd Bring LDADD in line with DPADD.
Reported by:	bde
2000-09-06 04:18:16 +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
5b36316f62 Clarify which bit of the daemon config disables configuration saves.
This is still terrible.  I need to finally implement variables.

Reported-by:	jmg
2000-06-08 07:27:35 +00:00
Greg Lehey
2550d2afdc Update description of checkparity and rebuildparity commands. 2000-06-07 04:15:40 +00:00
Greg Lehey
86ed226506 continue_revive: Set the revive blocksize correctly in the ioctl request. 2000-06-07 04:12:39 +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
b47055ad2c Add new function declarations. 2000-06-02 03:55:01 +00:00
Greg Lehey
b6847cd633 Change the default command history file from /var/tmp/vinum_history to
/var/log/vinum_history.  Also check that any existing history file is
a regular file.

Admonished-by: imp

Allow stopping long-running commands with ^C (well, SIGINTR).
Previously this would stop the program.
2000-06-02 03:54:33 +00:00
Greg Lehey
7d3e5fc5f4 Add new function dumpconfig: dump the configuration information
directly off the drives.

This command shows a minor problem: it requires that the device nodes
exist, whereas kernel Vinum does not.  Thus dumpconfig may show no
configuration for certain drives which are up and happily running.
This is documented in the man page.
2000-06-02 03:53:33 +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
36fba7e903 Add external for -i option. 2000-05-11 08:57:09 +00:00
Greg Lehey
e46f1e870a Remove description of the -v option for init and start.
Describe -i option for start.

Update description of start command (will now work on plexes).

Update discussion of choice of stripe size (don't use power of 2).

Remove references to raw devices.
2000-05-11 07:34:54 +00:00
Greg Lehey
371cbd825b Add -i (interval) option, for use with start command. 2000-05-11 07:33:53 +00:00
Greg Lehey
672ef75209 vinum_info: Use the correct field to determine whether trace entries
are read or write.

Bug-introduced-in:	Revision 1.26

Show percentage complete in brief status of reviving and initializing
subdisks.
2000-05-11 07:32:09 +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
6eb38370fb Remove MAINTAINER. 2000-04-16 00:17:46 +00:00
Bruce Evans
07b065a591 Fixed a missing library in DPADD.
Fixed some misformattings.
2000-03-27 18:38:29 +00:00
Poul-Henning Kamp
beff200af8 B_READ is gone, check for BIO_READ instead.
Not tested.
2000-03-20 17:12:45 +00:00
Greg Lehey
bfa5948701 Remove description of defunct DEBUG_NUMOUTPUT by commenting out.
Describe stop -f to stop when config updates are disabled.

Explain in more detail why Vinum needs its own partition type, and why
you can't make it the c partition.

Implicitly-sanctioned-by:	jkh
2000-03-01 07:22:10 +00:00
Greg Lehey
bcfbeb29b5 Add declaration for parityops.
Implicitly-sanctioned-by:	jkh
2000-03-01 07:21:21 +00:00
Greg Lehey
d07abdea38 Increase the time we'll wait for a reviving disk to carry on and not
be marked as stalled, from 1 second to 5 seconds.

Implicitly-sanctioned-by:	jkh
2000-03-01 07:20:32 +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
fe3a7a1941 Add definitions for vinum_raid[45] and checkupdates.
Approved-by:  jkh
2000-02-29 06:22:09 +00:00
Greg Lehey
f9c32ccded Don't print any error message if we can't open the history file. This
replaces an older attempt to silence vinum(8) when started in
single-user mode.

Add entries for vinum_raid[45].

Replace the preprocessor variable name CDEV_MAJOR with
VINUM_CDEV_MAJOR.

continue_revive: Set the proc title to 'reviving <sdname>' so that it
can be recognized in a ps list.

Approved-by:  jkh
2000-02-29 06:21:38 +00:00
Greg Lehey
4b62b353ed vinum_ldi: Honour the 'recurse' flag and show the subdisks on this
drive if it is set.

vinum_lvi: Change line spacing.  This is still not right.

Change checks for striped or RAID-5 plexes to a macro 'isstriped',
which now also includes RAID-4.

Change checks for RAID-5 plexes to a macro 'isparity', which now also
includes RAID-4.

vinum_lsi: If the subdisk is initializing or reviving, don't wait a
whole second to check whether it's advancing; wait in increments of 50
ms up to 1 second.  This makes for a barely perceptible delay.

Approved-by:  jkh
2000-02-29 06:20:57 +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
dac2aaa459 make_devices(): Create devices with permissions 640, not 740.
Pointed-out-by:	"Rodney W. Grimes" <freebsd@gndrsh.dnsmgr.net>
2000-01-05 23:56:33 +00:00
Greg Lehey
ee5a9cbce2 Describe 'move' function.
Submitted-by:	Marius Bendiksen <marius@marius.scancall.no>

Describe state transitions in more detail, in particular how to revive
subdisks.
2000-01-05 05:59:08 +00:00
Greg Lehey
3bceb06958 Change parameters of some declarations.
Add declaration for vinum_mv.
2000-01-05 05:58:01 +00:00
Greg Lehey
af5f43cbd7 makedev: Give all devices permissions 740.
Suggested-by:	Bernd Walter (ticso@cicely.de)

Add key pairs for 'mv' and 'move' (a synonym for 'mv').  Required for
the move command code submitted by Marius Bendiksen
<marius@marius.scancall.no>

make_devices: Don't create symlinks for drives if they are only
referenced.  Previously, spurious symlinks appeared in the current
directory.

Problem-reported-by:	Bernd Walter (ticso@cicely.de)

No longer create character devices, now that there is no difference.
Make the devices as character devices, not block devices.
2000-01-05 05:57:31 +00:00
Greg Lehey
95b9eac9db Explicitly type large scalar parameters to avoid compilation warnings
on alpha.

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

Replace %q formats with %lld.

Desired-by:	bde

Remove #ifdef RAID5

vinum_lsi: If a subdisk is in 'reviving' state, check the status of
the revive and report the status of the revive.  In verbose mode,
display the pid of the reviver.
2000-01-05 05:56:47 +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
Marcel Moolenaar
c292cf660e Remove -g compiler flag. 2000-01-03 12:01:30 +00:00
Greg Lehey
6ed62da4d9 Describe the new options of start and init commands. 1999-10-13 03:30:29 +00:00
Greg Lehey
7010e4d64a Change default init sizes from 64 kB to 60 kB, since the block device
interface limits it to this anyway.

Change the name of the v flag variable from 'verbose' to 'vflag',
indicating the multiple use (verbose or verify).

Add -S flag to specify the size of some operations.
1999-10-13 03:29:13 +00:00
Greg Lehey
08b9eaf32b Change the name of the v flag variable from 'verbose' to 'vflag',
indicating the multiple use (verbose or verify).

Add -S flag to specify the size of some operations.
1999-10-13 03:28:40 +00:00
Greg Lehey
0ddf8b8823 Change the name of the v flag variable from 'verbose' to 'vflag',
indicating the multiple use (verbose or verify).

vinum_ldi:
  Show active requests for the drive if -v is specified.
  White space cleanup.

vinum_lsi:
  Show the progress of an init command if -v is specified.

vinum_info:
  Print the number of active requests.

  Print out loginfo_sdio and loginfo_sdiodone log entries.
1999-10-13 03:27:55 +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
0212898e1c Add description of checkparity and rebuildparity.
Remove a half-started message.

Reported-by:	      "Jeffrey J. Mountin" <jeff@mountin.net>
1999-09-28 23:03:29 +00:00
Greg Lehey
cbad9196fb Brucify comments.
vinum_lpi: Add information about progress of rebuildparity and
           checkparity commands.

listconfig: Print object counts in a different format, don't refer to
the internal number of slots allocated:

Caused-confusion-to:  Norbert Meissner <norbert.meissner@daimlerchrysler.com>

vinum_info: Change format of device numbers so that they fit in the
column (ignore high-order minor number bits, which aren't really of
much interest).
1999-09-28 23:02:14 +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
05da76e022 Update and tidy descriptions of info -V.
Describe use of -w option with start.
Tidy up descriptions of scale factor suffixes.
1999-08-26 03:24:02 +00:00
Greg Lehey
a7bd84e6b1 Document the setstate command. 1999-08-24 02:36:23 +00:00
Greg Lehey
360ca1a0f8 Change declaration for initsd.
Add declarations for vinum_setstate, vinum_checkparity and
vinum_rebuildparity.
1999-08-24 02:35:07 +00:00
Greg Lehey
684e6c47e5 parseline(): Reset the -w flag.
continue_revive: Implement the -w flag.
1999-08-24 02:33:55 +00:00
Greg Lehey
bfb9bed7bf vinum_info(): Add support for logging subdisk I/O. 1999-08-24 02:32:57 +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
Mike Pritchard
348e4e6c73 Minor mdoc fix. 1999-08-15 12:16:59 +00:00
Mike Pritchard
aa7c9adaea Various man page cleanup:
- Sort xrefs
- FreeBSD.ORG -> FreeBSD.org
- Properly xref RFCs.
- Be consistent with section names as outlined in mdoc(7).
- Other misc mdoc cleanup.

PR:		doc/13144
Submitted by:	Alexey M. Zelkin <phantom@cris.net>
1999-08-15 08:06:12 +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
ff5bd28e70 Correct typo. 1999-08-14 09:15:43 +00:00
Greg Lehey
43b967dbef Add declarations for initvol, initplex and initsd helper functions for
vinum_init.
1999-08-14 06:20:55 +00:00
Greg Lehey
b6f7fc2505 vinum_info: add code to print out lock events.
modify format of other event printouts.
1999-08-14 06:20:20 +00:00
Greg Lehey
bcb0f98dbe make_plex_dev: make them raw. Volume-related plex devices will
probably die a death soon (yes, DES, that's correct usage).
1999-08-14 06:19:38 +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
6017572204 Correct typo.
PR:	docs/13050
Reported-by:	Dan Langille<junkmale@xtra.co.nz>
1999-08-09 23:28:03 +00:00
Greg Lehey
b13c5ac72b Update to reflect recent changes. 1999-08-07 09:27:25 +00:00
Greg Lehey
4426dd567f Remove code to detect RAID-5/non-RAID-5 kernel modules. 1999-08-07 08:20:07 +00:00
Greg Lehey
1e0e802f79 Remove code to detect RAID-5/non-RAID-5 kernel modules.
Add function definition for readpol command.

Rewrite make_devices with a view to incremental making.  In the
process, effectively kill off plex-bound subdisk device numbers.
1999-08-07 08:19:45 +00:00
Greg Lehey
4391e2334d Import RAID-5 code.
Add Cybernet copyright.

OK'd-by:     Chuck Jacobus <chuck@cybernet.com>

vinum_ldi:
  Calculate the percentage used correctly.

vinum_lsi:
  Flag detached subdisks.

vinum_info:
  Request info: get the major and minor numbers and print them
  correctly.

list_defective_objects:
  New function, for listing objects which aren't up after vinum_start.

  Requested-by: Steve Taylor <staylor@cybernet.com>
1999-08-07 08:19:15 +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
aa30608b44 Modify device numbering method to work with latest -CURRENT. Briefly,
the device numbers are now minor number only, so that we can still
compare them after dev_t has turned into a blob.

Broken-by:	dev_t changes
Reported-by:	Vallo Kallaste <vallo@matti.ee>
		"Niels Chr. Bank-Pedersen" <ncbp@bank-pedersen.dk>
1999-07-22 08:40:37 +00:00
Greg Lehey
d0448064fc Add definitions for simplified config commands
Change definition of sflag

Reported-by:	Johan Karlsson <k@numeri.campus.luth.se>
		Doug <Doug@gorean.org>
		green

World-broken-by:	grog
Pointy-hat-passed-to:	grog
1999-07-02 23:57:45 +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
a490e68466 Change the name of the s option to indicate that it wears more than
one hat.

Change formats as the result of changes in drive structure.
1999-07-02 08:00:31 +00:00
Greg Lehey
2c1ba0bcf7 Change the name of the s option to indicate that it wears more than
one hat.

Add -n option for specifying names of volumes created with the
simplified commands.

Add function find_drive_by_devname to help the simplified
configuration commands.
1999-07-02 07:59:45 +00:00
Greg Lehey
738407d497 Document simplified configuration commands. 1999-07-02 07:58:54 +00:00
Greg Lehey
f3a65ee32e Document the -f flag to detach.
Document the dangers of adding subdisks to striped and RAID-5 plexes.
1999-06-22 05:55:32 +00:00
Greg Lehey
c9a9cf971a Remove ancient, mouldy comments. 1999-06-22 05:54:39 +00:00
Greg Lehey
b1cdcf849c vinum_ldi:
Show the available sectors relative to the user-available part of
  the drive (don't include the config space at the beginning).  This
  stops an empty drive reporting only 99% available.

Requested-by: staylor

printconfig:

  Show sizes in sectors with the suffix 's' instead of the
  now-deprecated 'b'.
1999-06-22 05:53:57 +00:00
Greg Lehey
c3d71cfc5e Allow a 'start <drive>' command. 1999-06-22 05:53:11 +00:00
Greg Lehey
8fea704025 Arrange the "CONFIGURATION FILE" section in the order in which the
entries go into the config file.

Clarify what names can be used for Vinum drives, and what will happen
to you if you use other names.

Forcibly-demonstrated-by:  Thomas Stromberg <tstromberg@rtci.com>
			   Peter K Campbell <PCampbel@vtrlmel1.telstra.com.au>
			   George Cox <george.cox@sophos.com>
			   many others, but those were the only three today.
1999-05-07 07:11:01 +00:00
Greg Lehey
1b3859ce9a timestamp:
Assign explicit variable for sec to get it to compile on Alpha.

Submitted by: dfr
1999-05-02 22:23:18 +00:00
Greg Lehey
e2375c635f Update documentation of new functions.
Describe new scale letter for sizes: 's' (sector) instead of 'b'
(block).  Both mean 512 bytes, but 'b' is deprecated because it's
confusing.

Document log file and environment variables.
1999-05-02 08:03:30 +00:00
Greg Lehey
895bd9b191 Add definitions for history functions and printconfig split. 1999-05-02 08:02:48 +00:00
Greg Lehey
0f76af59ba printconfig:
split into vinum_printconfig (interactive) and printconfig (called
  from vinum_printconfig and from vinum_create when starting an
  interactive update.
1999-05-02 08:02:03 +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
1976254102 Maintain a log file, by default /var/log/vinum.history, showing what
has been done.  This name can be overridden by the value of the
VINUM_HISTORY environment variable.

Print dates in log file according to the variable VINUM_DATEFORMAT, by
default %e %b %Y %H:%M:%S.
1999-05-02 08:00:30 +00:00
Greg Lehey
0aff4757c8 When looking at all objects, look at all objects.
main:
  If the wrong version is started, execve the correct version.
1999-04-17 04:13:04 +00:00
Greg Lehey
cc2023a984 When looking at all objects, look at all objects.
vinum_lsi:
  Print rough size of plex in parentheses.
  Print drive info with -v option (previously required -V).
1999-04-17 04:12:33 +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
f83b075baa Add external declaration for wait flag, rather later than intended.
Complained-about-by:  jkh
		      Jim Bloom <bloom@acm.org>
		      Michael Reifenberger <root@nihil.plaut.de>
1999-04-10 23:39:14 +00:00
Greg Lehey
9690aae346 Document -w option for init command.
Reorganize OPTIONS section into alphabetical order.
1999-04-10 04:02:23 +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
033916740b If the wrong version of vinum(8) has been started (i.e. non-RAID-5
when the kernel module is RAID-5, or the other way round), execve()
the correct one.

Add \n to an error message.
1999-04-09 01:14:36 +00:00
Greg Lehey
8a465c4217 Add GOTCHAS entries warning against using partition c for vinum, and
explaining the syntax of the 'read' command.

Shot-in-foot-by:  Bob Gustwick <gustwick@oldzoom.bga.com>
1999-04-05 04:06:27 +00:00
Greg Lehey
4bd1924ddf vinum_resetstats: Reset stats for drives correctly when recursing. 1999-03-31 08:44:20 +00:00
Greg Lehey
95869fbbd3 Change the meaning of the combination of -s and no -v option in the
list functions.  Previously, it would produce a non-verbose listing of
the objects followed individually by a statistics listing.  Now it
produces only a one-line-per-object statistics listing.
1999-03-31 08:43:40 +00:00
Greg Lehey
60349886f9 Get date right.
Remove comments about not being able to unload from the command line.

Add another example configuration output.

Clarify when to use 'vinum start' and when to use 'vinum read'.
1999-03-28 08:51:51 +00:00
Greg Lehey
0fea12cf01 main (): Don't loop waiting for children to finish. 1999-03-28 08:51:29 +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
35755b9f51 Add a tutorial-like section "How to set up Vinum" 1999-03-24 09:18:33 +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