vxmend(1M)
vxmend - mend simple problems in configuration records 
 Synopsis
vxmend [ -g diskgroup ] [ -U usetype ] [ -o useopt ] [ -Vfrvps ] clear field name ... 
vxmend [ -g diskgroup ] [ -U usetype ] [ -o useopt ] [ -Vfrvp ] fix how name [ arg ... ] 
vxmend [ -g diskgroup ] [ -U usetype ] [ -o useopt ] [ -Vfrvp ] off name ... 
vxmend [ -g diskgroup ] [ -U usetype ] [ -o useopt ] [ -Vfrvp ] on name ... 
 Description
The vxmend utility performs various Volume Manager 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, due to
internal implementation constraints.  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. 
These are the recognized operation keywords: 
- clear 
 -  Clear 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 
 - Clear 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 
 - Clear all persistent utility fields. 
 - tutil 
 - Clear all non-persistent (temporary) utility fields. 
 - putil0, putil1, or putil2 
 - Clear a specific persistent utility field. 
 - tutil0, tutil1, or tutil2 
 - Clear a specific non-persistent utility field. 
- Usage types may implement additional field keywords.  A usage type may also limit the set of clear 
operations that can be performed. 
  
  - fix 
 - Change 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 
 - Put 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 
 -  Take 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. 
 
 Options
- -g diskgroup 
 - Specify 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. 
 - -U usetype 
 - Limit the operation to apply to the specified  usage type.  Attempts to affect volumes with a different 
usage type will fail. 
 - -o useopt 
 - Pass in usage-type-specific options to the operation. 
 - -V 
 -  Display a list of utilities that would be called from vxmend, along with the arguments that would 
be passed.  The -V performs a ``mock run'' so the utilities are not actually called. 
 - -f 
 -  Force an operation that the Volume Manager 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. 
 - -r 
 -  Operate 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. 
 - -v 
 -  Require that name operands name volume records. 
 - -p 
 -  Require that name operands name plex records. 
 - -s 
 -  Require that name operands name subdisk records. 
 
 Fsgen and gen usage types
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 
 - Force 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. 
 - vol=volume 
 - Require 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. 
 - plex=plexname 
 - Require 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. 
 
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 above-mentioned 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. 
  
- fix 
 -  The fsgen and gen usage types support the following vxmend fix operations: 
- vxmend fix clean plex 
 - Set 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 active plex 
 - Set 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 stale plex 
 - Set 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. 
 - vxmend fix empty volume 
 - This operation 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. 
 
 - 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.  Offlining a plex disables the plex and sets its state to OFFLINE. 
- Offlining the last enabled read-write plex in a volume, or the last complete plex (if there are 
additional sparse plexes) will normally fail 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. 
 
 RAID-5 usage type
The raid5 usage type provides the following options as arguments to -o: 
- force 
 - Force an operation that internal consistency checks consider to be questionable. 
 
In addition to the operations supported for the fsgen and gen usage types, 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 
 - Clear any flags indicating that a subdisk of a RAID-5 plex is invalid. This will prevent the 
data on the subdisk from being recovered when the volume is started. 
 
 
 Exit codes
The vxmend utility exits with a nonzero status if the
attempted operation fails.  A nonzero exit code is not a complete
indicator of the problems encountered but rather denotes the first
condition that prevented further execution of the utility. 
See
vxintro(1M)
for a list of standard exit codes. 
 Files
- /etc/vx/type/usetype/vxmend 
 - The utility that performs vxmend operations for a particular volume usage type. 
 
 References
vxintro(1M),
vxmend(1M),
vxplex(1M),
vxvol(1M)
 
© 1997 The Santa Cruz Operation, Inc.  All rights reserved.