vxassist (1M)

NAME

vxassist - create, relayout, convert, mirror, backup, grow, shrink, delete, and move volumes

SYNOPSIS

vxassist [options] [-b] addlog volume [attribute ...]

vxassist [options] changerule volume attribute ...

vxassist [options] clearrule volume

vxassist [-g diskgroup] [-b] [-O operation-tag] commit volume

vxassist [options] [-b] convert volume [attribute ...]

vxassist [options] [-b] evacuate
    {column|disk|log|mirror|subdisk|volume}
    volume [storage_spec ...] [attribute ...]

vxassist [options] [-b] growby volume lengthchange [attribute ...]

vxassist [options] [-b] growto volume newlength [attribute ...]

vxassist help { alloc | attrs | layout | mirror | options | showattrs | space | usage }

vxassist [options] list tag= tagname

vxassist [options] listrule [volume]

vxassist [options] listtag {volume|vset}

vxassist [options] [-b] make volume {length|maxsize[=size]} [attribute ...]

vxassist [options] [-b] maxgrow volume [ attribute ...]

vxassist [options] [-b] maxsize [attribute ...]

vxassist [options] [-b] mirror volume [attribute ...]

vxassist [options] [-b] [-k [-O operation-tag]] [-j] move volume
    storage-spec ... [attribute ...]

vxassist [options] [-b] relayout {volume|plex} [attribute ...]

vxassist [options] [-b] remove {log|mirror|volume} volume [storage-spec ...] [attribute ...]

vxassist [options] removetag {volume|vset} tagname[=[tagvalue]] ...

vxassist [options] replacetag {volume|vset} old_tagname new_tagname

vxassist [-g diskgroup] [-b] [-O operation-tag] rollback volume

vxassist [options] setrule volume attribute ...

vxassist [options] settag {volume|vset} tagname[= tagvalue] ...

vxassist [options] shrinkby volume lengthchange [attribute ...]

vxassist [options] shrinkto volume newlength [attribute ...]

vxassist [options] snapabort volume

vxassist [options] snapback snapvolume

vxassist [options] snapclear volume [snap_object]

vxassist [options] snapprint [volume]

vxassist [options] snapshot volume [snapvolume] [attribute ...]

vxassist [options] [-o allvols] [-o name= pattern] snapshot [attribute ...]

vxassist [options] [-b] snapstart [nmirror= number] volume [attribute ...]

vxassist [options] snapwait volume

DESCRIPTION

The vxassist utility is a command-line interface to the Veritas Volume Manager (VxVM) that:
o Finds space for and creates volumes
o Performs volume conversion
o Adds mirrors and logs to existing volumes
o Extends and shrinks existing volumes
o Migrates data from a specified set of disks
o Provides facilities for the online backup of existing volumes

Specify the appropriate keyword to vxassist to select an action to perform.

Each operation can be applied to only one disk group at a time. For most keywords, the volume operand specifies the volume on which to operate. For the make operation, attributes that name specific disks can be used to determine a default disk group, according to the standard disk group selection rules described in vxintro(1M). A specific disk group can be specified with -g diskgroup. If this option is not specified, and an alternate default disk group is not defined by specifying the diskgroup attribute on the command line or in a defaults file (usually /etc/default/vxassist), the default disk group is determined using the rules given in the vxdg(1M) manual page.

Many vxassist operations can take a set of attributes that specify such things as how to lay out volumes, or on which sets of disks to build them. There are two basic types of attributes:

o storage specifications
o attribute settings

Storage specification attributes are either simple disk names (for example, disk01), or groups of disks selected by a shared attribute such as controller or target. For example, ctlr:c1 specifies all disks on controller 1.

You can exclude (negate) storage specification by specifying the exclamation character (!) prefix. (Note: You may also need to escape the ! character to prevent it being interpreted by the shell.) For example, you can combine the arguments ctlr:c1 and !target:c1t5 to indicate that storage be allocated from controller 1, but not from SCSI target 5 on that controller.

Other attributes are of the form attrname= value; these additional attributes can specify the type of a volume (mirrored, RAID-5, striped, logged), layout policies (contiguous, spanning), mirroring requirements (mirror across controllers), and constraint parameters (constrain allocations to a single controller). See the ATTRIBUTES section below for a complete list of attribute specifications.

If no non-excluded storage specification attributes are given, any non-reserved, non-volatile, non-spare, non-excluded disk can be used to allocate storage. Some attributes (such as mirror=ctlr) may further constrain the selection, within the set of disks selected by other attributes (such as excluding a particular controller). For example, the command:


vxassist make mirvol 500m layout=mirror,log mirror=ctlr !ctlr:c2

requests that vxassist create a new mirrored volume on any disks that are not on controller 2. The mirror=ctlr attribute constrains the selection of disks so that the mirrors are created on different controllers.

In a thin provisioning environment or if the SmartMove operation is enabled, then the behavior of a mirrored volume creation is changed as follows:

o Create FMR3 logs by default.
o Mirrored volume resync is not performed between plexes by default.
o The volume grow operation will not perform any resync on the grown region.

Persistent Attributes

You can make volume attributes persistent so that they can be reused in subsequent operations on the volume. Use the persist attribute to record carefully described allocation attributes when you create a volume and retain them for future allocation operations. You can modify, enhance, or discard the persistent attributes. Persistent attributes are stored in a set of hidden volume tags. The attributes that can be made persistent include various attributes that are useful in later allocation operations on the volume, such as volume grow operations or enclosure mirroring operations.

The persist attribute determines whether the attributes are saved, and how the current command might use or modify preexisting persisted attributes. You can specify the persist attribute in defaults files, in rules, or on the command line.

VxVM retrieves persistent attributes and applies them to the allocation requests (with possible modifications) for the following operations: volume grow/shrink, move, relayout, mirror, and addlog.

Attributes are also persistent if you specify them to vxassist with the use or require clauses.

See the section Management of the use and require Type of Persistent Attributes.

Rules

You can define rules to use in volume allocation requests. You can specify a rule name for a volume allocation request by using the rule attribute. If you want to apply a default rule to all allocation requests, specify the rule name in the vxassist defaults file (/etc/default/vxassist).

Rule File Format

You define rules in a rule file. A rule file uses the following conventions:
o Blank lines are ignored.
o Use the pound sign, #, to begin a comment.
o Use C language style quoting for strings that may include embedded spaces, new lines, or tabs. For example, use quotes around the text for the description attribute.
o Separate tokens with spaces.
o Use braces for a rule that is longer than one line.

Within the rule file, a volume allocation rule has the follwing format:

volume rule rulename vxassist_attributes

This syntax defines a rule named rulename, which is Short-hand for the listed vxassist attributes. Rules can reference other rules using an attribute of rule=rulename[,rulename,...], which adds all the attributes from that rule into the rule currently being defined. All attributes given in a rule definition override any conflicting attributes given in a rule that is included by reference. You can add a description to a rule with the attribute description=description_text.

The following is a simple rule file. The first rule in the file, base, defines the logtype and persist attributes. The remaining rules in the file, tier0, tier1, and tier2, reference this rule and also define their own tier-specific attributes. Referencing a rule lets you define attributes in one place and reuse them in other rules.


# create tier 1 volumes mirrored between disk arrays, tier 0 on SSD, # and tier 2 as unmirrored. # Always use FMR DCO objects. volume rule base { logtype=dco persist=yes } volume rule tier0 { rule=base mediatype:ssd tier=tier0 } volume rule tier1 { rule=base mirror=enclosure tier=tier1 } volume rule tier2 { rule=base tier=tier2 }

The following rule file contains a more complex definition which runs across several lines.


volume rule appXdb__storage { description="Create storage for the database of Application X" rule=base siteconsistent=yes mirror=enclosure }

By default, a rule file is loaded from /etc/default/vxsf_rules. You can override this location in /etc/default/vxassist. You can also specify a rule file from the command line.

Rule Parsing and Use

Rule files are parsed from beginning to end. Rule files are read in the following order:
1. The rule file listed in the compiled defaults
  file (/etc/default/vxsf_rules)
2. Any rule file listed in the vxassist defaults file
  as a rulefile attribute.
3. Any rule file given as an option to vxassist as
  -o rulefile=rulefile.
4. Any rule file given an attribute on the command line as
  a rulefile attribute.

Each rule has a name, and any rule definition or attribute can name a rule. vxassist reads all the rules before any rule references are inserted. When vxassist looks up a rule, it goes through the list above, and uses the last rule with that name.

For any source of attributes (a defaults file, a rule definition, command line attributes, and so on), any rules given from that source are interpreted in order before any other attributes are interpreted, which are then interpreted in order. The result is always a data structure representing a potential final interpretation of the allocation request. Some attributes override others, some combine with others. The order of interpretation given here determines which source of an attribute is chosen when attributes override each other. The rule mechanism does not change which attributes override each other rather than combining with each other.

Creating a Volume Using Rules

When you use the vxassist command to create a volume, you can specify the rule name on the command line. For example, the content of the vxsf_rules file is as follows:

volume rule basic { logtype=dco } volume rule tier1 { rule basic layout=mirror tier=tier1 }

In the following example, when you create volume vol1 in disk group dg3, you can specify the tier1 rule on the command line. In addition to the attributes you enter on the command line, vol1 is given the attributes that you defined in the tier1 rule.


vxassist -g dg3 make vol1 200m rule=tier1

The following vxprint command displays the attributes of disk group dg3. The output includes the new volume, vol1.


vxprint -g dg3 TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg dg3 dg3 - - - - - - dm ibm_ds8x000_0266 ibm_ds8x000_0266 - 2027264 - - - - dm ibm_ds8x000_0267 ibm_ds8x000_0267 - 2027264 - - - - dm ibm_ds8x000_0268 ibm_ds8x000_0268 - 2027264 - - - - v vol1 fsgen ENABLED 409600 - ACTIVE - - pl vol1-01 vol1 ENABLED 409600 - ACTIVE - - sd ibm_ds8x000_0266-01 vol1-01 ENABLED 409600 0 ACTIVE - - pl vol1-02 vol1 ENABLED 409600 - ACTIVE - - sd ibm_ds8x000_0267-01 vol-02 ENABLED 409600 0 ACTIVE - - dc vol1_dco vol1 - - - - - - v vol1_dcl gen ENABLED 144 - ACTIVE - - pl vol1_dcl-01 vol1_dcl ENABLED 144 - ACTIVE - - sd ibm_ds8x000_0266-02 vol1_dcl-01 ENABLED 144 0 - - - pl vol1_dcl-02 vol1_dcl ENABLED 144 - ACTIVE - - sd ibm_ds8x000_0267-02 vol1_dcl-02 ENABLED 144 0 - - -

The following vxassist command confirms that vol1 is in tier1. The application of the rule tier1 was successful.


vxassist -g dg3 listtag TY NAME DISKGROUP TAG ============================================================= v vol1 dg3 vxfs.placement_class.tier1

Specifying Persistent Attributes in a Rule File

The following rule file, /etc/default/vxsf_rules contains a rule, rule1, which defines the mediatype attribute. This rule also uses the persist attribute to make the mediatype attribute persistent.

# cat /etc/default/vxsf_rules volume rule rule1 { mediatype:ssd persist=extended }

The following command confirms that LUNs ibm_ds8x000_266 and ibm_ds8x000_268 are solid-state disk (SSD) devices.


# vxdisk listtag DEVICE NAME VALUE ibm_ds8x000_0266 vxmediatype ssd ibm_ds8x000_0268 vxmediatype ssd

