Get rid of tbl stuff, replace with .Bl

Take BUGS section from vinum.8
This commit is contained in:
grog 1999-01-27 03:14:28 +00:00
parent 64319ac5b9
commit 493df803ae

View File

@ -556,276 +556,123 @@ uses this state to determine the handling of the object.
.Ss VOLUME STATES .Ss VOLUME STATES
Volumes may have the following states: Volumes may have the following states:
.sp .sp
.ne 1i .Bl -hang -width 14n
.TB "Volume states" .It volume_down
.TS H The volume is completely inaccessible.
box,center,tab(#) ; .It volume_up
lfCWp9 | lw65 . The volume is up and at least partially functional. Not all plexes may be
State#Meaning available.
= .El
volume_unallocated#T{
present but unused. This will not normally be seen from a user perspective.
T}
volume_uninit#T{
In the process of being created.
T}
volume_down#T{
The volume is inaccessible.
T}
volume_up#T{
The volume is up and functional, but not all plexes may be available.
T}
.TE
.TS H
box,center,tab(#) ;
lfCWp9 | lw65 .
State#Meaning
=
volume_unallocated#T{
present but unused. This will not normally be seen from a user perspective.
T}
.if t .sp .4v
.if n .sp 1
volume_uninit#T{
In the process of being created.
T}
.if t .sp .4v
.if n .sp 1
volume_down#T{
The volume is inaccessible.
T}
.if t .sp .4v
.if n .sp 1
volume_up#T{
The volume is up and functional, but not all plexes may be available.
T}
.if t .sp .4v
.if n .sp 1
.TE
.sp 2v
.Ss "PLEX STATES" .Ss "PLEX STATES"
Plexes may have the following states: Plexes may have the following states:
.sp .sp
.ne 1i .ne 1i
.TB "Plex states" .Bl -hang -width 14n
.TS H .It faulty
box,center,tab(#) ;
lfCWp9 | lw65 .
State#Meaning
=
plex_unallocated#T{
An empty entry, not a plex at all.
T}
.if t .sp .4v
.if n .sp 1
plex_checkup#T{
Temporary state: check subordinate subdisks to decide which state we can take.
The options are plex_error (no subdisks), plex_corrupted (not all subdisks, and
we were down), plex_degraded (not all subdisks, and we were up), plex_up (all
subdisks)
T}
.if t .sp .4v
.if n .sp 1
plex_checkdown#T{
Temporary state: check our previous state to decide whether we should go to down
or error state.
T}
.if t .sp .4v
.if n .sp 1
plex_uninit#T{
A plex entry which has not been created completely. Some fields may be empty.
T}
.if t .sp .4v
.if n .sp 1
plex_init#T{
All fields are correct, and the disk has been
updated, but there is no data on the disk.
T}
.if t .sp .4v
.if n .sp 1
plex_error#T{
A plex which has gone completely down because of I/O errors. A plex which has gone completely down because of I/O errors.
T} .It down
.if t .sp .4v A plex which has been taken down by the administrator.
.if n .sp 1 .It initializing
plex_down#T{ A plex which is being initialized.
A plex which has been taken down by the .sp
administrator. The remaining states represent plexes which are at least partially up.
T} .It corrupt
.if t .sp .4v
.if n .sp 1
#T{
The remaining states represent plexes which are
at least partially up. Keep these separate so that
they can be checked more easily.
T}
.if t .sp .4v
.if n .sp 1
plex_corrupted#T{
A plex entry which is at least partially up. Not all subdisks are available, A plex entry which is at least partially up. Not all subdisks are available,
and an inconsistency has occurred. If no other plex is uncorrupted, the volume and an inconsistency has occurred. If no other plex is uncorrupted, the volume
is no longer consistent. is no longer consistent.
T} .It degraded
.if t .sp .4v A RAID-5 plex entry which is accessible, but one subdisk is down, requiring
.if n .sp 1 recovery for many I/O requests.
plex_degraded#T{ .It flaky
A plex entry which is at least partially up. Not all subdisks are available,
but so far no inconsistency has occurred (this will change with the first write
to the address space occupied by a defective subdisk). This state includes the
condition where a subdisk is being copied.
T}
.if t .sp .4v
.if n .sp 1
plex_flaky#T{
A plex which is really up, but which has a reborn subdisk which we don't A plex which is really up, but which has a reborn subdisk which we don't
completely trust, and which we don't want to read if we can avoid it completely trust, and which we don't want to read if we can avoid it.
T} .It up
.if t .sp .4v A plex entry which is completely up. All subdisks are up.
.if n .sp 1 .El
plex_up#T{
A plex entry which is completely up. All subdisks
are up.
T}
.if t .sp .4v
.if n .sp 1
.TE
.sp 2v .sp 2v
.Ss "SUBDISK STATES" .Ss "SUBDISK STATES"
Subdisks can have the following states: Subdisks can have the following states:
.sp .sp
.ne 1i .ne 1i
.TB "Subdisk states" .Bl -hang -width 14n
.TS H .It empty
box,center,tab(#) ; A subdisk entry which has been created completely. All fields are correct, and
lfCWp9 | lw65 . the disk has been updated, but there is no data on the disk.
State#Meaning .It initializing
= A subdisk entry which has been created completely and which is currently being
sd_unallocated#T{ initialized.
An empty entry, not a subdisk at all. .sp
T} The following states represent invalid data.
.if t .sp .4v .It obsolete
.if n .sp 1 A subdisk entry which has been created completely. All fields are correct, the
sd_uninit#T{ config on disk has been updated, and the data was valid, but since then the
A subdisk entry which has not been created drive has been taken down, and as a result updates have been missed.
completely. Some fields may be empty. .It stale
T} A subdisk entry which has been created completely. All fields are correct, the
.if t .sp .4v disk has been updated, and the data was valid, but since then the drive has been
.if n .sp 1 crashed and updates have been lost.
sd_init#T{ .sp
A subdisk entry which has been created completely. The following states represent valid, inaccessible data.
All fields are correct, but the disk hasn't .It crashed
been updated. A subdisk entry which has been created completely. All fields are correct, the
T} disk has been updated, and the data was valid, but since then the drive has gone
.if t .sp .4v down. No attempt has been made to write to the subdisk since the crash, so the
.if n .sp 1 data is valid.
sd_empty#T{ .It down
A subdisk entry which has been created completely. A subdisk entry which was up, which contained valid data, and which was taken
All fields are correct, and the disk has been down by the administrator. The data is valid.
updated, but there is no data on the disk. .It reviving
T} The subdisk is currently in the process of being revived. We can write but not
.if t .sp .4v read.
.if n .sp 1 .sp
sd_obsolete#T{ The following states represent accessible subdisks with valid data.
A subdisk entry which has been created completely. .It reborn
All fields are correct, the disk has been updated, A subdisk entry which has been created completely. All fields are correct, the
and the data was valid, but since then the drive disk has been updated, and the data was valid, but since then the drive has gone
has gone down, and as a result updates have been down and up again. No updates were lost, but it is possible that the subdisk
missed. has been damaged. We won't read from this subdisk if we have a choice. If this
T} is the only subdisk which covers this address space in the plex, we set its
.if t .sp .4v state to up under these circumstances, so this status implies that there is
.if n .sp 1 another subdisk to fulfil the request.
sd_stale#T{ .It up
A subdisk entry which has been created completely. A subdisk entry which has been created completely. All fields are correct, the
All fields are correct, the disk has been updated, disk has been updated, and the data is valid.
and the data was valid, but since then the drive .El
has gone down, updates have been lost, and then
the drive came up again.
T}
.if t .sp .4v
.if n .sp 1
#T{
The following states represent valid, inaccessible data
T}
.if t .sp .4v
.if n .sp 1
sd_crashed#T{
A subdisk entry which has been created completely.
All fields are correct, the disk has been updated,
and the data was valid, but since then the drive
has gone down. No attempt has been made to write
to the subdisk since the crash.
T}
.if t .sp .4v
.if n .sp 1
sd_down#T{
A subdisk entry which was up, which contained
valid data, and which was taken down by the
administrator. The data is valid.
T}
.if t .sp .4v
.if n .sp 1
sd_reborn#T{
A subdisk entry which has been created completely.
All fields are correct, the disk has been updated,
and the data was valid, but since then the drive
has gone down and up again. No updates were lost,
but it is possible that the subdisk has been
damaged. We won't read from this subdisk if we
have a choice.
T}
.if t .sp .4v
.if n .sp 1
sd_up#T{
A subdisk entry which has been created completely.
All fields are correct, the disk has been updated,
and the data is valid.
T}
.if t .sp .4v
.if n .sp 1
.TE
.sp 2v .sp 2v
.Ss "DRIVE STATES" .Ss "DRIVE STATES"
Drives can have the following states: Drives can have the following states:
.sp .sp
.ne 1i .ne 1i
.TB "Drive states" .Bl -hang -width 14n
.TS H .It down
box,center,tab(#) ; The drive is not accessible.
lfCWp9 | lw65 . .It up
State#Meaning The drive is up and running.
= .El
drive_unallocated#T{
Unused entry.
T}
.if t .sp .4v
.if n .sp 1
drive_uninit#T{
just mentioned in some other config entry.
T}
.if t .sp .4v
.if n .sp 1
drive_down#T{
not accessible
T}
.if t .sp .4v
.if n .sp 1
drive_coming_up#T{
in the process of being brought up
T}
.if t .sp .4v
.if n .sp 1
drive_up#up and running
.TE
.sp 2v .sp 2v
.Sh BUGS AND OMISSIONS .Sh BUGS AND OMISSIONS
Many. .Bl -enum
.Nm vinum .It
is currently in beta test. Please report any bugs not in the list below to .Nm
.Ar <grog@lemis.com> . is a new product. Many bugs can be expected. The configuration mechanism is
.sp not yet fully functional. If you have difficulties, please look at
The following functions are known to be deficient or not implemented: http://www.lemis.com/vinum_beta.html and
.Bl -bullet http://www.lemis.com/vinum_debugging.html before reporting problems.
.It
It is possible to unload the
.Nm
module with the
.Nm kldunload
command. This is buggy, and the only reason it is present at all is to make it
easier for people testing the system: the alternative is a reboot. It works
about 80% of the time: expect about one panic every five unloads.
.It
It is possible to configure
.Nm
statically, but it has never been tested in this form. Don't even bother to
report the problem if you have trouble with a static
.Nm
pseudo-device, unless you can also repeat it with the kld module.
.It .It
It is necessary to initialize RAID-5 plexes. Failure to do so will not impede It is necessary to initialize RAID-5 plexes. Failure to do so will not impede
normal operation, but it will cause complete corruption if one of the disks normal operation, but it will cause complete corruption if one of the disks
@ -833,7 +680,7 @@ should fail. I don't know any good way to enforce this initialization (or the
even slower alternative of rebuilding the parity blocks). If anybody has a good even slower alternative of rebuilding the parity blocks). If anybody has a good
idea, I'd be grateful for input. idea, I'd be grateful for input.
.It .It
Det ection of differences between the version of the kernel and the kld is not Detection of differences between the version of the kernel and the kld is not
yet implemented. yet implemented.
.El .El
.Sh AUTHOR .Sh AUTHOR
@ -846,4 +693,3 @@ first appeared in FreeBSD 3.0.
.Xr vinum 8 , .Xr vinum 8 ,
.Xr disklabel 5 , .Xr disklabel 5 ,
.Xr disklabel 8 . .Xr disklabel 8 .