volmake - Create Logical Storage Manager objects
/sbin/volmake [-Vp] [-g diskgroup] [-o useopt] [-U usetype]
[-d descfile]
/sbin/volmake [-Vp] [-g diskgroup] [-o useopt] sd name
[attr=value...]
/sbin/volmake [-Vp] [-g diskgroup] [-o useopt] plex name
[attr=value...]
/sbin/volmake [-Vp] [-g diskgroup] [-o useopt] [-U usetype]
vol name [attr=value...]
Specifies the disk group for the operation. The disk group
can be specified either by name or by disk group ID. If no
disk group is specified, the rootdg disk group is implied.
See voldg(8) for more information on disk groups. Specifies
usetype as the default usage type for volumes. This
option has no effect if only subdisks and plexes are created,
or if the usage type for a volume is specified
directly with the description file variable usetype.
Gives usage-type-specific options to the usage type utility.
Specifies the name of a description file to use for
building subdisks, plexes, and volumes. If the -d option
is used with no descfile argument, then the description
file is read from the standard input. If no operands are
specified, and no descfile is specified, then a description
file is read from the standard input. This option is
ignored for records that are specified directly on the
command line. Performs a "mock run" of the command and
displays a list of utilities that would be called from
volmake, along with the arguments that would be passed.
The utilities are not actually called, and no changes are
made to the volume configuration database. Prints to the
standard output a list of all changes that would be made,
but does not make those changes. The output is in the
volmake description file format. All computable and potentially
useful attributes are printed for new records. For
records that would be modified, only those attributes that
would change are printed, along with an extra attribute
declaration, CHANGED=yes. In this way, the -p option performs
a "mock run" of the utilities.
This option is intended for use with higher-level
tools that preview record creations, particularly
with respect to usage-type-dependent attribute modifications.
The volmake utility creates subdisk, plex, and volume
records for the Logical Storage Manager. Records can be
created entirely from parameters specified on the command
line, or they can be created using a description file.
If no operands are specified, then a description file is
used to specify what records to create. By default, this
description file is read from the standard input. If
operands are specified, then the first operand is a keyword
that determines the object to build, the second
operand is the name of the object to be created, and additional
operands specify attributes for the object. An
attribute given on the command line is specified in the
same manner used with the description file (with multiple
attributes given, one attribute per operand), except that
the double-quote convention is not needed. See the EXAMPLES
section for sample uses.
For convenience, a special attribute form can be used for
subdisks specified directly from the command line. This
special attribute form is:
/devicepath,offset[,len]
or
medianame,offset[,len]
The first form specifies a subdisk location by a device
path, an offset within that device, and a length. The second
form specifies the subdisk location by a disk media
record name, an offset within the disk's public region,
and a length. Optionally, the length can be specified with
a len=length attribute. If a device path is specified,
then it must match the device path for the public region
of a known disk in the indicated disk group.
More than one record, including more than one volume or
plex hierarchy, can be specified in a single description
file. volmake attempts to create all records within a
single transaction, so that either all records are created
or no records are created.
See the volmake(4) reference page for a specification of
volmake descriptions.
Descriptions of records within a volume hierarchy are filtered
through a usage-type-specific utility, as appropriate
for the usage type, before the records are actually
created. Subdisks and plexes that are not specified within
a volume hierarchy are filtered by the gen usage type.
The usage-type utilities may change the descriptions so
that certain fields are ignored or set up with initial
values. Plex or subdisk records to be associated with a
volume or plex may also be changed if the association is
indicated in the description, even if the plex or subdisk
record is not explicitly specified.
A usage type must be specified for every volume record,
either through setting the usetype field in the volume
record description, or through the -U option to volmake.
ATTRIBUTE SPECIFICATION RULES [Toc] [Back] The only attributes that you must specify are the path and
len attributes for subdisk records, and a usage type for
volume records. In addition, if you set the layout
attribute for a plex record to STRIPE, then you must specify
a positive value for the stwidth attribute. Also, if
you do not specify the subdisks to create a plex of the
STRIPE layout, then you must specify the ncolumn
attribute.
Attempts to specify certain attributes are ignored by volmake.
Some attributes are ignored by the switchout (usagetype
independent) volmake itself. The usage-type dependent
volmake may cause additional attributes to be ignored.
The sections that follow provide information on the
attributes that you can specify when creating subdisk,
plex, and volume objects.
Subdisks [Toc] [Back]
You can specify the following fields for subdisks: dmrid,
daname, dmname (or disk), path, devoffset, dmoffset, len,
putil0, putil1, putil2, tutil0, tutil1, tutil2, and comment.
Specification of a disk in some form (including possibly
the special forms devicepath,offset,length or medianame,offset,length)
is required. Specification of the
len field is also required. All other fields default to
zero (for numbers) or empty strings (for strings).
The disk specification for subdisks uses one of following
fields, in order of precedence: dmrid, dmname, daname, or
path. The dmrid field is used, if nonzero. One of the
other fields is used if defined to a nonempty string. If
the path field is the only field used, then it must define
the block device path for a partition containing the public
region of a disk in the requested disk group.
With path, the devoffset field is used as an offset into
the partition; otherwise dmoffset is used as an offset
into the public region. This distinction is important if
the public region does not begin at the beginning of its
partition.
Plexes [Toc] [Back]
You can specify the following fields for plexes: layout,
ncolumn, stwidth, sd, logsd, fpasd, putil0, putil1,
putil2, tutil0, tutil1, tutil2, and comment.
There are no required fields for plex records. All fields
default to zero (for numbers) or empty strings (for
strings). The layout field defaults to concat.
If the layout field is set to stripe or raid5, then you
must specify the stwidth attribute. If the layout field is
set to concat, you cannot specify the ncolumn attribute.
An sd specification names the subdisks to associate with
the plex. The specification optionally names the offsets
of the subdisks within the plex. If no offsets are specified,
then the subdisks are directly concatenated in the
order indicated. If the sd attribute is specified for a
striped plex but ncolumn is not specified, ncolumn will
default to the column of the subdisk with the highest column
specification. As a special case, if ncolumn is not
specified and the sd does not specify columns or offsets
for the subdisks, then each subdisk will be placed in its
own column at an offset of zero in the order they are
specified and the plex's ncolumn attribute is set to the
number of subdisks specified.
No sd specification is required; however, if no subdisks
are given, a plex of length zero is created, regardless of
a length attribute specified on the command line. The
length of the plex is not actually set until subdisks are
associated to the plex, at which point the plex length is
set equal to the last block of the last associated
subdisk. You can create a plex before or after creating
the subdisks to associate to it. However, if you create
the plex first with no subdisks, you must use volsd assoc
to associate subdisks to the plex.
The logsd specification names a subdisk to associate as a
special log subdisk for recording volume activity as part
of the dirty region logging feature.
The fpasd specification names a subdisk to associate as an
FPA logging subdisk for recording volume activity as part
of the Fast Plex Attach feature.
Volumes [Toc] [Back]
You can specify the following fields for volumes: usetype,
len, logtype, plex, startopts, readpol, prefname, minor,
user, group, mode, writeback, writecopy, putil0, putil1,
putil2, tutil0, tutil1, tutil2, and comment.
Specification of a usage type is required, either using
the -U option on the command line, or using the usetype
attribute in a description file. Specification of a usetype
attribute overrides a value specified with -U. All
other fields have default values: readpol defaults to
round; user and group both default to 0 (root); mode
defaults to u=rw (mode 600); writeback and writecopy
default to on; len defaults to the length of the shortest
associated plex (or zero, if no plex associations are
requested); all other numeric fields default to zero, and
all other string fields default to empty strings.
A plex specification names the plexes to associate with
the volume. The order of plexes in this list is not important.
When creating a secondary volume from a migrant plex with
FPA support, you cannot specify additional plexes at the
time of creation. However, you can add additional plexes
after you create and start the volume.
The value of the prefname field is relevant only if the
readpol attribute is set to prefer.
FSGEN AND GEN DESCRIPTION [Toc] [Back] The fsgen and gen usage-type-specific utilities that support
volmake are used by the switchout volmake utility as
filters that set defaults for plex and volume states.
Subdisk fields are set, checked, or modified as follows:
Subdisk lengths are required to be set to a positive,
nonzero value. This field is cleared.
Plex fields are set, checked, or modified as follows: This
field is cleared. If the plex is to be associated with a
volume, the state field is set to EMPTY; otherwise it is
cleared.
Volume fields are set, checked, or modified as follows:
This field is cleared. This field is set to EMPTY.
Attempts to associate an existing subdisk or plex with a
new plex or volume will be refused, unless the putil0
field for the existing record is empty.
The putil0 fields are not set, and their contents are preserved.
The raid5 usage-type-specific utilities that support volmake
are used by the switchout volmake utility as filters
that set defaults for plex and volume states.
Subdisk fields are set, checked or modified as follows:
Subdisk lengths are required to be set to a positive,
nonzero value. This field is cleared.
Plex fields are set, checked, or modified as follows: This
field is cleared. If the plex is to be associated with a
volume, the state field is set to EMPTY; otherwise it is
cleared.
Volume fields are set, checked, or modified as follows:
This field is cleared. This field is set to EMPTY.
Attempts to associate an existing subdisk or plex with a
new plex or volume will be refused, unless the putil0
field for the existing record is empty.
The putil0 fields are not set, and their contents are preserved.
The raid5 specific volmake utility will only allow one
plex with a layout of raid5 to be associated with a volume.
Plexes not of the raid5 layout are associated as RAID
5 log plexes.
The following is an example of a volmake description file:
#rectyp #name #options sd disk3-01
disk=disk3 offset=0 len=10000 sd disk3-02
disk=disk3 offset=25000 len=10480 sd disk4-01
disk=disk4 offset=0 len=8000 sd disk4-02
disk=disk4 offset=15000 len=8000 sd disk4-03
disk=disk4 offset=30000 len=4480 plex db-01
layout=STRIPE ncolumn=2 stwidth=16k
sd=disk3-01:0/0,disk3-02:0/10000,disk4-01:1/0,\
disk4-02:1/8000,disk4-03:1/16000
sd ramd1-01 disk=ramd1 len=640
comment="Hot spot for dbvol plex
db-02 sd=ramd1-01:40320
vol db usetype=gen plex=db-01,db-02
readpol=prefer prefname=db-02
comment="Uses mem1 for hot spot
in last 5m"
This description specifies a gen type volume that contains
two plexes: a volatile memory disk plex (db-02), which is
preferred, and a physical disk plex (db-01). The memory
disk plex is sparse and covers only the last 640 sectors
of the 40960-sector length of the volume. The physical
disk plex is striped across two 20480-sector columns. Column
zero contains two subdisks and column one contains
three subdisks. The plex offset specified for each subdisk
concatenates the subdisks contiguously in their
respective columns.
For striped or RAID 5 plex subdisk associations, if one
number is specified for the column and column offset
field, the number is interpreted as a column number and
the subdisk is associated at the end of the column in the
order it appears in the subdisk list. The same subdisk
association list for plex db-01 could be rewritten as follows:
sd=disk3-01:0,disk3-02:0,disk4-01:1,disk4-02:1,disk4-03:1
The following is a simple sequence of commands to create a
hierarchy with one subdisk, one plex, and one volume:
volmake sd dsk1-01 /dev/disk/dsk1,0,32000 comment="dsk1
subdisk 1" volmake plex demo-1 sd=dsk1-01 comment="Demo
volume, plex 1" volmake -U gen vol demo plex=demo-1 comment="Demo
gen volume"
The volmake utility exits with a nonzero status if the
attempted operation fails. A nonzero exit code is not a
complete indicator of the problems encountered, but rather
denotes the first condition that prevented further execution
of the utility.
See volintro(8) for a list of standard exit codes.
Usage-type-specific utility for filtering volume hierarchy
descriptions.
Commands: volassist(8), voldisk(8), voldg(8), volplex(8),
volsd(8)
Files: volmake(4)
Other: volintro(8)
volmake(8)
[ Back ] |