The following command creates a volume, vol1, in the disk group dg3. rule1 is also specified on the command line, so those attributes are also applied to vol1.


# vxassist -g dg3 make vol1 100m rule=rule1

The following command shows that vol1 is created off the SSD device ibm_ds8x000_0266 as specified in rule1.


# vxprint -g dg3 TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg dg3 dg3 - - - - - - dm ibm_ds8x000_0266 ibm_ds8x000_0266 - 2027264 - - - - dm ibm_ds8x000_0267 ibm_ds8x000_0267 - 2027264 - - - - dm ibm_ds8x000_0268 ibm_ds8x000_0268 - 2027264 - - - - v vol1 fsgen ENABLED 204800 - ACTIVE - - pl vol1-01 vol1 ENABLED 204800 - ACTIVE - - sd ibm_ds8x000_0266-01 vol1-01 ENABLED 204800 0 - - -

The following command displays the attributes defined in rule1.


# vxassist -g dg3 help showattrs rule=rule1 alloc=mediatype:ssd persist=extended

If no persistent attributes are defined, the following command grows vol1 on hard disk drive (HDD) devices. However, mediatype:ssd was defined as a persistent attribute. Therefore, the following command honors this original intent and grows the volume on SSD devices.


# vxassist -g dg3 growby vol1 1g

The following vxprint command confirms that the volume was grown on SSD devices.


#vxprint -g dg3 TY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0 dg dg3 dg3 - - - - - - dm ibm_ds8x000_0266 ibm_ds8x000_0266 - 2027264 - - - - dm ibm_ds8x000_0267 ibm_ds8x000_0267 - 2027264 - - - - dm ibm_ds8x000_0268 ibm_ds8x000_0268 - 2027264 - - - - v vol1 fsgen ENABLED 2301952 - ACTIVE - - pl vol1-01 vol1 ENABLED 2301952 - ACTIVE - - sd ibm_ds8x000_0266-01 vol1-01 ENABLED 2027264 0 - - - sd ibm_ds8x000_0268-01 vol1-01 ENABLED 274688 2027264- - -

User-defined Aliases for Pre-defined Disk Classes

VxVM provides a pre-defined set of disk classes that are automatically discovered, that you can use for storage specification. You can define alias names for these pre-defined disk classes. Typically, an alias is a shorter or more user-friendly name. You can use the alias instead of its corresponding disk class, to specify vxassist allocation constraints. Define the alias names in rule files.

For example, to define atyp as an alias for the base disk class arraytype, include the following statement in a rule file.


class alias atyp=arraytype


Now, you can specify the following constraint to allocate storage from A/A arrays for the volume creation:

# vxassist -g dgname make volname volsize use=atyp:A/A


User-defined Precedence Order for Pre-defined Disk Classes

For the pre-defined disk classes, the vxassist command applies a default priority order when these disk classes are specified in the mirror confinement, mirror separation, and stripe separation constraints. The higher priority class is honored for allocation when mirroring or striping. If a different priority order is required, you can change the default order for these disk classes.
Note: The site class always has the highest precedence, and its order cannot be overridden.
Define the customized precedence order in a rule file. The higher the order number, the higher is the class precedence.

For information on the default precedence order and the acceptable range for the order number, see the Storage Foundation Administrator’s Guide.

For example, the array class has a higher priority than the hostport class by default. To make the hostport class have a higher priority, assign the hostport class a higher order number. To define the order for the classes, include the following statement in a rule file:


class define array order=400
class define hostport order=700


When the above rule is used, the following command mirrors across the hostport class rather than the array class.

# vxassist -g dg1 make vol2 1m mirror=array,hostport


User-defined Disk Classes

You can define customized disk classes to use in storage specifications for vxassist allocation operations. A customized disk class is a user-defined property that is associated with a set of disks. The property is attached as a class to the disks that satisfy the particular constraint in the definition. You can use the custom classes like other storage-specification disk classes, to specify vxassist allocation constraints. Define the custom disk properties in a rule file, as follows:


disk properties predefined_disk_class:instance {
        custom_disk_class:value
}


For more information, see the Storage Foundation Administrator’s Guide.

The use and require Constraints for Detailed Storage Specifications

The vxassist command accepts a variety of storage specifications for allocations. The require constraint and the use constraint are methods to specify detailed storage specifications for allocations. These constraints enable you to select disks from an intersection set or a union set of intended properties. You can specify the set of disks for allocations with more precision than the existing methods alloc and logdisk clauses. The use and require constraints can apply to data, logs, or both. A require constraint behaves as an intersection set: all of the specifications in the constraint must be satisfied, or the allocation fails. For example, allocate disks from a particular array vendor AND with a particular array type. A use constraint behaves as a union set: at least one of the specifications in the constraint must be satisfied, or the allocation fails. For example, allocate disks from any of the specified enclosures: enclrA or enclrB.

See the section ATTRIBUTES for description of the constraints require, datarequire, logrequire, use, datause, loguse.

For disk group version of 180 or above, the use and require type of constraints are persistent for the volume by default. You can specify multiple storage specifications, separated by commas, in a use or require clause on the vxassist command line. You can also specify multiple use or require clauses on the vxassist command line.

For details, see the section Interaction of Multiple require and use Constraints in the Storage Foundation Administrator’s Guide.

Symantec recommends that you do not combine use or require constraints with direct storage-specifications or other clauses like alloc or logdisk.

Management of the use and require Type of Persistent Attributes

The intent management operations enable you to manage the use and require type of persistent intents for volumes. These operations allow you to independently manage the intents after the volume creation. The changed intents are not checked for validity or enforced for the current allocation of the volume. See the KEYWORDS section for the description of the intent management operations: setrule, changerule, clearrule, and listrule.

KEYWORDS

addlog Adds a log or DCO to a volume.
DCO is a data change object, used for Persistent FastResync. Note: This operation is only supported for version 0 DCOs.
DRL is a dirty region log, used for speedy recovery of mirrors after a system crash.
Sequential DRL is a form of DRL that is optimized for volumes that are written to sequentially, such as database log volumes.
Note: For volumes with version 20 DCOs, DRL and sequential DRL are supported within the DCO volume itself. You can specify the dcoversion=20 attribute to the vxassist make command to create a volume with a version 20 DCO, or you can use the vxsnap prepare command to add a version 20 DCO to a volume. You cannot use the vxassist addlog command to add a version 20 DCO to a volume.
DCM is a data change map, used for fast resynchronization of a secondary RVG with its primary.
Mirrored volumes are associated with DRL or sequential DRL logs.
RAID-5 volumes are associated with RAID-5 logs.
Replicated volumes are associated with DCM logs.
By default, when adding a log, vxassist attempts to determine the correct type of log to add, even if no logtype attribute is specified. For example, if the volume is part of an RVG, vxassist attempts to create a DCM log.
When adding a DRL, RAID-5 or DCM log to a volume for the first time, the loglen attribute can be used to specify the length of the log; on adding additional logs, the loglen attribute is ignored and the existing log length is used. If a loglen which is too large or small to be practical is specified, vxassist may adjust the length to a reasonable size. If no loglen attribute is supplied, vxassist picks an appropriate log size. Other attributes can be specified to indicate desired properties for the new allocations. Mirroring constraints do not apply to logs, though storage constraints can be specified that limit the logs to disk sets already used by the volume.
Adding a version 0 DCO to a volume creates a DCO object that is associated with the volume, and a DCO volume that is associated with the DCO object. When created for a non-layered volume with at least 2 data plexes or for any layered volume, the default DCO volume has 2 DCO plexes (mirrors for redundancy), each of length 132 blocks. When created for a non-layered volume with a single data plex, the default DCO volume has a single unmirrored DCO plex of length 132 blocks.
Note: The actual length may be rounded up to the disk group alignment value. See the vxdg(1M) manual page.
Note: To allow operation of the dynamic disk group split/join feature, vxassist attempts to place version 0 DCO plexes on the same disks as the plexes of the corresponding data volume. See the vxdg(1M) manual page for more information. By default, vxassist attempts to place version 20 DCO plexes on disks different than the corresponding data volume. The allocation policy may not succeed if there is insufficient disk space. vxassist then uses available space in the remaining disks of the disk group. This may prevent certain disk group split or move operations if the DCO plexes cannot accompany their parent data volume. To overcome this, you can use storage specifications to specify explicitly the disks on which the DCO plexes are to be configured. For details, see the description of the logdisk attribute, below.
Note: Adding a DCO does not enable Persistent FastResync on the parent volume unless fastresync=yes is also specified.
Adding a DRL log to a mirrored volume creates a single log subdisk and a new plex to contain that subdisk. The new plex is then attached to the volume. Note: For volumes with version 20 DCOs, DRL is supported within the DCO volume itself. Dedicated DRL log plexes should not be created for such volumes.
Adding a RAID-5 log to a RAID-5 volume involves creating a new plex that is attached to the volume as a log plex.
Adding a DCM log to a replicated volume adds two logs (by default), each consisting of a log plex and associated subdisk. DCM logging can co-exist with DCO.
changerule Appends the specified intents to the existing saved intents for the specified volume.
clearrule Removes any existing saved intents for the specified volume.
commit Completes tentative subdisk move operations by removing the source subdisks, and replacing them with the target subdisks. The -O option can be used to specify an operation tag for the subdisks whose tentative move is to be committed. If no operation tag is specified, the commit operation is applied to all completed tentative subdisk moves for the named volume. The commit operation fails if a tentative move or a recovery resynchronization is in progress.
convert Converts a volume layout to a mirror-stripe from a stripe-mirror, or from a mirror-stripe to a stripe-mirror. Also converts to mirror-concat from a concat-mirror, or from a mirror-concat to a concat-mirror.
evacuate {column|disk|log|mirror|subdisk|volume}
  Relocates columns, disks, logs, subdisks, or mirrors that belong to the named volume, or moves an entire volume.
For disks, excluded storage may be specified using the ! prefix.
The names of column, log, mirror and subdisk names may be specified by the attributes columnnames, lognames, plexnames and sd respectively.
growby | growto
  Increases the length of the named volume to the length specified by newlength (growto), or by the length specified by lengthchange (growby). Specify the new length, or change in length, in Veritas Volume Manager standard lengths or as a percentage (for example, 110%). See the vxintro(1M) manual page for information about standard lengths.
The growto operation fails if the new length is not greater than the current volume length. The length of the volume is increased by extending existing subdisks in the volume, or by adding and associating new subdisks. Plexes that are not already fully populated (that is, sparse) are left unchanged. Log-only plexes are also left unchanged.
Note: Following a relayout, specify the attribute layout=nodiskalign to the growby and growto commands if you want the subdisks to be grown using contiguous disk space.
Note: When you grow a volume, it is recommended that you also grow any file system that is configured on that volume. See the vxresize(1M) manual page. vxassist does not resize file systems (or other uses of the volume, such as databases) that reside on the volume.
When a volume is grown, its layout may be converted as a side effect if vxassist determines that the new volume is too large for the original layout. The values of the stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt attributes (by default, 1 gigabyte) control whether a new layout will be applied. A mirror-stripe volume that is larger than the value of stripe-mirror-col-trigger-pt is converted to a stripe-mirror volume. If each column of a stripe-mirror-col volume is larger than the value of stripe-mirror-col-split-trigger-pt, the volume is converted to a stripe-mirror-sd volume where the individual subdisks, rather than the columns, are mirrored. A mirror-concat volume that is larger than the value of stripe-mirror-col-split-trigger-pt is converted to a concat-mirror volume where the individual subdisks, rather than the plexes, are mirrored.
If the new volume layout is inappropriate, use the vxassist convert operation to change the layout after the grow operation has finished.
See Layout Specifications for a description of the methods used to determine disk layouts.
Note: The relayout operation requires all mirrors in a volume to have the same layout. If a mirrored volume is composed of mixed plex layouts, relayout the mirror plexes to the same layout before attempting to relayout the volume.
You can specify attributes to indicate properties for the new allocations. Any persistent mirroring constraints still apply between all extensions to the existing mirrors and the other mirrors. Growing of a volume requires that the volume be enabled.
When the size of a replicated volume changes, you can ensure that the size of the DCM is appropriate by removing all the DCM logs and adding them back without specifying the loglen attribute.
These operations support the specification of the following attributes: layout=contig, layout=span, spare, use_storage.
help Displays information on vxassist usage and Veritas Volume Manager attributes. For example, to display information about using vxassist attributes, enter:

