vxmend(ADM)


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(ADM). 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(ADM) 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(ADM), vxmend(ADM), vxplex(ADM), vxvol(ADM)



Copyright © 2005 The SCO Group, Inc. All rights reserved.