volmake(8)volmake(8)NAMEvolmake - Create Logical Storage Manager objects
SYNOPSIS
/sbin/volmake [-Vp] [-g diskgroup] [-o useopt] [-U usetype] [-d desc‐
file]
/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...]
OPTIONS
Specifies the disk group for the operation. The disk group can be spec‐
ified either by name or by disk group ID. If no disk group is speci‐
fied, the rootdg disk group is implied. See voldg(8) for more informa‐
tion on disk groups. Specifies usetype as the default usage type for
volumes. This option has no effect if only subdisks and plexes are cre‐
ated, 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 argu‐
ments 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.
DESCRIPTION
The volmake utility creates subdisk, plex, and volume records for the
Logical Storage Manager. Records can be created entirely from parame‐
ters 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 spec‐
ify what records to create. By default, this description file is read
from the standard input. If operands are specified, then the first op‐
erand is a keyword that determines the object to build, the second op‐
erand 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 sec‐
tion 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 pub‐
lic 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 sub‐
disk 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
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 lay‐
out, then you must specify the ncolumn attribute.
Attempts to specify certain attributes are ignored by volmake. Some
attributes are ignored by the switchout (usage-type independent) vol‐
make 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
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
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 con‐
catenated 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 spec‐
ified.
No sd specification is required; however, if no subdisks are given, a
plex of length zero is created, regardless of a length attribute speci‐
fied 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 asso‐
ciate 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 log‐
ging 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
You can specify the following fields for volumes: usetype, len, log‐
type, 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 associa‐
tions 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
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.
RAID 5 DESCRIPTION
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 lay‐
out of raid5 to be associated with a volume. Plexes not of the raid5
layout are associated as RAID 5 log plexes.
EXAMPLES
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 con‐
tains two subdisks and column one contains three subdisks. The plex
offset specified for each subdisk concatenates the subdisks contigu‐
ously in their respective columns.
For striped or RAID 5 plex subdisk associations, if one number is spec‐
ified 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 col‐
umn in the order it appears in the subdisk list. The same subdisk asso‐
ciation 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" vol‐
make plex demo-1 sd=dsk1-01 comment="Demo volume, plex 1" volmake-U
gen vol demo plex=demo-1 comment="Demo gen volume"
EXIT CODES
The volmake utility exits with a nonzero status if the attempted opera‐
tion fails. A nonzero exit code is not a complete indicator of the
problems encountered, but rather denotes the first condition that pre‐
vented further execution of the utility.
See volintro(8) for a list of standard exit codes.
FILES
Usage-type-specific utility for filtering volume hierarchy descrip‐
tions.
SEE ALSO
Commands: volassist(8), voldisk(8), voldg(8), volplex(8), volsd(8)
Files: volmake(4)
Other: volintro(8)volmake(8)