vxassist help attributes

To display information about the disk properties present on the system, which can be used as storage specifications for vxassist operations, enter:

vxassist help space
list Lists all volumes in the disk group on which the specified tag has been set.
Dotted tag hierarchies are understood. For example, the listing for tag=a.b includes all volumes that have tag names that start with a.b.
listrule Lists any saved intents for the specified volume. If no volume name is specified, the command shows the intents for all of the volumes.
listtag Lists all the tag names and tag values that have been set on a volume or volume set. If a volume name is not specified, then listtag displays the tags for all volumes and volume sets in the disk group.
make Creates a volume with the specified name and the specified length. You can specify the length as a standard Veritas Volume Manager length, or use the maxsize option. Specify the length as a command-line argument or using the length= attribute. For more information about standard VxVM lengths, see the vxintro(1M) manual page.
If you specify the maxsize option, VxVM calculates the maximum size available and VxVM uses that size for the length of the created volume. VxVM considers the specified layout type, number of mirrors, and other allocation attributes when it calculates the maximum size. You can also assign a value for the maximum size, to place an upper limit on a volume of maximum size. The vxassist make command does not create a volume larger than the available maximum that it calculates, regardless of the value you assign to the maxsize option. For example, if you specify the maxsize of 100g, and the vxassist make command determines that the maximum available size is 200g, it creates a volume of 100g. However, if the vxassist make command calculates that the maximum available size is 50g, it creates a volume of 50g, not 100g.
You can specify attributes to indicate various properties and storage locations for the created volume. See Layout Specifications for a description of the methods used to determine disk layouts.
maxgrow Reports the maximum size a volume can grow given its attributes and given the free storage available.
maxsize Reports the maximum size a volume could be created with given the attributes specified and given the free storage available.
mirror Creates a new mirror (or plex) and attaches it to the volume. This operation is allowed only if the volume is enabled. Attributes can be specified to indicate various desired properties and storage locations for the created volume. Attributes that constrain mirroring (such as requiring that mirrors be on separate groups of disks) apply between the existing mirrors of the volume and the new mirror.
move Moves subdisks within the named volume off the excluded storage specified on the command line. Excluded storage is specified with a prefix of !. The move operation requires that at least one excluded storage specification be given.
If the volume is enabled, subdisks within detached or disabled plexes (or detached log or RAID-5 subdisks) are moved without recovery of data. If the volume is not enabled, stale log or RAID-5 subdisks, or subdisks within STALE or OFFLINE plexes, are moved without recovery; if there are other subdisks within a non-enabled volume that require moving, the move operation fails.
For enabled subdisks in enabled plexes within an enabled volume, the data within subdisks are moved to the new location, without loss of availability (or redundancy) of the volume.
If the -k option is specified, a subdisk move is initiated but the source subdisks are preserved on the original plexes, and the source and target subdisks are marked. Such an operation is termed a "tentative move" operation, and can be committed or rolled back at a later time. If the -O option is used to specify a tag, this tag can be used with the vxtask command to monitor, pause or abort such operations.
Specify the -j option to the move operation to perform a "virtual move". This operation allocates space for the target subdisk but does not copy any data from the source subdisk to the target subdisk. You can use a virtual move to determine if there is enough space in the disk group for the move operation. A virtual move cannot be committed but must be rolled back.
relayout Changes a volume layout or properties. This operation changes the number of columns in a stripe or the stripe width of a volume. It also converts a volume to or from RAID-5, concatenated-mirror, striped, striped-mirror or any similar layout.
Note: The relayout operation internally generates unique data object names (for example, v2-Dp02) when it converts a volume to a specified destination layout.
Note: Following a relayout, specify the attribute layout=nodiskalign to the growby and growto commands if you want the subdisks to be grown using contiguous disk space.
After relayout to a layered form, a volume may be converted to a non-layered form. For example, to convert from a 4-column mirror-stripe to a 5-column mirror-stripe, first relayout the volume as a stripe-mirror:

vxassist relayout vol1 nstripe=5

If you view the volume with vxprint during relayout, the volume shows several subvolumes that are used during the change, and a more complex configuration than usual.
After the new column is added, the volume is in stripe-mirror layout. Use vxassist convert to convert back to a mirror-stripe layout:

vxassist convert vol1 layout=mirror-stripe

Note: If the system crashes during relayout or conversion, the process continues when the system is rebooted. However, if the crash occurred during the first stage of a two-stage relayout and convert operation, only the first stage is subsequently completed after rebooting. You must run vxassist convert manually to complete the second stage.
remove {log|mirror|volume}
  Deletes logs or mirrors from a volume, or deletes an entire volume. Unless the number is specified, one log or mirror is removed.
Note: Specifying logtype=dco completely removes a version 0 DCO object, DCO volume and any snap objects that are associated with the specified volume, and also disables FastResync on the volume. To remove a version 20 DCO and DCO volume, use the vxsnap unprepare command.
Note: When adding storage, you can exclude (negate) storage specification by specifying the exclamation character (!) prefix. When removing storage, the exclamation character (!) prefix has the opposite effect, that is, it specifically will be removed.
For example, to remove a mirror on disk01, enter:

vxassist remove mirror vol01 !disk01

See the vxplex(1M) manual page for an example of an alternative method of removing a mirror from a volume.
The alloc=, nmirror=, and nlog= attributes also determine the number of mirrors or logs remaining after the remove operation completes. When the number of mirrors drops to 1, logs are also removed.
By default, vxassist removes 1 mirror or log as appropriate.
removetag Removes the specified tags from a volume or volume set. If only a tag name is specified, a tag with a matching name is removed regardless of its value. If a tag value is specified, a tag is only removed if both its name and value match. If tagname= is specified without a tag value, a tag with a matching name is only removed if its value is null.
replacetag Replaces the specified tag that is set on a volume or volume set. The syntax for the tag to be replaced is the same as described for removetag.
rollback Reverses tentative subdisk move operations by removing the target subdisks, and leaving the source subdisks intact. The -O option can be used to specify an operation tag for the subdisks whose tentative move is to be rolled back. If no operation tag is specified, the rollback operation is applied to all completed tentative subdisk moves for the named volume. The rollback operation fails if a tentative move or a recovery resynchronization is in progress.
setrule Replaces any existing saved intents with the specified intents for the specified volume.
settag Sets one or more specified tags on a volume or volume set. If only a tag name is specified, the tag is applied with a null value. If a tag value is also specified, the tag is set with that value. If a tag already exists with the same name, it is overwritten.
Tag names and tag values are case-sensitive character strings of up to 256 characters. Tag names can consist of letters (A-Z and a-z), numbers (0-9), dashes (-), underscores (_) or periods (.) from the ASCII character set. A tag name must start with either a letter or an underscore. Tag values can consist of any character from the ASCII character set with a numeric value from 32 to 127.
The tag names "site", "udid" and "vdid" are reserved and should not be used. To avoid possible clashes with future product features, it is recommended that tag names do not start with any of the following strings: "asl", "be", "isp", "nbu", "sf", "symc", "vx" or "vxvm.attr.".
shrinkby | shrinkto
  Decreases the length of the named volume to the length specified by newlength (shrinkto), or by the length specified by lengthchange (shrinkby). Specify the new length, or change in length, in Veritas Volume Manager standard lengths
or as a percentage (for example, 110%). See the vxintro(1M) manual page for information about standard lengths.
The shrinkto operation fails if the new length is not less than the current volume length.
The length of a volume is decreased by removing and shortening subdisks to leave each plex with the requested volume length. The freed space can then be allocated for use by other volumes. Log-only plexes are left unchanged.
When a volume is shrunk, its layout may be converted as a side effect if vxassist determines that the new volume is too small for the original layout. The values of the stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt attributes (by default, 1 gigabyte) control whether a new layout will be applied. A stripe-mirror volume that is smaller than the value of stripe-mirror-col-trigger-pt is converted to a mirror-stripe volume. A concat-mirror volume that is smaller than the value of stripe-mirror-col-split-trigger-pt is converted to a mirror-concat volume.
If the new volume layout is inappropriate, use the vxassist convert operation to change the layout after the grow operation has finished.
See Layout Specifications for a description of the methods used to determine disk layouts.
Note: You cannot resize volumes comprised of different plex layouts. If you try to do so, an error message displays stating that the volume contains differing layouts.
Caution: Data can be lost or corrupted if file systems or other organized data residing on a volume are not shrunk before shrinking the volume. vxassist does not resize file systems (or other uses of the volume, such as databases) that reside on the volume. You can use the vxresize command to shrink file systems on the volume. See the vxresize(1M) manual page. Otherwise, use the appropriate application command to adjust the layout of data in the volume before initiating the shrink operation. You must specify the -f option to forcibly shrink volumes of usage type fsgen or raid5.
These operations support the specification of the following attributes: layout=contig, layout=nocontig, layout=span, spare, use_storage.
snapabort Removes the mirror snapshot when a snapstart mirror has been started (and eventually completed).
snapback By default, finds one plex in the snapshot volume that has the snap_rid field set, and attaches it to the original volume. If the plex is the last in a volume, that volume is removed from the disk group.
Note: The snapshot volume and the original volume must be in the same disk group.
If the -o allplexes option is specified, all snapshot plexes in the same disk group are reattached. Alternatively, if the nmirror= number attribute is specified, only number plexes are reattached.
The direction of the resynchronization can be determined by specifying either resyncfromoriginal or resyncfromreplica as the useopt argument to the -o option. To choose the original volume as the preferred copy of the data, use -o resyncfromoriginal. To choose the replica as the preferred copy of the data, use -o resyncfromreplica.
Note: Always unmount the snapshot volume (if mounted) before using snapback. You must also unmount the original volume (if mounted) before using the -o resyncfromreplica option.
snapclear Clears the FastResync map, removes any snap objects, and clears the snap_rid field of the volume.
Note: snapback cannot be invoked after snapclear is used.
If Persistent FastResync is enabled and the original volume and the snapshot volume are in different disk groups, snapclear removes the snap object and clears the FastResync map for the snapshot volume that corresponds to the snapshot object. To stop tracking on the original volume for the snapshot volume, specify the snap object, snap_object, in the original volume that refers to the snapshot volume. You must also run vxassist snapclear separately on the snapshot volume. For example, if myvol1 and SNAP-myvol1 are in separate disk groups mydg1 and mydg2 respectively, the following command stops tracking on myvol1 with respect to SNAP-myvol1:

vxassist -g mydg1 snapclear myvol1 SNAP-myvol1_snp

However, tracking is still enabled on SNAP-myvol1 with respect to myvol1. The following command turns this tracking off by specifying the snap object, myvol1_snp, in SNAP-myvol1 that points to myvol1:

vxassist -g mydg2 snapclear SNAP-myvol1 myvol1_snp

If Persistent FastResync is enabled and the original volume and the snapshot volume are in the same disk group, snapclear removes the snap records for both the original volume and the snapshot volume in addition to clearing their FastResync maps.
Note: Either of the two previous examples stops Persistent FastResync tracking for both the snapshot volume (SNAP-myvol1) and the original volume (myvol1) if they are in the same disk group.
To support Non-Persistent FastResync and to be compatible with previous versions of VxVM, a single snapshot volume can be specified as the argument to snapclear, for example:

vxassist -g myolddg snapclear SNAP-myoldvol

snapprint Displays the associations between the original volumes and their respective replicas. If a volume is specified, output is displayed only for that volume. An error message is displayed if FastResync is not enabled on the volume.
The following information is displayed:
o Name of the original volume.
o Names of all snapshot volumes.
o Length in blocks of the volume, detached plex, or snapshot plex.
o Percentage of the snapshot plex or detached plex that is considered to have been changed (dirty). For Non-Persistent FastResync, which keeps information about changed regions in a single map for the original volume and its snapshot volumes, the %DIRTY value is the same for the original volume as for a snapshot volume even if writes are only made to the snapshot volume. For Persistent FastResync, which maintains separate tracking maps for the original volume and each of its snapshot volumes, the %DIRTY value is based only on what has been written to an individual volume.
In the following example, Persistent FastResync is enabled on volume v1, and Non-Persistent FastResync on volume v2. V and v indicate the volume, DP and dp indicate detached plexes, and SS and ss indicate snapshot plexes.

# vxassist -g mydg snapprint v1

V NAME USETYPE LENGTH SS SNAPOBJ NAME LENGTH %DIRTY DP NAME VOLUME LENGTH %DIRTY

v v1 fsgen 20480 ss SNAP-v1_snp SNAP-v1 20480 4 dp v1-01 v1 20480 0 dp v1-02 v1 20480 0

v SNAP-v1 fsgen 20480 ss v1_snp v1 20480 0

# vxassist -g mydg snapprint v2

V NAME USETYPE LENGTH SS SNAPOBJ NAME LENGTH %DIRTY DP NAME VOLUME LENGTH %DIRTY

v v2 fsgen 20480 ss -- SNAP-v2 20480 0 dp v2-01 v2 20480 0

v SNAP-v2 fsgen 20480 ss -- v2 20480 0

snapshot Creates a new volume by taking one or more attached temporary mirrors (with state SNAPDONE) to use as its plexes. The nmirror= number attribute can be used to specify the number of mirrors in a snapshot volume. At least number SNAPDONE plexes must be available in the original volume. By default, one plex is used if nmirrors is not specified.
The comment attribute may also be used to set the comment field for the snapshot volume.
The following are examples of the use of the nmirror and comment attributes:

vxassist snapshot nmirror=2 \ comment="mirrored snapvol for myvol" myvol snapvol

Some usage types attempt to synchronize any in-memory data associated with the volume (such as unwritten file system modifications) when the snapshot operation is done. In particular, if the fsgen usage type is used with a volume containing a Veritas File System (VxFS), then cooperating procedures ensure that all file system data is consistently flushed to the volume. For hfs and other file system types, the synchronization operation calls sync. This makes the snapshot a better image, but it may leave some inconsistencies between in-memory file system data and the data residing on the backup image.
The snapshot command accepts more than one volume. All the given volumes are split atomically (in a single transaction). That is, all the given volumes are relatively consistent as a result of taking the snapshot. If you specify the -o allvols, it is not necessary to specify any volume names. vxassist attempts to create a sufficiently long vxplex command to take a snapshot of all the volumes in the disk group. You can use the -o name= pattern option to generate names for the snapshot volumes. Otherwise, the default name assigned to each snapshot volume takes the form SNAP%d-%v.
snapstart Creates a plex and attaches it to the named volume as a snapshot mirror. When the attach completes, the plex has state SNAPDONE and is a candidate for selection by the snapshot operation. Attributes can be specified to indicate the desired properties of the snapshot mirror.
The nmirror= number attribute can be used to specify the number of snapshot plexes to be attached to a volume. By default, number is 1.
Note: For this command, the nmirror= number attribute is specified before the volume name.
Note: To allow operation of the dynamic disk group split/join feature, vxassist attempts to avoid placing snapshot plexes on the same disks as the plexes of the original volume or the plexes of its associated DCO volume. This allocation policy may not succeed if there is insufficient disk space. vxassist then uses any other available space in the disk group. This may prevent certain disk group split or move operations if the snapshot plexes and their associated DCO plexes cannot be physically separated from the plexes of the original volume or the plexes of its DCO volume. To overcome this, you can use storage specifications to specify explicitly the disks on which the snapshot plexes are to be configured. See the vxdg(1M) manual page for more information about disk group split and join.
snapwait Waits for an attached mirror to become available on a volume if a snapstart mirror attach is done as a background task (such as using the -b option). The operation exits when the snapshot is complete. Available snapshot plexes are flagged with state SNAPDONE.

OPTIONS

-b Performs extended operations in the background. This option applies to plex consistency recovery operations for make, growto and growby, to plex attach operations started by mirror and snapstart, to relayout operations started by relayout, and to the addlog, convert, maxgrow, maxsize, move and remove operations.
-d defaults Specifies a file containing defaults for various attributes related to volume creation and space allocation. If not specified, this defaults to /etc/default/vxassist.
-f
--force
Forces operations not usually allowed by vxassist.
-g diskgroup Specifies the disk group for the operation, either by disk group ID or by disk group name. If this option is not specified, and an alternate default disk group is not defined by specifying the diskgroup attribute on the command line or in a defaults file (usually /etc/default/vxassist), the default disk group is determined using the rules given in the vxdg(1M) manual page.
-k Initiates a subdisk move while preserving the source subdisks on the original plexes. The source and target subdisks are marked. Such an operation is termed a "tentative move" operation, and can be committed or rolled back at a later time. If the -O option is used to specify a tag, this tag can be used with the vxtask command to monitor, pause or abort such operations.
-n Prevents the system defaults file being read.
--noattach Add mirror operations to add mirrors to a volume, indicates that the newly added mirrors are to remain in the disabled state.
-o useopt Passes in options specific to a usage type to the operation. A certain set of operations are expected to be implemented by all usage types:
allplexes Specifies that all available snapshot plexes in a disk group are to be reattached to their original volume during a snapback operation.
allvols Takes a snapshot of all the volumes in the disk group. An error results if one or more volumes do not have a plex that is usable for the snapshot.
iosize= size
  Performs copy and recovery operations in regions with the length specified by size, which is a standard Veritas Volume Manager length number. See the vxintro(1M) manual page for information about standard lengths. 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 1 megabyte.
name= pattern
  Specifies the template for naming new snapshot volumes. The pattern consists of characters and one or more of the following specifiers:
%% Single percent character.
%d Unique serialization number expressed as a decimal integer.
%g Disk group name.
%m Mirror’s original name.
%s Serialization string expressed as a sequence of one or more lower case letters.
%S Serialization string expressed as a sequence of one or more upper case letters.
%v Volume name.
%x Unique serialization number expressed as a lower-case hexadecimal integer.
%X Unique serialization number expressed as an upper case hexadecimal integer.
The default template name for a new snapshot volume is SNAP%d-%v.
numchild= number
  Specifies the number of child processes that are used to perform resynchronization during a snapback or snapstart operation. The default value of number is 1 (no child processes), which is the same as specifying a number of 0. Specifying a larger value for number potentially speeds up resynchronization, although the effectiveness of this depends to some extent on the underlying characteristics of the disk array. For striped volumes, a best practice is to specify the number of columns as the value for numchild.
By default, the child processes divide the volume into equally sized chunks, which they then resynchronize independently with the volume. This behavior may be modified using the useopt sequential. When the underlying device is not cache-enabled, it’s advisable to use the sequential option.
Note: A large iosize of 1m or 2m is recommended for use with this option.
ordered Specifies that ordered allocation should be used to create a new volume. For more information, see the Ordered Allocation section below.
readonly Specifies that a read-only replica volume is created during a snapshot.
renamesnapplex
  Specifies that a snapshot plex is renamed when the snapshot operation is used to create a snapshot volume. If this option is not specified, the plex retains the same name that it had in the original volume.
resyncfromoriginal
  Performs a resync using the data in the original volume during a snapback.
resyncfromreplica
  Performs a resync using the data in the snap plex during a snapback.
rulefile=rulefile
  Specifies a rule file to use with the vxassist operation.
sequential When specified with the useopt numchild for values of number greater than 1, the child processes co-operate in resynchronizing regions of the volume that are close together, starting at the beginning of the volume and moving to the end. This creates more overhead for the resynchronization, but it potentially makes better use of the sequential read-ahead buffer of the physical disks.
slow[= iodelay]
  Reduces the impact on system performance of copy operations. Copy and plex consistency recovery operations are usually a set of short operations on small regions of the volume (typically 1 megabyte). This option inserts a delay between the recovery of each such region. A specific delay can be specified with iodelay as a number of milliseconds, or a default is chosen (normally 250 milliseconds).
-O operation-tag
  Specifies an operation tag that can be used to commit or roll back a completed tentative move operation. If an operation tag is specified for a tentative move operation, a task tag is automatically set to the same value. However, setting a task tag does not imply the setting of an operation tag.
-p Prints only the maximum size with no text wrappers (used with maxsize and maxgrow).
-r Includes spare disks (reserved for hot-relocation) in the calculation.
-t tasktag Marks any tasks that are registered to track the progress of an operation with the tag tasktag. This option is passed to utilities called by vxassist, so any child tasks are also tagged with tasktag. The tag specified by tasktag is a sequence of up to 16 alphanumeric characters.
-U usetype Limits the operation to volumes that have this usage type. Any attempt to operate on volumes that have a different usage type fails.
For a make operation, this option specifies the usage type of the volume to be created. Otherwise, the default usage type set in the /etc/default/vxassist file is used, or if such an entry does not exist, the usage type is set to fsgen.
-v Traces calls to other utilities to determine which Veritas Volume Manager commands vxassist is executing.

Hardware-Specific Options

Some environments provide guidelines to optimize VxVM’s interaction with intelligent storage systems. If these guidelines are present, VxVM follows the guidelines when creating volumes or allocating space for volumes. By default, vxassist only creates volumes that conform with these guidelines. The following options change the behavior of vxassist operations make, mirror, grow and shrink:
-o override Performs the specified vxassist task for the specified volume and ignores any storage-specific guidelines. Overriding the guidelines is not recommended as it can result in incompatible objects, or objects that cannot be administered by VxVM and any associated software that exploit storage-specific features.
-o verify Verifies that the vxassist task for the specified volume can be performed without violating any storage-specific guidelines, but does not commit or perform any task. If any guidelines are violated, vxassist exits with an error message.
Note: These options need a separate license. Without the license, vxassist ignores the specified option.
Refer to the vendor-specific documentation for more information on how intelligent storage systems can interact with VxVM.

ATTRIBUTES

Attribute values for operations on volumes can be specified with arguments of the form attribute=value. Attributes can also be passed in through a defaults file.

