Home > Veritas Storage Foundation™ Volume Manager Manual Pages

VXDMPADM (1M)

Maintenance Commands

Table of contents


NAME

vxdmpadm - DMP subsystem administration

SYNOPSIS

vxdmpadm [-a|-r|-u] cfgapm module_name
[attr1=value1 [attr2=value2] ...]

vxdmpadm [-c | -f] disable
    {ctlr=ctlr_name [enclosure=enclr_name | type=enclr_type] |
    enclosure=enclr_name [portid=array_port_ID] |
    path=path_name [,\.\.\.] | pwwn=port_WWN}

vxdmpadm enable
    {ctlr=ctlr_name [enclosure=enclr_name | type=enclr_type] |
    enclosure=enclr_name [portid=array_port_ID] |
    path=path_name [,\.\.\.] | pwwn=port_WWN}

vxdmpadm exclude [vxvm|vxdmp] {all|product=VID:PID|
    ctlr=[!]ctlr_name | path=[!]path_name | dmpnodename=dmp_nodename [path=!path_name]}

vxdmpadm getattr {enclosure enclr_name|arrayname array_name|
    arraytype {A/A|A/P|}} {failovermode|iopolicy|partitionsize|
    recoveryoption|redundancy|tpdmode|use_all_paths}

vxdmpadm getctlr [all | ctlr_name]

vxdmpadm [-v] getdmpnode {enclosure=enclr_name [redundancy=value] |
    nodename=path_name | dmpnodename=dmp_device_name}

vxdmpadm getlungroup dmpnodename=dmp_device_name

vxdmpadm getportids {ctlr=ctlr_name | dmpnodename=dmp_device_name |
    enclosure=enclr_name | path=path_name}

vxdmpadm getsubpaths [-s {ctlr|dmpnode|enclosure|path}]
    [all|ctlr=ctlr_name| dmpnodename=dmp_device_name|
    enclosure=enclr_name [ctlr=ctlr_name | portid=array_port_ID] |
    pwwn=port_WWN | tpdnodename=tpd_node_name]

vxdmpadm gettpdnode nodename=path_name

vxdmpadm gettune [all | tunable]

vxdmpadm help [attribute]

vxdmpadm include [vxvm|vxdmp] {all | product=VID:PID | ctlr=[!]ctlr_name |
    path=[!]path_name | dmpnodename=dmp_nodename [path=!path_name]}

vxdmpadm iostat reset

vxdmpadm [-u {us|k|m|g|bytes}|-z|-q|-e] iostat show
    [groupby={dmpnode|ctlr|arrayport|enclosure}] [all|ctlr=ctlr_name |
    dmpnodename=dmp_device_name | enclosure=enclr_name [portid=portid]|pathname=path_name|
    pwwn=port_WWN][interval=seconds [count=N]]

vxdmpadm iostat start [memory=size]

vxdmpadm iostat stop

vxdmpadm list dmpnode [all | enclosure=enclosure_name |
    dmpnodename=dmpnode_name]

vxdmpadm listapm [all|module_name]

vxdmpadm listctlr [all|ctlr=ctlr_name|
    enclosure=enclr_name|type=enclr_type]

vxdmpadm listenclosure [all|enclr_name]

vxdmpadm setattr dmpnode dmpnodename name=new_dmpnodename

vxdmpadm setattr enclosure enclr_name failovermode={implicit|explicit}

vxdmpadm setattr {enclosure {enclr_name |all}|arrayname {array_name |all} |
    arraytype {array_type| all}}
    failover_policy={local|global}

vxdmpadm setattr enclosure enclr_name name=new_name

vxdmpadm setattr enclosure enclr_name tpdmode={native|pseudo}

vxdmpadm setattr {enclosure {enclr_name |all}|arrayname {array_name |all} |
    arraytype {array_type| all}}
    iopolicy={adaptive | adaptiveminq | balanced [partitionsize=block_shift] |
    minimumq | priority | round-robin | singleactive}
    [use_all_paths={yes|no}]

vxdmpadm setattr {enclosure {enclr_name |all}|arrayname {array_name |all} |
    arraytype {array_type|all}}
    recoveryoption={ default|fixedretry retrycount=N| nothrottle|throttle {iotimeout=seconds|
    queuedepth=N}|timebound iotimeout=seconds}

vxdmpadm setattr {enclosure {enclr_name |all}|arrayname {array_name |all} |
    arraytype {array_type| all}}
    redundancy=value

