Bug #762 » vinum.8.patch
| vinum.8 9 Aug 2007 19:19:40 -0000 | ||
|---|---|---|
|
.Pp
|
||
|
See above for the description of the commands. Here are some examples, all
|
||
|
performed with the same collection of disks. Note that the first drive,
|
||
|
.Pa /dev/da1h ,
|
||
|
.Pa /dev/da1s0h ,
|
||
|
is smaller than the others. This has an effect on the sizes chosen for each
|
||
|
kind of subdisk.
|
||
|
.Pp
|
||
| ... | ... | |
|
Use a volume with a single concatenated plex for the largest possible storage
|
||
|
without resilience to drive failures:
|
||
|
.Bd -literal
|
||
|
vinum -> concat -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
|
||
|
vinum -> concat -v /dev/da1s0h /dev/da2s0h /dev/da3s0h /dev/da4s0h
|
||
|
volume vinum0
|
||
|
plex name vinum0.p0 org concat
|
||
|
drive vinumdrive0 device /dev/da1h
|
||
|
drive vinumdrive0 device /dev/da1s0h
|
||
|
sd name vinum0.p0.s0 drive vinumdrive0 size 0
|
||
|
drive vinumdrive1 device /dev/da2h
|
||
|
drive vinumdrive1 device /dev/da2s0h
|
||
|
sd name vinum0.p0.s1 drive vinumdrive1 size 0
|
||
|
drive vinumdrive2 device /dev/da3h
|
||
|
drive vinumdrive2 device /dev/da3s0h
|
||
|
sd name vinum0.p0.s2 drive vinumdrive2 size 0
|
||
|
drive vinumdrive3 device /dev/da4h
|
||
|
drive vinumdrive3 device /dev/da4s0h
|
||
|
sd name vinum0.p0.s3 drive vinumdrive3 size 0
|
||
|
V vinum0 State: up Plexes: 1 Size: 2134 MB
|
||
|
P vinum0.p0 C State: up Subdisks: 4 Size: 2134 MB
|
||
| ... | ... | |
|
concatenated plex, but restrictions on striped plexes can mean that the volume
|
||
|
is smaller. It will also not be resilient to a drive failure:
|
||
|
.Bd -literal
|
||
|
vinum -> stripe -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h
|
||
|
drive vinumdrive0 device /dev/da1h
|
||
|
drive vinumdrive1 device /dev/da2h
|
||
|
drive vinumdrive2 device /dev/da3h
|
||
|
drive vinumdrive3 device /dev/da4h
|
||
|
vinum -> stripe -v /dev/da1s0h /dev/da2s0h /dev/da3s0h /dev/da4s0h
|
||
|
drive vinumdrive0 device /dev/da1s0h
|
||
|
drive vinumdrive1 device /dev/da2s0h
|
||
|
drive vinumdrive2 device /dev/da3s0h
|
||
|
drive vinumdrive3 device /dev/da4s0h
|
||
|
volume vinum0
|
||
|
plex name vinum0.p0 org striped 256k
|
||
|
sd name vinum0.p0.s0 drive vinumdrive0 size 849825b
|
||
| ... | ... | |
|
.Ss Mirrored volume with two concatenated plexes
|
||
|
For more reliability, use a mirrored, concatenated volume:
|
||
|
.Bd -literal
|
||
|
vinum -> mirror -v -n mirror /dev/da1h /dev/da2h /dev/da3h /dev/da4h
|
||
|
drive vinumdrive0 device /dev/da1h
|
||
|
drive vinumdrive1 device /dev/da2h
|
||
|
drive vinumdrive2 device /dev/da3h
|
||
|
drive vinumdrive3 device /dev/da4h
|
||
|
vinum -> mirror -v -n mirror /dev/da1s0h /dev/da2s0h /dev/da3s0h /dev/da4s0h
|
||
|
drive vinumdrive0 device /dev/da1s0h
|
||
|
drive vinumdrive1 device /dev/da2s0h
|
||
|
drive vinumdrive2 device /dev/da3s0h
|
||
|
drive vinumdrive3 device /dev/da4s0h
|
||
|
volume mirror setupstate
|
||
|
plex name mirror.p0 org concat
|
||
|
sd name mirror.p0.s0 drive vinumdrive0 size 0b
|
||
| ... | ... | |
|
.Fl s
|
||
|
option to create a mirrored volume with two striped plexes:
|
||
|
.Bd -literal
|
||
|
vinum -> mirror -v -n raid10 -s /dev/da1h /dev/da2h /dev/da3h /dev/da4h
|
||
|
drive vinumdrive0 device /dev/da1h
|
||
|
drive vinumdrive1 device /dev/da2h
|
||
|
drive vinumdrive2 device /dev/da3h
|
||
|
drive vinumdrive3 device /dev/da4h
|
||
|
vinum -> mirror -v -n raid10 -s /dev/da1s0h /dev/da2s0h /dev/da3s0h /dev/da4s0h
|
||
|
drive vinumdrive0 device /dev/da1s0h
|
||
|
drive vinumdrive1 device /dev/da2s0h
|
||
|
drive vinumdrive2 device /dev/da3s0h
|
||
|
drive vinumdrive3 device /dev/da4s0h
|
||
|
volume raid10 setupstate
|
||
|
plex name raid10.p0 org striped 256k
|
||
|
sd name raid10.p0.s0 drive vinumdrive0 size 849825b
|
||
| ... | ... | |
|
Specify the device on which the drive resides.
|
||
|
.Ar devicename
|
||
|
must be the name of a disk partition, for example
|
||
|
.Pa /dev/da1e
|
||
|
.Pa /dev/da1s0e
|
||
|
or
|
||
|
.Pa /dev/ad3s2h ,
|
||
|
and it must be of type
|
||
| ... | ... | |
|
# Sample vinum configuration file
|
||
|
#
|
||
|
# Our drives
|
||
|
drive drive1 device /dev/da1h
|
||
|
drive drive2 device /dev/da2h
|
||
|
drive drive3 device /dev/da3h
|
||
|
drive drive4 device /dev/da4h
|
||
|
drive drive5 device /dev/da5h
|
||
|
drive drive6 device /dev/da6h
|
||
|
drive drive1 device /dev/da1s0h
|
||
|
drive drive2 device /dev/da2s0h
|
||
|
drive drive3 device /dev/da3s0h
|
||
|
drive drive4 device /dev/da4s0h
|
||
|
drive drive5 device /dev/da5s0h
|
||
|
drive drive6 device /dev/da6s0h
|
||
|
# A volume with one striped plex
|
||
|
volume tinyvol
|
||
|
plex org striped 512b
|
||
| ... | ... | |
|
partition layout as shown by
|
||
|
.Xr disklabel 8 :
|
||
|
.Bd -literal
|
||
|
8 partitions:
|
||
|
# size offset fstype [fsize bsize bps/cpg]
|
||
|
a: 81920 344064 4.2BSD 0 0 0 # (Cyl. 240*- 297*)
|
||
|
b: 262144 81920 swap # (Cyl. 57*- 240*)
|
||
|
c: 4226725 0 unused 0 0 # (Cyl. 0 - 2955*)
|
||
|
e: 81920 0 4.2BSD 0 0 0 # (Cyl. 0 - 57*)
|
||
|
f: 1900000 425984 4.2BSD 0 0 0 # (Cyl. 297*- 1626*)
|
||
|
g: 1900741 2325984 vinum 0 0 0 # (Cyl. 1626*- 2955*)
|
||
|
16 partitions:
|
||
|
# size offset fstype
|
||
|
a: 81920 344064 4.2BSD # 40.000M
|
||
|
b: 262144 81920 swap # 128.000M
|
||
|
c: 4226725 0 unused # 2063.830M
|
||
|
e: 81920 0 4.2BSD # 40.000M
|
||
|
f: 1900000 425984 4.2BSD # 927.734M
|
||
|
g: 1900741 2325984 vinum # 928.095M
|
||
|
.Ed
|
||
|
.Pp
|
||
|
In this example, partition
|
||
| ... | ... | |
|
.Dq Li f
|
||
|
may be used as
|
||
|
.Em UFS
|
||
|
file systems or
|
||
|
.Em ccd
|
||
|
partitions. Partition
|
||
|
file systems.
|
||
|
Partition
|
||
|
.Dq Li b
|
||
|
is a swap partition, and partition
|
||
|
.Dq Li c
|
||
| ... | ... | |
|
They should be partitions, not devices, and they should not be partition
|
||
|
.Dq Li c .
|
||
|
For example, good names are
|
||
|
.Pa /dev/da0e
|
||
|
.Pa /dev/da0s0e
|
||
|
or
|
||
|
.Pa /dev/ad3s4a .
|
||
|
Bad names are
|
||
| ... | ... | |
|
and
|
||
|
.Pa /dev/da0s1 ,
|
||
|
both of which represent a device, not a partition, and
|
||
|
.Pa /dev/ad1c ,
|
||
|
.Pa /dev/ad1s0c ,
|
||
|
which represents a complete disk and should be of type
|
||
|
.Em unused .
|
||
|
See the example under
|
||
| ... | ... | |
|
system. For example, if you had five small drives and wanted to use all the
|
||
|
space for a single volume, you might write a configuration file like:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d3 device /dev/da4e
|
||
|
drive d4 device /dev/da5e
|
||
|
drive d5 device /dev/da6e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
drive d3 device /dev/da4s0e
|
||
|
drive d4 device /dev/da5s0e
|
||
|
drive d5 device /dev/da6s0e
|
||
|
volume bigger
|
||
|
plex org concat
|
||
|
sd length 0 drive d1
|
||
| ... | ... | |
|
To set up mirroring, create multiple plexes in a volume. For example, to create
|
||
|
a mirrored volume of 2 GB, you might create the following configuration file:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
volume mirror
|
||
|
plex org concat
|
||
|
sd length 2g drive d1
|
||
| ... | ... | |
|
For example, to create an equivalent resilient volume of 2 GB, you might use the
|
||
|
following configuration file:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d3 device /dev/da4e
|
||
|
drive d4 device /dev/da5e
|
||
|
drive d5 device /dev/da6e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
drive d3 device /dev/da4s0e
|
||
|
drive d4 device /dev/da5s0e
|
||
|
drive d5 device /dev/da6s0e
|
||
|
volume raid
|
||
|
plex org raid5 512k
|
||
|
sd length 512m drive d1
|
||
| ... | ... | |
|
configuration. If you were to use the minimum of only three disks, you would
|
||
|
require 3 GB to store the information, for example:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d3 device /dev/da4e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
drive d3 device /dev/da4s0e
|
||
|
volume raid
|
||
|
plex org raid5 512k
|
||
|
sd length 1g drive d1
|
||
| ... | ... | |
|
.Cm striped
|
||
|
plex:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d3 device /dev/da4e
|
||
|
drive d4 device /dev/da5e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
drive d3 device /dev/da4s0e
|
||
|
drive d4 device /dev/da5s0e
|
||
|
volume raid
|
||
|
plex org striped 512k
|
||
|
sd length 512m drive d1
|
||
| ... | ... | |
|
.Nm
|
||
|
you can do this with the following configuration file:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d1 device /dev/da2e
|
||
|
drive d2 device /dev/da3e
|
||
|
drive d3 device /dev/da4e
|
||
|
drive d4 device /dev/da5e
|
||
|
drive d1 device /dev/da2s0e
|
||
|
drive d2 device /dev/da3s0e
|
||
|
drive d3 device /dev/da4s0e
|
||
|
drive d4 device /dev/da5s0e
|
||
|
volume raid setupstate
|
||
|
plex org striped 512k
|
||
|
sd length 512m drive d1
|
||
| ... | ... | |
|
.Pa configfile :
|
||
|
.Bd -literal -offset 2n
|
||
|
# vinum create -v configfile
|
||
|
1: drive d1 device /dev/da2e
|
||
|
2: drive d2 device /dev/da3e
|
||
|
1: drive d1 device /dev/da2s0e
|
||
|
2: drive d2 device /dev/da3s0e
|
||
|
3: volume mirror
|
||
|
4: plex org concat
|
||
|
5: sd length 2g drive d1
|
||
| ... | ... | |
|
Plexes: 2 (8 configured)
|
||
|
Subdisks: 2 (16 configured)
|
||
|
Drive d1: Device /dev/da2e
|
||
|
Drive d1: Device /dev/da2s0e
|
||
|
Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999
|
||
|
Config last updated Tue Mar 23 14:30:32 1999
|
||
|
Size: 60105216000 bytes (57320 MB)
|
||
| ... | ... | |
|
Available: 57957596672 bytes (55272 MB)
|
||
|
State: up
|
||
|
Last error: none
|
||
|
Drive d2: Device /dev/da3e
|
||
|
Drive d2: Device /dev/da3s0e
|
||
|
Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999
|
||
|
Config last updated Tue Mar 23 14:30:33 1999
|
||
|
Size: 60105216000 bytes (57320 MB)
|
||
| ... | ... | |
|
Plexes: 4 (8 configured)
|
||
|
Subdisks: 4 (16 configured)
|
||
|
D d1 State: up Device /dev/da2e Avail: 53224/57320 MB (92%)
|
||
|
D d2 State: up Device /dev/da3e Avail: 53224/57320 MB (92%)
|
||
|
D d1 State: up Device /dev/da2s0e Avail: 53224/57320 MB (92%)
|
||
|
D d2 State: up Device /dev/da3s0e Avail: 53224/57320 MB (92%)
|
||
|
V mirror State: up Plexes: 4 Size: 2048 MB
|
||
| ... | ... | |
|
already knows about. For example, to create a volume
|
||
|
.Pa raid
|
||
|
on the four drives
|
||
|
.Pa /dev/da1e , /dev/da2e , /dev/da3e
|
||
|
.Pa /dev/da1s0e , /dev/da2s0e , /dev/da3s0e
|
||
|
and
|
||
|
.Pa /dev/da4e ,
|
||
|
.Pa /dev/da4s0e ,
|
||
|
you only need to mention the other two:
|
||
|
.Bd -literal -offset indent
|
||
|
drive d3 device /dev/da1e
|
||
|
drive d4 device /dev/da4e
|
||
|
drive d3 device /dev/da1s0e
|
||
|
drive d4 device /dev/da4s0e
|
||
|
volume raid
|
||
|
plex org raid5 512k
|
||
|
sd size 2g drive d1
|
||
| ... | ... | |
|
Plexes: 5 (8 configured)
|
||
|
Subdisks: 8 (16 configured)
|
||
|
D d1 State: up Device /dev/da2e Avail: 51176/57320 MB (89%)
|
||
|
D d2 State: up Device /dev/da3e Avail: 53220/57320 MB (89%)
|
||
|
D d3 State: up Device /dev/da1e Avail: 53224/57320 MB (92%)
|
||
|
D d4 State: up Device /dev/da4e Avail: 53224/57320 MB (92%)
|
||
|
D d1 State: up Device /dev/da2s0e Avail: 51176/57320 MB (89%)
|
||
|
D d2 State: up Device /dev/da3s0e Avail: 53220/57320 MB (89%)
|
||
|
D d3 State: up Device /dev/da1s0e Avail: 53224/57320 MB (92%)
|
||
|
D d4 State: up Device /dev/da4s0e Avail: 53224/57320 MB (92%)
|
||
|
V mirror State: down Plexes: 4 Size: 2048 MB
|
||
|
V raid State: down Plexes: 1 Size: 6144 MB
|
||
| ... | ... | |
|
.Ux
|
||
|
disk partitions and must have the partition type
|
||
|
.Em vinum .
|
||
|
This is different from
|
||
|
.Xr ccd 4 ,
|
||
|
which expects partitions of type
|
||
|
.Em 4.2BSD .
|
||
|
This behaviour of
|
||
|
.Nm ccd
|
||
|
is an invitation to shoot yourself in the foot: with
|
||
|
.Nm ccd
|
||
|
you can easily overwrite a file system.
|
||
|
.Nm
|
||
|
will not permit this.
|
||
|
.Pp
|
||
|
For similar reasons, the
|
||
|
The
|
||
|
.Nm Ic start
|
||
|
command will not accept a drive on partition
|
||
|
.Dq Li c .
|
||
| ... | ... | |
|
.Nm Ic read
|
||
|
should be used for maintenance purposes only. Note that its syntax has changed,
|
||
|
and the arguments must be disk slices, such as
|
||
|
.Pa /dev/da0 ,
|
||
|
.Pa /dev/da0s0 ,
|
||
|
not partitions such as
|
||
|
.Pa /dev/da0e .
|
||
|
.Pa /dev/da0s0e .
|
||
|
.El
|
||
|
.Sh ENVIRONMENT
|
||
|
.Bl -tag -width VINUM_DATEFORMAT
|
||
- « Previous
- 1
- …
- 9
- 10
- 11
- Next »