Attributes are either storage specifications (possibly negated), or are in the form attribute=value. In a defaults file, attributes are separated by a space or are on separate lines. Blank lines in a defaults file are ignored, and comments can be included with the standard # convention. Default attribute values for operations on volumes can be stored in the /etc/default/vxassist file.

Attributes are selected according to the order in which they are scanned. In general they are taken in decreasing priority of being specified on:

1. The command line.
2. The specified defaults file (as supplied with the -d command line argument).
3. The system defaults file (as specified in /etc/default/vxassist).

Attributes from all sources have the same form. However, in some cases, command-line attributes change default behaviors in ways that attributes in the defaults file do not. In particular, references to mirroring (such as specifying a mirror count) or logging (such as specifying a log count or length) on the command line cause mirroring or logging to happen by default. If such attributes are specified in a defaults file, they indicate the attributes that would be used if mirroring or logging were enabled.

Storage Specifications

You can provide storage specifications to an allocation request with the vxassist command, to select certain types of disks for the allocation. Storage specification attributes have one of the following forms:
[!]diskname
  Specifies (or excludes) a disk. diskname refers to a disk media record name in a Veritas Volume Manager disk group.
[!]diskclass: instance
  Specifies (or excludes) a set of disks. diskclass names a particular type of disk grouping (for example, ctlr to indicate groups of disks on a single controller), and instance specifies which grouping of that type (for example c1). Each type of disk class has a particular format for specifying instances of the class.
diskclass:same
  Specifies that the allocation must be constrained to include disks from the same instance of the given class. For example, a storage specification of diskparam:same indicates that all disks selected must have the same basic parameters (tracksize, cylinder size, size, and revolutions-per-minute), but does not specify which specific parameters to use.
VxVM provides pre-defined disk classes based on internally-discovered attributes that are automatically associated with the disks. You can customize these pre-defined disk classes to create a customized alias name, or to customize the priority order for the pre-defined disk classes.
Note: Some of the properties are provided only by certain arrays. Depending on the configuration of a given system, only a subset of these disk classes may be available. Veritas Operations Manager (VOM) Storage Insight add-on must be installed for VxVM to discover the properties consgrpid, lunsize, luntier, poolid, raidgrp, raidtype, and replicated. Use the vxassist help space command on the system to display all available disk properties and their values, which can be used as storage specifications for vxassist operations.
You can also define your own customized, user-defined disk classes.
The pre-defined disk classes (and alternate names, or aliases, for those classes) are as follows:
activepaths
  Specifies disks with the given number of paths in enabled state. For example: 1, 2, 5.
array (alias: enclr e, enclr, enclosure)
  Specifies disks from a particular enclosure with the given name assigned by DMP. For example: eva4k6k0, emc_clariion0. The enclosure name is obtained using the command:

vxdmpadm listenclosure all
For example, the following command excludes disks in the enclosure enc1 from the operation.

vxassist make vol1 1024 layout=mirror nmirror=2 \
        !array:enc1
arrayasl Specifies disks from the arrays supported by the given Array Support Library (ASL). The ASL name has the form libvx*.so. For example: libvxCLARiiON.so, libvxhpalua.so.
arrayid Specifies disks from a particular enclosure with the given enclosure id. The id is of the form enclr_vid.enclr_pid.enclr_cab_sno, consisting of the enclosure vendor identifier, product identifier, and its unique cabinet serial number. For example: HP.HSV101.50001FE150095920.
arrayname Specifies disks from arrays of a particular model series. For example: EMC_CLARiiON, EVA4K6K.
arrayport
  Specifies disks connected to the given array port number. For example: 0, 1, A, B.
arrayportwwn
  Specifies disks connected a particular array port with the given unique WWPN or iSCSI portal address. For example: 50:00:1f:e1:50:09:59:2c.
arrayproduct
  Specifies disks from a particular enclosure with the given vendor name and product id. The arrayproduct is in the format enclr_vid.enclr_pid. For example: HP.HSV101.
arraytype Specifies disks from arrays with the given array type. For example: A/A, A/A-A, A/P.
blockdev Specifies a disk with the given absolute pathname for a DMP block device. For example: /dev/vx/dmp/emc_clariion0_80.
consgrpid Specifies disks from the given consistency group of arrays.
da Specifies a Veritas Volume Manager disk (VM disk) by device name (disk access record name). For example, c2t1d0 indicates a VM disk defined on disk c2t1d0.
device (alias: d)
  Specifies all VM disks on a physical disk. The physical disk is specified in the form c #t #d #, which indicates the controller, target ID, and disk number. Typically, only one VM disk device is created for each physical disk.
diskgeom (alias: geom)
  Specifies disks with a particular geometry. The geometry is specified in the form cyls.heads.sectors, to indicate the number of cylinders, heads, and sectors per track, of the disk. Many modern drives have variable geometries (or geometries that do not fit the standard conventions). For such drives, the geometry parameters used are whatever the drive reports.
Note: The diskgeom attribute is not supported for EFI disks.
diskparam Specifies disks with particular parameters. The parameters are specified in the form cyls.heads.sectors.rpm, to indicate cylinders, heads, sectors per track, and the number of revolutions per minute of the drive. As with the diskgeom parameter, the instances of the diskparam disk class depend upon the values reported by the drive, and may not be accurate.
Note: The diskparam attribute is not supported for EFI disks.
diskrpm (alias: rpm)
  Specifies disks with a given rotation speed in revolutions per minute (for example, 7200).
disktag (alias: tag, dtag)
  Specifies disks that have the specified disk tags. All disks with the given disk tags are selected for the operation. Note that disktag:same and disktag:confine are not supported. For example, the following command uses only disks with tag tier2 from mydg diskgroup.
vxassist -g mydg make vol3 1g disktag:tier2
dm (alias: disk)
  Specifies a VM disk by disk name (disk media record name) in the disk group of the volume. Specifying a disk class type of dm or disk is equivalent to giving the dm or disk storage specification with no class name.
failedpaths
  Specifies disks with the given number of paths in disabled state. For example: 0, 1.
hostport (alias: ctlr c, ctrl,
  cntrl, controller)