vxdmpadm setattr path path_name
    pathtype={primary | secondary | nomanual|
    standby | active | nopreferred | preferred [priority=N]}

vxdmpadm settune tunable=value

vxdmpadm start restore [interval=seconds] [policy= {check_all|check_disabled|check_periodic
    [period=cycles]|check_alternate}]

vxdmpadm stat errord

vxdmpadm stat restored

vxdmpadm stop restore


DESCRIPTION

The vxdmpadm utility is an administrative interface to the Veritas Volume Manager (VxVM) Dynamic Multipathing (DMP) facility. Use the vxdmpadm utility to perform administrative tasks or view information about DMP objects.

Specify the appropriate vxdmpadm keyword on the command line to select the action to perform, and use attributes to specify the objects on which the action is performed. See the KEYWORDS section for a description of the available operations.


KEYWORDS

cfgapm
Configures the specified array policy module (APM) together with any required attribute-value pairs that specify its operation. An APM is a dynamically loadable kernel module that is developed for the supported array by Symantec or by array vendors. DMP refers to the latest version of APM that is available to it. If the current APM does not support certain arrays, DMP refers to the APM with the next lowest version number.

One of the following options may be specified for configuring the APM:

-a
Adds a vendor-supplied APM and configures it.
-r
Removes an APM if it is not busy.
-u
Refers DMP to the specified APM. This allows an older version of an APM to be used instead of the latest version.
disable
Disables I/O on the specified paths, or on all the paths that are connected to a specified HBA controller, enclosure, or array port. (An array port can be specified either by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port.) This prevents DMP from issuing I/O requests through the specified paths, controller, enclosure, or array port. Depending on the number of pending I/O requests, this command can take some time to complete before returning control to the user. The command blocks until all pending I/O that was issued through the specified disk controller or path has been completed. In case of Active/Passive disk arrays, using disable can result in a failover I/O to the secondary paths.

Caution: Before detaching a system board, stop all I/O on the disk controllers or paths that are connected to the board. Run the vxdmpadm disable command, and then run Solaris Dynamic Reconfiguration (DR). Do this for every controller and path connected to the system board that is being detached.

The disable operation fails with an error if it is applied to a controller that is connected to the disk through a single path.

The following options may be used with the disable operation:

-c
Checks if the specified path is the last active path to the disk.
-f
Forcibly disables the last active path to the disk.

The disable operation supports the attributes enclosure and type to specify an unambiguous path. (A specified enclosure type must be an enclosure category that supported by DMP.)

enable
Enables I/O on previously disabled paths, or on all the paths that are connected to a specified HBA controller, enclosure, or array port. (An array port can be specified either by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port.) This operation succeeds only if the controller, enclosure, path or array port is accessible to the host and I/O can be performed on it. When connecting Active/Passive disk arrays, using enable results in a failback of I/O to the primary path.

The enable command can be run to allow I/O on the controllers or paths of a system board that was previously detached.

The enable operation supports the attributes enclosure and type to specify an unambiguous path. (A specified enclosure type must be an enclosure category that supported by DMP.)

getattr
Displays the default and current settings of various attributes such as the iopolicy, partitionsize, recoveryoption, or failovermode attributes for the specified enclosure, array or array type. See setattr for the complete list.

NOTE: The attributes tpdmode and failovermode are applicable for enclosures only.

NOTE: The use_all_paths attribute only applies to A/A-A arrays. For any other array types, specifying the use_all_paths attribute results in an error message being displayed.

getctlr
Lists the logical and physical names of a specified controller, or of all the controllers present in the system. In addition, the getctlr command lists the HBA manufacturer and port ID for the controller.
getdmpnode
Displays the DMP devices specified by enclosure, nodename, or the keyword all. The nodename keyword displays the DMP devices for the specified physical path. The path_name argument to nodename must be a valid path listed in the /dev/[r]dsk directory.
redundancy
Displays the DMP nodes in the specified enclosure where the number of active paths is less than the specified value. This option only applies when the enclosure keyword is specified.
-v
Displays in verbose mode. This option prints the extended attributes like the LUN serial number and the array volume id in addition to the standard getdmpnode output.
getlungroup
Displays the DMP devices in the same LUN group as the DMP device name specified with the dmpnodename keyword. A valid DMP device name is one that has an entry in the /dev/vx/[r]dmp directory.
getportids
Displays the array port ID and array port worldwide number (WWN) corresponding to the paths specified by the given HBA, DMP device, enclosure or pathname.
getsubpaths
Displays the paths controlled by the specified HBA controller, DMP node, array port or third-party driver (TPD) device. (An array port can be specified either by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port.) If all is specified, displays all the sub paths in the system.

