xlv_make(1M) xlv_make(1M)
xlv_make - create logical volume objects
xlv_make [ -c cmdstring ] [ -f ] [ -h nodename ] [ -v ]
[ -A ] [ input_file ]
xlv_make creates new logical volume objects by writing logical volume
labels to the devices that are to constitute the volume objects. A
volume object can be an entire volume, a plex, or a volume element.
xlv_make allows you to create objects that are not full volumes so that
you can maintain a set of spares.
xlv_make supports the following command line options:
-c cmdstring
Command line option. Causes xlv_make to go into command line
mode and use cmdstring as the command input. Multiple instances
of -c are accumulated. The exit or quit command must be used to
terminate input.
-f Force xlv_make to create a volume element even if the partition
type for the partition specified does not correspond with its
intended usage. This is useful, for example, in converting
l
volumes. It is also used to allow
creation of objects involving currently mounted partitions.
-h nodename
Use nodename as the local nodename. This option implies the -A
option below.
-v Verbose option. Causes xlv_make to generate more detailed
output. Also, it causes xlv_assemble(1M) to generate output upon
exit from xlv_make.
-A Do not invoke xlv_assemble(1M) upon exit from xlv_make. The
default is to invoke xlv_assemble with the -q option unless the
-v option is specified, in which case xlv_assemble is invoked
with no options. To invoke other xlv_assemble options, specify
the -A option and invoke xlv_assemble manually.
xlv_make only allows you to create volume objects out of disk partitions
that are not currently part of other volume objects. Partitions must be
of a type suitable for use by xlv_make. Suitable types are xfs, efs,
xlv, and xfslog. Partition types other than these are rejected unless
the -f command line option or the ve -force interactive command is
specified. See fx(1M) for more information regarding partition types.
xlv_mgr(1M) must be used to modify or destroy volume objects.
Page 1
xlv_make(1M) xlv_make(1M)
xlv_make can be run either interactively or it can take its commands from
an input file, input_file. xlv_make is written using Tcl. Therefore,
all the Tcl features such as variables, control structures, and so on can
be used in xlv_make commands.
xlv_make creates volume objects by writing the disk labels. To make the
newly created logical volumes active, xlv_assemble(1M) must be run.
xlv_assemble is, by default, automatically invoked upon successful exit
from xlv_make; xlv_assemble scans all the disks attached to the system
and automatically assembles all the available logical volumes.
Objects are specified top-down and depth-first. You start by specifying
the top-level object and continue to specify the pieces that make it up.
When you have completed specifying an object at one level, you can back
up and specify another object at the same level.
The commands are:
vol volume_name
Specifies a volume. The volume_name is required. It can be up
to 14 alphanumeric characters in length.
data Specifies a data subvolume. This subvolume is required.
log Specifies a log subvolume. This is an optional subvolume used by
the XFS filesystem.
rt Specifies a real-time subvolume. Real-time subvolumes are used
for guaranteed-rate I/O and also for high performance
applications that isolate user data on a separate subvolume.
This is an optional subvolume.
plex [plex_name]
Specifies a plex. If this plex is specified outside of a volume,
plex_name must be given. The name can be up to 14 alphanumeric
characters. A plex that exists outside of a volume is known as a
standalone plex.
ve [volume_element_name] [-stripe] [-concat] [-force]
[-stripe_unit stripe_unit_size] [-start blkno] device_pathnames
Specifies a volume element. If this volume element is specified
outside of a plex, volume_element_name must be given. The name
can be up to 14 alphanumeric characters.
-stripe Specifies that the data within this volume element
is to be striped across all the disks named by
device_pathnames.
-concat Specifies that all the devices named by
device_pathnames are to be joined linearly into a
single logical range of blocks. This is the
default if no flags are specified.
Page 2
xlv_make(1M) xlv_make(1M)
-force Forces the specification of the volume element
when the partition type does not agree with the
volume element's intended usage. For example, a
partition with type xfslog could be assigned to a
data subvolume. Also, -force allows the
specification of an object that includes a
partition that is currently mounted.
-stripe_unit stripe_unit_size
specifies the number of blocks to write to one
disk before writing to the next disk in a stripe
set. stripe_unit_size is expressed in 512-byte
blocks. -stripe_unit is only meaningful when used
in conjunction with -stripe. The default stripe
unit size, if this flag is not set, is one track.
Note: lv called this parameter the granularity.
-start blkno Specifies that this volume element should start at
the given block number within the plex.
end Terminates the specification of the current object.
create Create all new objects just specified during this session by
writing the disk labels out to all the disks affected. This
command is similar to the exit command except the session is not
terminated.
clear Removes the current, uncompleted object.
show Prints out all the volume objects on the system. This includes
existing volume objects (created during an earlier xlv_make
session) and new objects specified during this session that have
not been created (written out to the disk labels) yet.
exit Create the objects specified during this session by writing the
disk labels out to all the disks affected, and exit xlv_make. In
interactive mode, the user is prompted to confirm this action if
any new objects have been created.
quit Leave xlv_make without creating the specified objects (without
writing the disk labels). All the work done during this
invocation of xlv_make is lost. In interactive mode, the user is
prompted to confirm this action if any objects have been
specified.
help Displays a summary of xlv_make commands.
? Same as help.
sh Fork a shell.
Page 3
xlv_make(1M) xlv_make(1M)
Example 1
To make a volume from a description in an input file called
volume_config.txt, give this command:
# xlv_make volume_config.txt
Example 2 [Toc] [Back]
This example shows making some volume objects interactively.
# xlv_make
Make a spare plex so we can plug it into another volume on demand.
xlv_make> plex spare_plex1
spare_plex1
xlv_make> ve /dev/dsk/dks0d2s1 /dev/dsk/dks0d2s2
spare_plex1.0
xlv_make> end
Object specification completed
Now make a small volume. (Note that xlv_make automatically adds a
/dev/dsk to the disk partition name if it is missing from the ve
command.)
xlv_make> vol small
small
xlv_make> log
small.log
xlv_make> plex
small.log.0
xlv_make> ve dks0d2s3
small.log.0.0
xlv_make> data
small.data
xlv_make> plex
small.data.0
xlv_make> ve dks0d2s14 dks0d2s12
small.data.0.0
xlv_make> end
Object specification completed
xlv_make> show
vol small
ve small.log.0.0 d710aa7d-b21d-1001-868d-080069077725
start=0, end=1523, (cat)grp_size=1
/dev/dsk/dks0d2s3 (1524 blks) d710aa7e-b21d-1001-868d-080069077725
ve small.data.0.0 d710aa81-b21d-1001-868d-080069077725
start=0, end=4571, (cat)grp_size=2
/dev/dsk/dks0d2s14 (1524 blks) d710aa82-b21d-1001-868d-080069077725
/dev/dsk/dks0d2s12 (3048 blks) d710aa83-b21d-1001-868d-080069077725
Page 4
xlv_make(1M) xlv_make(1M)
plex spare_plex1
ve spare_plex1.0 d710aa77-b21d-1001-868d-080069077725
start=0, end=3047, (cat)grp_size=2
/dev/dsk/dks0d2s1 (1524 blks) d710aa78-b21d-1001-868d-080069077725
/dev/dsk/dks0d2s2 (1524 blks) d710aa79-b21d-1001-868d-080069077725
xlv_make> help
vol volume_name - Create a volume.
data | log | rt - Create subvolume of this type.
plex [plex_name] - Create a plex.
ve [-start] [-stripe] [-stripe_unit N] [-force] [volume_element_name]
partition(s)
end - Finished composing current object.
clear- Delete partially created object.
show - Show all objects.
exit - Write labels and terminate session.
quit - Terminate session without writing labels.
help or ? - Display this help message.
sh - Fork a shell.
xlv_make> exit
#
Note that the strings like d710aa82-b21d-1001-868d-080069077725 shown
above are the universally unique identifiers (UUIDs) that identify each
XLV object.
Example 3 [Toc] [Back]
This example shows a description file that makes the same volume objects
as in Example 2.
# A spare plex
plex spare_plex1
ve dks0d2s1 dks0d2s2
# A small volume
vol small
log
plex
ve dks0d2s3
data
plex
ve dks0d2s14 dks0d2s12
end
# Write labels before terminating session.
exit
Example 4 [Toc] [Back]
This example shows making a complex volume interactively. It makes a
volume for an XFS filesystem that has a single-partition log and a plexed
(mirrored) data subvolume that is striped.
Page 5
xlv_make(1M) xlv_make(1M)
# xlv_make
xlv_make> vol movies
movies
xlv_make> log
movies.log
xlv_make> plex
movies.log.0
xlv_make> ve /dev/dsk/dks0d2s1
movies.log.0.0
Let the data subvolume have two plexes, each of which consists of two
sets of striped disks. The data written to the data subvolume is copied
to both movies.data.0 and movies.data.1.
xlv_make> data
movies.data
xlv_make> plex
movies.data.0
xlv_make> ve -stripe dks0d1s6 dks0d2s6 dks0d3s6
movies.data.0.0
xlv_make> ve -stripe dks0d4s6 dks0d5s6
movies.data.0.1
xlv_make> plex
movies.data.1
xlv_make> ve -stripe dks1d1s6 dks1d2s6 dks1d3s6
movies.data.1.0
xlv_make> ve -stripe dks1d4s6 dks1d5s6
movies.data.1.1
Add a small real-time subvolume. Stripe the data across two disks, with
the stripe unit set to 1024 512-byte sectors.
xlv_make> rt
movies.rt
xlv_make> plex
movies.rt.0
xlv_make> ve -stripe -stripe_unit 1024 dks4d1s6 dks4d2s6
movies.rt.0.0
xlv_make> end
Object specification completed
xlv_make> exit
#
Previous object not completed
You have tried to specify a new object before the previous
object has been completely specified. For example, the
sequence plex plex is not valid because the volume
elements for the first plex have not been specified yet.
Page 6
xlv_make(1M) xlv_make(1M)
A volume has not been specified yet
This error results from giving rt, data, or log without
first specifying a volume to which these subvolumes
belong.
An object with that name has already been specified
This error results from giving the vol volume_name, plex
plex_name, or ve volume_element_name command when an
object with the same name already exists or has been
specified in this session.
A log subvolume has already been specified for this volume
A data subvolume has already been specified for this volume
A real-time subvolume has already been specified for this volume
These errors results from giving the log, data, or rt
command for a volume that already has a subvolume of the
given type.
A subvolume has not been specified yet
You have given a volume command and then given the plex
command without first specifying a subvolume to which the
plex belongs.
Too many plexes have been specified for this subvolume
You have already specified the maximum allowable number of
plexes for this subvolume.
A plex has not been specified yet
You have given a ve command without first giving the plex
command.
Too many volume elements have been specified for this plex
You have reached the maximum number of volume elements
that can be in a single plex.
An error occurred in creating the specified objects
An error occurred while writing the volume configuration
out to the disk labels.
Unrecognized flag: flag
flag is not recognized.
Unexpected symbol: symbol
symbol is an unknown command.
A volume name must be specified
You have given a vol command without giving the name of
the volume as an argument.
Page 7
xlv_make(1M) xlv_make(1M)
Too many disk partitions
You have specified too many devices for the volume
element.
Cannot determine size of partition; please verify that the device exists
xlv_make is unable to figure out the size of the specified
disk partition. Make sure that the device exists.
Unequal partition sizes, truncating the larger partition
The partitions specified for a striped volume element are
not of the same size. This leaves some disk space
unusable in the larger partition because data is striped
across all the partitions in a volume element.
A disk partition must be specified
You have given the ve command without specifying the disk
partitions that belong to the volume element as arguments
to the command.
Unknown device: %s
You have specified a disk partition that either has no
device node in /dev/dsk or is missing altogether.
Illegal value The value is out of range for the given flag.
The volume element's address range must be increasing
When you specify the starting offset of a volume element
within a plex by using the ve -start command, you must
specify them in increasing order.
Disk partition partition is already being used
The disk partition named in the ve command is already in
use by some other volume object.
Disk partition partition is mounted; use ``-force'' to override
The disk partition named in the ve command is currently
mounted. Use of the -force argument is required to
perform the operation.
Address range doesn't match corresponding volume element in other plexes
A volume element within a plex must have the same address
range in all plexes for the subvolume that includes those
plexes.
There are partially specified objects, use ``quit'' to exit without
creating them You have entered the quit command while
there are specified, but not created objects. You should
enter quit again to really quit at this point and discard
specified objects.
Page 8
xlv_make(1M) xlv_make(1M)
Missing flag value for: %s
A command was given that requires an additional argument
that was not given.
Malloc failed There is insufficient memory available for xlv_make to
operate successfully.
An error occurred in updating the volume header
An attempt to modify a disk's volume header was
unsuccessful.
A striped volume element must have at least two partitions
The ve -stripe command was given and only one partition
was specified.
Log ve should have partition type xfslog
Data ve should have partition type xlv
Rt ve should have partition type xlv
Standalone object should have partition type xlv or xfslog
Mixing partition type xfslog with data types not allowed
All the partitions that make up a volume element must have
the same partition type, either xlv or xfslog.
Partition type must be consistent with other ve's in plex
Partition type does not correspond with intended usage.
Partition could already belong to lv.
Check /etc/lvtab A warning that this partition may already
belong to an lv volume.
Illegal partition type
An attempt was made to specify a partition that cannot,
under any circumstance, be used in an xlv(7M) volume. An
example of such a partition would be the volume header.
Subvolume type does not match any known
The subvolume being operated on is of no known type.
Size mismatch The partition size information in the volume header does
not match that contained in the xlv label.
Device number mismatch
A warning that the device number in the xlv label does not
match that of the volume header.
The same partition cannot be listed twice
The ve command was given with the same partition listed
twice.
Page 9
xlv_make(1M) xlv_make(1M)
xlv_assemble(1M), xlv_labd(1M), xlv_mgr(1M), xlv_plexd(1M),
xlv_shutdown(1M), xlvd(1M), xlv(7M).
Tcl and the Tk Toolkit by John K. Ousterhout, Addison-Wesley, 1994.
The disk labels created by xlv_make are stored only in the volume header
of the disks. They do not destroy user data. Therefore, you can make an
lv(7M) volume into an XLV volume and still preserve all the data on the
logical volume.
xlv_make changes the partition type of partitions used in newly created
objects to either xlv or xfslog depending upon their usage.
You must pick a different name for each volume, standalone plex, and
standalone volume element. You cannot have, for example, both a volume
and a plex named yy.
You must be root to run xlv_make.
PPPPaaaaggggeeee 11110000 [ Back ]
|