Specifies disks connected to a particular host HBA controller with the given name assigned by DMP. All disks accessible through the specified controller name(c#) are selected for the operation.
For example, consider a configuration where two enclosures are connected to a host. The first through controllers c1, c2 and the second through controllers c3, c4. The command:

vxassist make vol1 1024 !ctlr:c1
results in disks from the first enclosure being excluded from the operation because all disks in the first enclosure are accessible through c1 (and c2). The command:

vxassist make vol1 1024 !ctlr:c2
has the same effect (of excluding disks in the first enclosure) in the above configuration. The command:

vxassist make vol1 1024 layout=mirror nmirror=2 mirror=ctlr
results in the mirrors being placed across the controller groups c1, c2 and c3, c4.
hostportid
  Specifies disks connected to a particular host HBA controller with the given physical path assigned by the operating system. For example: 0/2/1/1.0x50001fe1500bb698.
hostporttype
  Specifies disks connected to host HBA controllers of the given transport protocol type. For example: fc, scsi, iscsi.
hostportwwn
  Specifies disks connected a particular host HBA controller with the given unique WWPN. For example: 21:00:00:1b:32:1a:bf:01.
lunid
  Specifies a disk with the given disk id. The id is of the form enclr_vid.enclr_pid.enclr_cab_sno.lun_sno, consisting of the enclosure vendor identifier, product identifier, unique cabinet serial number, and unique LUN serial number. For example: HP.HSV101.50001FE150095920.600508B400105EA8000150000A200000.
lunname Specifies a disk with the given disk name. The name is of the form enclr_name.lun_no, consisting of the enclosure name assigned by DMP, and a LUN number. For example: emc_clariion0.80.
lunsize Specifies disks with the given size in unit of MBs.
luntier Specifies disks from a particular tier level defined through VOM. For example: 1, 3.
luntype Specifies disks of the given LUN type, whether normal or snapshot etc. For example: snapshot, std, mirror.
mediatype (alias media)
  Specifies disks with the specified media type. All disks with the given mediatype are selected for the operation. Note that mediatype:same and mediatype:confine are not supported. For example, the following command uses only SSD disks from the mydg diskgroup

vxassist -g mydg make vol2 2048 mediatype:ssd


multipathed
  Specifies disks based on whether they have multiple paths. multipathed=yes specifies disks having multiple paths. multipathed=no specifies disks having a single path. The value can be yes or no.
paths Specifies disks with the given number of total paths. This includes the active as well as disabled paths, if any. For example: 1, 2, 5.
poolid Specifies disks from the given storage pool id on the arrays.
raidgrp Specifies disks from the given RAID group id on the arrays.
raidtype Specifies disks from the given type of RAID group on the arrays.
rawdev Specifies a disk with the given absolute pathname for a DMP character device. For example: /dev/vx/rdmp/emc_clariion0_80.
replicated Specifies disks which are replicated or non-replicated. The value can be yes or no.
replicatype
  Specifies disks with the given type of replication role, whether primary or secondary. The value can be rep_pri or rep_sec.
scsiversion
  Specifies disks which support the given SCSI revision version number. For example: 51, 52.
singlepathed
  Specifies disks based on whether they have a single path. singlepathed=yes specifies disks having a single path. singlepathed=no specifies disks having more than one path. The value can be yes or no.
site Specifies disks for which the same site name has been defined. For example, the following command only uses disks from the site building1.

vxassist make vol2 2048 layout=mirror site:building1
The site name is propagated to all subdisk, plex and log plex records in a volume.
snaptype Specifies disks with the given snapshot type, whether complete or space-optimized. The value can be normal or optimized.
target (alias: t)
  Specifies disks with the same SCSI target address on the same controller. The target is specified in the form c #t #. For example, t:c2t4 selects disks on target 4 of controller 2.
thintype Specifies disks with the given type of thin provisioning property. For example: thin, thinrclm, thick.
transport Specifies disks connected through the given transport protocol type. For example: FC, SCSI, iSCSI, Mixed.
udid Specifies a disk with the particular unique identifier assigned by VxVM. For example: BDGC%5FRAID%200%5FCK200064500510%5F600601609B5C1C008E7E8840
vendor Specifies disks from arrays of a particular array vendor name. For example: HITACHI, DGC.

The diskgeom and diskparam attributes are most often used in the form diskgeom:same and diskparam:same, to indicate that all disks used for creating a volume should have similar characteristics.

Other Attributes

Other attributes are of the form attribute= value. The attribute name in an attribute value pair never contains a colon, so it is possible to specify a disk that has an equal sign in its name using the storage specification dm:disk01=a. Without the dm: prefix, disk01=a would cause an error indicating an unrecognized attribute.

Defined attributes (and common aliases) are:
alloc= storage-spec[,storage-spec,...]
Specifies a list of storage specifications for a volume allocation operation. This is useful in a defaults file, so that all attributes (including storage specifications) are in the attribute= value format. Any number of storage specifications can be specified, separated by commas. More than one alloc attribute can be specified, in which case they are logically concatenated to form one longer list.
allsites={on|off}
  If multiple sites have been configured for a disk group and allsites is set to on, storage for separate plexes is allocated at all the sites for a volume that is being created. See the vxdg(1M) manual page.
If allsites=off is specified, separate plexes need not be configured at all the sites.
Note: The allsites attribute must be set to off for RAID-5 volumes in a site-consistent disk group.
col_switch= size1,size2[,...]
  When creating a volume using ordered allocation (-o ordered), specifies how much space to allocate from each listed disk to a concatenated column before switching to the next disk. The number of size arguments (switch points) determines how many disks are concatenated to form a column. size1 space is allocated from the first disk, size2 space is then allocated from the second disk, and so on. The switch points are applied identically to all columns in the volume being created.
For more information, see the Ordered Allocation section below.
comment= comment
  Specifies a comment to give to a volume when it is created. This comment can be displayed with vxprint -l, and can be changed, at a later time, with vxedit set. This attribute can be used with the make and snapshot operations.
columnnames= plex-name
  (alias: column, columns) Specifies the name of columns for an evacuate operation.
dcolen= number (alias: dcologlen)
  Specifies the length of each plex in a version 0 DCO volume. By default, specifying a length on the command line creates a DCO volume. The default length is 132 blocks, and any specified value should be an integral multiple of 33 blocks between 33 and 2112 blocks.
Note: The actual length may be rounded up to the value of the disk group alignment. See the vxdg(1M) manual page.
dcoversion={0|20}
  Specifies the type of DCO and DCO volume to be created for a volume when using the make command. A version 0 DCO supports Persistent FastResync. A version 20 DCO supports Persistent FastResync, instant snapshots, and DRL and sequential DRL logs within the DCO volume. If not specified, the default DCO version is 0.
Creating a version 20 DCO associates a DCO object with a volume, and associates a DCO volume with the DCO object. When created for a non-layered volume with at least 2 data plexes or for any layered volume, the default DCO volume has 2 DCO plexes (mirrors for redundancy) with a default region size of 64KB. A different region size can be specified by using the regionsz attribute. regionsize is an alias for regionsz.
diskgroup= disk-group (alias: dg)
Specifies the disk group for an operation. If a disk group is specified in a defaults file, then it just specifies the default disk group to use for the make operation, if no other means of determining the disk group can be used. If specified as a command line attribute, it has the same effect as specifying a disk group with the -g option (the operation is forced to apply to the given disk group).
excl=yes|y|on|true|no|n|off|false
  Sets or clears the EXCLUSIVE flag on the volume. A volume in exclusive open state can be opened by only one node in the cluster at a time. Multiple opens of an exclusive volume from the same node are permitted. Non-exclusive volumes can be simultaneously opened by more than one node. After a node opens an exclusive volume, every other node’s open attempt fails until the last close of the volume by the first opener. Such an open failure returns a EBUSY error code.
Note: Only available if the Veritas Volume Manager cluster feature is enabled.
fastresync=yes|y|on|true|no|n|off|false (alias: fmr)
  Enables or disables both Persistent and Non_Persistent FastResync. If enabled, FastResync is non-persistent if a DCO object and a DCO volume are not associated with a volume, and it is persistent if a DCO object and DCO volume are associated with a volume.
Note: A license is necessary to use the FastResync feature.
fstype= file-system-type
  Specifies the file system type for a new volume (this is used only with the make operation). The file system type for a volume is usually determined when needed by running the fstyp utility, but can be specified explicitly. See the fstyp(1M) manual page. The file system type parameter is used with the Veritas Volume Manager vxresize utility, as well as with volume snapshots, copies, and dissociates (to select features that are used with Veritas File System (VxFS)).
The file system type can be changed at any later time with the vxedit set operation.
group= owning-group
  Sets the group ID for a new volume. The group ID can be specified numerically or with a system group name. This attribute is used only with the make operation. By default, volumes are created with group 0.
init= initialization-type
  Specifies how to initialize a new volume or how to initialize the space on a grown volume. The initialization types are as follows:
active
  Initializes the volume or grown region without modifying the existing data on the plexes.
If init=active is specified during volume creation, VxVM sets all data plexes associated with the volume to the ACTIVE state, and enables the volume.
When SmartMove is enabled, init=active is the default initialization type. SmartMove can be enabled for all volumes, or only for volumes with Thin LUNs.
none Initializes the volume or grown region without modifying the existing data on the plexes.
If init=none is specified during volume creation, VxVM sets all data plexes associated with the volume to the EMPTY state. The volume remains DISABLED.
start Synonym for init=sync.
sync If the volume has multiple plexes, VxVM synchronizes the data between the plexes during initialization.
If init=sync is specified during volume creation, VxVM sets all data plexes associated with the volume to the ACTIVE state, and enables the volume immediately. The vxassist command exits when the data is synchronized. Specify the -b option to continue the synchronization process in the background.
If SmartMove is not enabled, init=sync is the default initialization type. If SmartMove is enabled only for thin LUNs, init=sync is the default for any LUN that is not thin-enabled.
zero Initializes the volume or grown region, and initializes the associated data plexes to zeroes. If the volume resides on thin reclaimable LUNs, VxVM also reclaims the space within the storage array.
Note: Reclamation is not applicable to raid5 volumes.
If init=zero is specified when growing a volume, VxVM only initializes the grown regions of the data plexes to zeroes.
If init=zero is specified during volume creation, VxVM sets all plexes associated with the volume to the ACTIVE state. After the initialization completes, VxVM enables the volume.
layout= layout-spec[,layout-spec,...]
  Specifies a plex layout type (RAID-5, mirrored, unmirrored, striped, cylinder alignment), and turn some features on and off (such as logging). The list of layout specifications is given in the Layout Specifications section. By default, unmirrored, non-striped volumes are created without a log.
length= size (alias: len)
  Specifies the length of the volume to create. You can also specify the length as a command-line argument. The attribute form enables you to specify the length in a rule, like any other attribute.
logdisk= disk[,disk,...]
  When creating volumes, specifies on which disks logs should be created. This attribute must be specified for RAID-5 volumes unless nolog or noraid5log is specified. For other types of volume layout, this attribute is optional, and if not specified any required logs are co-located with the data.
loglen= length
  Specifies a log length to use for dirty-region log (DRL) subdisks for mirrored volumes, for RAID-5 log plexes, or for DCM log plexes for replicated volumes. By default, specifying a log length on the command line creates a log. Associating a log with a mirrored or RAID-5 volume is sufficient to enable its use.
A DCM log must be enabled using the vxrlink command. This is because it is used for failure recovery and synchronization of replicated volumes.
logtype= type
  Specifies the type of log to use with a mirrored or replicated volume:
dcm Select DCM (data change map). This is the default log type for replicated volumes.
dco Select DCO (data change object). (This is used to implement Persistent FastResync, which is enabled by additionally specifying fastresync=on.) This creates a DCO object and a DCO volume with a plex size specified by the dcologlen attribute, and number of plexes specified using the ndcomirror attribute. The default names for the DCO object and DCO volume are vol_dco and vol_dcl respectively for a volume, vol.
If additional logging is required, it can be added to a volume by using the vxassist addlog command. DCO can co-exist with DCM logging for replicated volumes, or with DRL logging for mirrored volumes.
Note: Additional version 20 DCO maps can be added by using the vxsnap addmap command.
drl Select DRL (dirty region logging). This is the default log type for mirrored volumes.
Note: For volumes with version 20 DCOs, DRL is supported within the DCO volume itself.
drlseq
  Select sequential dirty region logging. This is identical to drl except that the number of dirty bits that can be set in the DRL is limited to the value of the tunable voldrl_max_seq_dirty (default value is 3). This is useful on volumes that are usually written to sequentially, such as database log volumes. Limiting the number of dirty regions allows for faster recovery if a crash occurs. However, if applied to volumes that are written to randomly, this type of logging can be a performance bottleneck as it limits the number of parallel writes that can be carried out.
Note: For volumes with version 20 DCOs, sequential DRL is supported within the DCO volume itself.
none Do not create a log.
region
  Select dirty region logging; identical to drl.
RAID-5 logging is automatically selected when a log plex is added to a RAID-5 volume; it has no specific logtype.
If logtype is not specified for a volume, vxassist attempts to create the optimal type of log.
If a mirrored volume is created using the thin provision lun, then the DCO version 20 type log is created by default. The default can be overridden by specifying the logype in the command line while creating the mirrored volume on thin disks.
logmap_len= size
  Specifies the maximum usable size in bytes of a DRL log to the addlog or make operations. This value is not constrained by any disk group alignment value.
max_nraid5column= number
  (alias: maxraid5columns, max_nraidcolumn, max_nraid5stripe, max_nraidstripe, maxraidcolumns, maxraid5stripes, maxraidstripes)
Specifies the default maximum number of stripe columns for a RAID-5 volume (default value is 8). The rules for selecting the default number of RAID-5 stripe columns are described in the nstripe attribute.
max_ncolumn= number (alias: maxcolumns, max_nstripe, maxstripes)
  Specifies the default maximum number of stripe columns, either for a RAID-5 volume (if max_nraid5stripe is not also specified) or for a striped plex (default value is 8 for volumes). The rules for selecting the default number of stripe columns is described in the nstripe attribute.
max_regionloglen= length (alias: maxregionloglen)
  Specifies the maximum default dirty region logging log subdisk length. If the user does not specify the dirty region log length for a volume, when creating the first log for a mirrored volume, vxassist uses a simple formula based on the log length. The default length is not be bounded by max_regionloglen (default value is 32k (32 kilobytes)).
maxgrow= maxgrow-percentage
  Sets the maxgrow value as a percentage for a cache volume that is used by space-optimized instant snapshots.
min_ncolumn= number (alias: mincolumns, min_nstripe, minstripes)
  Specifies the default minimum number of stripe columns for either a RAID-5 volume (if min_nraid5stripe is not also specified) or for a striped plex (default value is 2). The policy for selecting a default number of stripe columns is not allowed to select fewer than this number of columns.
min_nraid5column= number
  (alias: minraid5columns min_nraidcolumn, min_nraid5stripe, min_nraidstripe, minraidcolumns, minraid5stripes, minraidstripes)
Specifies the default minimum number of stripe columns for a RAID-5 volume (default value is 3). The policy for selecting a default number of RAID-5 stripe columns is not allowed to create a RAID-5 volume with fewer than min_nraid5stripe stripe columns.
Note: It is notionally possible to create a RAID-5 volume with 2 columns in VxVM. This is effectively a 2-way mirror with reads directed to alternate stripe units on the two columns. This can improve read performance over that of a unstriped 2-way mirror. However, such a layout is usually much more inefficient in CPU usage when writing to the volume and is not generally recommended.
mirror=[+|-]number|yes|no|diskclass[,...]
  Specifies various mirroring parameters. Multiple mirroring parameters can be given, each separated by a comma. A decimal number indicates a specific number of mirrors to create, when creating a mirrored volume (equivalent to nmirror= number). yes indicates that volumes should be mirrored by default (equivalent to layout=mirror). no indicates that volumes should be unmirrored by default (equivalent to layout=nomirror).
Any other mirroring parameters specify that volumes should be mirrored across instances of a particular disk class. In this case, the disk class can be array (enclr), arrayport, arrayproduct, hostport (ctlr), site, or vendor. For example, mirror=target specifies that volumes should be mirrored between SCSI target addresses, and mirror=ctlr specifies that disks in a mirror should not be on the same controller as disks in other mirrors within the same volume. Similarly, mirror=enclr specifies that disks in a mirror should not be from the same enclosure as disks in other mirrors within the same volume. Similarly, mirror=site specifies that the disks in a mirror should not be at the same site as other mirrors in the same volume.
Each mirror can contain disks from any number of instances of the disk class, but different mirrors cannot use disks from the same instance of the disk class.
The mediatype disk class is not supported with this attribute.
mirrorconfine= diskclass[,diskclass,...]
  Specifies a required list of disk classes for confining a mirror. If this attribute is specified, a single mirror is confined to (that is, allocated from) a group of disks belonging to a specific disk class. Multiple mirrors can be allocated from a single disk class. Multiple disk classes cannot be used to allocate a mirror. The following example specifies that each mirror is allocated from devices belonging to a single SCSI target; and multiple mirrors can be allocated from devices belonging to a single SCSI target:

mirrorconfine=scsi_target

See the description of the mirror= attribute for the list of disk classes supported with the mirrorconfine clause. The mediatype disk class is not supported with this attribute.
mode= permissions
  Specifies the permissions for the block and character device nodes created for a new volume. The mode can be specified either as an octal number or symbolically. A symbolic mode is specified using the syntax given in chmod(1). This attribute is used only with the make operation. The default mode for a volume gives read and write access only to the owner.
ndcmlog= number (alias: ndcmlogs, ndcms, ndcm)
  Specifies the number of DCM log plexes to create. The default number is 2 which creates a mirrored DCM log.
ndcomirror= number
  (alias: ndco, ndcos, ndcolog, ndcologs, ndcomirrors)
Specifies the number of DCO plexes to create for a DCO volume. A value for number of 2 or greater creates a mirrored DCO volume. For non-layered volumes, the default number is set to the lesser of the number of data plexes in the parent volume or 2. For layered volumes, the default value is 2. For volumes, the default value is 1.
nlog=[+|-]number, (alias: nlogs, logs)
  Specifies the number of logs to create, by default, for a RAID-5, mirrored, or replicated volume (assuming that logs are to be created). The number of logs to create can be specified independently for RAID-5 or mirrored volumes using the nraid5log and nregionlog attributes. For a relayout, this value can be preceded by a + or a - to add or subtract logs.
nmirror=[+|-]number, (alias: nmirrors, mirrors)
  Specifies the number of mirrors to create when mirroring a volume (default value is 2).
For a relayout, this value can be preceded by a + or a - to add or subtract mirrors. The value can also be specified as src_nmirror to preserve the number of mirrors.
This attribute is also used to specify the number of snapshot plexes to be attached to a volume by a snapstart operation, and the number of plexes in a snapshot volume for snapshot and snapback operations. For a snapshot, there must be number SNAPDONE plexes available in the original volume. For a snapback, there must be number snapshot plexes available in the snapshot volume (which must also be in the same disk group as the original volume).
nraid5log= number
  (alias: nraid5logs, raid5logs, nraidlog, nraidlogs, raidlogs)
Specifies the number of log plexes to create for a new RAID-5 volume (default value is 1). This attribute is used only with the make operation.
nraid5stripe=[+|-]number
  (alias: raid5stripes, nraid5column, nraidstripe, raidstripes, raidcolumns, nraidcolumn, raid5columns)
Specifies the number of stripe columns to use when creating a new RAID-5 volume (the default is to adjust the number to available disks). This attribute is used only with make and relayout operations. For the relayout operation, the default is the same number of stripe columns the volume has. For a relayout, this value can be preceded by a + or a - to add or subtract columns.
nregionlog= number (alias: nregionlogs, regionlogs, ndrl)
  Specifies the number of log subdisks to create for a new mirrored volume (default value 1). This attribute is used only with the make operation, and only if logging is requested for the volume.
nstripe=[+|-]number
  (alias: stripes, ncolumn, ncolumns, ncol, ncols, columns, cols)
Specifies the number of stripe columns to use when creating a new RAID-5 volume (with the make operation) or when creating a striped plex (with the make, relayout, mirror, and snapstart operations). The usual default behavior is to adjust to the number of available disks, but there are exceptions to this rule.
When creating an unmirrored striped volume, the default behavior is to adjust to half the number of available disks. This allows for the subsequent addition of a mirror to the volume. (A volume that does not have data redundancy cannot recover from disk failure.)
See the mirror= attribute for more information about mirroring parameters.
For relayout operations, the default behavior is to conserve the number of stripe columns in the volume. In such operations, the value of number can be preceded by + or - to specify a number of columns that are to be added or subtracted.
probe_granularity= size
  Specifies the granularity for the maxsize request. The default size value is 1 megabyte.
raid5_stripeunit= width
  (alias: raid5_stwid, raid5_st_width, raid5_stwidth, raid_st_width, raid_stripeunitsize, raid5_stripeunitsize, raid5_stripeunitwidth, raid_stwid, raid_stwidth, raid_stripeunit, raid_stripeunitwidth)
Specifies the stripe unit size to use when creating a new RAID-5 volume (default value is 16k (16 kilobytes)). This attribute is used only with the make operation.
raid5loglen= length (alias: raidloglen)
  Specifies the log length to use when adding the first log to a RAID-5 volume. The default is four times the full stripe width (the stripe unit size times the number of stripe columns).
regionloglen= length (alias: drlloglen, drllen)
  Specifies the log subdisk length to use when adding the first log subdisk to a mirrored volume. The default is chosen based on a formula involving the volume length.
regionsz= size (alias: regionsize)
  Specifies the size of each region that is tracked by a bit in the maps within a version 20 DCO volume. The value of size must be a power of 2 and be greater than or equal to 16k (16KB). The default value is 64k (64KB). The region size must also be no greater than half the value of the voliomem_maxpool_sz tunable. Otherwise, only a limited set of instant snapshot operations are permitted on the volume. For more information, see the vxsnap(1M) manual page.
Note: The region size can only be specified for version 20 DCOs. It cannot be specified for version 0 DCOs.
rule=rulename [,rulename,...]
  Takes attributes from the given rule names. Any attributes given in the current attribute set (even those before the rule=rulename attribute) take precedence over any attributes taken from the named rules. Rules can reference other rules in the same way. For details, see the section Rules.
rulefile=rulefile
  Names a file from which rules will be loaded. You can enter only one rule file name on the command line. Defaults files can reference another one. All rule set files are loaded, with rule names from each file overriding the others in the following order: compiled-in default /etc/default/vxsf_rules, any file named in /etc/default/vxassist, any rule file given on the command line either as an attribute or using -o rulefile=rulefile. For details, see the section Rules.
[rule] description=description_string
  A string which can be added, normally to a rule, which provides a description of the rule. For details, see the section Rules.
[volume] tier|place[ment][_]class=vxfs_dst_placement_class
  Creates a volume tag of the form vxfs.placement_class.vxfs_dst_ placement_class. You can only set one placement class on a volume.
remember|persist=[yes|no|none|rules|basic|user|merge|ignore|discard|update|replace|all|extended]
  Controls how attributes are persisted and how the current command might use or modify preexisting persisted attributes.
o yes is the same as basic and user.
o no is the same as none.
o basic persists a set of attributes which are known to be useful to preserve. These include storage specification attributes which do not name specific disks or LUNs, and mirror and stripe separations.
o rule simply persists rule names, which are then reread from the base rule definition files on subsequent operations.
o user persists only attributes given on the command line or that come from rules referenced directly or indirectly from the command line attributes.
o merge persists attributes that come from the command line as well as from any defaults files.
o all or extended persists everything.
o ignore can be given on subsequent commands, and ignores existing attributes for one command.
o discard can be given on subsequent commands, and discards and removes the current attributes from the volume.
o update can be given on subsequent commands, and merges the results of the persisted attributes with any changes from the command line and persists the results as updates to the persisted attributes.
o replace can be given on subsequent commands, and discards the current persisted attributes and stores new attributes based on those given in the current command line.
You can list persistent attributes in defaults files, in rules, or on the command line. In some cases, a persistent attribute given from one source can be canceled using another source by using a persistence type of notype; for example, norules. nouser is the same as merge and nomerge is the same as user. noupdate cancels a request to update rules. For details, see the section Rules.
[data|log]require= storage-spec[\,storage-spec,...]
  Specifies a list of storage specifications for a volume allocation operation. The storage chosen must match all of the requirements specified. If you specify datarequire, the storage specification applies only for data allocations. If you specify logrequire, the specification applies only to the log allocations.
siteconsistent={on|off}
  Controls whether a volume that is being created inherits the site-consistency attribute setting that is configured on the disk group. See the vxdg(1M) manual page. This setting is persistent, and does not change when the setting on the disk group is changed.
If set to on, a volume that is being created must have a number of mirrors equal to or a multiple of the number of sites. If off is specified, this requirement is removed.
By default, creating a site-consistent volume also creates an associated DCO volume, and enables Persistent FastResync on the volume. This allows faster recovery of the volume during site reattachment.
Note: Site consistency is not supported for RAID-5 volumes.
spare=no|only|yes
  Controls the use of spare disks when hot-relocation is performed.
If set to yes, spare disks are used. If necessary, free space is also used on disks that have been marked nohotuse=off. This is the default behavior.
If set to only, relocation storage is allocated using only spare disks.
If set to no, spare disks are not used. Alternatively, do not mark any of your disks as spares and do not mark them as available for use by hot relocation.
stripe= diskclass[,...]
  Specifies that volumes should be striped across instances of a particular disk class. See the description of the mirror= attribute for the list of disk classes supported with the stripe clause. For example, stripe=target specifies that volumes should be striped between SCSI target addresses. Each column can contain disks from any number of instances of the disk class, but different columns cannot use disks from the same instance of the disk class.
stripe-mirror-col-trigger-pt= size
  Specifies a size that triggers the creation of a stripe-mirror volume. If the size of the volume is greater than the size specified in this attribute, then a stripe-mirror volume is created.
stripe-mirror-col-split-trigger-pt= size
  Specifies a size that triggers the creation of a stripe-mirror-sd volume. If the size of each column is greater than the size specified in this attribute, then a stripe-mirror-sd volume is created.
stripe_stripeunit= width
  (alias: stripe_stwid, stripe_stwidth, stripe_st_width, stripe_stripeunitsize, stripe_stripeunitwidth)
Specifies the stripe unit size to use when creating striped plexes to attach to a volume. When attaching a new plex, the default is to use the same stripe unit size as any other striped plexes in the volume. If the volume does not already contain striped plexes, the default value is 64k (64 kilobytes).
stripeunit= width
  (alias: stwid, stripewidth, stwidth, st_width, stripe_width, stripeunitsize, stripeunitwidth)
Specifies the stripe unit size to use for either a RAID-5 volume or for striped plexes. stripeunit can be used to set the values for both raid5_stripeunit and stripe_stripeunit.
tag= tagname[=[ tagvalue]]
  Associates a tag name and optional tag value with a volume that is being created. Tag names and tag values are case-sensitive character strings of up to 256 characters, consisting of letters, numbers, dashes (-), underscores (_) or periods (.). A tag name should start with either a letter or an underscore.
The tag names "site", "udid" and "vdid" are reserved and should not be used. To avoid possible clashes with future product features, it is recommended that tag names do not start with any of the following strings: "asl", "be", "isp", "nbu", "sf", "symc", "vx" or "vxvm.attr.".
If not specified, a tag value is set to null.
More than one tag may be associated with a volume provided that each tag is uniquely named.
tmpsize= size
  Specifies the size of the temporary storage used to perform a relayout operation.
tmpalloc= storage-spec[,storage-spec,...]
  Specifies a set of storage specifications for the temporary storage required during a relayout operation. The format is the same as for the alloc attribute (a comma-separated list of storage specifications).
[data|log]use= storage-spec[\,storage-spec,...]
  Specifies a list of storage specifications for a volume allocation operation. The storage chosen must match one or more of the requirements specified. If you specify datause, the storage specification applies only for data allocations. If you specify loguse, the specification applies only to the log allocations.
user= owning-user
  Specifies the user ID for a new volume (default value is root). The user ID can be specified numerically or it can be a system login name. This attribute is used only with the make operation.
usetype= volume-usage-type
  Specifies the usage type to use when creating a new volume (default value is raid5 for RAID-5 volumes; otherwise fsgen is the default). This attribute is only used with the make operation. The usage type can also be specified using the -U option.
wantalloc= storage-spec[,storage-spec,...]
  Specifies a set of desired storage specifications. This is useful in a defaults file to indicate desired storage specifications that should be discarded if they fail to yield a reasonable set of allocations. The format is the same as for the alloc attribute (a comma-separated list of storage specifications).
For example, a defaults file can name a specific controller type to use for allocations, if possible. When all disks on that type of controller are full, other controllers are used.
wantmirror= diskclass[,diskclass,...]
  Specifies a desired list of storage specifications for mirror separation. This is useful in a defaults file to indicate a set of desired mirroring constraints that can be dropped if they fail to yield a reasonable set of allocations.
For example, a defaults file can specify that volumes should be mirrored between disks on different controllers in the system. The constraint is dropped if the set of volumes builds up in such a way that a new volume cannot be mirrored across controllers.
See the description of the mirror= attribute for the list of disk classes supported with the wantmirror clause.
wantmirrorconfine= diskclass[,diskclass,...]
  Specifies a desired list of storage specifications for mirror confinement. A single mirror is confined to (that is, allocated entirely from) a group of disks belonging to a single disk class.
This is useful in a defaults file to indicate a set of mirror confinement constraints that can be dropped if they fail to yield a reasonable set of allocations. For example, a defaults file can specify that a single mirror be confined to disks of the same vendor:

wantmirrorconfine=vendor

If vxassist cannot allocate a mirror from disk devices of one vendor, this constraint is dropped and the mirror is allocated from disk devices of other vendors.
See the mirror= attribute for the use classes supported for the wantmirrorconfine clause.
wantstripe= diskclass[,diskclass,...]
  Specifies a desired list of storage specifications for stripe separation. This is useful in a defaults file to indicate a set of desired stripping constraints that can be dropped if they fail to yield a reasonable set of allocations.
For example, a defaults file can specify that volumes should be striped between disks on different controllers in the system. The constraint is dropped if the set of volumes builds up in such a way that a new volume cannot be striped across controllers.
See the description of the mirror= attribute for the list of disk classes supported with the wantstripe clause.

Layout Specifications

The layout attribute specifies a comma-separated list of simple parameters (with no arguments) that apply to vxassist operations.

Two new layouts were added in the 3.0 release of VxVM: stripe-mirror and concat-mirror. In previous releases, whenever mirroring was used, the mirroring had to happen above striping or concatenation. Now there can be mirroring both above and below striping and concatenation.

Putting mirroring below striping mirrors each column of the stripe. If the stripe is large enough to have multiple subdisks per column, each subdisk can be individually mirrored. A similar concatenated volume would also mirror each subdisk individually. These new layouts enhance redundancy and reduce recovery time in case of an error. In a mirror-stripe layout, if a disk fails, the entire plex is detached, thereby losing redundancy on the entire volume. When the disk is replaced, the entire plex must be brought up to date. Recovering the entire plex can take a substantial amount of time. If a disk fails in a stripe-mirror layout, only the failing subdisk must be detached, and only that portion of the volume loses redundancy. When the disk is replaced, only a portion of the volume needs to be recovered.

The new volume layouts are more complex than the older volume layouts. Because the advantages of recovery time and improved redundancy are more important for larger volumes, it is best to continue using mirror-stripe and mirror-concat for most volumes and only use stripe-mirror and concat-mirror for very large volumes.

You can specify layout=mirror-stripe or layout=stripe-mirror to implement the desired layout. If you specify layout=stripe,mirror or layout=mirror,stripe, vxassist automatically determines the best layout for the volume. Unless there is a reason to implement a particular layout, it is best to let vxassist create the layout for each volume. Because the advantages of the new layouts are related to the size of the volume, vxassist creates the simplest configuration for smaller volumes and the more complex stripe-mirror for larger volumes.

The attributes stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt control the selection. They can be set in /etc/default/vxassist. Volumes that are smaller than stripe-mirror-col-trigger-pt are created as mirror-stripe, and volumes that are larger are created as stripe-mirror. If vxassist creates the stripe-mirror and the columns are larger than stripe-mirror-col-split-trigger-pt, the individual subdisks are mirrored instead of mirroring the columns of the stripe. By default, both of these attributes are set to one gigabyte.

The disk group must be created on a 3.0 or later release to use the new layouts, but older disk groups can be updated. See the vxdg upgrade command for more information on upgrading disk groups.

Defined layout specifications are:
concat-mirror
  Specifies that new volumes should be concatenated and mirrored. The mirroring is handled at each subdisk level. The attribute stripe-mirror-col-split-trigger-pt is applied.
contig, nocontig
  Disallows or allows (default) plexes, regular stripe columns, or RAID-5 stripe columns from using multiple regions of disk. If contig is specified, then plexes and columns must be allocated from a single contiguous region of disk. If this is not possible, the allocation fails. By default, vxassist tries to allocate space contiguously, but it can use multiple regions or multiple disks if required.
dgalign_checking={round|strict}
  Controls how vxassist handles attributes that are subject to disk group alignment restrictions. If set to strict, the volume length and values of attributes must be integer multiples of the disk group alignment value. If set to round (default), attribute values are rounded up as required.
diskalign, nodiskalign
  Aligns (default for all volumes except layered volumes) or does not align subdisks on cylinder boundaries. When alignment is not disabled, subdisks are created beginning on cylinder boundaries and are extended to match the end of a cylinder. Dirty region log subdisks, however, are not cylinder aligned (they are usually only 2 or 3 blocks long). Instead, when creating log subdisks, spaces are located from the available disks that could not be turned into regular subdisks because the spaces are not cylinder aligned. For example, once one cylinder is used for a log subdisk, that cylinder cannot be used to create an aligned data (or RAID-5 log) subdisk, so other log subdisks are created there until that cylinder fills up.
Note: vxassist always uses the disk group alignment value for EFI disks. If the value of the disk group alignment is greater than 1, specifying diskalign for EFI disks results in an error. The disk and cylinder alignment values for EFI disks are always set to 1. See vxdg(1M) for more information.
The diskalign attribute is not supported for layered volumes (concat-mirror and stripe-mirror).
grow, nogrow
  Allows a volume to grow during a relayout operation.
log, nolog Creates (or does not create) dirty region logs (for mirrored volumes) or log plexes (for RAID-5 volumes) when creating a new volume. This attribute can be specified independently for mirrored and RAID-5 volumes with the raid5log and regionlog layout specifications. The current implementation does not support the creation of DCM logs in the layout specification.
mirror, nomirror
  Specifies that new volumes should be mirrored or unmirrored (default) respectively. For mirror, the attribute stripe-mirror-col-split-trigger-pt is applied, and the attribute stripe-mirror-col-trigger-pt is ignored.
mirror-concat
  Specifies that new volumes should be mirrored. The mirroring is done at the volume level. The attributes stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt are ignored with this layout.
mirror-stripe
  Specifies that new volumes should be mirrored and striped. The mirroring is done at the volume level. The attributes stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt are ignored with this layout.
raid5 Specifies that new volumes should be RAID-5.
raid5log, noraid5log
  Creates (default) or does not create log plexes for RAID-5 volumes.
regionlog, noregionlog
  Creates or does not create (default) dirty-region log subdisks for mirrored volumes.
shrink, noshrink
  Allows or disallows shrinking of a volume during a relayout operation.
span, nospan
  Allows (default) or disallows plexes, regular stripe columns, or RAID-5 stripe columns from spanning multiple disks. If nospan is indicated, then plexes or columns can be formed from multiple regions of the same disk, but cannot be formed from more than one disk.
stripe, nostripe
  Specifies that new plexes should be striped or unstriped, respectively. When creating a new volume, the default is nostripe. When adding a new plex to an existing volume, the default is stripe if the volume already has one or more striped plexes, and nostripe in other cases. For stripe (when combined with mirror), the attributes stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt are applied.
stripe-mirror
  Specifies that new volumes should be striped and mirrored. The mirroring is handled at each column level or subdisk level depending on the attribute stripe-mirror-col-split-trigger-pt.
stripe-mirror-col
  Specifies that new volumes should be striped and mirrored. The mirroring is handled at each column level. The attributes stripe-mirror-col-trigger-pt and stripe-mirror-col-split-trigger-pt are ignored with this layout.
stripe-mirror-sd
  Specifies that new volumes should be striped and mirrored. The mirroring is handled at each subdisk level.

Ordered Allocation

If the -o ordered option is specified when creating a volume, vxassist uses the specified storage in the following order:
1. Concatenate disks.
2. Form columns.
3. Form mirrors.

For example, the following command creates a mirrored-stripe volume with 3 columns and 2 mirrors on 6 disks:


vxassist -o ordered make mirstrvol 10g layout=mirror-stripe \         nstripe=3 disk01 disk02 disk03 disk04 disk05 disk06

This command places columns 1, 2 and 3 of the first mirror on disk01, disk02 and disk03 respectively, and columns 1, 2 and 3 of the second mirror on disk04, disk05 and disk06 respectively.

For layered volumes, the same rules are used to allocate storage as for non-layered volumes. For example, the following command creates a striped-mirror volume with 2 mirrored columns:


vxassist -o ordered make strmirvol 10g layout=stripe-mirror \         nstripe=2 disk01 disk02 disk03 disk04

This command mirrors column 1 across disk01 and disk03, and column 2 across disk02 and disk04.

The col_switch attribute can additionally be used to specify how space on the disks is to be concatenated into columns. For example, the following command creates a mirrored-stripe volume with 2 columns:


vxassist -o ordered make strmir2vol 10g layout=mirror-stripe \         nstripe=2 col_switch=3g,2g disk01 disk02 disk03 disk04 \         disk05 disk06 disk07 disk08

This command allocates 3 gigabytes from disk01 and 2 gigabytes from disk02 to column 1, and 3 gigabytes from disk03 and 2 gigabytes from disk04 to column 2. The mirrors of these columns are then similarly formed from disks disk05 through disk08.

Other storage specification classes for controllers, enclosures, targets and trays can be used with ordered allocation. For example, the following command creates a 3-column mirrored-stripe volume between specified controllers:


vxassist -o ordered make mirstr2vol 10g layout=mirror-stripe \         nstripe=3 ctlr:c1 ctlr:c2 ctlr:c3 ctlr:c4 ctlr:c5 ctlr:c6

This command allocates space for column 1 from disks on controller c1, for column 2 from disks on controller c2, and so on.

FILES

/etc/default/vxassist System default settings file for volumes.

EXIT CODES

The vxassist utility exits with a non-zero status if the attempted operation fails. A non-zero 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 vxintro(1M) for a list of standard exit codes.

SEE ALSO

chmod(1), fstyp(1M), sync(1M), vxedit(1M), vxintro(1M), vxmake(1M), vxmend(1M), vxplex(1M), vxrelayout(1M), vxresize(1M), vxsd(1M), vxsnap(1M), vxtask(1M), vxvol(1M)


VxVM 6.0.1 vxassist (1M)