A specified DMP node name must be a valid node in the /dev/vx/[r]dmp directory.

By default, the getsubpaths listing is sorted by enclosure name, dmpnode name and, within that, path name. Use the -s option to sort the output by the path name, dmpnode name, enclosure name, or host controller name.

When the tpdnodename attribute is used to specify a TPD device, the command displays the paths that DMP maintains for that device, provided that the coexistence of the TPD with DMP is supported by an appropriate ASL.

For A/P arrays, Primary and Secondary paths are marked as Primary or Secondary respectively. Enabled paths which are available for I/O are indicated by ENABLED(A) in the STATE column. A path that is enabled, but which is not currently available for I/O, is shown as ENABLED. For A/A arrays, all enabled paths that are available for I/O are shown as ENABLED(A). For any other arrays (A/P, A/A-A and ALUA), only one path is shown as ENABLED(A). The other paths are enabled but not available for I/O. DMP can use a group of paths (all primary or all secondary) for I/O, which are shown as ENABLED(A).

A path that is set as primary or secondary manually, rather than being discovered, is indicated by M in the PATH-TYPE column.

gettpdnode
Displays the third-party driver device that corresponds to the OS device path specified as the argument to the nodename attribute.
gettune
Returns the values of a specified DMP tunable parameter. If all is specified, a list of all the DMP tunables and their values is displayed.
help
Displays a detailed information about attributes used with a particular keyword.
iostat
Controls the gathering and display of I/O statistics, using the following keywords:
reset
Resets the counters to zero.
show
Displays I/O statistics for all controllers, or for a specified controller, OS device path, enclosure or path. The statistics displayed are the CPU usage and amount of memory per CPU used to accumulate statistics, the number of read and write operations, the number of kiloblocks that are read or written, and the average time in milliseconds or microseconds per kiloblock that is read or written.

The following options to the show keyword specify the units in which the data is displayed:

-u {k|m|g}
Display the number of system blocks transferred in kilo-, mega-, or giga- units.
-u bytes
Display the amount of data transferred in bytes.
-u us
Display the average read/write time in microsecond granularity.
-q
Displays the number of queued I/Os and pending I/Os.
-e
Displays the number of error I/Os. (I/Os that returned with an error from the layer under DMP.)

The following options are also available:

groupby
Displays the cumulative statistics information aggregated by dmpnode, controller, enclosure, or arrayport.
interval
Specifies the interval in seconds between displaying the I/O statistics. The actual interval may be smaller than the specified value if insufficient memory is available to record the statistics.
count
Specifies the number of times the I/O statistics are gathered at interval intervals.

start
Enables the gathering of I/O statistics. The memory attribute can be used to limit the maximum amount of memory that is used to record I/O statistics for each CPU. The default limit is 32KB per CPU.
stop
Disables the gathering of I/O statistics.

list
Displays all the detailed information about the requested DMP object. The currently supported DMP object for this command is dmpnode.
dmpnode
Displays the detailed information of a dmpnode such as the enclosure name, LUN serial number, port id information, and device attributes. The following options are available:
all
Displays the information of all the dmpnodes on a system.
dmpnodename=dmpnodename
Displays the detailed information of a given dmpnode. For convenience, a DMP node can also be specified by any of its subpath.
enclosure=enclosure name
Displays the information of all the dmpnodes in a given enclosure.
listapm
Displays all the APMs in the system. The list includes the file name of the module, the array type supported by the module, the APM name, APM version and status (loaded or not) of the module.

You can also specify a module name. The details of this module will be displayed.

listctlr
Lists the HBA controllers that are attached to the host. The option all lists all controllers on the host. You can specify the enclosure, ctlr, and type attributes to display a list of controllers on a particular disk array, on a particular controller, or on a particular enclosure type.
listenclosure
Displays all attributes of the specified enclosure.

The attribute all displays the attributes associated with all the enclosures connected to the host.

setattr
Assigns a new value for an attribute to the specified array, array type, enclosure or path.

The following attributes may be set for array names or enclosures, or for array types:

failover_policy
Sets the CVM failover policy. The failover policy can be local or global. If set to local, then a host in a cluster can fail over to a storage processor other than the one selected by the CVM protocol. If set to global, then a host in a cluster must fail over to the storage processor selected by the CVM protocol. If the host cannot fail over to the selected processor, the host must leave the cluster.
iopolicy
Determines the I/O policy that is used to balance the I/O load across multiple paths to a disk array or enclosure in a system. You can set policies for an enclosure (for example, HDS01), for all enclosures of a particular type (for example, HDS), or for all enclosures of a particular array type (for example, A/A for active/active and A/P for active/passive).

The policies that can be set are:

adaptive
In SAN environments, determines the paths that have the least delay, and schedules I/O on paths that are expected to carry a higher load. Priorities are assigned to the paths according on the response times of the paths. The priorities are periodically recalculated, so that priorities may change over time.
adaptiveminq
Similar to the adaptive policy, except that I/O is scheduled according to the length of the I/O queue on each path. The path with the shortest queue is assigned the highest priority.
balanced [partitionsize=block_shift]
Takes the track cache into consideration when balancing I/O across paths.

The size of the track cache may be specified using the partitionsize attribute. The size is in blocks and should be a power of 2. If the specified size is not a power of 2, it is rounded down to the nearest power of 2. A block_shift of 0 selects the default value of 2048 blocks (1MB).

minimumq
Uses a minimum I/O queue policy. I/O is sent on paths that have the minimum number of I/O requests in the queue.

This is the default policy for all types of arrays.

priority
Uses the priorities you have set to assign the paths. You can set the path priority using the vxdmpadm setattr path command. This policy is useful when the paths in a SAN have unequal performance, and you want to enforce load balancing manually.
round-robin
Sets a simple round-robin policy for I/O.
singleactive
I/O is channeled only through a single active path.

The optional attribute use_all_paths controls whether the secondary paths in an Asymmetric Active/Active (A/A-A) or an ALUA array are used for scheduling I/O requests in addition to the primary paths. The default setting is no, which disallows the use of the secondary paths.

recoveryoption
Specifies how DMP handles error detection and recovery. You can set recovery options for the paths to an enclosure (for example, HDS01), for the paths to all enclosures of a particular type (for example, HDS), or for the paths to all enclosures of a particular array type (for example, A/A for active/active and A/P for active/passive).

The following options specify how DMP performs throttling:

nothrottle
Turns off I/O throttling for a path. This is the default.
throttle
Enables I/O throttling for a path.DMP continues to schedule I/O requests on a path that seems to have failed, but on which an I/O error has not been reported, until the specified limit is reached. DMP then prevents new I/O requests being scheduled on the path, and attempts to reschedule failed I/O requests on other paths. Error detection can be based on the change in response times or pending I/O counts, as follows:
iotimeout
Specifies the limit as a timeout in seconds. The default value for iotimeout is 10 seconds.
queuedepth
Specifies a maximum number of queued I/O requests. The default value for queuedepth is 20.

Only one of iotimeout or queuedepth may be specified.

The following options specify how DMP handles intermittent I/O failures which require I/O retries:

fixedretry
DMP retries failed I/O requests on a path for the number of times specified by retrycount. The default value for retrycount is 5.
timebound
DMP retries failed I/O requests on a path for the time in seconds specified by iotimeout. The default value for iotimeout is 10 seconds.

The fixedretry and timebound options are mutually exclusive for a given path.

Use the default option to set the default values for both retry and throttle options. This corresponds to setting both fixedretry retrycount=5 and nothrottle on the paths.

The settings of iotimeout for throttle and for timebound are independent of each other.

redundancy
Specifies the minimum redundancy level, which is the minimum number of paths that should be active for the device or the enclosure. If the number of paths falls below the minimum redundancy level for the enclosure, a message is sent to the system console and also logged to the DMP log file. Also, notification is sent to vxnotify clients.

The value set for minimum redundancy level is stored in the dmppolicy.info file, and is persistent. The default value is 0.

The following attributes may be set for enclosures:

failovermode
Specifes the failover mode for ALUA compliant arrays. The failover mode can be implicit or explicit. If set to implicit, then LUN trespass happens automatically. If set to explicit, then DMP issues array-specific commands to cause LUN trespass.
name
Assigns a new name to the specified enclosure. Each enclosure must have a unique name. This name can be used to refer to the enclosure during any vxdmpadm operation.

The new name cannot be more than 25 characters. If a name exceeds this length, setattr fails with an error message.

