volsd(8)volsd(8)NAMEvolsd - Perform Logical Storage Manager operations on subdisks
SYNOPSIS
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-l offset] assoc plex subdisk...
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-l[column/] offset] assoc plex subdisk[:[column/] offset]...
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
asfpa plex subdisk
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
aslog plex subdisk
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-p plex] dis subdisk...
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-p plex] [-s size] split subdisk newsd [newsd2]
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-p plex] join sd1 sd2... newsd
/sbin/volsd [-Vf] [-g diskgroup] [-U usetype] [-o useopt] [-v volume]
[-p plex] mv oldsd newsd [newsd...]
OPTIONS
Specifies the disk group for the operation, either by disk group ID or
by disk group name. By default, the disk group is chosen based on the
name operands. Limits the operation to apply to this usage type.
Attempts to affect volumes with a different usage type will fail.
Passes in usage-type-specific options to the operation. The following
operations are implemented by all usage types: Reduces the system per‐
formance impact of copy operations. Copy operations are usually per‐
formed sequentially on small regions of the volume (normally from 16
kilobytes to 256 kilobytes). This option inserts a delay between the
recovery of each such region. You can specify a delay in milliseconds
or use the default (typically 250 milliseconds). Changes the copy
region size to the length specified by size, which is a standard Logi‐
cal Storage Manager length number (see volintro(8)). Specifying a
larger number typically causes the operation to complete sooner, but
with greater impact on other processes using the volume. The default
I/O size is 256 kilobytes. Removes the subdisks after successful com‐
pletion of a volsd dis operation. Removes the source subdisk after suc‐
cessful completion of volsd mv. Writes a list of utilities that would
be called from volsd, along with the arguments that would be passed.
The -V performs a “mock run” so the utilities are not actually called.
Used with the volsd split operation. Specifies the size for the first
new subdisk that will result from splitting a subdisk. The other sub‐
disk's size will be the remainder of the original. This option takes a
standard Logical Storage Manager length number (see volintro(8)).
Specifies the offset of a subdisk within a plex address space for the
volsd assoc operation. For striped plexes, a column number may be
optionally specified. If one number is given for striped plexes, the
number is interpreted as a column number and the subdisk is associated
at the end of the column. The offset is a standard Logical Storage Man‐
ager length number (see volintro(8)). Requires that a named plex be
associated with this volume, or that a named subdisk (source subdisk
for volsd split, join, and mv operations) be associated with a plex
that is associated with this volume. Requires that a named subdisk
(source subdisk for volsd split, join, and mv operations) be associated
with this plex. Forces an operation that the Logical Storage Manager
considers potentially dangerous or of questionable use. This permits a
limited set of operations that would otherwise be disallowed. Some
operations may be disallowed even with this flag.
DESCRIPTION
The volsd utility performs Logical Storage Manager operations on sub‐
disks and on plex-and-subdisk combinations. The first operand is a key‐
word that determines the specific operation to perform. The remaining
operands specify the configuration objects to which the operation is to
be applied.
Each operation can be applied to only one disk group at a time, due to
internal implementation constraints. Any plex or subdisk name operands
will be used to determine a default disk group, according to the stan‐
dard disk group selection rules described in volintro(8). You can spec‐
ify a disk group with -g diskgroup.
If a volsd operation is interrupted by a signal, an attempt is made to
restore the disk group configuration to a state that is roughly equiva‐
lent to its original state. If this attempt is interrupted, such as
through another signal, you may need to perform some cleanup. The spe‐
cific cleanup actions needed are written to the standard error before
volsd exits.
KEYWORDS
Associates each named subdisk operand with the specified plex. The
first form applies to concatenated plexes (plexes with a layout of con‐
cat). Specify the offset within the plex for the association with -l,
which takes a standard Logical Storage Manager length number (see
volintro(8)). If no offset is specified, the default is to associate
the subdisk at the end of the plex, thus extending the length of the
plex by the length of the new subdisk.
For striped plexes, a column number for the subdisk association
may be specified. The offset is interpreted as the column offset
for the subdisk. If only one number is specified with -l for
striped plexes, the number is interpreted as a column number and
the subdisk is associated at the end of the column.
You can specify the column or column/offset at which a subdisk
to associate the subdisk as part of its name, in the same way
you can specify subdisk associations when creating a plex with
volmake (see volmake(4)). When specifying multiple subdisks, if
no column or column/offset is specified for a subdisk, it is
associated after the previous subdisk.
A subdisk cannot be associated to overlap with an another asso‐
ciated subdisk in the same plex.
If the named plex is associated with a volume, the rules for
performing the operation depend upon the usage type of the vol‐
ume. A subdisk cannot be associated to a plex unless the putil0
field for the subdisk is empty. Creating a subdisk with the
putil0 field set to a nonempty value is a sufficient means of
ensuring that no Logical Storage Manager operation will write to
the region of disk blocks allocated to the subdisk because the
subdisk cannot be associated through any means to a plex, and
because subdisks cannot be used directly to read from or write
to a disk. Associates the named subdisk with the named plex as
a log area for the plex. At most, one log subdisk can be associ‐
ated with a plex at any given time. Currently, log subdisks can
be used only with the dirty region logging feature, as defined
by the DRL volume logging type. If the named plex is associated
with a volume, the rules for performing the operation depend
upon the usage type of the volume. A subdisk cannot be associ‐
ated if the putil0 field is set on the subdisk, just as with
volsd assoc. Associates the named subdisk with the named plex
as an FPA log subdisk for the plex. At most, one FPA log subdisk
can be associated with a plex at any given time. If the named
plex is associated with a volume, volsd verifies that the plex
is eligible to be an FPA plex before it completes the associa‐
tion. Dissociates each specified subdisk from the plex that it
is associated with. If a subdisk is associated (through its
plex) with a volume, the rules for performing the operation
depend upon the usage type of the volume.
Subdisk dissociation can be used as part of tearing down a plex,
or as part of reorganizing disk space usage. Typically, the sub‐
disk is no longer needed after dissociation. To support this you
can use the -o rm option to remove the named subdisks after suc‐
cessful dissociation. Splits the subdisk subdisk into two sub‐
disks that reside on the same section of the same device, and
that have contiguous or striped plex associations (if the named
subdisk is associated). The first of the two resultant subdisks
will have a length of size, which is a standard Logical Storage
Manager length number (see volintro(8)), and the second subdisk
will take up the remainder of the space used by the original
subdisk.
If both newsd and newsd2 are specified, the resultant subdisks
are newsd and newsd2. If no newsd2 operand was specified, the
resultant subdisks are named subdisk and newsd.
If the named subdisk is associated with an associated plex, the
rules for performing the operation depend upon the usage type of
the volume. Log subdisks and FPA subdisks cannot be split.
Joins the subdisks named by the sd operands to form a new sub‐
disk named newsd. The sd operands must specify subdisks that
represent contiguous sections of the same device, and of the
same plex (if they are associated). For a striped plex, the sd
operands must be in the same column. At least two sd operands
are required. At the end of the operation, the sd configuration
objects are removed. The newsd operand can have the same name as
one of the sd operands, or it can have a different name.
If the sd operands are associated with an associated plex, the
rules for performing the operation depend upon the usage type of
the volume. Moves the contents of oldsd onto the new subdisks
and replaces oldsd with the new subdisks for any associations.
If multiple new subdisks are specified, they are associated
starting where the old subdisk began and placed consecutively
with no space between them. The operation requires that oldsd be
associated with an associated plex and that all new subdisks are
not already associated to any plex. You can use this operation
on a subdisk that is used by an active volume; LSM ensures that
data is copied and associations are changed without loss or cor‐
ruption of data. The rules for performing the operation depend
upon the usage type of the volume.
Moving a subdisk is the normal means of reorganizing disk space.
For example, move regions of disk used by one volume to another
disk to reduce contention on the original disk. Typically, once
the operation completes, the original subdisk is no longer
needed and can be removed. To support this, you can use the -o
rm option to remove oldsd after successful completion of the
operation.
FSGEN AND GEN USAGE TYPES
The fsgen and gen usage types provide identical semantics for all oper‐
ations of the volsd utility.
In addition to the standard -o options supported for all usage types,
the fsgen and gen usage types provide the following additional option:
Forces an operation that the Logical Storage Manager considers poten‐
tially dangerous or of questionable use. This applies to attempts to
dissociate subdisks (making a plex sparse) and to attempts to move sub‐
disks onto subdisks that have a different size. This flag is the same
as -f.
Limitations and extensions for the fsgen and gen usage types consist of
the following: If the named plex is enabled, and is associated with an
enabled plex, the named plex must be ACTIVE or EMPTY. Subdisks can be
associated with a nonenabled plex only if the utility state of the plex
is EMPTY, STALE, or OFFLINE, or if the plex is CLEAN and no other
plexes associated with the volume are CLEAN or ACTIVE.
If the subdisk is associated with a nonenabled plex, or if it is
associated with the only enabled, read-write plex in a volume,
the operation completes without copying any data onto the sub‐
disk. If the subdisk is associated with an enabled plex in a
mirrored volume, the operation may have to copy data from the
volume onto the new subdisk before the operation can complete.
If a log subdisk is associated with a plex that is associated
with a volume that has a logging type of UNDEF, the logging type
of the volume is converted to DRL. Logging of volume changes is
not enabled until there are at least two read-write mode plexes
attached to the volume. Dissociating a subdisk requires the use
of -f if it would cause an enabled plex in an enabled volume to
become sparse relative to the volume. Even with -f, it is not
possible to make two plexes sparse if no complete, enabled,
read-write plexes would remain associated. For disabled volumes,
a similar check is made with respect to ACTIVE and CLEAN plexes.
The fsgen and gen usage types apply no additional restrictions
and add no extensions to the split and join operations. If the
total size of the destination subdisks differs from that of the
source subdisk, the -f option must be specified. The operation
still fails if the total size of the destination subdisks is
larger than the source subdisk and if the address range of any
destination subdisk would conflict with another subdisk that is
associated with the plex. The total size of the destination sub‐
disks cannot be larger than the source subdisk if the kernel
state of the volume or plex is detached.
The operation fails if the total size of the destination sub‐
disks is smaller than the source subdisk and the operation would
cause the total number of complete, enabled, read-mode plexes in
the volume to drop to zero, while leaving more than one sparse,
enabled, read-write plex.
RAID 5 USAGE TYPE
In addition to the standard -o options supported for all usage types,
the raid5 usage type provides the following additional options: Forces
an operation that the Logical Storage Manager considers potentially
dangerous or of questionable use. This applies to attempts to move a
subdisk in a RAID 5 data plex if the volume the plex is associated with
does not have a log plex. This flag is the same as -f.
The raid5 usage type supports the following keywords: Associates the
named subdisks with the named RAID 5 plex. If the plex is enabled and
is associated with an enabled volume, any data that maps onto the sub‐
disk will be regenerated from the other columns of the RAID 5 plex.
This is done by marking the subdisk as stale and writeonly, regenerat‐
ing the data via VOL_R5_RECOVER ioctls, and then turning off the stale
and writeonly flags.
If the RAID 5 plex is not associated or the RAID 5 volume is not
ENABLED, the subdisk is associated and marked as stale. The sub‐
disk's contents will be recovered when the volume is started.
The assoc operation cannot be used on a log plex. Dissociates
the named subdisks from the named RAID 5 plex. If removing the
subdisk would make the volume unusable (because other subdisks
in other columns at the same altitude are unusable or missing)
and the volume is not disabled and EMPTY, the operation is not
allowed. If the volume is disabled and nonEMPTY the operation
requires use of -f.
The dis operation cannot be used on a log plex. The raid5 usage
type applies no additional restrictions and adds no extensions
to the split and join operations. These operations may not be
used on a log plex. If the old subdisk is associated with a
RAID 5 plex that is associated to a RAID 5 volume, the volume
must be enabled for the move operation to complete. The mv oper‐
ation is not allowed if the volume has stale parity or has miss‐
ing or stale subdisks at the same altitude as the subdisk being
replaced.
The mv operation first dissociates the old subdisk and then as‐
sociates the new subdisk in its place. It then recovers the data
using VOL_R5_RECOVER ioctls, as is done for the assoc operation.
If the RAID 5 volume has no valid logs, the operation requires
use of -f. This is necessary because if a crash were to occur
while the data on the new subdisks was being recovered, the par‐
ity could become stale while some of the new subdisks are marked
stale, thus rendering the volume unusable.
The mv operation may be used on a log plex. The same rules that
apply to the fsgen and gen usage type plexes apply to log
plexes. The force or -f must be used to make a log plex sparse.
Note that there is no aslog or asfpa operation for the raid5 usage
type. Logging is done on a plex level and therefore volsd aslog is not
needed, and FPA does not apply to RAID 5 volumes by design. You asso‐
ciate log plexes with RAID 5 volumes using the volplex att command.
EXIT CODES
The volsd 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
The utility that performs volsd operations for a particular volume
usage type.
SEE ALSOvolintro(8), volplex(8), volsd(8), volume(8)volsd(8)