volmake(1M) Volume Manager Utilities volmake(1M)
NAME
volmake - Creates Volume Manager configuration records
SYNOPSIS
volmake [ -U usetype ] [ -o useopt ] [ -Vp ] [ -d desc ]
volmake [ -o useopt ] [ -Vp ] sd name [ var=value ] ...
volmake [ -o useopt ] [ -Vp ] plex name [ var=value ] ...
volmake [ -U usetype ] [ -o useopt ] [ -Vp ] vol name [ var=value ] ...
DESCRIPTION
The volmake utility creates subdisk, plex, and volume
records for the Volume 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 to be built. 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 from the command line. This special
attribute form is
/path,offset,[len]
which specifies a subdisk path for path, an offset for
offset, and a length for len. The path value must begin
with a slash. The len value is optional, and must be
specified with a len=length attribute if not given with the
special attribute form.
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 the records within a single
transaction, so that either all records are created or no
records are created.
See the man page volmake(4) 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
Page 1 (printed 1/21/92)
volmake(1M) Volume Manager Utilities volmake(1M)
actually created. Subdisks and plexes that are not
specified within a volume hierarchy are filtered by the gen
usage-type. These 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 letter to
volmake.
OPTIONS
The following options are recognized:
-U usetype
Use 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 usetype description file
variable.
-o useopt
Give usage-type-specific options to the usage-type
utility.
-d desc
Specify the name of a description file to use for
building subdisks, plexes, and volumes. If the desc
option argument is -d, then the description file is
read from the standard input. If no operands are
specified, and no desc 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.
-V Write a list of utilities that would be called from
volmake, along with the arguments that would be passed.
-V option performs a ``mock run'' of the utilities; the
utilities are not actually called, and no changes are
made to the volume configuration database.
-p Print a list of all changes that would be made to the
standard output, but do 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
Page 2 (printed 1/21/92)
volmake(1M) Volume Manager Utilities volmake(1M)
``mock run'' of the utilities.
This attribute is intended for use with higher-level tools
that preview record creations, particularly with respect to
usage-type-dependent attribute modifications.
FIELD SPECIFICATION RULES
The only fields that must be specified are the path and len
fields for subdisk records, and a usage-type for volume
records. In addition, if the layout field for a plex record
is set to STRIPE then a positive value must be specified for
the stwidth field.
Attempts to specify certain fields are ignored by volmake.
Some fields are ignored by the switchout volmake itself.
The usage type volmake may cause additional fields to be
ignored.
The subdisk fields that are ignored by the switchout volmake
are lock, dev, configid, configepoch, plname, ploffset,
open, and islog. For plex records, the ignored fields are
lock, compact, kstate, lasterr, len, minor configid,
configepoch, vname, sdnum, and open. For volume records,
the ignored fields are reclock, datalock, kstate, lasterr,
configid, configepoch, plnum, minor, open, and logging.
All fields that are not required have defaults. For most
fields, the default is either 0 for number fields, off for
boolean fields, or empty for string fields. Each
enumeration field has a specific default. The default for
both the volume and plex kstate field is DISABLED. The
default for all volume exception fields is NOOP. The
default value for the writeback and writecopy flags is on.
The default plex I/O mode is RW. Finally, the default plex
layout value is CONCAT.
EXAMPLES
The following is an example of a volmake description file:
#rectyp #name #options
sd 3s1-01 path=/dev/dsk/3s1 len=20480
sd 4s1-01 path=/dev/dsk/4s1 len=20480
plex db-dsk layout=STRIPE stwidth=16k sd=3s1-01,4s1-01
sd mem1-01 path=/dev/dsk/mem1 len=640 volatile=on
comment="Hot spot for dbvol
plex db-mem sd=mem1-01:40320
vol db usetype=gen plex=db-dsk,db-mem
readpol=PREFER prefname=memdbplx
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, which is preferred,
Page 3 (printed 1/21/92)
volmake(1M) Volume Manager Utilities volmake(1M)
and a physical disk plex. 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 subdisks.
This is a simple sequence of commands to create a hierarchy
with one subdisk, one plex, and one volume:
volmake sd 5s1-01 /dev/dsk/5s1,32000 comment="5s1 subdisk 1"
volmake plex demo-1 sd=5s1-01 comment="Demo volume, plex 1"
volmake -U gen vol demo plex=demo-1 comment="Demo gen volume"
USAGE-TYPE INTERFACE
The usage-type-specific volmake utilities are description
filters. They are given volmake descriptions on standard
input and are expected to reproduce these descriptions on
their standard output.
For records that are specified as input to the switchout
volmake utility, all specified fields are given to the
usage-type utility except those that are ignored by the
switchout utility itself. All fields in existing records
that are specified through association are sent to the
usage-type utility. These existing fields are flagged with
two special pseudo fields, EXISTS and IMPLICIT.
The usage-type utility should write back all records that it
was given. The usage-type is free to change or add any
fields, although fields which are normally user-specified
should, as a matter of convention, remain untouched.
For a record that is flagged with EXISTS, the EXISTS and
IMPLICIT flags should be sent through to the standard
output, and the configid and configepoch fields should be
passed through without modification. If the usage type does
not need to change any fields in such a record, then no
other fields need to be returned. If the usage-type does
change any fields, then only the changed fields should be
written to the standard output, and a field named CHANGED
should also be written, to indicate that changes were made
to the record.
The EXISTS, IMPLICIT, and CHANGED fields must fit the form
of a field description, with an equal sign and a value.
However, the value is ignored and can be empty.
SYNOPSIS FOR FSGEN AND GEN USAGE-TYPES
volmake [ -U usetype ] [ -o useopt ]
FSGEN AND GEN DESCRIPTION
The fsgen and gen usage-type-specific utilities to support
volmake are used by the switchout volmake utility as filters
Page 4 (printed 1/21/92)
volmake(1M) Volume Manager Utilities volmake(1M)
that set defaults for plex and volume states.
Subdisk fields are set, checked, or modified as follows:
len Subdisk lengths are required to be set to a
nonzero value.
tutil0 The sdtutil[0] field is cleared.
Plex fields are set, checked, or modified as follows:
tutil0 The pltutil[0] field is cleared.
layout and stwidth
If the plex layout is set to STRIPE, then volmake
will fail if the stripe width field (stwidth) is
not set to a nonzero value.
kstate The plkstate field is set to DISABLED.
state If the plex is to be associated with a volume, the
pl_state field is set to EMPTY. Otherwise it is
cleared. Also, when a plex is named implicitly
using the plex attribute for a volume description,
then any existing state field is set to EMPTY.
Volume fields are set, checked, or modified as follows:
tutil0 The vtutil[0] field is cleared.
kstate The vkstate field is set to DISABLED.
state The vstate utility state field is cleared. This
field is not meaningful for the gen and fsgen
usage types.
len If a length is not specified for a volume, then
the length is determined from the smallest
associated plex. If no plexes are specified as to
be associated then the volume length is set to
zero.
logtype If a log type is not specified, then a default of
BLKNO is used. If the log type is BLKNO, then the
size of any associated log subdisks must be 1
sector.
loglen If the log type for a volume is BLKNO, then its
loglen defaults to 1 sector, and cannot be set to
any other value. Otherwise, the loglen defaults
to 0 sectors, but can be set to any value that is
a sector multiple.
Page 5 (printed 1/21/92)
volmake(1M) Volume Manager Utilities volmake(1M)
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.
FSGEN AND GEN OPTIONS
The following options are recognized:
-U usetype
For fsgen:
A usage-type name passed in from the switchout volmake
utility. If this option is specified, the value for
usetype must be fsgen.
For gen:
The gen usage type volmake utility can be used by
another usage-type that has similar characteristics as
long as the name of the other usage type is specified
with this option.
-o useopt
Give usage-type-specific options to the usage-type
utility. This option is currently unused by volmake
and is ignored.
FILES
/usr/lib/VxVM/type/usetype/volmake
Usage-type-specific utility for filtering volume
hierarchy descriptions.
EXIT CODES
The 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(1M) for a list of standard exit codes.
SEE ALSO
volintro(1M) and volmake(4).
Page 6 (printed 1/21/92)