tpdmode
Specifies the form of device names for devices that are controlled by third-party drivers (TPDs) whose coexistence is supported by an appropriate ASL. If set to pseudo (default), the TPD metadevice name is used. If set to native, the subpath with the smallest device number known to the operating system is used.

The following attribute may be set for DMP nodes:

name
Assigns a customized name to the specified DMP node. User-specified names are persistent even if names persistence is turned off.

The following attributes may be set for paths:

active
Changes a standby path to active.
nomanual
Restores the original primary or secondary attributes of a path.
nopreferred
Restores the normal priority of the path.
preferred [priority=N]
Specifies a preferred path, and optionally assigns a priority value to it. This indicates a path that is able to carry a higher I/O load. The priority value must be an integer greater than or equal to 1. Larger priority values indicate a greater load carrying capacity.

Note: Marking a path as a preferred path does not change its I/O load balancing policy.

primary
Assigns a path as primary for an Active/Passive disk array.
secondary
Assigns a path as secondary for an Active/Passive disk array.
standby
Marks a path as not available for normal I/O scheduling. This path is only invoked if there are no active paths available for I/O.

settune
Sets the value of the specified DMP tunable parameter. This value takes precedence over any value that is set using the method provided by the operating system. The changed value is persistent across reboots of the system.

The following tunable parameters may be changed for DMP:

dmp_cache_open
If set to on, the first open on a device that is performed by an array support library (ASL) is cached. This enhances the performance of device discovery by minimizing the overhead caused by subsequent opens by ASLs. If set to off, caching is not performed. The default setting is on.
dmp_daemon_count
The number of kernel threads that are available for servicing path error handling, path restoration and other DMP administrative tasks. The default number of threads is 10.
dmp_delayq_interval
The time interval for which DMP needs to delay the error processing in case the device is found to be busy. Some disk arrays may not be capable of accepting I/O requests immediately after failover. The default value is 15 seconds.
dmp_enable_restore
Starts the kernel thread that implements DMP path restoration.
dmp_failed_io_threshold
The time limit that DMP waits for an I/O error to be reported on the device. If the time taken to report the error exceeds this value, the device is marked as INSANE, I/O is avoided on the path, and any remaining failed I/O requests are returned to the application layer without performing any error analysis. The default value is 57600 seconds.
dmp_fast_recovery
Whether DMP should attempt to obtain SCSI error information directly from the HBA interface. When set to on, DMP uses the HBA interface, if supported, to obtain SCSI error information. This can potentially provide faster error recovery. If set to off, the HBA interface is not used. The default setting is on.
dmp_health_time
The time in seconds for which a path must stay healthy. If a path's state changes back from enabled to disabled within this time period, DMP marks the path as intermittently failing, and does not re-enable the path for I/O until dmp_path_age seconds elapse. The default value of dmp_health_time is 60 seconds. A value of 0 prevents DMP from detecting intermittently failing paths.
dmp_log_level
The level of detail to which DMP console messages are displayed. The following level values are defined:
1
Display critical DMP log messages. This is the default setting.
2
Display level 1 messages plus messages that relate to I/O throttling, suspected path failures, repeated path failures and DMP node migration.
3
Display level 1 and 2 messages plus messages that relate to I/O errors, I/O error analysis and path media errors.
4
Display level 1, 2 and 3 messages plus messages that relate to setting or changing attributes.
dmp_monitor_fabric
Controls whether the Event Source daemon (vxesd) uses the Storage Networking Industry Association (SNIA) HBA API. This API allows DDL to improve the performance of failover by collecting information about the SAN topology and by monitoring fabric events.

If set to on, DDL uses the SNIA HBA API. HBA API plugin libraries must be available on the system.

If set to off, the SNIA HBA API is not used.

The default setting is on.

