test veritas logo


vxdmpadm(1M)

NAME

vxdmpadm - DMP subsystem administration

SYNOPSIS

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

vxdmpadm config check file=filename

vxdmpadm [-d] config load file=filename

vxdmpadm config dump [file=filename]

vxdmpadm config reset

vxdmpadm config show

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

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

vxdmpadm exclude {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|...}} {dmp_lun_retry_timeout|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 {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|h|H}|-q|-e] [-z] [-s] iostat show
    [filter] [interval=seconds [count=N]]

vxdmpadm [-u {us|k|m|g|bytes|h|H}] [-z] [-s] iostat show
    [groupby=criteria ] [filter] [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 enclosure enclr_name dmp_lun_retry_timeout=interval

vxdmpadm setattr enclosure enclr_name failovermode={implicit|explicit}

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

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] |
    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 stop restore

DESCRIPTION

The vxdmpadm utility is an administrative interface to the Dynamic Multi-Pathing (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.

The vxdmpadm utility supports automatic command completion for the bash shell. While entering the command, press Tab to complete the command line as far as possible, and display the next valid options for the command. A value in brackets indicates a user-specified value. Platform-specific options are not supported with command completion in this release.

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 Veritas 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.
config Set or retrieve the DMP tunable parameters and certain attributes in one command. This option enables you to configure the host in one command. You can use the same DMP tunable template on multiple hosts to ensure configuration consistency. You can also define multiple templates to handle different I/O loads for the same host. To create a new template from an existing DMP configuration, use the dump command to collect the current settings for the DMP tunables and attributes in a file. You can manually edit the configuration file to add, delete, or change the DMP tunables and attributes. The following keywords are available:
check Validates the DMP configuration file for syntax errors. This option verifies that the values specified for each tunable parameter or attribute are valid.
dump Retrieves all of the DMP tunable parameters and attributes, either to the standard output or to the specified filename.
load Loads all of the tunables from the specified configuration file. The configuration file is verified before the values are changed. DMP does not load sections that have errors. If an enclosure, array type, or array name is not visible on the target host, DMP does not load the respective sections. By default, the load command does not display an error if the section is skipped because the enclosure, array type, or array name is not visible on the host. To display sections that are skipped because the enclosure, array type, or array name is not visible, specify the -d option to the load command.
reset Resets the DMP configuration to the default values.
show Shows the name and location of the last configuration file loaded into the system.
disable Disables I/O on the specified paths, or on all the paths that are connected to the specified HBA controller, DMP node, enclosure, or array port. You can specify an array port either by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port. The disable operation prevents DMP from issuing I/O requests through the specified paths, controller, enclosure, or array port. If you specify both an HBA controller and an array port, DMP disables I/O on the specific portion of the Storage Area Network (SAN). 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.
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, DMP node, enclosure, or array port. You can specify an array port either by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port. The enable 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 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.)
exclude The exclude operation suppresses devices from VxVM (DMP) based on the criteria that you specify. When a device is suppressed, DMP does not claim the device so that the device is not available for VxVM to use.
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 and ALUA 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 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 was manually disabled by the system administrator displays as DISABLED(M). A path that failed displays as DISABLED.
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.
include Re-includes a path that was previously excluded from VxVM control.
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 the specified filter. 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 filter can be:
all
ctlr=ctlr_name
dmpnodename=dmp_device_name
enclosure=enclosure_name [portid=array_portid] [ctlr=ctlr_name]
pathname=path_name
pwwn=array_port_wwn [ctlr=ctlr_name]
The following options to the show keyword specify the units in which the data is displayed:
-u {b|bytes|k|m|g}
  Display the amount of data transferred in bytes, kilobytes, megabytes, or gigabytes.
-u {h|H} Display the number of data transferred in the highest possible unit.
-u us Display the average read/write time in microsecond granularity.
-e Displays the number of error I/Os. (I/Os that returned with an error from the layer under DMP.)
-q Displays the number of queued I/Os and pending I/Os.
-s Displays per second I/O statistics.
-z Filters out entities for which all data entries are zero. This option is especially useful in a configuration that contains many passive device paths. The statistics are only displayed for the active paths.
The following options are also available:
groupby=criteria
  Displays the cumulative statistics information aggregated by the specified criteria. The criteria can be: arrayport, ctlr, dmpnode, or enclosure.
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 attribute values
Note: The setattr command accepts the attribute values in the format that the getattr output displays, in addtion to the format shown below. For example, "Single-Active" is accepted as a synonym for "singleactive".
The following attributes may be set for array names or enclosures, or for array types:
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 is based on the change in response times, as follows:
iotimeout
  Specifies the limit as a timeout in seconds. The default value for iotimeout is 10 seconds.

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:
dmp_lun_retry_timeout
  Specifies a retry period for handling transient errors that are not handled by the HBA and the SCSI driver. The default value of the dmp_lun_retry_timeout tunable parameter is 30.
