vxmend - mend simple problems in configuration records
vxmend [-fprsvV] [-g diskgroup] [-o useopt] [-U usetype] clear field name ...
vxmend [-fprsvV] [-g diskgroup] [-o useopt] [-U usetype] fix how name [arg...]
vxmend [-fprsvV] [-g diskgroup] [-o useopt] [-U usetype] off name...
vxmend [-fprsvV] [-g diskgroup] [-o useopt] [-U usetype] on name...
The vxmend utility performs various Veritas Volume Manager (VxVM) usage-type-specific operations on subdisk, plex, and volume records. The first operand is a keyword that determines the specific operation to perform. The remaining operands specify the configuration objects to which the operation is applied.
Each invocation can be applied to only one disk group at a time. Any name operands will be used as record names to determine a default disk group, according to the standard disk group selection rules described in vxintro(1M). A specific disk group can be forced with -g diskgroup.
clear Clears specified utility fields for each named record in the disk group. An option of -v, -p, or -s specifies that the utility operates only on volumes, plexes, or subdisks, respectively. If a record is a volume, or is associated directly or indirectly with a volume, then the clear operation is performed according to rules used by the usage type appropriate for that volume. The field operand is a comma-separated list of keywords specifying fields to be cleared. Each keyword in the field operand is one of the following:
all Clears all clearable utility fields. Normally, this clears all of the persistent and non-persistent utility fields. A usage-type utility may choose a different set of fields, as appropriate. putil Clears all persistent utility fields. putil0, putil1, or putil2 Clears a specific persistent utility field. tutil Clears all non-persistent (temporary) utility fields. tutil0, tutil1, or tutil2 Clears a specific non-persistent utility field. Note: This particular functionality in conjunction with -f and -r flag can be used to recursively clear tutil0 fields in objects undergoing relayout, provided the top most object undergoing relayout is used to initiate it. Usage types may implement additional field keywords. A usage type may also limit the set of clear operations that can be performed. fix Changes the state of a volume or plex, named by the name operand, in a manner specified by the how string. The meaning of this operation is entirely usage-type specific. This operation applies only to volumes, or to plexes associated with a volume. Usage type rules appropriate for the volume are used to interpret the command. Additional arguments, after name, are interpreted according to rules defined by the usage type. off Puts the named plexes or volumes into an offline state. This operation can be applied only to volumes, or to plexes associated with a volume. Usage type rules appropriate for the volume are used to perform the operation. on Takes the named plexes or volumes out of the offline state. This operation can be applied only to volumes, or to plexes associated with a volume. Usage type rules appropriate for the volume are used to perform the operation.
-f Forces an operation that VxVM considers potentially dangerous or unnecessary. This enables a limited set of additional operations that would normally not be allowed. Some operations may be disallowed even with this flag. -g diskgroup Specifies the disk group for the operation, either by disk group ID or by disk group name. By default, the disk group is chosen based on the name operands. -o useopt Passes in usage-type-specific options to the operation. -p Requires that name operands name plex records. -r Operates recursively on records associated with the named volume or plex record. Operations applied to a volume will apply to the associated plexes and subdisks. Likewise, operations applied to a plex may be applied to the associated subdisks. -s Requires that name operands name subdisk records. -U usetype Limits the operation to apply to the specified usage type. Attempts to affect volumes with a different usage type will fail. -v Requires that name operands name volume records. -V Displays a list of utilities that would be called from vxmend, along with the arguments that would be passed. The -V performs a preview run so the utilities are not actually called.
The fsgen and gen usage types provide identical semantics for all operations of the vxmend utility. These usage types provide the following options as arguments to -o:
force Forces an operation that internal consistency checks consider to be questionable. This applies to attempts to use vxmend fix empty to uninitialize a volume that has plexes in the ACTIVE state, and also to attempts to disable the last plex, or the last complete (non-sparse) plex, in a volume. This flag is the same as -f. plex=plexname Requires that any named subdisk record be associated with a plex named plexname. Several plex options can be specified to indicate a list of allowed plex names. vol=volume Requires that any named plex or subdisk record be associated, directly or indirectly, with a volume named volume. Several vol options can be specified to indicate a list of allowed volume names. Limitations and extensions for the fsgen and gen usage types consist of the following: clear Keywords supported in the field operands include all standard keywords. In addition, a keyword of the form attnumber can be used to remove locks on a volume for a particular number of concurrent plex attach operations. For example, if the command:
vxplex att v1 v1-01
is aborted by pressing the INTERRUPT key (or equivalent) several times (which prevents a clean abort of the operation), you may have to clear the operation with:
vxmend clear tutil0 v1-01 vxmend clear att1 v1 vxplex dis v1-01
Interruption of the vxplex att command will display a list of commands to run, which will include the previous list. The number of plexes currently being attached, either directly or as part of a compound operation, is stored in the tutil0 field of the volume record as a string in the form ATTnumber. If the number drops to zero, the tutil0 field is cleared. Some operations on a volume require that the tutil0 field be cleared. Similar to the above example, if an online relayout operation, either started using vxassist or the vxrelayout command is aborted by pressing the the INTERRUPT key (or equivalent) several times (which prevents a clean abort of the operation), you may have to clear the operation with:
vxmend -rf clear tutil0 topmost_volume | topmost_plex Interruption of an online relayout operation will display a command similar to above with the appropriate object name to clear the tutil0 field. Online relayout stores a string RELAYOUT in the the tutil0 of all objects subject to relayout. If an interruption caused a cleanup to happen correctly, the tutil0 of all objects used by online relayout will be cleared, else they may or may not be cleared. The vxmend utility of the form mentioned above can be used to clear the tutil0 field. It is important that the object name used in the operation is the topmost object name or any object above the topmost object undergoing relayout. fix The fsgen and gen usage types support the following vxmend fix operations:
vxmend fix active plex Sets the state for the named plex to ACTIVE. The state for the volume is set to SYNC. The associated volume must be disabled, and the named plex must be in the STALE state. When starting a volume in the SYNC state, all ACTIVE plexes are enabled and are synchronized to have the same contents using a special read/write-back recovery mode. Any STALE plexes are then recovered by copying data from the ACTIVE plexes. vxmend fix clean plex Sets the state for the named plex to CLEAN. The associated volume must be disabled, the named plex must be in the STALE state, and the volume must have no additional plexes in the CLEAN state. A volume is not startable if one plex is in the CLEAN state and some plexes are in the ACTIVE state. Thus, several vxmend fix operations are normally used in conjunction to set all plexes in a volume to STALE and then to set one plex to CLEAN. A volume start operation will then enable the CLEAN plex and recover the STALE plexes by copying data from the one CLEAN plex. vxmend fix empty volume Sets the named volume and all of its associated plexes to the EMPTY state. The volume can then be re-initialized using vxvol start or any of the vxvol init operations. This operation requires that the volume be disabled. vxmend fix stale plex Sets the state for the named plex to STALE. The associated volume must be disabled, and the named plex must be ACTIVE or CLEAN. This operation names plexes that will be recovered by copying data from other plexes by a vxvol start operation. off The fsgen and gen usage types allow volumes and plexes to be specified as operands to vxmend off. A volume can be named only if -r is used to specify recursion, and is applied to all plexes in the volume. Taking a plex offline disables the plex and sets its state to OFFLINE. Taking the last enabled read-write plex in a volume offline, or the last complete plex (if there are additional sparse plexes), normally fails unless -f is specified. Applying this operation to a volume also disables the volume, and does not require use of -f. If a volume is disabled, then the checks for the last plex or the last complete plex are performed on the set of ACTIVE and CLEAN plexes, rather than on enabled read-write plexes. An offline state for a plex can be cleared with vxmend on. Alternatively, an offline plex can be reattached with vxplex att. on The fsgen and gen usage types allow volumes and plexes to be specified as operands to vxmend on. The vxmend on operation applied to a plex will change the OFFLINE state for a plex to STALE, allowing the plex to be recovered by the next vxvol start or vxvol startall. Applying vxmend on to a volume will change the state for all associated OFFLINE plexes to STALE.
The raid5 usage type provides the following options as arguments to -o:
force Forces an operation that internal consistency checks consider to be questionable. Operations not documented in this section are not supported for the raid5 usage type. In particular, off and on are not supported, but other fsgen and gen operations are supported. In addition, the raid5 usage type also supports the following extension: fix In addition to those supported for the fsgen and gen usage types, the raid5 usage type supports the following vxmend fix operation:
vxmend fix unstale subdisk Clears any flags indicating that a subdisk of a RAID-5 plex is invalid. This prevents the data on the subdisk from being recovered when the volume is started.
The vxmend 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.
/usr/lib/vxvm/type/usetype/vxmend The utility that performs vxmend operations for a particular volume usage type.
vxintro(1M), vxplex(1M), vxvol(1M)