dmp_path_age
The time for which an intermittently failing path needs to be monitored before DMP marks the path as healthy and once again attempts to schedule I/O requests on it. The default value is 300 seconds. A value of 0 prevents DMP from detecting intermittently failing paths.
dmp_pathswitch_blks_shift
The default number of contiguous I/O blocks (expressed as the integer exponent of a power of 2; for example 11 represents 2048 blocks) that are sent along a DMP path to an array before switching to the next available path. The default value of this parameter is set to 11 so that 2048 blocks (1MB) of contiguous I/O are sent over a DMP path before switching. This value may be overridden for individual enclosures by specifying a partitionsize value to the setattr iopolicy=balanced operation.
dmp_probe_idle_lun
Controls whether the path restoration kernel thread probes idle LUNs, which are VM disks on which no I/O requests are scheduled. Set this parameter to 1 (default) to probe idle LUNs, or to 0 to turn off this feature. The value of this tunable is only interpreted when DMP statistics gathering is enabled. Turning off statistics gathering also disables idle LUN probing.
dmp_queue_depth
The maximum number of queued I/O requests on a path during I/O throttling. The default value is 20. This value may be overridden for individual enclosures by specifying a queuedepth value to the setattr recoveryoption=throttle operation.
dmp_retry_count
The number of retries to attempt on a path if there is an I/O error. The default number of retries is 5. This value may be overridden for individual enclosures by specifying a fixedretry value to the setattr recoveryoption=fixedretry operation.
dmp_restore_cycles
Indicates the number of cycles between running the check_all policy, when the restore policy is check_periodic.
dmp_restore_interval
Indicates how frequently the restore daemon analyzes the condition of paths, specified as interval in seconds.
dmp_restore_policy
Specifies the policy used by the DMP path restoration thread. The value can be check_alternate, check_all, check_disabled, or check_periodic. See start restore for the descriptions of each restore policy.
dmp_scsi_timeout
Determines the timeout value to be set for any SCSI command that is sent via DMP. If the HBA does not receive a response for a SCSI command that it has sent to the device within the timeout period, the SCSI command is returned with a failure error code.

The default value is 30 seconds.

dmp_stat_interval
The time interval between gathering DMP statistics. The default and minimum value is 1 second.

start restore
Starts the kernel thread that implements DMP path restoration. This thread analyzes the condition of paths every interval seconds. The type of analysis depends on the specified policy:
check_all
The path restoration thread analyzes all paths in the system and revives the paths that are back online as well as disables the paths that are inaccessible.
check_alternate
The path restoration thread checks that each DMP device has at least some redundancy, that is, it has at least two healthy paths. It generates a notification if this condition is not met.

Note: This policy avoids inquiry commands on all healthy paths, and is less costly than check_all in cases where a large number of paths are available. This policy behaves the same as check_all if there are only two paths per DMP node.

check_disabled
The path restoration thread checks the condition of paths that were previously disabled due to hardware failures and revives them if they are back online.
check_periodic
The path restoration thread performs check_all at periodic intervals (specified by the number of cycles) and check_disabled in the remainder of the cycles.

Note: This policy may lead to periodic slowing down (due to check_all) if there are a large number of paths available.

Note: A polling interval must be specified. This specifies how often (in seconds) the DMP path restoration thread checks the status of disabled paths.

The period n is the number of times that check_disabled is invoked before check_all is invoked. This sequence is then repeated.

The integer value n of period can either be specified on the command line, or set as a tunable dmp_restore_cycles. The value of period specified on the command line takes precedence. If not specified in either of these ways, the default period is 10.

The default policy is check_disabled.

The path restoration thread does not change the disabled state of the path, if the administrator disabled the controller with the vxdmpadm disable command.

stat errord
Displays the number of error handling threads that are running.
stat restored
Displays the status of the automatic path restoration daemon, the interval of polling, and the policy used to check the condition of paths.
stop restore
Stops the DMP path restoration thread. Automatic path failback stops if the path restoration thread stops.

EXIT CODES

vxdmpadm exits with a zero status if the attempted operation succeeds. 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.


EXAMPLES

To display the usage message for all vxdmpadm commands, enter:

vxdmpadm help

To obtain a usage message for listctlr, use the command:


vxdmpadm help listctlr

To list all attributes of all HBA controllers on the system, enter:


vxdmpadm listctlr all

To list all attributes of all the enclosures on the system, enter:


vxdmpadm listenclosure all

To list all attributes of the disk array enc0, enter:


vxdmpadm listenclosure enc0

To disable I/O through the HBA controller c2, enter:


vxdmpadm disable ctlr=c2

If you then run the listctlr all command, the state of the controller c2 is shown as disabled. To enable the HBA controller c2, which was disabled by vxdmpadm disable ctlr=c2, enter:


vxdmpadm enable ctlr=c2

Executing listctlr all after this command shows the state of the controller c2 as enabled. The following examples outline the attributes supported by vxdmpadm listctlr.


vxdmpadm listctlr all
vxdmpadm listctlr type=ENC
vxdmpadm listctlr enclosure=enc0
vxdmpadm listctlr ctlr=c2