In special cases when DMP needs to handle the transient errors, configure DMP to delay failing the I/Os to the application for a short interval. Set the dmp_lun_retry_timeout tunable parameter to a non-zero value to specify the interval. If all of the paths to the LUN fail and I/Os need to be serviced, then DMP probes the paths every five seconds for the specified interval. If the paths are restored within the interval, DMP detects this and retries the I/Os. DMP does not fail I/Os to a disk with all failed paths until the specified dmp_lun_retry_timeout interval or until the I/O succeeds on one of the paths, whichever happens first.
failovermode
  Specifies 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_display_alua_states
  Display asymmetric access state in path-type column instead of primary/secondary for ALUA arrays. The default setting is on.
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 messages that relate to critical events like memory allocation failures and system call errors on DMP devices, I/O errors on DMP devices, enabling or disabling DMP nodes, DMP paths, controllers, failovers and failbacks. This is the default setting.
2 Display level 1 messages plus messages that relate to I/O errors on a path, I/O error analysis, repeated path failures, I/O retry, SCSI errors, or adding, removing, or migrating DMP devices.
3 Display level 1 and 2 messages plus messages that relate to I/O throttling, suspected paths, insane paths, or idle paths.
4 Display level 1, 2 and 3 messages plus messages that relate to I/O statistics, path attributes, enclosure attributes, tunable parameters, minimum redundancy levels, ALUA LUN ownership changes, or enabling or disabling a cache.
5 or higher
  Display level 1, 2, 3 and 4 messages plus more verbose messages.
dmp_low_impact_probe=[on|off]
  Sets the low impact path probing feature to on or off. The default is on.
dmp_lun_retry_timeout
  Specifies a retry period for handling transient errors that are not handled by the HBA and the SCSI driver. In general, no such special handling is required. Therefore, the default value of the dmp_lun_retry_timeout tunable parameter is 30. When all paths to a disk fail, DMP fails the I/Os to the application. The paths are checked for connectivity only once.
In special cases when DMP needs to handle the transient errors, configure DMP to delay failing the I/Os to the application for a short interval. Set the dmp_lun_retry_timeout tunable parameter to a non-zero value to specify the interval. If all of the paths to the LUN fail and I/Os need to be serviced, then DMP probes the paths every five seconds for the specified interval. If the paths are restored within the interval, DMP detects this and retries the I/Os. DMP does not fail I/Os to a disk with all failed paths until the specified dmp_lun_retry_timeout interval or until the I/O succeeds on one of the paths, whichever happens first.
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_monitor_ownership
  Determines whether the ownership monitoring is enabled for ALUA arrays. When this tunable is set to on, DMP polls the devices for LUN ownership changes. The polling interval is specified by the dmp_restore_interval tunable. The default value is on. When the dmp_monitor_ownership tunable is off, DMP does not poll the devices for LUN ownership changes.
dmp_native_support
  Determines whether DMP does multipathing for native devices. Set the tunable to on to have DMP do multi-pathing for native devices. The default setting is off.
For more information about using DMP with native devices, see the Storage Foundation Administrator’s Guide.
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 9 so that 512 blocks (256k) 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_probe_threshold=[1-100]
  Sets the number of paths, belonging to the idle or failed subset within a subpaths failover group (SFG), that will be probed by the restore daemon. The default value is 5.
dmp_restore_cycles
  Indicates the number of cycles between running the check_all policy, when the restore policy is check_periodic. The default is 10.
dmp_restore_interval
  Indicates how frequently the restore daemon analyzes the condition of paths, specified as interval in seconds. The default is 300.
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. The default is check_disabled.
dmp_restore_state
  Specifies the state of the DMP path restoration thread. The value can be one of the following:
enabled Enables and starts the DMP path restoration thread.
disabled Stops and disables the DMP path restoration thread.
stopped Stops the DMP path restoration thread until the next device discovery cycle.
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 20 seconds.
dmp_sfg_threshold
  Sets the status of the subpaths failover group (SFG) feature. The value indicates the number of path failures that are required before the paths in the SFG are marked as SUSPECT. If dmp_sfg_threshold is set to 0, the feature is turned off. The default value of this tunable is 1.
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.
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

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


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 sdf as a standby path:


vxdmpadm setattr path sdf pathtype=standby


Set sdj as an active path:


vxdmpadm setattr path sdj pathtype=active


Set sdn as a preferred path with priority 2:


vxdmpadm setattr path sdn pathtype=preferred priority=2


Reset the priority on path sdn:


vxdmpadm setattr path sdn 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)

Storage Foundation Administrator’s Guide


VxVM 7.3.1 vxdmpadm(1M)