The following command lists all paths controlled by the DMP node c2t1d0s2.


vxdmpadm getsubpaths dmpnodename=c2t1d0s2

The following command obtains all paths through the HBA controller c2.


vxdmpadm getsubpaths ctlr=c2

The following command displays the DMP node that controls the node c3t2d1s2.


vxdmpadm getdmpnode nodename=c3t2d1s2

The following command displays the DMP nodes connected to the enclosure enc0.


vxdmpadm getdmpnode enclosure=enc0

The following command assigns a new name, VMGRP_1, to the enclosure enc0.


vxdmpadm setattr enclosure enc0 name=VMGRP_1
To set the policy to check_all, enter:

vxdmpadm start restore policy=check_all 

To start the path restoration thread with the default interval (300 seconds) and default policy (check_disabled), enter:


vxdmpadm start restore

To specify the interval of polling as 400 seconds, enter:


vxdmpadm start restore interval=400
The daemon checks the condition of the paths as specified by the policy attribute. To set the policy as check_all, enter:
vxdmpadm start restore policy=check_all

The following command stops the DMP path restoration thread; the thread is automatically started at system startup time with default attributes.

vxdmpadm stop restore

To list the intervals of the path restoration thread and the number of error handling threads, enter:


vxdmpadm stat restored
vxdmpadm stat errord

If a controller is disabled using the following command, the path restoration thread does not change the disabled state of the path through it.



vxdmpadm disable ctlr=
ctlr

To set the polling interval to 400 seconds, enter:


vxdmpadm start restore interval=400

Caution: The default polling interval is 300 seconds. Decreasing this interval can adversely affect system performance.

The check_periodic policy can be invoked as follows:


vxdmpadm start restore policy=check_periodic \
    interval=300
 period=
15


This example specifies that the DMP path restoration thread checks the status of disabled paths every 300 seconds. The interval is required.

The period=15 specifies that the path restoration thread invokes check_disabled fifteen times before check_all is invoked. This repeats.

If the integer value n of period is not specified on the command line, it can be set as a tunable dmp_restore_cycles. The value of period specified on the command line takes precedence. If not specified in either of these ways, the default period is 10.

The check_alternate policy can be invoked as follows:


vxdmpadm start restore policy=check_alternate \
    interval=
t

Set the I/O policy to round-robin for the enclosure SENA0, and to balanced for arrays of type SENA:

vxdmpadm setattr enclosure SENA0 iopolicy=round-robin
vxdmpadm setattr arrayname SENA iopolicy=balanced partitionsize=2048

Set c1t10d0s2 as a standby path:

vxdmpadm setattr path c1t10d0s2 pathtype=standby

Set c1t20d0s2 as an active path:

vxdmpadm setattr path c1t20d0s2 pathtype=active

Set c2t20d0s2 as a preferred path with priority 2:

vxdmpadm setattr path c2t20d0s2 pathtype=preferred priority=2

Reset the priority on path c2t20d0s2:

vxdmpadm setattr path c2t20d0s2 pathtype=nopreferred

Display operating system device names instead of TPD node names for the enclosure EMC0:


vxdmpadm setattr enclosure EMC0 tpdmode=native

Enable I/O throttling with a timeout of 400 seconds for all paths to the enclosure enc1:


vxdmpadm setattr enclosure enc1 recoveryoption=throttle iotimeout=400

Turn off I/O throttling for all paths to the enclosure enc1:


vxdmpadm setattr enclosure enc1 recoveryoption=nothrottle

Enable time-bound I/O recovery with a timeout of 600 seconds for all paths to the enclosure enc1:


vxdmpadm setattr enclosure enc1 recoveryoption=timebound iotimeout=600

Display details of the array ports that are configured for the enclosure enc2:


vxdmpadm getportids enclosure=enc2


NOTES

The terms disk array and enclosure are synonymous.

If only a Base VxVM license is installed, the vxdctl license command displays "DMP (single path enabled)". If either the Full VxVM license or an automatically generated license (such as that for the PHOTON array) is installed, the command displays "DMP (multipath enabled)".


FILES

/etc/vx/dmppolicy.info
Persistent file used to store DMP policy settings.

SEE ALSO

vxdctl(1M), vxintro(1M), vxdmp(7)

Last updated: 31 Aug 2008
Copyright ©2009 Symantec Corporation
All rights reserved.