Veritas Multipath
Veritas Multipath
Veritas Multipath
Linux
6.0
February 2012
Legal Notice
Copyright 2012 Symantec Corporation. All rights reserved. Symantec, the Symantec logo, Veritas, Veritas Storage Foundation, CommandCentral, NetBackup, Enterprise Vault, and LiveUpdate are trademarks or registered trademarks of Symantec corporation or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The product described in this document is distributed under licenses restricting its use, copying, distribution, and decompilation/reverse engineering. No part of this document may be reproduced in any form by any means without prior written authorization of Symantec Corporation and its licensors, if any. THE DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. SYMANTEC CORPORATION SHALL NOT BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH THE FURNISHING, PERFORMANCE, OR USE OF THIS DOCUMENTATION. THE INFORMATION CONTAINED IN THIS DOCUMENTATION IS SUBJECT TO CHANGE WITHOUT NOTICE. The Licensed Software and Documentation are deemed to be commercial computer software as defined in FAR 12.212 and subject to restricted rights as defined in FAR Section 52.227-19 "Commercial Computer Software - Restricted Rights" and DFARS 227.7202, "Rights in Commercial Computer Software or Commercial Computer Software Documentation", as applicable, and any successor regulations. Any use, modification, reproduction release, performance, display or disclosure of the Licensed Software and Documentation by the U.S. Government shall be solely in accordance with the terms of this Agreement.
Technical Support
Symantec Technical Support maintains support centers globally. Technical Supports primary role is to respond to specific queries about product features and functionality. The Technical Support group also creates content for our online Knowledge Base. The Technical Support group works collaboratively with the other functional areas within Symantec to answer your questions in a timely fashion. For example, the Technical Support group works with Product Engineering and Symantec Security Response to provide alerting services and virus definition updates. Symantecs support offerings include the following:
A range of support options that give you the flexibility to select the right amount of service for any size organization Telephone and/or Web-based support that provides rapid response and up-to-the-minute information Upgrade assurance that delivers software upgrades Global support purchased on a regional business hours or 24 hours a day, 7 days a week basis Premium service offerings that include Account Management Services
For information about Symantecs support offerings, you can visit our Web site at the following URL: www.symantec.com/business/support/index.jsp All support services will be delivered in accordance with your support agreement and the then-current enterprise technical support policy.
Hardware information Available memory, disk space, and NIC information Operating system Version and patch level Network topology Router, gateway, and IP address information Problem description:
Error messages and log files Troubleshooting that was performed before contacting Symantec Recent software configuration changes and network changes
Customer service
Customer service information is available at the following URL: www.symantec.com/business/support/ Customer Service is available to assist with non-technical questions, such as the following types of issues:
Questions regarding product licensing or serialization Product registration updates, such as address or name changes General product information (features, language availability, local dealers) Latest information about product updates and upgrades Information about upgrade assurance and support contracts Information about the Symantec Buying Programs Advice about Symantec's technical support options Nontechnical presales questions Issues that are related to CD-ROMs or manuals
Documentation
Product guides are available on the media in PDF format. Make sure that you are using the current version of the documentation. The document version appears on page 2 of each guide. The latest product documentation is available on the Symantec Web site. https://sort.symantec.com/documents Your feedback on product documentation is important to us. Send suggestions for improvements and reports on errors or omissions. Include the title and document version (located on the second page), and chapter and section titles of the text on which you are reporting. Send feedback to: [email protected]
Contents
About Veritas Dynamic Multi-Pathing ............................................. How DMP works .......................................................................... How DMP monitors I/O on paths ............................................... Load balancing ...................................................................... DMP in a clustered environment ............................................... Multiple paths to disk arrays .......................................................... Device discovery .......................................................................... Disk devices ............................................................................... Disk device naming in DMP ............................................................ About operating system-based naming ....................................... About enclosure-based naming .................................................
Chapter 2
35 39 40 41
Contents
Chapter 3
Chapter 4
Contents
Third-party driver coexistence ................................................. 91 How to administer the Device Discovery Layer ............................ 93 Changing the disk device naming scheme ....................................... 105 Displaying the disk-naming scheme ......................................... 106 Regenerating persistent device names ...................................... 107 Changing device naming for TPD-controlled enclosures .............. 107 Discovering the association between enclosure-based disk names and OS-based disk names ............................................................. 109
Chapter 5
Chapter 6
Chapter 7
10
Contents
DMP tunable parameters and attributes that are supported for templates ............................................................................ 130 DMP tunable parameters ............................................................. 131
Chapter
Understanding DMP
This chapter includes the following topics:
About Veritas Dynamic Multi-Pathing How DMP works Multiple paths to disk arrays Device discovery Disk devices Disk device naming in DMP
12
Veritas Volume Manager (VxVM) volumes and disk groups can co-exist with LVM volumes and volume groups, but each device can only support one of the types. If a disk has a VxVM label, then the disk is not available to LVM. Similarly, if a disk is in use by LVM, then the disk is not available to VxVM.
13
Active/Passive (A/P)
Allows access to its LUNs (logical units; real disks or virtual disks created using hardware) via the primary (active) path on a single controller (also known as an access port or a storage processor) during normal operation. In implicit failover mode (or autotrespass mode), an A/P array automatically fails over by scheduling I/O to the secondary (passive) path on a separate controller if the primary path fails. This passive port is not used for I/O until the active port fails. In A/P arrays, path failover can occur for a single LUN if I/O fails on the primary path. This policy supports concurrent I/O and load balancing by having multiple primary paths into a controller. This functionality is provided by a controller with multiple ports, or by the insertion of a SAN switch between an array and a controller. Failover to the secondary (passive) path occurs only if all the active primary paths fail.
Active/Passive in explicit failover mode The appropriate command must be issued to the or non-autotrespass mode (A/P-F) array to make the LUNs fail over to the secondary path. This policy supports concurrent I/O and load balancing by having multiple primary paths into a controller. This functionality is provided by a controller with multiple ports, or by the insertion of a SAN switch between an array and a controller. Failover to the secondary (passive) path occurs only if all the active primary paths fail.
14
Active/Passive with LUN group failover For Active/Passive arrays with LUN group failover (A/P-G) (A/P-G arrays), a group of LUNs that are connected through a controller is treated as a single failover entity. Unlike A/P arrays, failover occurs at the controller level, and not for individual LUNs. The primary controller and the secondary controller are each connected to a separate group of LUNs. If a single LUN in the primary controllers LUN group fails, all LUNs in that group fail over to the secondary controller. This policy supports concurrent I/O and load balancing by having multiple primary paths into a controller. This functionality is provided by a controller with multiple ports, or by the insertion of a SAN switch between an array and a controller. Failover to the secondary (passive) path occurs only if all the active primary paths fail.
An array policy module (APM) may define array types to DMP in addition to the standard types for the arrays that it supports. Veritas Dynamic Multi-Pathing uses DMP metanodes (DMP nodes) to access disk devices connected to the system. For each disk in a supported array, DMP maps one node to the set of paths that are connected to the disk. Additionally, DMP associates the appropriate multi-pathing policy for the disk array with the node. Figure 1-1 shows how DMP sets up a node for a disk in a supported disk array. Figure 1-1 How DMP represents multiple physical paths to a disk as one node
VxVM Host
c1 c2
15
Figure 1-2 shows an example where two paths, sdf and sdm, exist to a single disk in the enclosure, but VxVM uses the single DMP node, enc0_0, to access it. Figure 1-2 Example of multi-pathing for a disk enclosure in a SAN environment
Host
c1 c2
Mapped by DMP
sdf Disk enclosure enc0 Disk is sdf or sdm depending on the path
See About enclosure-based naming on page 21. See Changing the disk device naming scheme on page 105.
sdm
See Discovering and configuring newly added disk devices on page 87.
16
The restore kernel task is woken periodically (typically every 5 minutes) to check the health of the paths, and to resume I/O on paths that have been restored. As some paths may suffer from intermittent failure, I/O is only resumed on a path if the path has remained healthy for a given period of time (by default, 5 minutes). DMP can be configured with different policies for checking the paths. See Configuring DMP path restoration policies on page 82. The statistics-gathering task records the start and end time of each I/O request, and the number of I/O failures and retries on each path. DMP can be configured to use this information to prevent the SCSI driver being flooded by I/O requests. This feature is known as I/O throttling. If an I/O request relates to a mirrored volume, VxVM specifies the FAILFAST flag. In such cases, DMP does not retry failed I/O requests on the path, and instead marks the disks on that path as having failed. See Path failover mechanism on page 16. See I/O throttling on page 17.
17
I/O throttling
If I/O throttling is enabled, and the number of outstanding I/O requests builds up on a path that has become less responsive, DMP can be configured to prevent new I/O requests being sent on the path either when the number of outstanding I/O requests has reached a given value, or a given time has elapsed since the last successful I/O request on the path. While throttling is applied to a path, the new I/O requests on that path are scheduled on other available paths. The throttling is removed from the path if the HBA reports no error on the path, or if an outstanding I/O request on the path succeeds. See Configuring the I/O throttling mechanism on page 79.
Load balancing
By default, Veritas Dynamic Multi-Pathing (DMP) uses the Minimum Queue I/O policy for load balancing across paths for Active/Active (A/A), Active/Passive (A/P), Active/Passive with explicit failover (A/P-F) and Active/Passive with group failover (A/P-G) disk arrays. Load balancing maximizes I/O throughput by using the total bandwidth of all available paths. I/O is sent down the path which has the minimum outstanding I/Os. For A/P disk arrays, I/O is sent down the primary paths. If all of the primary paths fail, I/O is switched over to the available secondary paths. As the continuous transfer of ownership of LUNs from one controller to another results in severe I/O slowdown, load balancing across primary and secondary paths is not performed for A/P disk arrays unless they support concurrent I/O. For A/P, A/P-F and A/P-G arrays, load balancing is performed across all the currently active paths as is done for A/A arrays.
18
You can change the I/O policy for the paths to an enclosure or disk array. See Specifying the I/O policy on page 68.
19
Device discovery
Device discovery is the term used to describe the process of discovering the disks that are attached to a host. This feature is important for DMP because it needs to support a growing number of disk arrays from a number of vendors. In conjunction with the ability to discover the devices attached to a host, the Device Discovery service enables you to add support for new disk arrays. The Device discovery uses a facility called the Device Discovery Layer (DDL). The DDL enables you to add support for new disk arrays without the need for a reboot. See How to administer the Device Discovery Layer on page 93.
Disk devices
The device name (sometimes referred to as devname or disk access name) defines the name of a disk device as it is known to the operating system. Such devices are usually, but not always, located in the /dev directory. Devices that are specific to hardware from certain vendors may use their own path name conventions. VxVM supports the disk partitioning scheme provided by the operating system. The syntax of a device name is hdx[N] or sdx[N], where x is a letter that indicates the order of EIDE (hd) or SCSI (sd) disks seen by the operating system, and N is an optional partition number in the range 1 through 15. An example of a device name is sda7, which references partition 7 on the first SCSI disk. If the partition number is omitted, the device name indicates the entire disk.
20
Devices that are specific to hardware from certain vendors may have different path names. For example, the COMPAQ SMART and SMARTII controllers use device names of the form /dev/ida/cXdXpX and /dev/cciss/cXdXpX. Dynamic Multi-Pathing (DMP) uses the device name to create metadevices in the /dev/vx/[r]dmp directories. DMP uses the metadevices (or DMP nodes) to represent disks that can be accessed by one or more physical paths, perhaps via different controllers. The number of access paths that are available depends on whether the disk is a single disk, or is part of a multiported disk array that is connected to a system. You can use the vxdisk utility to display the paths that are subsumed by a DMP metadevice, and to display the status of each path (for example, whether it is enabled or disabled). See How DMP works on page 12. Device names may also be remapped as enclosure-based names. See Disk device naming in DMP on page 20.
Devices with device names longer than 31 characters always use enclosure-based names. By default, DMP uses enclosure-based naming. You can change the disk device naming scheme if required. See Changing the disk device naming scheme on page 105.
21
DMP assigns the name of the DMP meta-device (disk access name) from the multiple paths to the disk. DMP sorts the names by sd or hd number, and selects the smallest number. For example, sd1 rather than sd2.This behavior make it easier to correlate devices with the underlying storage. By default, OS-based names are not persistent, and are regenerated if the system configuration changes the device name as recognized by the operating system. If you do not want the OS-based names to change after reboot, set the persistence attribute for the naming scheme. See Changing the disk device naming scheme on page 105.
22
Figure 1-3
Example configuration for disk enclosures connected via a fibre channel switch
Host c1
Disk enclosures
enc0
enc1
enc2
In such a configuration, enclosure-based naming can be used to refer to each disk within an enclosure. For example, the device names for the disks in enclosure enc0 are named enc0_0, enc0_1, and so on. The main benefit of this scheme is that it allows you to quickly determine where a disk is physically located in a large SAN configuration. In most disk arrays, you can use hardware-based storage management to represent several physical disks as one LUN to the operating system. In such cases, VxVM also sees a single logical disk device rather than its component disks. For this reason, when reference is made to a disk within an enclosure, this disk may be either a physical disk or a LUN. Another important benefit of enclosure-based naming is that it enables VxVM to avoid placing redundant copies of data in the same enclosure. This is a good thing to avoid as each enclosure can be considered to be a separate fault domain. For example, if a mirrored volume were configured only on the disks in enclosure enc1, the failure of the cable between the switch and the enclosure would make the entire volume unavailable. If required, you can replace the default name that DMP assigns to an enclosure with one that is more meaningful to your configuration. See Renaming an enclosure on page 77.
23
Figure 1-4 shows a High Availability (HA) configuration where redundant-loop access to storage is implemented by connecting independent controllers on the host to separate switches with independent paths to the enclosures. Figure 1-4 Example HA configuration using multiple switches to provide redundant loop access
Host c1 c2
Disk enclosures
enc0
enc1
enc2
Such a configuration protects against the failure of one of the host controllers (c1 and c2), or of the cable between the host and one of the switches. In this example, each disk is known by the same name to VxVM for all of the paths over which it can be accessed. For example, the disk device enc0_0 represents a single disk for which two different paths are known to the operating system, such as sdf and sdm. See Disk device naming in DMP on page 20. See Changing the disk device naming scheme on page 105. To take account of fault domains when configuring data redundancy, you can control how mirrored volumes are laid out across enclosures.
Enclosure-based naming
By default, DMP uses enclosure-based naming. Enclosure-based naming operates as follows:
24
All fabric or non-fabric disks in supported disk arrays are named using the enclosure_name_# format. For example, disks in the supported disk array, enggdept are named enggdept_0, enggdept_1, enggdept_2 and so on. You can use the vxdmpadm command to administer enclosure names. See Renaming an enclosure on page 77. See the vxdmpadm(1M) manual page.
Disks in the DISKS category (JBOD disks) are named using the Disk_# format. A disk partition is indicated by appending s# to the name, where # is the partition number. For example, Disk_0s5 and Disk_0s6 indicate the extended partitions that are used for the private and public regions of the sliced disk Disk_0. ACME_0s5 indicates the extended partition for the simple disk, ACME_0. For CDS disks, partition 3 is used for both the private and public regions. Disks in the OTHER_DISKS category (disks that are not multi-pathed by DMP) are named using the hdx[N] format or the sdx[N] format. Encapsulated root disks always use the hdx[N] format or the sdx[N] format.
By default, enclosure-based names are persistent, so they do not change after reboot. If a CVM cluster is symmetric, each node in the cluster accesses the same set of disks. Enclosure-based names provide a consistent naming system so that the device names are the same on each node. To display the native OS device names of a DMP disk (such as mydg01), use the following command:
# vxdisk path | grep diskname
See Renaming an enclosure on page 77. See Disk categories on page 90.
Enclosure based naming with the Array Volume Identifier (AVID) attribute
By default, DMP assigns enclosure-based names to DMP meta-devices using an array-specific attribute called the Array Volume ID (AVID). The AVID provides a unique identifier for the LUN that is provided by the array. The ASL corresponding to the array provides the AVID property. Within an array enclosure, DMP uses the Array Volume Identifier (AVID) as an index in the DMP metanode name. The DMP metanode name is in the format enclosureID_AVID. With the introduction of AVID to the EBN naming scheme, identifying storage devices becomes much easier. The array volume identifier (AVID) enables you to
25
have consistent device naming across multiple nodes connected to the same storage. The disk access name never changes, because it is based on the name defined by the array itself. Note: DMP does not support AVID with PowerPath names. If DMP does not have access to a devices AVID, it retrieves another unique LUN identifier called the LUN serial number. DMP sorts the devices based on the LUN Serial Number (LSN), and then assigns the index number. All hosts see the same set of devices, so all hosts will have the same sorted list, leading to consistent device indices across the cluster. In this case, the DMP metanode name is in the format enclosureID_index.
# vxddladm get namingscheme NAMING_SCHEME PERSISTENCE LOWERCASE USE_AVID ====================================================== Enclosure Based Yes Yes Yes
26
Chapter
About setting up DMP to manage native devices Migrating LVM volume groups to DMP Migrating to DMP from EMC PowerPath Migrating to DMP from Hitachi Data Link Manager (HDLM) Migrating to DMP from Linux Device Mapper Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM) Adding DMP devices to an existing LVM volume group or creating a new LVM volume group Displaying the native multi-pathing configuration Removing DMP support for native devices
28
Setting up DMP to manage native devices Migrating LVM volume groups to DMP
turning on the dmp_native_support tunable migrates any LVM volume groups that are not in use onto DMP devices. The dmp_native_support tunable enables DMP support for LVM, as follows:
LVM volume groups If the LVM volume groups are not in use, turning on native support migrates the devices to DMP devices. If the LVM volume groups are in use, then perform the steps to turn off the devices and migrate the devices to DMP. Veritas Volume Manager (VxVM) devices Native support is not enabled for any device that has a VxVM label. To make the device available for LVM, remove the VxVM label. VxVM devices can coexist with native devices under DMP control. Devices that are multi-pathed with Third-party drivers (TPD) If a disk is already multi-pathed with a third-party driver (TPD), DMP does not manage the devices unless you remove TPD support. After removing TPD support, turn on the dmp_native_support tunable to migrate the devices. If LVM volume groups are constructed over TPD devices, then perform the steps to migrate the LVM volume groups onto DMP devices.
The first time this operation is performed, the command reports if a volume group is in use, and does not migrate those devices. To migrate the volume group onto DMP, stop the volume group. Then execute the vxdmpadm settune command again to migrate the volume group onto DMP. To verify the value of the dmp_native_support tunable, use the following command:
# vxdmpadm gettune dmp_native_support Tunable ---------------------------dmp_native_support Current Value Default Value -------------------------------on off
Setting up DMP to manage native devices Migrating to DMP from EMC PowerPath
29
To set up DMP, migrate the devices from the existing third-party device drivers to DMP. Table 2-1 shows the supported native solutions and migration paths. Table 2-1 Supported migration paths Native solution
EMC PowerPath
Operating system
Linux
Migration procedure
See Migrating to DMP from EMC PowerPath on page 29. See Migrating to DMP from Hitachi Data Link Manager (HDLM) on page 30. See Migrating to DMP from Linux Device Mapper on page 31.
Linux
Linux
Need to stop applications Need to stop the VCS services if using VCS
Stop the applications that use the PowerPath meta-devices. In a VCS environment, stop the VCS service group of the application, which will stop the application.
3 4
Unmount any file systems that use the volume group on the PowerPath device. Stop the LVM volume groups that use the PowerPath device.
# lvchange -a n lvpath
30
Setting up DMP to manage native devices Migrating to DMP from Hitachi Data Link Manager (HDLM)
Remove the disk access names for the PowerPath devices from VxVM.
# vxdisk rm emcpowerXXXX
Verify that the PowerPath device has been removed from PowerPath control.
# powermt display dev=all
Need to stop applications Need to stop the VCS services if using VCS The procedure involves one or more host reboots
To remove devices from Hitachi Data Link Manager (HDLM) and enable DMP
1 2
Stop the applications using the HDLM meta-device Unmount any file systems that use the volume group on the HDLM device.
Setting up DMP to manage native devices Migrating to DMP from Linux Device Mapper
31
Stop the LVM volume groups that use the HDLM device.
# lvchange -a n lvpath
4 5
Uninstall the HDLM package. Turn on the DMP support for the LVM volume group.
# vxdmpadm settune dmp_native_support=on
6 7 8 9
Reboot the system. After the reboot, DMP controls the devices. If there were any LVM volume groups on HDLM devices they are migrated onto DMP devices. Mount the file systems. Restart the applications.
Need to stop applications Need to stop the VCS services if using VCS The procedure involves one or more host reboots
1 2 3
Stop the applications that use Device Mapper devices. Unmount all the file systems that use Device Mapper devices. Disable all the volumes on Device Mapper devices.
# lvchange -a n lvname
32
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
Update the /etc/multipath.conf file to blacklist all device mapper devices. This step disables multi-pathing for all devices.
# Blacklist all devices by default. blacklist { devnode "*" }
Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
This release of DMP supports using DMP devices with Oracle Automatic Storage Management (ASM). DMP supports the following operations:
See Enabling Dynamic Multi-Pathing (DMP) devices for use with Oracle Automatic Storage Management (ASM) on page 33. See Removing Dynamic Multi-Pathing (DMP) devices from the listing of Oracle Automatic Storage Management (ASM) disks on page 34.
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
33
See Migrating Oracle Automatic Storage Management (ASM) disk groups on operating system devices to Dynamic Multi-Pathing (DMP) devices on page 35.
Enabling Dynamic Multi-Pathing (DMP) devices for use with Oracle Automatic Storage Management (ASM)
Enable DMP support for ASM to make DMP devices visible to ASM as available disks. To make DMP devices visible to ASM
For example:
# vxdmpraw enable oracle dba eva4k6k0_1
34
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
The vxdmpraw enable command creates raw devices in the /dev/raw/* directory, corresponding to the DMP devices. Query the raw devices for devices with major number 201 and minor number between 241 to 255. There are 16 entries, since disks in Linux can have a maximum of 16 partitions. For example:
# raw -qa | grep "major 201, minor 241" /dev/raw/raw54: bound to major 201, minor 241
The above output indicates that /dev/raw/raw54 corresponds to the partition /dev/vx/rdmp/eva4k6k0_1s1. Similarly, /dev/raw/raw55 corresponds to /dev/vx/rdmp/eva4k6k0_1s2 and so forth. Finally, /dev/raw/raw69 corresponds to /dev/vx/rdmp/eva4k6k0_1s15.
From ASM, confirm that ASM can see these new devices.
SQL> select name,path,header_status from v$asm_disk; NAME PATH HEADER_STATU --------------------------------------------------... ....... .... /dev/raw/raw53 CANDIDATE ... ....... ....
Removing Dynamic Multi-Pathing (DMP) devices from the listing of Oracle Automatic Storage Management (ASM) disks
To remove DMP devices from the listing of ASM disks, disable DMP support for ASM from the device. You cannot remove DMP support for ASM from a device that is in an ASM disk group. To remove the DMP device from the listing of ASM disks
1 2
If the device is part of any ASM disk group, remove the device from the ASM disk group. As root user, disable DMP devices for use with ASM.
# vxdmpraw disable diskname
For example:
# vxdmpraw disable eva4k6k0_1
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
35
Migrating Oracle Automatic Storage Management (ASM) disk groups on operating system devices to Dynamic Multi-Pathing (DMP) devices
When an existing ASM disk group uses operating system native devices as disks, you can migrate these devices to Veritas Dynamic Multi-Pathing control. If the OS devices are controlled by other multi-pathing drivers, this operation requires system downtime to migrate the devices to DMP control. After this procedure, the ASM disk group uses the migrated DMP devices as its disks. "From ASM" indicates that you perform the step as the user running the ASM instance. "As root user" indicates that you perform the step as the root user. To migrate an ASM disk group from operating system devices to DMP devices
1 2 3
From ASM, identify the ASM disk group that you want to migrate, and identify the disks under its control. From ASM, dismount the ASM disk group. If the devices are controlled by other multi-pathing drivers such as PowerPath or Device Mapper, migrate the devices to DMP control. Perform these steps as root user. See "Setting up DMP to manage native devices"
4 5
As root user, use the raw command to remove the raw devices that were created for the particular OS devices. As root user, enable DMP support for the ASM disk group identified in step 1. The below command also creates raw devices in the /dev/raw directory that correspond to the DMP devices.
# vxdmpraw enable username groupname [devicename ...]
Where username represents the ASM user running the ASM instance, and groupname represents the Linux groupname of the specified user-id. If you specify one or more devicenames, DMP support for ASM is enabled for those devices. If you do not specify a devicename, DMP support is enabled for all devices in the system that have an ASM signature.
6 7 8
From ASM, set ASM_DISKSTRING to the value /dev/raw/*. From ASM, confirm that the devices are available to ASM. From ASM, mount the ASM disk groups. The disk groups are mounted on DMP devices.
36
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
To migrate an ASM disk group from operating system devices to DMP devices
From ASM, identify the ASM disk group that you want to migrate, and identify the disks under its control.
SQL> select name, STATE from v$asm_diskgroup; NAME STATE ------------------------------ ----------ASM_DG1 MOUNTED SQL> select path , header_status from v$asm_disk where header_status='MEMBER'; PATH HEADER_STATU ----------------------------------/dev/raw/raw1 MEMBER /dev/raw/raw2 MEMBER /dev/raw/raw3 MEMBER
If the devices are controlled by other multi-pathing drivers such as PowerPath or Device Mapper, migrate the devices to DMP control. Perform these steps as root user. See "Setting up DMP to manage native devices"
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
37
As root user, use the raw command to remove the raw devices that were created for the particular OS devices. Determine the association by observing the corresponding major and minor numbers of the device. For example, the output of the following ls command shows that sdc3 is bound to 8,35.
# ls -l /dev/sdc3 brw-r----- 1 root disk 8, 35 Aug 31 20:42 /dev/sdc3
The output of the following raw command shows that /dev/raw/raw1 is the corresponding raw device:
# raw -q /dev/raw/raw1 /dev/raw/raw1: bound to major 8, minor 35
To remove this mapping associate this raw device to (0,0) device number:
# raw /dev/raw/raw1 0 0 /dev/raw/raw1: /bin/sync bound to major 0, minor 0
As root user, enable DMP support for the ASM disk group identified in step 1, in one of the following ways:
To migrate selected ASM diskgroups, use the vxdmpadm command to determine the DMP nodes that correspond to the OS devices.
# vxdmpadm getdmpnode nodename= sdd NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ========================================================== EVA4k6k0_1 ENABLED EVA4K6K 4 4 0 EVA4k6k0
If you do not specify a devicename, DMP support is enabled for all devices in the disk group that have an ASM signature. For example:
# vxdmpraw enable oracle dba
38
Setting up DMP to manage native devices Using Dynamic Multi-Pathing (DMP) devices with Oracle Automatic Storage Management (ASM)
As root user, enable DMP support for the ASM disk group identified in step 1. The below command also creates raw devices in the /dev/raw directory that correspond to the DMP devices.
# vxdmpraw enable username groupname [devicename ...]
Where username represents the ASM user running the ASM instance, and groupname represents the ASM disk group. If you specify one or more devicenames, DMP support for ASM is enabled for those devices. If you do not specify a devicename, DMP support is enabled for all devices in the disk group that have an ASM signature.
From ASM, mount the ASM disk groups. The disk groups are mounted on DMP devices.
SQL> alter diskgroup ASM_DG1 mount; Diskgroup altered. SQL> select name, STATE from v$asm_diskgroup; NAME STATE ------------------------ ----------ASM_DG1 MOUNTED
Setting up DMP to manage native devices Adding DMP devices to an existing LVM volume group or creating a new LVM volume group
39
Adding DMP devices to an existing LVM volume group or creating a new LVM volume group
When the dmp_native_support is ON, you can create a new LVM volume group on an available DMP device. You can also add an available DMP device to an existing LVM volume group. After the LVM volume groups are on DMP devices, you can use any of the LVM commands to manage the volume groups. To create a new LVM volume group on a DMP device or add a DMP device to an existing LVM volume group
Choose disks that are available for use by LVM. The vxdisk list command displays disks that are not in use by VxVM with the TYPE auto:none and the STATUS Online invalid.
# vxdisk list DEVICE TYPE DISK . . . tagmastore-usp0_0035 auto:none tagmastore-usp0_0036 auto:none GROUP STATUS online invalid online invalid
Create a new LVM volume group on a DMP device. Use the complete path name for the DMP device.
# pvcreate /dev/vx/dmp/tagmastore-usp0_0035 Physical volume "/dev/vx/dmp/tagmastore-usp0_0035" successfully created # # vgcreate /dev/newvg /dev/vx/dmp/tagmastore-usp0_0035 Volume group "newvg" successfully created # vgdisplay -v newvg |grep Name Using volume group(s) on command line Finding volume group "newvg" VG Name newvg PV Name /dev/vx/dmp/tagmastore-usp0_0035s3
40
Setting up DMP to manage native devices Displaying the native multi-pathing configuration
Add a DMP device to an existing LVM volume group. Use the complete path name for the DMP device.
# pvcreate /dev/vx/dmp/tagmastore-usp0_0036 Physical volume "/dev/vx/dmp/tagmastore-usp0_0036" successfully created # vgextend newvg /dev/vx/dmp/tagmastore-usp0_0036 Volume group "newvg" successfully extended # vgdisplay -v newvg |grep Name Using volume group(s) on command line Finding volume group "newvg" VG Name newvg PV Name /dev/vx/dmp/tagmastore-usp0_0035s3 PV Name /dev/vx/dmp/tagmastore-usp0_0036s3
After the discovery completes, the disks are shown as in use by LVM:
# vxdisk list . . . tagmastore-usp0_0035 auto:LVM tagmastore-usp0_0036 auto:LVM
LVM LVM
For all of the LVM volume entries, add '_netdev' to the mount options in /etc/fstab. This option ensures that these volumes are enabled after DMP devices are discovered.
Devices that have a VxVM label If you initialize a disk for VxVM use, then the native multi-pathing feature is automatically disabled for the disk. When the VxVM label is removed, the native multi-pathing is enabled.
Setting up DMP to manage native devices Removing DMP support for native devices
41
Devices that are multi-pathed with Third-party drivers If a disk is already multi-pathed with a third-party driver (TPD), DMP does not manage the devices unless TPD support is removed.
When the dmp_native_support tunable is ON, use the vxdisk list command to display available volumes. Volumes available to LVM display with the TYPE auto:none. Volumes that are already in use by LVM display with the TYPE auto:LVM.
42
Setting up DMP to manage native devices Removing DMP support for native devices
Chapter
Administering DMP
This chapter includes the following topics:
About enabling and disabling I/O for controllers and storage processors About displaying DMP database information Displaying the paths to a disk Setting customized names for DMP nodes Administering DMP using vxdmpadm
About enabling and disabling I/O for controllers and storage processors
DMP lets you to turn off I/O through an HBA controller or the array port of a storage processor so that you can perform administrative operations. This feature can be used for maintenance of HBA controllers on the host, or array ports that are attached to disk arrays supported by DMP. I/O operations to the HBA controller or the array port can be turned back on after the maintenance task is completed. You can accomplish these operations using the vxdmpadm command. For Active/Active type disk arrays, when you disable the I/O through an HBA controller or array port, the I/O continues on the remaining paths. For Active/Passive type disk arrays, if disabling I/O through an HBA controller or array port resulted in all primary paths being disabled, DMP will failover to secondary paths and I/O will continue on them. After the administrative operation is over, use the vxdmpadm command to re-enable the paths through the HBA controllers. See Disabling I/O for paths, controllers or array ports on page 75. See Enabling I/O for paths, controllers or array ports on page 76.
44
You can also perform certain reconfiguration operations dynamically online. See About online dynamic reconfiguration on page 111.
Use the vxdisk path command to display the relationships between the device paths, disk access names, disk media names and disk groups on a system as shown here:
# vxdisk path SUBPATH sda sdi sdb sdj . . . DANAME sda sdi sdb sdj DMNAME mydg01 mydg01 mydg02 mydg02 GROUP mydg mydg mydg mydg STATE ENABLED ENABLED ENABLED ENABLED
This shows that two paths exist to each of the two disks, mydg01 and mydg02, and also indicates that each disk is in the ENABLED state.
45
For example, to view multi-pathing information for the device sdl, use the following command:
# vxdisk list sdl
The output from the vxdisk list command displays the multi-pathing information, as shown in the following example:
Device: sdl devicetag: sdl type: sliced hostid: system01 . . . Multipathing information: numpaths: 2 sdl state=enabled type=secondary sdp state=disabled type=primary
The numpaths line shows that there are 2 paths to the device. The next two lines in the "Multipathing information" section show that one path is active (state=enabled) and that the other path has failed (state=disabled). The type field is shown for disks on Active/Passive type disk arrays such as the EMC CLARiiON, Hitachi HDS 9200 and 9500, Sun StorEdge 6xxx, and Sun StorEdge T3 array. This field indicates the primary and secondary paths to the disk. The type field is not displayed for disks on Active/Active type disk arrays such as the EMC Symmetrix, Hitachi HDS 99xx and Sun StorEdge 99xx Series, and IBM ESS Series. Such arrays have no concept of primary and secondary paths.
46
Alternately, you can use the following command to view multi-pathing information:
# vxdmpadm getsubpaths dmpnodename=devicename
For example, to view multi-pathing information for emc_clariion0_893, use the following command:
# vxdmpadm getsubpaths dmpnodename=emc_clariion0_893
47
You can also assign names from an input file. This enables you to customize the DMP nodes on the system with meaningful names. To assign DMP nodes from a file
Use the script vxgetdmpnames to get a sample file populated from the devices in your configuration. The sample file shows the format required and serves as a template to specify your customized names. To assign the names, use the following command:
# vxddladm assign names file=pathname
To clear the names, and use the default OSN or EBN names, use the following command:
# vxddladm -c assign names
Retrieve the name of the DMP device corresponding to a particular path. See Retrieving information about a DMP node on page 49. Display consolidated information about the DMP nodes See Displaying consolidated information about the DMP nodes on page 50. Display the members of a LUN group. See Displaying the members of a LUN group on page 51. List all paths under a DMP device node, HBA controller, enclosure, or array port. See Displaying paths controlled by a DMP node, controller, enclosure, or array port on page 51. Display information about the HBA controllers on the host. See Displaying information about controllers on page 54. Display information about enclosures. See Displaying information about enclosures on page 55. Display information about array ports that are connected to the storage processors of enclosures. See Displaying information about array ports on page 55.
48
Display information about devices that are controlled by third-party multi-pathing drivers. See Displaying information about TPD-controlled devices on page 56. Display extended devices attributes. See Displaying extended device attributes on page 57. See Suppressing or including devices from VxVM control on page 59. Suppress or include devices from DMP control. Gather I/O statistics for a DMP node, enclosure, path or controller. See Gathering and displaying I/O statistics on page 60. Configure the attributes of the paths to an enclosure. See Setting the attributes of the paths to an enclosure on page 65. Display the redundancy level of a device or enclosure See Displaying the redundancy level of a device or enclosure on page 66. Specify the minimum number of active paths See Specifying the minimum number of active paths on page 67. Display or set the I/O policy that is used for the paths to an enclosure. See Specifying the I/O policy on page 68. Enable or disable I/O for a path, HBA controller or array port on the system. See Disabling I/O for paths, controllers or array ports on page 75. Rename an enclosure. See Renaming an enclosure on page 77. Configure how DMP responds to I/O request failures. See Configuring the response to I/O failures on page 77. Configure the I/O throttling mechanism. See Configuring the I/O throttling mechanism on page 79. Control the operation of the DMP path restoration thread. See Configuring DMP path restoration policies on page 82. Configure array policy modules See Configuring array policy modules on page 84. Get or set the values of various tunables used by DMP. See DMP tunable parameters on page 131.
The following sections cover these tasks in detail along with sample output. See the vxdmpadm(1M) manual page.
49
The physical path is specified by argument to the nodename attribute, which must be a valid path listed in the device directory. The device directory is the /dev directory. The command displays output similar to the following example output.
# vxdmpadm getdmpnode nodename=sdbc NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ==================================================================== emc_clariion0_89 ENABLED EMC_CLARiiON 6 6 0 emc_clariion0
Use the -v option to display the LUN serial number and the array volume ID.
# vxdmpadm -v getdmpnode nodename=sdbc NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME SERIAL-NO ARRAY_VOL_ID ===================================================================================== emc_clariion0_89 ENABLED EMC_CLARiiON 6 6 0 emc_clariion0 600601601 893
Use the enclosure attribute with getdmpnode to obtain a list of all DMP nodes for the specified enclosure.
# vxdmpadm getdmpnode enclosure=enc0 NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ========================================================== sdm ENABLED ACME 2 2 0 enc0 sdn ENABLED ACME 2 2 0 enc0 sdo ENABLED ACME 2 2 0 enc0 sdp ENABLED ACME 2 2 0 enc0
Use the dmpnodename attribute with getdmpnode to display the DMP information for a given DMP node.
# vxdmpadm getdmpnode dmpnodename=emc_clariion0_158 NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ================================================================== emc_clariion0_158 ENABLED EMC_CLARiiON 1 1 0 emc_clariion0
50
Use the enclosure attribute with list dmpnode to obtain a list of all DMP nodes for the specified enclosure.
# vxdmpadm list dmpnode enclosure=enclosure name
For example, the following command displays the consolidated information for all of the DMP nodes in the enc0 enclosure.
# vxdmpadm list dmpnode enclosure=enc0
Use the dmpnodename attribute with list dmpnode to display the DMP information for a given DMP node. The DMP node can be specified by name or by specifying a path name. The detailed information for the specified DMP node includes path information for each subpath of the listed dmpnode. The path state differentiates between a path that is disabled due to a failure and a path that has been manually disabled for administrative purposes. A path that has been manually disabled using the vxdmpadm disable command is listed as disabled(m).
# vxdmpadm list dmpnode dmpnodename=dmpnodename
For example, the following command displays the consolidated information for the DMP node emc_clariion0_158.
# vxdmpadm list dmpnode dmpnodename=emc_clariion0_158 dmpdev = emc_clariion0_158 state = enabled enclosure = emc_clariion0 cab-sno = CK200070400359 asl = libvxCLARiiON.so vid = DGC pid = DISK array-name = EMC_CLARiiON array-type = CLR-A/PF
51
iopolicy avid lun-sno udid dev-attr ###path path path path path path path
= = = = = = = = = = = =
MinimumQ 158 600601601A141B001D4A32F92B49DE11 DGC%5FDISK%5FCK200070400359%5F600601601A141B001D4A32F92B49DE11 lun name state type transport ctlr hwpath aportID aportWWN attr sdck enabled(a) primary FC c2 c2 A5 50:06:01:61:41:e0:3b:33 sdde enabled(a) primary FC c2 c2 A4 50:06:01:60:41:e0:3b:33 sdcu enabled secondary FC c2 c2 B4 50:06:01:68:41:e0:3b:33 sdbm enabled secondary FC c3 c3 B4 50:06:01:68:41:e0:3b:33 sdbw enabled(a) primary FC c3 c3 A4 50:06:01:60:41:e0:3b:33 sdbc enabled(a) primary FC c3 c3 A5 50:06:01:61:41:e0:3b:33 -
52
# vxdmpadm getsubpaths dmpnodename=sdu NAME STATE[A] PATH-TYPE[M] CTLR-NAME ENCLR-TYPE ENCLR-NAME ATTRS ==================================================================== sdu ENABLED(A) PRIMARY c2 ACME enc0 sdt ENABLED PRIMARY c1 ACME enc0 -
For A/A arrays, all enabled paths that are available for I/O are shown as ENABLED(A). For A/P arrays in which the I/O policy is set to singleactive, only one path is shown as ENABLED(A). The other paths are enabled but not available for I/O. If the I/O policy is not set to singleactive, DMP can use a group of paths (all primary or all secondary) for I/O, which are shown as ENABLED(A). See Specifying the I/O policy on page 68. Paths that are in the DISABLED state are not available for I/O operations. A path that was manually disabled by the system administrator displays as DISABLED(M). A path that failed displays as DISABLED. You can use getsubpaths to obtain information about all the paths that are connected to a particular HBA controller:
# vxdmpadm getsubpaths ctlr=c2 NAME STATE[-] PATH-TYPE[-] CTLR-NAME ENCLR-TYPE ENCLR-NAME ATTRS =================================================================== sdk ENABLED(A) PRIMARY sdk ACME enc0 sdl ENABLED(A) PRIMARY sdl ACME enc0 sdm DISABLED SECONDARY sdm ACME enc0 sdn ENABLED SECONDARY sdn ACME enc0 -
You can also use getsubpaths to obtain information about all the paths that are connected to a port on an array. The array port can be specified by the name of the enclosure and the array port ID, or by the worldwide name (WWN) identifier of the array port:
# vxdmpadm getsubpaths enclosure=enclosure portid=portid # vxdmpadm getsubpaths pwwn=pwwn
53
For example, to list subpaths through an array port through the enclosure and the array port ID:
# vxdmpadm getsubpaths enclosure=emc_clariion0 portid=A5 NAME STATE[A] PATH-TYPE[M] DMPNODENAME ENCLR-NAME CTLR ATTRS ================================================================================ sdav ENABLED(A) PRIMARY emc_clariion0_1017 emc_clariion0 c3 sdcd ENABLED(A) PRIMARY emc_clariion0_1017 emc_clariion0 c2 sdau ENABLED(A) PRIMARY emc_clariion0_1018 emc_clariion0 c3 sdcc ENABLED(A) PRIMARY emc_clariion0_1018 emc_clariion0 c2 -
For example, to list subpaths through an array port through the WWN:
# vxdmpadm getsubpaths pwwn=50:06:01:61:41:e0:3b:33 NAME STATE[A] PATH-TYPE[M] CTLR-NAME ENCLR-TYPE ENCLR-NAME ATTRS ================================================================================ sdav ENABLED(A) PRIMARY c3 EMC_CLARiiON emc_clariion0 sdcd ENABLED(A) PRIMARY c2 EMC_CLARiiON emc_clariion0 sdau ENABLED(A) PRIMARY c3 EMC_CLARiiON emc_clariion0 sdcc ENABLED(A) PRIMARY c2 EMC_CLARiiON emc_clariion0 # vxdmpadm getsubpaths pwwn=20:00:00:E0:8B:06:5F:19
You can use getsubpaths to obtain information about all the subpaths of an enclosure.
# vxdmpadm getsubpaths enclosure=enclosure_name [ctlr=ctlrname]
To list all subpaths of a controller on an enclosure: By default, the output of the vxdmpadm getsubpaths command is sorted by enclosure name, DMP node name, and within that, path name. To sort the output based on the pathname, the DMP node name, the enclosure name, or the host controller name, use the -s option.
54
This output shows that the controller c1 is connected to disks that are not in any recognized DMP category as the enclosure type is OTHER. The other controllers are connected to disks that are in recognized DMP categories. All the controllers are in the ENABLED state which indicates that they are available for I/O operations. The state DISABLED is used to indicate that controllers are unavailable for I/O operations. The unavailability can be due to a hardware failure or due to I/O operations being disabled on that controller by using the vxdmpadm disable command. The following forms of the command lists controllers belonging to a specified enclosure or enclosure type:
# vxdmpadm listctlr enclosure=enc0
or
CTLR-NAME ENCLR-TYPE STATE ENCLR-NAME
55
The following form of the command displays information about all of the array ports within the specified enclosure:
# vxdmpadm getportids enclosure=enclr-name
The following example shows information about the array port that is accessible via DMP node sdg:
56
# vxdmpadm getportids dmpnodename=sdg NAME ENCLR-NAME ARRAY-PORT-ID pWWN ============================================================== sdg HDS9500V0 1A 20:00:00:E0:8B:06:5F:19
See Changing device naming for TPD-controlled enclosures on page 107. For example, consider the following disks in an EMC Symmetrix array controlled by PowerPath, which are known to DMP:
# vxdisk list DEVICE emcpower10 emcpower11 emcpower12 emcpower13 emcpower14 emcpower15 emcpower16 emcpower17 emcpower18 emcpower19 TYPE auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced DISK disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8 disk9 disk10 GROUP ppdg ppdg ppdg ppdg ppdg ppdg ppdg ppdg ppdg ppdg STATUS online online online online online online online online online online
The following command displays the paths that DMP has discovered, and which correspond to the PowerPath-controlled node, emcpower10:
# vxdmpadm getsubpaths tpdnodename=emcpower10 NAME TPDNODENAME PATH-TYPE[-]DMP-NODENAME ENCLR-TYPE ENCLR-NAME =================================================================== sdq emcpower10s2 emcpower10 PP_EMC pp_emc0 sdr emcpower10s2 emcpower10 PP_EMC pp_emc0
57
Conversely, the next command displays information about the PowerPath node that corresponds to the path, sdq, discovered by DMP:
# vxdmpadm gettpdnode nodename=sdq NAME STATE PATHS ENCLR-TYPE ENCLR-NAME =================================================================== emcpower10s2 ENABLED 2 PP_EMC pp_emc0
Displays the type of media whether SSD (solid state disk ) Displays whether the LUN is a SNAPSHOT or a CLONE of a PRIMARY LUN Displays if the LUN is part of a replicated group across a remote site Displays what kind of HBA is used to connect to this LUN (FC, SATA, iSCSI)
Storage-based Snapshot/Clone
Storage-based replication
Transport
Each LUN can have one or more of these extended attributes. DDL discovers the extended attributes during device discovery from the array support library (ASL) . If Veritas Operations Manager (VOM) is present, DDL can also obtain extended attributes from the VOM Management Server for hosts that are configured as managed hosts. The vxdisk -p list command displays DDL extended attributes. For example, the following command shows attributes of std, fc, and RAID_5 for this LUN:
# vxdisk -p list DISK DISKID : tagmastore-usp0_0e18 : 1253585985.692.rx2600h11
58
VID : UDID : REVISION : PID : PHYS_CTLR_NAME : LUN_SNO_ORDER : LUN_SERIAL_NO : LIBNAME : HARDWARE_MIRROR: DMP_DEVICE : DDL_THIN_DISK : DDL_DEVICE_ATTR: CAB_SERIAL_NO : ATYPE : ARRAY_VOLUME_ID: ARRAY_PORT_PWWN: ANAME : TRANSPORT :
HITACHI HITACHI%5FOPEN-V%5F02742%5F0E18 5001 OPEN-V 0/4/1/1.0x50060e8005274246 411 0E18 libvxhdsusp.sl no tagmastore-usp0_0e18 thick std fc RAID_5 02742 A/A 0E18 50:06:0e:80:05:27:42:46 TagmaStore-USP FC
The vxdisk -x attribute -p list command displays the one-line listing for the property list and the attributes. The following example shows two Hitachi LUNs that support Thin Reclamation via the attribute hdprclm:
# vxdisk -x DDL_DEVICE_ATTR -p list DEVICE tagmastore-usp0_0a7a tagmastore-usp0_065a tagmastore-usp0_065b DDL_DEVICE_ATTR std fc RAID_5 hdprclm fc hdprclm fc
User can specify multiple -x options in the same command to display multiple entries. For example:
# vxdisk -x DDL_DEVICE_ATTR -x VID -p list DEVICE tagmastore-usp0_0a7a tagmastore-usp0_0a7b tagmastore-usp0_0a78 tagmastore-usp0_0a79 tagmastore-usp0_065a tagmastore-usp0_065b tagmastore-usp0_065c tagmastore-usp0_065d VID HITACHI HITACHI HITACHI HITACHI HITACHI HITACHI HITACHI HITACHI DDL_DEVICE_ATTR std fc RAID_5 std fc RAID_5 std fc RAID_5 std fc RAID_5 hdprclm fc hdprclm fc hdprclm fc hdprclm fc
59
Use the vxdisk -e list command to show the DLL_DEVICE_ATTR property in the last column named ATTR.
# vxdisk -e list DEVICE tagmastore-usp0_0a7a tagmastore-usp0_0a7b tagmastore-usp0_0a78 tagmastore-usp0_0655 tagmastore-usp0_0656 tagmastore-usp0_0657 TYPE auto auto auto auto auto auto DISK GROUP STATUS online online online online online online OS_NATIVE_NAME c10t0d2 c10t0d3 c10t0d0 c13t2d7 c13t3d0 c13t3d1 ATTR std fc RAID_5 std fc RAID_5 std fc RAID_5 hdprclm fc hdprclm fc hdprclm fc
For a list of ASLs that supports Extended Attributes, and descriptions of these attributes, refer to the hardware compatibility list (HCL) at the following URL: http://www.symantec.com/docs/TECH170013
where: all all devices product=VID:PID all devices with the specified VID:PID
60
ctlr=ctlr all devices through the given controller dmpnodename=diskname - all paths under the DMP node dmpnodename=diskname path=\!pathname - all paths under the DMP node except the one specified.
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 32k (32 kilobytes) per CPU. To display the accumulated statistics at regular intervals, use the following command:
# vxdmpadm iostat show {all | ctlr=ctlr-name \ | dmpnodename=dmp-node | pathname=path-name | \ pwwn=array-port-wwn } \ | enclosure=enclr-name [portid=array-portid ] \ [interval=seconds [count=N]]
This command displays I/O statistics for all paths (all), or for a specified controller, DMP node, enclosure, path or port ID. 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 kilobytes read and written, and the average time in milliseconds per kilobyte that is read or written. The interval and count attributes may be used to specify the interval in seconds between displaying the I/O statistics, and the number of lines to be displayed. The actual interval may be smaller than the value specified if insufficient memory is available to record the statistics. To disable the gathering of statistics, enter this command:
# vxdmpadm iostat stop
61
The next command displays the current statistics including the accumulated total numbers of read and write operations, and the kilobytes read and written, on all paths.
# vxdmpadm -u k iostat show all cpu usage = 7952us per cpu memory = 8192b OPERATIONS BYTES AVG TIME(ms) PATHNAME READS WRITES READS WRITES READS WRITES sdf 87 0 44544k 0 0.00 0.00 sdk 0 0 0 0 0.00 0.00 sdg 87 0 44544k 0 0.00 0.00 sdl 0 0 0 0 0.00 0.00 sdh 87 0 44544k 0 0.00 0.00 sdm 0 0 0 0 0.00 0.00 sdi 87 0 44544k 0 0.00 0.00 sdn 0 0 0 0 0.00 0.00 sdj 87 0 44544k 0 0.00 0.00 sdo 0 0 0 0 0.00 0.00 sdj 87 0 44544k 0 0.00 0.00 sdp 0 0 0 0 0.00 0.00
The following command changes the amount of memory that vxdmpadm can use to accumulate the statistics:
# vxdmpadm iostat start memory=4096
The displayed statistics can be filtered by path name, DMP node name, and enclosure name (note that the per-CPU memory has changed following the previous command):
# vxdmpadm -u k iostat show pathname=sdk cpu usage = 8132us PATHNAME sdk OPERATIONS READS WRITES 0 0 per cpu memory = 4096b AVG TIME(ms) READS WRITES 0.00 0.00 BYTES READS WRITES 0 0
# vxdmpadm -u k iostat show dmpnodename=sdf cpu usage = 8501us per cpu memory = 4096b OPERATIONS BYTES AVG TIME(ms)
62
PATHNAME sdf
READS 1088
WRITES 0
READS 557056k
WRITES 0
READS 0.00
WRITES 0.00
# vxdmpadm -u k iostat show enclosure=Disk cpu usage = 8626us per cpu memory = 4096b OPERATIONS BYTES AVG TIME(ms) READS WRITES READS WRITES READS WRITES 1088 0 557056k 0 0.00 0.00
PATHNAME sdf
You can also specify the number of times to display the statistics and the time interval. Here the incremental statistics for a path are displayed twice with a 2-second interval:
# vxdmpadm iostat show pathname=sdk interval=2 count=2 cpu usage = 9621us per cpu memory = 266240b OPERATIONS BLOCKS AVG TIME(ms) READS WRITES READS WRITES READS WRITES 0 0 0 0 0.00 0.00 0 0 0 0 0.00 0.00
For example:
# vxdmpadm -q iostat show dmpnodename=emc_clariion0_352 cpu usage = 338us DMPNODENAME emc_clariion0_352 per cpu memory = 102400b QUEUED I/Os PENDING I/Os READS WRITES 0 0 0
63
To display the count of I/Os that returned with errors on a DMP node, path or controller:
# vxdmpadm -e iostat show [filter] [interval=n [count=m]]
For example, to show the I/O counts that returned errors on a path:
# vxdmpadm -e iostat show pathname=sdo cpu usage = 637us PATHNAME sdo per cpu memory = 102400b ERROR I/Os READS WRITES 0 0
To group by controller:
64
For example:
# vxdmpadm iostat show groupby=ctlr ctlr=c5 OPERATIONS READS WRITES 224 14 BLOCKS READS WRITES 54 7 AVG TIME(ms) READS WRITES 4.20 11.10
CTLRNAME c5
To group by arrayport:
# vxdmpadm [-u unit] iostat show groupby=arrayport [ all \ | pwwn=array_pwwn | enclosure=enclr portid=array-port-id ]
For example:
# vxdmpadm -u m iostat show groupby=arrayport \ enclosure=HDS9500-ALUA0 portid=1A OPERATIONS READS WRITES 743 1538 BYTES READS WRITES 11m 24m AVG TIME(ms) READS WRITES 17.13 8.61
PORTNAME 1A
To group by enclosure:
# vxdmpadm [-u unit] iostat show groupby=enclosure [ all \ | enclosure=enclr ]
For example:
# vxdmpadm -u h iostat show groupby=enclosure enclosure=EMC_CLARiiON0 OPERATIONS ENCLRNAME READS WRITES EMC_CLARiiON 743 1538 BLOCKS AVG TIME(ms) READS WRITES READS WRITES 11392k 24176k 17.13 8.61
You can also filter out entities for which all data entries are zero. This option is especially useful in a cluster environment which contains many failover devices. You can display only the statistics for the active paths. To filter all zero entries from the output of the iostat show command:
# vxdmpadm [-u unit] -z iostat show [all|ctlr=ctlr_name | dmpnodename=dmp_device_name | enclosure=enclr_name [portid=portid] | pathname=path_name|pwwn=port_WWN][interval=seconds [count=N]]
For example:
65
# vxdmpadm -z iostat show dmpnodename=emc_clariion0_893 cpu usage = 9852us per cpu memory = 266240b OPERATIONS BLOCKS AVG TIME(ms) PATHNAME READS WRITES READS WRITES READS WRITES sdbc sdbw sdck sdde 32 27 8 11 0 0 0 0 258 216 57 81 0 0 0 0 0.04 0.03 0.04 0.15 0.00 0.00 0.00 0.00
nomanual
Restores the original primary or secondary attributes of a path. This example restores the path to a JBOD disk: # vxdmpadm setattr path sdm pathtype=nomanual
nopreferred
Restores the normal priority of a path. The following example restores the default priority to a path: # vxdmpadm setattr path sdk \ pathtype=nopreferred
66
preferred [priority=N]
Specifies a path as preferred, and optionally assigns a priority number to it. If specified, the priority number must be an integer that is greater than or equal to one. Higher priority numbers indicate that a path is able to carry a greater I/O load. See Specifying the I/O policy on page 68. This example first sets the I/O policy to priority for an Active/Active disk array, and then specifies a preferred path with an assigned priority of 2: # vxdmpadm setattr enclosure enc0 \ iopolicy=priority # vxdmpadm setattr path sdk pathtype=preferred \ priority=2
primary
Defines a path as being the primary path for a JBOD disk array. The following example specifies a primary path for a JBOD disk array: # vxdmpadm setattr path sdm pathtype=primary
secondary
Defines a path as being the secondary path for a JBOD disk array. The following example specifies a secondary path for a JBOD disk array: # vxdmpadm setattr path sdn pathtype=secondary
standby
Marks a standby (failover) path that it is not used for normal I/O scheduling. This path is used if there are no active paths available for I/O. The next example specifies a standby path for an A/P-C disk array: # vxdmpadm setattr path sde pathtype=standby
For example, to list the devices with fewer than 3 enabled paths, use the following command:
# vxdmpadm getdmpnode enclosure=EMC_CLARiiON0 redundancy=3
67
NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ===================================================================== emc_clariion0_162 ENABLED EMC_CLARiiON 3 2 1 emc_clariion0 emc_clariion0_182 ENABLED EMC_CLARiiON 2 2 0 emc_clariion0 emc_clariion0_184 ENABLED EMC_CLARiiON 3 2 1 emc_clariion0 emc_clariion0_186 ENABLED EMC_CLARiiON 2 2 0 emc_clariion0
To display the minimum redundancy level for a particular device, use the vxdmpadm getattr command, as follows:
# vxdmpadm getattr enclosure|arrayname|arraytype \ component-name redundancy
For example, to show the minimum redundancy level for the enclosure HDS9500-ALUA0:
# vxdmpadm getattr enclosure HDS9500-ALUA0 redundancy ENCLR_NAME DEFAULT CURRENT ============================================= HDS9500-ALUA0 0 4
68
Use the vxdmpadm setattr command with the redundancy attribute as follows:
# vxdmpadm setattr enclosure|arrayname|arraytype component-name redundancy=value
where value is the number of active paths. For example, to set the minimum redundancy level for the enclosure HDS9500-ALUA0:
# vxdmpadm setattr enclosure HDS9500-ALUA0 redundancy=2
The next example displays the setting of partitionsize for the enclosure enc0, on which the balanced I/O policy with a partition size of 2MB has been set:
# vxdmpadm getattr enclosure enc0 partitionsize ENCLR_NAME DEFAULT CURRENT --------------------------------------enc0 512 4096
69
Warning: Starting with release 4.1 of VxVM, I/O policies are recorded in the file /etc/vx/dmppolicy.info, and are persistent across reboots of the system. Do not edit this file yourself. The following policies may be set:
adaptive This policy attempts to maximize overall I/O throughput from/to the disks by dynamically scheduling I/O on the paths. It is suggested for use where I/O loads can vary over time. For example, I/O from/to a database may exhibit both long transfers (table scans) and short transfers (random look ups). The policy is also useful for a SAN environment where different paths may have different number of hops. No further configuration is possible as this policy is automatically managed by DMP. In this example, the adaptive I/O policy is set for the enclosure enc1: # vxdmpadm setattr enclosure enc1 \ iopolicy=adaptive
70
balanced [partitionsize=size]
This policy is designed to optimize the use of caching in disk drives and RAID controllers. The size of the cache typically ranges from 120KB to 500KB or more, depending on the characteristics of the particular hardware. During normal operation, the disks (or LUNs) are logically divided into a number of regions (or partitions), and I/O from/to a given region is sent on only one of the active paths. Should that path fail, the workload is automatically redistributed across the remaining paths. You can use the size argument to the partitionsize attribute to specify the partition size. The partition size in blocks is adjustable in powers of 2 from 2 up to 231. A value that is not a power of 2 is silently rounded down to the nearest acceptable value. Specifying a partition size of 0 is equivalent to specifying the default partition size. The default value for the partition size is 512 blocks (256k). Specifying a partition size of 0 is equivalent to the default partition size of 512 blocks (256k). The default value can be changed by adjusting the value of the dmp_pathswitch_blks_shift tunable parameter. See DMP tunable parameters on page 131.
71
minimumq
This policy sends I/O on paths that have the minimum number of outstanding I/O requests in the queue for a LUN. No further configuration is possible as DMP automatically determines the path with the shortest queue. The following example sets the I/O policy to minimumq for a JBOD: # vxdmpadm setattr enclosure Disk \ iopolicy=minimumq This is the default I/O policy for all arrays.
priority
This policy is useful when the paths in a SAN have unequal performance, and you want to enforce load balancing manually. You can assign priorities to each path based on your knowledge of the configuration and performance characteristics of the available paths, and of other aspects of your system. See Setting the attributes of the paths to an enclosure on page 65. In this example, the I/O policy is set to priority for all SENA arrays: # vxdmpadm setattr arrayname SENA \ iopolicy=priority
round-robin
This policy shares I/O equally between the paths in a round-robin sequence. For example, if there are three paths, the first I/O request would use one path, the second would use a different path, the third would be sent down the remaining path, the fourth would go down the first path, and so on. No further configuration is possible as this policy is automatically managed by DMP. The next example sets the I/O policy to round-robin for all Active/Active arrays: # vxdmpadm setattr arraytype A/A \ iopolicy=round-robin
72
singleactive
This policy routes I/O down the single active path. This policy can be configured for A/P arrays with one active path per controller, where the other paths are used in case of failover. If configured for A/A arrays, there is no load balancing across the paths, and the alternate paths are only used to provide high availability (HA). If the current active path fails, I/O is switched to an alternate active path. No further configuration is possible as the single active path is selected by DMP. The following example sets the I/O policy to singleactive for JBOD disks: # vxdmpadm setattr arrayname Disk \ iopolicy=singleactive
The default setting for this attribute is use_all_paths=no. You can display the current setting for use_all_paths for an enclosure, arrayname or arraytype. To do this, specify the use_all_paths option to the vxdmpadm gettattr command.
# vxdmpadm getattr enclosure HDS9500-ALUA0 use_all_paths ENCLR_NAME DEFAULT CURRENT =========================================== HDS9500-ALUA0 no yes
73
The use_all_paths attribute only applies to A/A-A arrays. For other arrays, the above command displays the message:
Attribute is not applicable for this array.
In addition, the device is in the enclosure ENC0, belongs to the disk group mydg, and contains a simple concatenated volume myvol1. The first step is to enable the gathering of DMP statistics:
# vxdmpadm iostat start
Next, use the dd command to apply an input workload from the volume:
# dd if=/dev/vx/rdsk/mydg/myvol1 of=/dev/null &
By running the vxdmpadm iostat command to display the DMP statistics for the device, it can be seen that all I/O is being directed to one path, sdq:
# vxdmpadm iostat show dmpnodename=sdq interval=5 count=2 . .
74
. cpu usage = 11294us per cpu OPERATIONS PATHNAME READS WRITES sdj 0 0 sdk 0 0 sdl 0 0 sdm 0 0 sdn 0 0 sdo 0 0 sdp 0 0 sdq 10986 0
AVG TIME(ms) READS WRITES 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.41 0.00
The vxdmpadm command is used to display the I/O policy for the enclosure that contains the device:
# vxdmpadm getattr enclosure ENC0 iopolicy ENCLR_NAME DEFAULT CURRENT ============================================ ENC0 MinimumQ Single-Active
This shows that the policy for the enclosure is set to singleactive, which explains why all the I/O is taking place on one path. To balance the I/O load across the multiple primary paths, the policy is set to round-robin as shown here:
# vxdmpadm setattr enclosure ENC0 iopolicy=round-robin # vxdmpadm getattr enclosure ENC0 iopolicy ENCLR_NAME DEFAULT CURRENT ============================================ ENC0 MinimumQ Round-Robin
With the workload still running, the effect of changing the I/O policy to balance the load across the primary paths can now be seen.
# vxdmpadm iostat show dmpnodename=sdq interval=5 count=2 . . .
75
cpu usage = 14403us per cpu memory = 32768b OPERATIONS KBYTES PATHNAME READS WRITES READS WRITES sdj 2041 0 1021 0 sdk 1894 0 947 0 sdl 2008 0 1004 0 sdm 2054 0 1027 0 sdn 2171 0 1086 0 sdo 2095 0 1048 0 sdp 2073 0 1036 0 sdq 2042 0 1021 0
AVG TIME(ms) READS WRITES 0.39 0.00 0.39 0.00 0.39 0.00 0.40 0.00 0.39 0.00 0.39 0.00 0.39 0.00 0.39 0.00
The enclosure can be returned to the single active I/O policy by entering the following command:
# vxdmpadm setattr enclosure ENC0 iopolicy=singleactive
To disable I/O for the paths connected to one or more HBA controllers, use the following command:
# vxdmpadm [-c|-f] disable ctlr=ctlr_name1[,ctlr_name2,ctlr_nameN]
To disable I/O for the paths connected to an array port, use one of the following commands:
# vxdmpadm [-c|-f] disable enclosure=enclr_name portid=array_port_ID # vxdmpadm [-c|-f] disable pwwn=array_port_WWN
where the array port is specified either by the enclosure name and the array port ID, or by the array ports worldwide name (WWN) identifier. The following examples show how to disable I/O on an array port:
76
To disable I/O for a particular path, specify both the controller and the portID, which represent the two ends of the fabric:
# vxdmpadm [-c|-f] disable ctlr=ctlr_name enclosure=enclr_name \ portid=array_port_ID
You can use the -c option to check if there is only a single active path to the disk. If so, the disable command fails with an error message unless you use the -f option to forcibly disable the path. The disable operation fails if it is issued to a controller that is connected to the root disk through a single path, and there are no root disk mirrors configured on alternate paths. If such mirrors exist, the command succeeds.
To enable I/O for the paths connected to one or more HBA controllers, use the following command:
# vxdmpadm enable ctlr=ctlr_name1[,ctlr_name2,ctlr_nameN]
To enable I/O for the paths connected to an array port, use one of the following commands:
# vxdmpadm enable enclosure=enclr_name portid=array_port_ID # vxdmpadm enable pwwn=array_port_WWN
77
where the array port is specified either by the enclosure name and the array port ID, or by the array ports worldwide name (WWN) identifier. The following are examples of using the command to enable I/O on an array port:
# vxdmpadm enable enclosure=HDS9500V0 portid=1A # vxdmpadm enable pwwn=20:00:00:E0:8B:06:5F:19
To enable I/O for a particular path, specify both the controller and the portID, which represent the two ends of the fabric:
# vxdmpadm enable ctlr=ctlr_name enclosure=enclr_name \ portid=array_port_ID
Renaming an enclosure
The vxdmpadm setattr command can be used to assign a meaningful name to an existing enclosure, for example:
# vxdmpadm setattr enclosure enc0 name=GRP1
This example changes the name of an enclosure from enc0 to GRP1. Note: The maximum length of the enclosure name prefix is 23 characters. The following command shows the changed name:
# vxdmpadm listenclosure all ENCLR_NAME ENCLR_TYPE ENCLR_SNO STATUS ============================================================ other0 OTHER OTHER_DISKS CONNECTED jbod0 X1 X1_DISKS CONNECTED GRP1 ACME 60020f20000001a90000 CONNECTED
78
To set a limit for the number of times that DMP attempts to retry sending an I/O request on a path, use the following command:
# vxdmpadm setattr \ {enclosure enc-name|arrayname name|arraytype type} \ recoveryoption=fixedretry retrycount=n
The value of the argument to retrycount specifies the number of retries to be attempted before DMP reschedules the I/O request on another available path, or fails the request altogether. As an alternative to specifying a fixed number of retries, you can specify the amount of time DMP allows for handling an I/O request. If the I/O request does not succeed within that time, DMP fails the I/O request. To specify an iotimeout value, use the following command:
# vxdmpadm setattr \ {enclosure enc-name|arrayname name|arraytype type} \ recoveryoption=timebound iotimeout=seconds
The default value of iotimeout is 300 seconds. For some applications such as Oracle, it may be desirable to set iotimeout to a larger value. The iotimeout value for DMP should be greater than the I/O service time of the underlying operating system layers. Note: The fixedretry and timebound settings are mutually exclusive. The following example configures time-bound recovery for the enclosure enc0, and sets the value of iotimeout to 360 seconds:
# vxdmpadm setattr enclosure enc0 recoveryoption=timebound \ iotimeout=360
The next example sets a fixed-retry limit of 10 for the paths to all Active/Active arrays:
# vxdmpadm setattr arraytype A/A recoveryoption=fixedretry \ retrycount=10
Specifying recoveryoption=default resets DMP to the default settings corresponding to recoveryoption=fixedretry retrycount=5, for example:
# vxdmpadm setattr arraytype A/A recoveryoption=default
79
The above command also has the effect of configuring I/O throttling with the default settings. See Configuring the I/O throttling mechanism on page 79. Note: The response to I/O failure settings is persistent across reboots of the system.
The following example shows how to disable I/O throttling for the paths to the enclosure enc0:
# vxdmpadm setattr enclosure enc0 recoveryoption=nothrottle
The vxdmpadm setattr command can be used to enable I/O throttling on the paths to a specified enclosure, disk array name, or type of array:
# vxdmpadm setattr \ {enclosure enc-name|arrayname name|arraytype type}\ recoveryoption=throttle [iotimeout=seconds]
If the iotimeout attribute is specified, its argument specifies the time in seconds that DMP waits for an outstanding I/O request to succeed before invoking I/O throttling on the path. The default value of iotimeout is 10 seconds. Setting iotimeout to a larger value potentially causes more I/O requests to become queued up in the SCSI driver before I/O throttling is invoked.
80
The following example sets the value of iotimeout to 60 seconds for the enclosure enc0:
# vxdmpadm setattr enclosure enc0 recoveryoption=throttle \ iotimeout=60
The above command configures the default behavior, corresponding to recoveryoption=nothrottle. The above command also configures the default behavior for the response to I/O failures. See Configuring the response to I/O failures on page 77. Note: The I/O throttling settings are persistent across reboots of the system.
To turn on the feature, set the dmp_sfg_threshold value to the required number of path failures which triggers SFG. The default is 1.
# vxdmpadm settune dmp_sfg_threshold=N
The default value of the tunable is 1 which represents that the feature is on. To see the Subpaths Failover Groups ID, use the following command:
# vxdmpadm getportids {ctlr=ctlr_name | dmpnodename=dmp_device_name \ | enclosure=enclr_name | path=path_name}
81
Path probing will be optimized by probing a subset of paths connected to the same HBA and array port. The size of the subset of paths can be controlled by the dmp_probe_threshold tunable. The default value is set to 5.
# vxdmpadm settune dmp_probe_threshold=N
The following example shows the vxdmpadm getattr command being used to display the recoveryoption option values that are set on an enclosure.
# vxdmpadm getattr enclosure HDS9500-ALUA0 recoveryoption ENCLR-NAME RECOVERY-OPTION DEFAULT[VAL] CURRENT[VAL] =============================================================== HDS9500-ALUA0 Throttle Nothrottle[0] Timebound[60] HDS9500-ALUA0 Error-Retry Fixed-Retry[5] Timebound[20]
This shows the default and current policy options and their values. Table 3-1 summarizes the possible recovery option settings for retrying I/O after an error. Table 3-1 Recovery option
recoveryoption=fixedretry
Description
DMP retries a failed I/O request for the specified number of times if I/O fails. DMP retries a failed I/O request for the specified time in seconds if I/O fails.
recoveryoption=timebound
Timebound (iotimeout)
Table 3-2 summarizes the possible recovery option settings for throttling I/O.
82
Description
I/O throttling is not used. DMP throttles the path if an I/O request does not return within the specified time in seconds.
recoveryoption=nothrottle recoveryoption=throttle
check_all
The path restoration thread analyzes all paths in the system and revives the paths that are back online, as well as disabling the paths that are inaccessible. The command to configure this policy is:
# vxdmpadm settune dmp_restore_policy=check_all
check_alternate
The path restoration thread checks that at least one alternate path is healthy. It generates a notification if this condition is not met. 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 is the same as check_all if there are only two paths per DMP node. The command to configure this policy is:
# vxdmpadm settune dmp_restore_policy=check_alternate
83
check_disabled
This is the default path restoration policy. 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. The command to configure this policy is:
# vxdmpadm settune dmp_restore_policy=check_disabled
check_periodic
The path restoration thread performs check_all once in a given number of cycles, and check_disabled in the remainder of the cycles. This policy may lead to periodic slowing down (due to check_all) if a large number of paths are available. The command to configure this policy is:
# vxdmpadm settune dmp_restore_policy=check_periodic
The default number of cycles between running the check_all policy is 10. The dmp_restore_interval tunable parameter specifies how often the path restoration thread examines the paths. For example, the following command sets the polling interval to 400 seconds:
# vxdmpadm settune dmp_restore_interval=400
The settings are immediately applied and are persistent across reboots. Use the vxdmpadm gettune to view the current settings. See DMP tunable parameters on page 131. If the vxdmpadm start restore command is given without specifying a policy or interval, the path restoration thread is started with the persistent policy and interval settings previously set by the administrator with the vxdmpadm settune command. If the administrator has not set a policy or interval, the system defaults are used. The system default restore policy is check_disabled. The system default interval is 300 seconds. Warning: Decreasing the interval below the system default can adversely affect system performance.
84
Warning: Automatic path failback stops if the path restoration thread is stopped.
Select an I/O path when multiple paths to a disk within the array are available. Select the path failover mechanism. Select the alternate path in the case of a path failure. Put a path change into effect. Respond to SCSI reservation or release requests.
DMP supplies default procedures for these functions when an array is registered. An APM may modify some or all of the existing procedures that are provided by DMP or by another version of the APM. You can use the following command to display all the APMs that are configured for a system:
# vxdmpadm listapm all
85
The output from this command includes the file name of each module, the supported array type, the APM name, the APM version, and whether the module is currently loaded and in use. To see detailed information for an individual module, specify the module name as the argument to the command:
# vxdmpadm listapm module_name
The optional configuration attributes and their values are specific to the APM for an array. Consult the documentation that is provided by the array vendor for details. Note: By default, DMP uses the most recent APM that is available. Specify the -u option instead of the -a option if you want to force DMP to use an earlier version of the APM. The current version of an APM is replaced only if it is not in use. Specifying the -r option allows you to remove an APM that is not currently loaded:
# vxdmpadm -r cfgapm module_name
86
Chapter
Administering disks
This chapter includes the following topics:
About disk management Discovering and configuring newly added disk devices Changing the disk device naming scheme Discovering the association between enclosure-based disk names and OS-based disk names
88
You can also use the vxdisk scandisks command to scan devices in the operating system device tree, and to initiate dynamic reconfiguration of multipathed disks. If you want DMP to scan only for new devices that have been added to the system, and not for devices that have been enabled or disabled, specify the -f option to either of the commands, as shown here:
# vxdctl -f enable # vxdisk -f scandisks
However, a complete scan is initiated if the system configuration has been modified by changes to:
Installed array support libraries. The list of devices that are excluded from use by VxVM. DISKS (JBOD), SCSI3, or foreign device definitions.
See the vxdctl(1M) manual page. See the vxdisk(1M) manual page.
The following command scans for the devices sdm and sdn:
# vxdisk scandisks device=sdm,sdn
Alternatively, you can specify a ! prefix character to indicate that you want to scan for all devices except those that are listed. Note: The ! character is a special character in some shells. The following examples show how to escape it in a bash shell.
89
You can also scan for devices that are connected (or not connected) to a list of logical or physical controllers. For example, this command discovers and configures all devices except those that are connected to the specified logical controllers:
# vxdisk scandisks \!ctlr=c1,c2
The next command discovers only those devices that are connected to the specified physical controller:
# vxdisk scandisks pctlr=c1+c2
The items in a list of physical controllers are separated by + characters. You can use the command vxdmpadm getctlr all to obtain a list of physical controllers. You should specify only one selection argument to the vxdisk scandisks command. Specifying multiple options results in an error. See the vxdisk(1M) manual page.
90
If no ASL is found to claim the device, the DDL checks for a corresponding JBOD definition. You can add JBOD definitions for unsupported arrays to enable DMP to provide multi-pathing for the array. If a JBOD definition is found, the DDL claims the devices in the DISKS category, which adds the LUNs to the list of JBOD (physical disk) devices used by DMP. If the JBOD definition includes a cabinet number, DDL uses the cabinet number to group the LUNs into enclosures. See Adding unsupported disk arrays to the DISKS category on page 100. DMP can provide basic multi-pathing to ALUA-compliant arrays even if there is no ASL or JBOD definition. DDL claims the LUNs as part of the aluadisk enclosure. The array type is shown as ALUA. Adding a JBOD definition also enables you to group the LUNs into enclosures.
Disk categories
Disk arrays that have been certified for use with Veritas Dynamic Multi-Pathing are supported by an array support library (ASL), and are categorized by the vendor ID string that is returned by the disks (for example, HITACHI). Disks in JBODs which are capable of being multipathed by DMP, are placed in the DISKS category. Disks in unsupported arrays can also be placed in the DISKS category. See Adding unsupported disk arrays to the DISKS category on page 100. Disks in JBODs that do not fall into any supported category, and which are not capable of being multipathed by DMP are placed in the OTHER_DISKS category.
91
The new disk array does not need to be already connected to the system when the VRTSaslapm rpm is installed. On a SLES11 system, if any of the disks in the new disk array are subsequently connected, and if vxconfigd is running, vxconfigd immediately invokes the Device Discovery function and includes the new disks in the VxVM device list. For other Linux flavors, reboot the system to make Linux recognize the new disks, and then use the vxdctl enable command to include the new disks in the VxVM device list. See Adding new LUNs dynamically to a new target ID on page 114. If you need to remove the latest VRTSaslapm rpm, you can revert to the previously installed version. For the detailed procedure, refer to the Veritas Storage Foundation and High Availability Solutions Troubleshooting Guide.
92
With EMC PowerPath installed, EMC Symmetrix arrays could be configured as foreign devices. See Foreign devices on page 104. Without EMC PowerPath installed, DMP could be used to perform multi-pathing.
On upgrading a system to VxVM 4.1 or later release, existing EMC PowerPath devices can be discovered by DDL, and configured into DMP as autoconfigured disks with DMP nodes, even if PowerPath is being used to perform multi-pathing. There is no need to configure such arrays as foreign devices. Table 4-1 shows the scenarios for using DMP with PowerPath. The ASLs are all included in the ASL-APM rpm, which is installed when you install Storage Foundation products. Table 4-1 PowerPath
Installed.
Scenarios for using DMP with PowerPath DMP Array configuration mode
The libvxpp ASL handles EMC EMC Symmetrix - Any Symmetrix arrays and DGC DGC CLARiiON CLARiiON claiming internally. Active/Passive (A/P), PowerPath handles failover. Active/Passive in Explicit Failover mode (A/P-F) and ALUA Explicit failover Active/Active
Not installed; the array is EMC DMP handles multi-pathing. Symmetrix. The ASL name is libvxemc. Not installed; the array is DGC DMP handles multi-pathing. CLARiioN (CXn00). The ASL name is libvxCLARiiON.
If any EMCpower disks are configured as foreign disks, use the vxddladm rmforeign command to remove the foreign definitions, as shown in this example:
93
To allow DMP to receive correct inquiry data, the Common Serial Number (C-bit) Symmetrix Director parameter must be set to enabled.
List the hierarchy of all the devices discovered by DDL including iSCSI devices. List all the Host Bus Adapters including iSCSI List the ports configured on a Host Bus Adapter List the targets configured from a Host Bus Adapter List the devices configured from a Host Bus Adapter Get or set the iSCSI operational parameters List the types of arrays that are supported. Add support for an array to DDL. Remove support for an array from DDL. List information about excluded disk arrays. List disks that are supported in the DISKS (JBOD) category. Add disks from different vendors to the DISKS category. Remove disks from the DISKS category. Add disks as foreign devices.
The following sections explain these tasks in more detail. See the vxddladm(1M) manual page.
94
Use the following command to list all of the HBAs, including iSCSI devices, configured on the system:
# vxddladm list hbas
95
96
You can filter based on a HBA or port, using the following command:
# vxddladm list targets [hba=hba_name|port=port_name]
For example, to obtain the targets configured from the specified HBA:
# vxddladm list targets hba=c2 TgtID Alias HBA-ID State Address ----------------------------------------------------------------c2_p0_t0 c2 Online 50:0A:09:80:85:84:9D:84
Listing the devices configured from a Host Bus Adapter and target
You can obtain information about all the devices configured from a Host Bus Adapter. This includes the following information:
Device Target-ID State DDL status The device name. The parent target. Whether the device is Online or Offline. Whether the device is claimed by DDL. If claimed, the output also displays the ASL name.
97
To list the devices configured from a Host Bus Adapter and target
To obtain the devices configured from a particular HBA and target, use the following command:
# vxddladm list devices target=target_name
Minimum value
no no 0 0 0 512 no no 512 1 1 512
Maximum value
yes yes 3600 3600 2 16777215 yes yes 16777215 65535 65535 16777215
MaxRecvDataSegmentLength 8182
98
To get the iSCSI operational parameters on the initiator for a specific iSCSI target
You can use this command to obtain all the iSCSI operational parameters.
# vxddladm getiscsi target=c2_p2_t0
To set the iSCSI operational parameters on the initiator for a specific iSCSI target
99
To exclude support for a disk array library, specify the array library to the following command.
# vxddladm excludearray libname=libvxemc.so
You can also exclude support for disk arrays from a particular vendor, as shown in this example:
# vxddladm excludearray vid=ACME pid=X1
If you have excluded support for all arrays that depend on a particular disk array library, you can use the includearray keyword to remove the entry from the exclude list, as shown in the following example:
# vxddladm includearray libname=libvxemc.so
This command adds the array library to the database so that the library can once again be used in device discovery. If vxconfigd is running, you can use the vxdisk scandisks command to discover the arrays and add their details to the database.
100
This command displays the vendor ID (VID), product IDs (PIDs) for the arrays, array types (for example, A/A or A/P), and array names. The following is sample output.
# vxddladm listsupport libname=libvxfujitsu.so ATTR_NAME ATTR_VALUE ================================================= LIBNAME libvxfujitsu.so VID vendor PID GR710, GR720, GR730 GR740, GR820, GR840 ARRAY_TYPE A/A, A/P ARRAY_NAME FJ_GR710, FJ_GR720, FJ_GR730 FJ_GR740, FJ_GR820, FJ_GR840
101
Warning: This procedure ensures that Dynamic Multi-Pathing (DMP) is set up correctly on an array that is not supported by Veritas Volume Manager. Otherwise, Veritas Volume Manager treats the independent paths to the disks as separate devices, which can result in data corruption. To add an unsupported disk array to the DISKS category
Use the following command to identify the vendor ID and product ID of the disks in the array:
# /etc/vx/diag.d/vxscsiinq device_name
where device_name is the device name of one of the disks in the array. Note the values of the vendor ID (VID) and product ID (PID) in the output from this command. For Fujitsu disks, also note the number of characters in the serial number that is displayed. The following example output shows that the vendor ID is SEAGATE and the product ID is ST318404LSUN18G.
Vendor id (VID) Product id (PID) Revision Serial Number : : : : SEAGATE ST318404LSUN18G 8507 0025T0LA3H
Stop all applications, such as databases, from accessing VxVM volumes that are configured on the array, and unmount all file systems and Storage Checkpoints that are configured on the array. If the array is of type A/A-A, A/P or A/PF, configure it in autotrespass mode.
102
where vendorid and productid are the VID and PID values that you found from the previous step. For example, vendorid might be FUJITSU, IBM, or SEAGATE. For Fujitsu devices, you must also specify the number of characters in the serial number as the argument to the length argument (for example, 10). If the array is of type A/A-A, A/P or A/PF, you must also specify the policy=ap attribute. Continuing the previous example, the command to define an array of disks of this type as a JBOD would be:
# vxddladm addjbod vid=SEAGATE pid=ST318404LSUN18G
Use the vxdctl enable command to bring the array under VxVM control.
# vxdctl enable
To verify that the array is now supported, enter the following command:
# vxddladm listjbod
The following is sample output from this command for the example array:
VID SerialNum CabinetNum Policy (Cmd/PageCode/off/len) (Cmd/PageCode/off/len) ============================================================== SEAGATE ALL PIDs 18/-1/36/12 18/-1/10/11 Disk SUN SESS01 18/-1/36/12 18/-1/12/11 Disk PID
103
To verify that the array is recognized, use the vxdmpadm listenclosure command as shown in the following sample output for the example array:
# vxdmpadm listenclosure ENCLR_NAME ENCLR_TYPE ENCLR_SNO STATUS ARRAY_TYPE LUN_COUNT ============================================================== Disk Disk DISKS CONNECTED Disk 2
The enclosure name and type for the array are both shown as being set to Disk. You can use the vxdisk list command to display the disks in the array:
# vxdisk list DEVICE Disk_0 Disk_1 ... TYPE auto:none auto:none DISK GROUP STATUS online invalid online invalid
To verify that the DMP paths are recognized, use the vxdmpadm getdmpnode command as shown in the following sample output for the example array:
# vxdmpadm getdmpnode enclosure=Disk NAME STATE ENCLR-TYPE PATHS ENBL DSBL ENCLR-NAME ===================================================== Disk_0 ENABLED Disk 2 2 0 Disk Disk_1 ENABLED Disk 2 2 0 Disk ...
The output in this example shows that there are two paths to the disks in the array. For more information, enter the command vxddladm help addjbod. See the vxddladm(1M) manual page. See the vxdmpadm(1M) manual page.
Use the vxddladm command with the rmjbod keyword. The following example illustrates the command for removing disks which have the vendor id of SEAGATE:
# vxddladm rmjbod vid=SEAGATE
104
Foreign devices
DDL may not be able to discover some devices that are controlled by third-party drivers, such as those that provide multi-pathing or RAM disk capabilities. For these devices it may be preferable to use the multi-pathing capability that is provided by the third-party drivers for some arrays rather than using Dynamic Multi-Pathing (DMP). Such foreign devices can be made available as simple disks to VxVM by using the vxddladm addforeign command. This also has the effect of bypassing DMP for handling I/O. The following example shows how to add entries for block and character devices in the specified directories:
# vxddladm addforeign blockdir=/dev/foo/dsk \ chardir=/dev/foo/rdsk
If a block or character device is not supported by a driver, it can be omitted from the command as shown here:
# vxddladm addforeign blockdir=/dev/foo/dsk
By default, this command suppresses any entries for matching devices in the OS-maintained device tree that are found by the autodiscovery mechanism. You can override this behavior by using the -f and -n options as described on the vxddladm(1M) manual page. After adding entries for the foreign devices, use either the vxdisk scandisks or the vxdctl enable command to discover the devices as simple disks. These disks then behave in the same way as autoconfigured disks. The foreign device feature was introduced in VxVM 4.0 to support non-standard devices such as RAM disks, some solid state disks, and pseudo-devices such as EMC PowerPath. Foreign device support has the following limitations:
A foreign device is always considered as a disk with a single path. Unlike an autodiscovered disk, it does not have a DMP node. It is not supported for shared disk groups in a clustered environment. Only standalone host systems are supported. It is not supported for Persistent Group Reservation (PGR) operations. It is not under the control of DMP, so enabling of a failed disk cannot be automatic, and DMP administrative commands are not applicable. Enclosure information is not available to VxVM. This can reduce the availability of any disk groups that are created using such devices. The I/O Fencing and Cluster File System features are not supported for foreign devices.
105
If a suitable ASL is available and installed for an array, these limitations are removed. See Third-party driver coexistence on page 91.
106
Change the naming scheme from the command line. Use the following command to select enclosure-based naming:
# vxddladm set namingscheme=ebn [persistence={yes|no}] \ [use_avid=yes|no] [lowercase=yes|no]
The optional persistence argument allows you to select whether the names of disk devices that are displayed by DMP remain unchanged after disk hardware has been reconfigured and the system rebooted. By default, enclosure-based naming is persistent. Operating system-based naming is not persistent by default. To change only the naming persistence without changing the naming scheme, run the vxddladm set namingscheme command for the current naming scheme, and specify the persistence attribute. By default, the names of the enclosure are converted to lowercase, regardless of the case of the name specified by the ASL. The enclosure-based device names are therefore in lower case. Set the lowercase=no option to suppress the conversion to lowercase. For enclosure-based naming, the use_avid option specifies whether the Array Volume ID is used for the index number in the device name. By default, use_avid=yes, indicating the devices are named as enclosure_avid. If use_avid is set to no, DMP devices are named as enclosure_index. The index number is assigned after the devices are sorted by LUN serial number. The change is immediate whichever method you use. See Regenerating persistent device names on page 107.
107
To display the current disk-naming scheme and its mode of operations, use the following command:
# vxddladm get namingscheme
The -c option clears all user-specified names and replaces them with autogenerated names. If the -c option is not specified, existing user-specified names are maintained, but OS-based and enclosure-based names are regenerated. The disk names now correspond to the new path names.
108
For disk enclosures that are controlled by third-party drivers (TPD) whose coexistence is supported by an appropriate ASL, the default behavior is to assign device names that are based on the TPD-assigned node names. You can use the vxdmpadm command to switch between these names and the device names that are known to the operating system:
# vxdmpadm setattr enclosure enclosure_name tpdmode=native|pseudo
The argument to the tpdmode attribute selects names that are based on those used by the operating system (native), or TPD-assigned node names (pseudo). The use of this command to change between TPD and operating system-based naming is illustrated in the following example for the enclosure named EMC0. In this example, the device-naming scheme is set to OSN.
# vxdisk list DEVICE emcpower10 emcpower11 emcpower12 emcpower13 emcpower14 emcpower15 emcpower16 emcpower17 emcpower18 emcpower19 TYPE auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced DISK disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8 disk9 disk10 GROUP mydg mydg mydg mydg mydg mydg mydg mydg mydg mydg STATUS online online online online online online online online online online
# vxdmpadm setattr enclosure EMC0 tpdmode=native # vxdisk list DEVICE sdj sdk sdl sdm sdn sdo sdp sdq sdr sds TYPE auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced auto:sliced DISK disk1 disk2 disk3 disk4 disk5 disk6 disk7 disk8 disk9 disk10 GROUP mydg mydg mydg mydg mydg mydg mydg mydg mydg mydg STATUS online online online online online online online online online online
Administering disks Discovering the association between enclosure-based disk names and OS-based disk names
109
If tpdmode is set to native, the path with the smallest device number is displayed.
Discovering the association between enclosure-based disk names and OS-based disk names
If you enable enclosure-based naming, the vxprint command displays the structure of a volume using enclosure-based disk device names (disk access names) rather than OS-based names. To discover the association between enclosure-based disk names and OS-based disk names
To discover the operating system-based names that are associated with a given enclosure-based disk name, use either of the following commands:
# vxdisk list enclosure-based_name # vxdmpadm getsubpaths dmpnodename=enclosure-based_name
For example, to find the physical device that is associated with disk ENC0_21, the appropriate commands would be:
# vxdisk list ENC0_21 # vxdmpadm getsubpaths dmpnodename=ENC0_21
To obtain the full pathname for the block disk device and the character disk device from these commands, append the displayed device name to /dev/vx/dmp/ or /dev/vx/rdmp/.
110
Administering disks Discovering the association between enclosure-based disk names and OS-based disk names
Chapter
About online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control Upgrading the array controller firmware online
Reconfiguring a LUN online that is under DMP control See Reconfiguring a LUN online that is under DMP control on page 111. Updating the array controller firmware, also known as a nondisruptive upgrade See Upgrading the array controller firmware online on page 118.
112
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
Dynamic LUN removal from an existing target ID See Removing LUNs dynamically from an existing target ID on page 112. Dynamic new LUN addition to a new target ID See Adding new LUNs dynamically to a new target ID on page 114. Dynamic LUN expansion
Prior to any dynamic reconfiguration, ensure that the dmp_cache_open tunable is set to on. This setting is the default.
# vxdmpadm gettune dmp_cache_open
Identify which LUNs to remove from the host. Do one of the following:
Use Storage Array Management to identify the Array Volume ID (AVID) for the LUNs. If the array does not report the AVID, use the LUN index.
Evacuate the data from the LUNs using the vxevac command. See the vxevac(1M) online manual page. After the data has been evacuated, enter the following command to remove the LUNs from the disk group:
# vxdg -g diskgroup rmdisk da-name
If the data has not been evacuated and the LUN is part of a subdisk or disk group, enter the following command to remove the LUNs from the disk
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
113
group. If the disk is part of a shared disk group, you must use the -k option to force the removal.
# vxdg -g diskgroup -k rmdisk da-name
For LUNs using Linux LVM over DMP devices, remove the device from the LVM volume group
# vgreduce vgname devicepath
5 6
Using the AVID or LUN index, use Storage Array Management to unmap or unmask the LUNs you identified in step 2. Remove the LUNs from the vxdisk list. Enter the following command on all nodes in a cluster:
# vxdisk rm da-name
This is a required step. If you do not perform this step, the DMP device tree shows ghost paths.
Clean up the Linux SCSI device tree for the devices that you removed in step 6. See Cleaning up the operating system device tree after removing LUNs on page 117. This step is required. You must clean up the operating system SCSI device tree to release the SCSI target ID for reuse if a new LUN is added to the host later.
Scan the operating system device tree. See Scanning an operating system device tree after adding or removing LUNs on page 116.
Use DMP to perform a device scan. You must perform this operation on all nodes in a cluster. Enter one of the following commands:
114
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
10 Refresh the DMP device name database using the following command:
# vxddladm assign names
11 Verify that the LUNs were removed cleanly by answering the following
questions:
Is the device tree clean? Verify that the operating system metanodes are removed from the /sys/block directory. Were all the appropriate LUNs removed? Use the DMP disk reporting tools such as the vxdisk list command output to determine if the LUNs have been cleaned up successfully. Is the vxdisk list output correct? Verify that the vxdisk list output shows the correct number of paths and does not include any ghost disks.
If the answer to any of these questions is "No," return to step 5 and perform the required steps. If the answer to all of the questions is "Yes," the LUN remove operation is successful.
Prior to any dynamic reconfiguration, ensure that the dmp_cache_open tunable is set to on. This setting is the default.
# vxdmpadm gettune dmp_cache_open
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
115
Use Storage Array Management to identify the Array Volume ID (AVID) for the LUNs. If the array does not report the AVID, use the LUN index.
3 4
Map/mask the LUNs to the new target IDs on multiple hosts. Scan the operating system device. See Scanning an operating system device tree after adding or removing LUNs on page 116. Repeat step 2 and step 3 until you see that all the LUNs have been added.
Use DMP to perform a device scan. You must perform this operation on all nodes in a cluster. Enter one of the following commands:
Refresh the DMP device name database using the following command:
# vxddladm assign names
Verify that the LUNs were added correctly by answering the following questions:
Do the newly provisioned LUNs appear in the vxdisk list output? Are the configured paths present for each LUN?
If the answer to any of these questions is "No," return to step 2 and begin the procedure again. If the answer to all of the questions is "Yes," the LUNs have been successfully added. You can now add the LUNs to a disk group, create new volumes, or grow existing volumes. If the dmp_native_support tunable is set to ON and the new LUN does not have a VxVM label or is not claimed by a TPD driver then the LUN is available for use by LVM.
About detecting target ID reuse if the operating system device tree is not cleaned up
If you try to reprovision a LUN or set of LUNs whose previously-valid operating system device entries are not cleaned up, the following messages are displayed.
116
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
Also, DMP reconfiguration during the DMP device scan and DMP reconfiguration are temporarily inhibited. See Cleaning up the operating system device tree after removing LUNs on page 117.
VxVM vxdisk ERROR V-5-1-14519 Data Corruption Protection Activated - User Corrective Action Needed VxVM vxdisk INFO V-5-1-14521 To recover, first ensure that the OS device tree is up to date (requires OS specific commands). VxVM vxdisk INFO V-5-1-14520 Then, execute 'vxdisk rm' on the following devices before reinitiating device discovery. <DA names>
The message above indicates that a new LUN is trying to reuse the target ID of an older LUN. The device entries have not been cleaned, so the new LUN cannot use the target ID. Until the operating system device tree is cleaned up, DMP prevents this operation.
The SCSI scan function in the /sys directory HBA vendor utilities
where the three dashes refer to the channel, target, and LUN numbers, and host$i is the host bus adapter instance. This example scans every channel, target, and LUN visible via this host bus adapter instance. To scan using HBA vendor utilities
Follow the vendor's instructions for the HBA utility. Examples include the following:
Online dynamic reconfiguration Reconfiguring a LUN online that is under DMP control
117
QLogic provides a script that dynamically scans for newly-added LUNs. You can download it from the QLogic Web site. To run the script, enter the following command:
# ./ql-dynamic-tgt-lun-disc.sh
Emulex provides an HBAnywhere script. You can download it from the Emulex web site. The script has a LUN Scan Utility that dynamically scans for newly-added LUNs. To run the utility, enter the following command:
# lun_scan all
Remove the device from the operating system database. Enter the following command:
# echo 1 > /sys/block/$PATH_SYS/device/delete
When you enter the following command, no devices should be displayed. This step verifies that the LUNs have been removed.
# lsscsi | grep PATH_SYS
After you remove the LUNS, clean up the device. Enter the following command:
# echo "- - -" > /sys/class/scsi_host/host$I/scan
where the three dashes refer to the channel, target, and LUN numbers, and host$i is the host bus adapter instance. This example cleans up every channel, target, and LUN visible via this host bus adapter instance.
118
DMP does not fail the I/Os for 300 seconds, or until the I/O succeeds. To verify which arrays support Online Controller Upgrade or NDU, see the hardware compatibility list (HCL) at the following URL: http://www.symantec.com/docs/TECH170013
Chapter
Event monitoring
This chapter includes the following topics:
About the Dynamic Multi-Pathing (DMP) event source daemon (vxesd) Fabric Monitoring and proactive error detection Dynamic Multi-Pathing (DMP) discovery of iSCSI and SAN Fibre Channel topology DMP event logging Starting and stopping the Dynamic Multi-Pathing (DMP) event source daemon
Monitoring of SAN fabric events and proactive error detection (SAN event) See Fabric Monitoring and proactive error detection on page 120. Logging of DMP events for troubleshooting (DMP event) See DMP event logging on page 121. Automated device discovery (OS event) Discovery of SAN components and HBA-array port connectivity (Fibre Channel and iSCSI) See Dynamic Multi-Pathing (DMP) discovery of iSCSI and SAN Fibre Channel topology on page 121.
120
See Starting and stopping the Dynamic Multi-Pathing (DMP) event source daemon on page 122.
Event monitoring Dynamic Multi-Pathing (DMP) discovery of iSCSI and SAN Fibre Channel topology
121
To display the current value of the dmp_monitor_fabric tunable, use the following command:
# vxdmpadm gettune dmp_monitor_fabric
Dynamic Multi-Pathing (DMP) discovery of iSCSI and SAN Fibre Channel topology
The vxesd builds a topology of iSCSI and Fibre Channel devices that are visible to the host. The vxesd daemon uses the SNIA Fibre Channel HBA API to obtain the SAN topology. If IMA is not available, then iSCSI management CLI is used to obtain the iSCSI SAN topology. To display the hierarchical listing of Fibre Channel and iSCSI devices, use the following command:
# vxddladm list
Marking paths or dmpnodes enabled Marking paths or dmpnodes disabled Throttling of paths I/O error analysis Host Bus Adapter (HBA) and Storage Area Network (SAN) events
The log file is located in /var/adm/vx/dmpevents.log but is symbolically linked to /etc/vx/dmpevents.log. When the file reaches 10,000 lines, the log is rotated. That is, dmpevents.log is renamed dmpevents.log.X and a new dmpevents.log file is created. You can change the level of detail in the event log file using the tunable dmp_log_level. Valid values are 1 through 4. The default level is 1.
122
Event monitoring Starting and stopping the Dynamic Multi-Pathing (DMP) event source daemon
For details on the various log levels, see the vxdmpadm(1M) manual page.
Starting and stopping the Dynamic Multi-Pathing (DMP) event source daemon
By default, DMP starts vxesd at boot time. To stop the vxesd daemon, use the vxddladm utility:
# vxddladm stop eventsource
To view the status of the vxesd daemon, use the vxddladm utility:
# vxddladm status eventsource
Chapter
About tuning Veritas Dynamic Multi-Pathing (DMP) with templates DMP tuning templates Example DMP tuning template Tuning a DMP host with a configuration attribute template Managing the DMP configuration files Resetting the DMP tunable parameters and attributes to the default values DMP tunable parameters and attributes that are supported for templates DMP tunable parameters
124
if required. Then, load the template file to a host to update all of the values in a single operation. You can load the configuration file to the same host, or to another similar host. The template method is useful for the following scenarios:
Configure multiple similar hosts with the optimal performance tuning values. Configure one host for optimal performance. After you have configured the host, dump the tunable parameters and attributes to a template file. You can then load the template file to another host with similar requirements. Symantec recommends that the hosts that use the same configuration template have the same operating system and similar I/O requirements. Define multiple specialized templates to handle different I/O load requirements. When the load changes on a host, you can load a different template for the best performance. This strategy is appropriate for predictable, temporary changes in the I/O load. As the system administrator, after you define the system's I/O load behavior, you can customize tuning templates for particular loads. You can then automate the tuning, since there is a single load command that you can use in scripts or cron jobs.
At any time, you can reset the configuration, which reverts the values of the tunable parameters and attributes to the DMP default values. You can manage the DMP configuration file with the vxdmpadm config commands. See the vxdmpadm(1m) man page.
DMP tunable parameters. DMP attributes defined for an enclosure, array name, or array type. Veritas naming scheme parameters.
125
Arrayname
Use if particular arrays need customization; that is, if the tunables vary from those applied for the array type. Attributes in this section are applied to all of the enclosures of the specified array name.
Enclosurename
Applied to the enclosures of the specified Cab serial number and array name. Use if particular enclosures need customization; that is, if the tunables vary from those applied for the array type and array name.
Loading is atomic for the section. DMP loads each section only if all of the attributes in the section are valid. When all sections have been processed, DMP reports the list of errors and warns the user. DMP does not support a partial rollback. DMP verifies the tunables and attributes during the load process. However, Symantec recommends that you check the configuration template file before you attempt to load the file. Make any required corrections until the configuration file validates correctly. The attributes are given priority in the following order when a template is loaded: Enclosure Section > Array Name Section > Array Type Section If all enclosures of the same array type need the same settings, then remove the corresponding array name and enclosure name sections from the template. Define the settings only in the array type section. If some of the enclosures or array names need customized settings, retain the attribute sections for the array names or enclosures. You can remove the entries for the enclosures or the array names if they use the same settings that are defined for the array type. When you dump a configuration file from a host, that host may contain some arrays which are not visible on the other hosts. When you load the template to a target host that does not include the enclosure, array type, or array name, DMP ignores the sections. You may not want to apply settings to non-shared arrays or some host-specific arrays on the target hosts. Be sure to define an enclosure section for each of those arrays in the template. When you load the template file to the target host, the enclosure section determines the settings. Otherwise, DMP applies the settings from the respective array name or array type sections.
126
127
iopolicy=adaptive partitionsize=512 use_all_paths=no recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 Arraytype arraytype=Disk iopolicy=minimumq partitionsize=512 recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 Arrayname arrayname=EMC_CLARiiON iopolicy=minimumq partitionsize=512 recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 Arrayname arrayname=EVA4K6K iopolicy=adaptive partitionsize=512 use_all_paths=no recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 Arrayname arrayname=Disk iopolicy=minimumq partitionsize=512 recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 Enclosure serial=CK200051900278 arrayname=EMC_CLARiiON arraytype=CLR-A/PF iopolicy=minimumq partitionsize=512 recoveryoption=nothrottle recoveryoption=timebound iotimeout=300
128
Performance monitoring and tuning Tuning a DMP host with a configuration attribute template
redundancy=0 dmp_lun_retry_timeout=0 Enclosure serial=50001FE1500A8F00 arrayname=EVA4K6K arraytype=ALUA iopolicy=adaptive partitionsize=512 use_all_paths=no recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 dmp_lun_retry_timeout=0 Enclosure serial=50001FE1500BB690 arrayname=EVA4K6K arraytype=ALUA iopolicy=adaptive partitionsize=512 use_all_paths=no recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 dmp_lun_retry_timeout=0 Enclosure serial=DISKS arrayname=Disk arraytype=Disk iopolicy=minimumq partitionsize=512 recoveryoption=nothrottle recoveryoption=timebound iotimeout=300 redundancy=0 dmp_lun_retry_timeout=0
Performance monitoring and tuning Tuning a DMP host with a configuration attribute template
129
In this release, Symantec recommends that you load the DMP template to a host that is similar to the host that was the source of the tunable values. To configure DMP on a host with a template
Edit the file to make any required changes to the tunable parameters in the template. The target host may include non-shared arrays or host-specific arrays. To avoid updating these with settings from the array name or array type, define an enclosure section for each of those arrays in the template. When you load the template file to the target host, the enclosure section determines the settings. Otherwise, DMP applies the settings from the respective array name or array type sections.
DMP displays no output if the configuration check is successful. If the file contains errors, DMP displays the errors. Make any required corrections until the configuration file is valid. For example, you may see errors such as the following:
VxVM vxdmpadm ERROR V-5-1-0 Template file 'error.file' contains following errors: Line No: 22 Line No: 44 non-digits Line No: 64 the limit of Line No: 76 Line No: 281 'dmp_daemon_count' can not be set to 0 or less Specified value for 'dmp_health_time' contains Specified value for 'dmp_path_age' is beyond its value 'dmp_probe_idle_lun' can be set to either on or off Unknown arraytype
During the loading process, DMP validates each section of the template. DMP loads all valid sections. DMP does not load any section that contains errors.
130
Resetting the DMP tunable parameters and attributes to the default values
DMP maintains the default values for the DMP tunable parameters and attributes. At any time, you can restore the default values to the host. Any changes that you applied to the host with template files are discarded. To reset the DMP tunables to the default values
DMP tunable parameters and attributes that are supported for templates
DMP supports tuning the following tunable parameters and attributes with a configuration template.
DMP tunable parameters DMP attributes defined for an enclosure, array name, or array type. See DMP tunable parameters on page 131.
dmp_lun_retry_timeout
131
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
How long DMP should wait before retrying I/O after an array fails over to a standby path. Some disk arrays are not capable of accepting I/O requests immediately after failover. The default value is 15 seconds.
132
dmp_fast_recovery
dmp_health_time
DMP detects intermittently failing paths, and prevents I/O requests from being sent on them. The value of dmp_health_time represents the time in seconds for which a path must stay healthy. If a paths 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 is 60 seconds. A value of 0 prevents DMP from detecting intermittently failing paths.
dmp_log_level
The level of detail that is displayed for DMP console messages. The following level values are defined: 1 Displays all DMP log messages that existed in releases before 5.0. 2 Displays level 1 messages plus messages that relate to path or disk addition or removal, SCSI errors, IO errors and DMP node migration. 3 Displays level 1 and 2 messages plus messages that relate to path throttling, suspect path, idle path and insane path logic. 4 Displays level 1, 2 and 3 messages plus messages that relate to setting or changing attributes on a path and tunable related changes. The default value is 1.
133
dmp_low_impact_probe
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 0. 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.
134
dmp_monitor_osevent
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 will do multi-pathing for native devices. Set the tunable to on to have DMP do multi-pathing for native devices. When a Dynamic Multi-Pathing product is installed, the default value is off. When Veritas Dynamic Multi-Pathing is installed, the default value is on.
135
dmp_pathswitch_blks_shift
The default number of contiguous I/O blocks that are sent along a DMP path to an array before switching to the next available path. The value is expressed as the integer exponent of a power of 2; for example 9 represents 512 blocks. The default value of is 9. In this case, 512 blocks (256k) of contiguous I/O are sent over a DMP path before switching. For intelligent disk arrays with internal data caches, better throughput may be obtained by increasing the value of this tunable. For example, for the HDS 9960 A/A array, the optimal value is between 15 and 17 for an I/O activity pattern that consists mostly of sequential reads or writes. This parameter only affects the behavior of the balanced I/O policy. A value of 0 disables multi-pathing for the policy unless the vxdmpadm command is used to specify a different partition size for an array. See Specifying the I/O policy on page 68.
dmp_probe_idle_lun
If DMP statistics gathering is enabled, set this tunable to on (default) to have the DMP path restoration thread probe idle LUNs. Set this tunable to off to turn off this feature. (Idle LUNs are VM disks on which no I/O requests are scheduled.) The value of this tunable is only interpreted when DMP statistics gathering is enabled. Turning off statistics gathering also disables idle LUN probing. The default value is on.
136
dmp_probe_threshold
dmp_restore_cycles
If the DMP restore policy is check_periodic, the number of cycles after which the check_all policy is called. The default value is 10. The value of this tunable can also be set using the vxdmpadm start restore command. See Configuring DMP path restoration policies on page 82.
dmp_restore_interval
The interval attribute specifies how often the path restoration thread examines the paths. Specify the time in seconds. The default value is 300. The value of this tunable can also be set using the vxdmpadm start restore command. See Configuring DMP path restoration policies on page 82.
dmp_restore_state
If this parameter is set to enabled, it enables the path restoration thread to be started. See Configuring DMP path restoration policies on page 82. If this parameter is set to disabled, it stops and disables the path restoration thread. If this parameter is set to stopped, it stops the path restoration thread until the next device discovery cycle. The default is enabled. See Stopping the DMP path restoration thread on page 83.
137
dmp_retry_count
dmp_scsi_timeout
dmp_sfg_threshold
Determines the minimum number of paths that should be failed in a failover group before DMP starts suspecting other paths in the same failover group. The value of 0 disables the failover logic based on subpath failover groups. The default value is 1.
dmp_stat_interval
The time interval between gathering DMP statistics. The default and minimum value are 1 second.
138
Glossary
This type of multipathed disk array allows you to access a disk in the disk array through all the paths to the disk simultaneously, without any performance degradation. This type of multipathed disk array allows one path to a disk to be designated as primary and used to access the disk at any time. Using a path other than the designated active path results in severe performance degradation in some disk arrays. The process of establishing a relationship between VxVM objects; for example, a subdisk that has been created and defined as having a starting point within a plex is referred to as being associated with that plex. A plex associated with a volume. A subdisk associated with a plex. An operation that either succeeds completely or fails and leaves everything as it was before the operation was started. If the operation succeeds, all aspects of the operation take effect at once and the intermediate states of change are invisible. If any aspect of the operation fails, then the operation aborts without leaving partial changes. In a cluster, an atomic operation takes place either on all nodes or not at all.
associate
attached
A state in which a VxVM object is both associated with another object and enabled for use. The minimum unit of data transfer to or from a disk or array. A disk that is used for the purpose of booting a system. A private disk group that contains the disks from which the system may be booted. A reserved disk group name that is an alias for the name of the boot disk group. The ability of a node to leave a cluster gracefully when all access to shared volumes has ceased. A set of hosts (each termed a node) that share a set of disks. An externally-provided daemon that runs on each node in a cluster. The cluster managers on each node communicate with each other and inform VxVM of changes in cluster membership.
block boot disk boot disk group bootdg clean node shutdown
140
Glossary
A disk group in which access to the disks is shared by multiple hosts (also referred to as a shared disk group). A set of one or more subdisks within a striped plex. Striping is achieved by allocating data alternately and evenly across the columns within a plex. A layout style characterized by subdisks that are arranged sequentially and contiguously. A single copy of a configuration database. as disk and volume attributes).
concatenation
configuration copy
configuration database A set of records containing detailed information on existing VxVM objects (such
A VxVM object that is used to manage information about the FastResync maps in the DCO volume. Both a DCO object and a DCO volume must be associated with a volume to implement Persistent FastResync on that volume. This represents the usable data portion of a stripe and is equal to the stripe minus the parity region. A special volume that is used to hold Persistent FastResync change maps and dirty region logs. See also see dirty region logging. A state in which a VxVM object is associated with another object, but not enabled for use. The device name or address used to access a physical disk, such as sda or sda3, where sda indicates the whole device, and sda3 refers to the third partition on sda. In a SAN environment, it is more convenient to use enclosure-based naming, which forms the device name by concatenating the name of the enclosure (such as enc0) with the disks number within the enclosure, separated by an underscore (for example, enc0_2). The term disk access name can also be used to refer to a device name.
data stripe
DCO volume
detached
device name
The method by which the VxVM monitors and logs modifications to a plex as a bitmap of changed regions. For a volumes with a new-style DCO volume, the dirty region log (DRL) is maintained in the DCO volume. Otherwise, the DRL is allocated to an associated subdisk called a log subdisk. A path to a disk that is not available for I/O. A path can be disabled due to real hardware failures or if the user has used the vxdmpadm disable command on that controller. A collection of read/write data blocks that are indexed and can be accessed fairly quickly. Each disk has a universally unique identifier. An alternative term for a device name.
disabled path
disk
Glossary
141
Configuration records used to specify the access path to particular disks. Each disk access record contains a name, a type, and possibly some type-specific information, which is used by VxVM in deciding how to access and manipulate the disk that is defined by the disk access record. A collection of disks logically arranged into an object. Arrays tend to provide benefits such as redundancy or improved performance. cabinet or can be obtained by issuing a vendor- specific SCSI command to the disks on the disk array. This number is used by the DMP subsystem to uniquely identify a disk array.
disk array
disk array serial number This is the serial number of the disk array. It is usually printed on the disk array
disk controller
In the multipathing subsystem of VxVM, the controller (host bus adapter or HBA) or disk array connected to the host, which the operating system represents as the parent node of a disk. An intelligent disk array that usually has a backplane with a built-in Fibre Channel loop, and which permits hot-swapping of disks. A collection of disks that share a common configuration. A disk group configuration is a set of records containing detailed information on existing VxVM objects (such as disk and volume attributes) and their relationships. Each disk group has an administrator-assigned name and an internally defined unique ID. The disk group names bootdg (an alias for the boot disk group), defaultdg (an alias for the default disk group) and nodg (represents no disk group) are reserved. A unique identifier used to identify a disk group. A universally unique identifier that is given to each disk and can be used to identify the disk, even if it is moved. An alternative term for a disk name. A configuration record that identifies a particular disk, by disk ID, and gives that disk a logical (or administrative) name. A logical or administrative name chosen for a disk that is under the control of VxVM, such as disk03. The term disk media name is also used to refer to a disk name. The process by which any link that exists between two VxVM objects is removed. For example, dissociating a subdisk from a plex removes the subdisk from the plex and adds the subdisk to the free space pool. A plex dissociated from a volume. A subdisk dissociated from a plex. A lock manager that runs on different systems in a cluster, and ensures consistent access to distributed resources.
disk enclosure
disk group
disk name
dissociate
142
Glossary
A path to a disk that is available for I/O. A process that converts existing partitions on a specified disk to volumes. If any partitions contain file systems, /etc/fstab entries are modified so that the file systems are mounted on volumes instead. See disk enclosure.
enclosure
A disk device that is accessible on a Storage Area Network (SAN) via a Fibre Channel switch. A fast resynchronization feature that is used to perform quick and efficient resynchronization of stale mirrors, and to increase the efficiency of the snapshot mechanism. A collective name for the fiber optic technology that is commonly used to set up a Storage Area Network (SAN). A collection of files organized together into a structure. The UNIX file system is a hierarchical structure consisting of directories and files. An area of a disk under VxVM control that is not allocated to any subdisk or reserved for use by any other VxVM object. A subdisk that is not associated with any plex and has an empty putil[0] field. A string that identifies a host to VxVM. The host ID for a host is stored in its volboot file, and is used in defining ownership of disks and disk groups. A technique of automatically restoring redundancy and access to mirrored and RAID-5 volumes when a disk fails. This is done by relocating the affected subdisks to disks designated as spares and/or free space in the same disk group. Refers to devices that can be removed from, or inserted into, a system without first turning off the power supply to the system. The node on which the system administrator is running a utility that requests a change to VxVM objects. This node initiates a volume reconfiguration. The common name for an unintelligent disk array which may, or may not, support the hot-swapping of disks. A plex used to store a RAID-5 log. The term log plex may also be used to refer to a Dirty Region Logging plex. A subdisk that is used to store a dirty region log. A node that is designated by the software to coordinate certain VxVM operations in a cluster. Any node is capable of being the master node. The node to which a disk is attached. This is also known as a disk owner.
FastResync
Fibre Channel
file system
free space
hot-relocation
hot-swap
initiating node
mastering node
Glossary
143
mirror
A duplicate copy of a volume and the data therein (in the form of an ordered collection of subdisks). Each mirror consists of one plex of the volume with which the mirror is associated. A layout technique that mirrors the contents of a volume onto multiple plexes. Each plex duplicates the data stored on the volume, but the plexes themselves may have different layouts. Where there are multiple physical access paths to a disk connected to a system, the disk is called multipathed. Any software residing on the host, (for example, the DMP driver) that hides this fact from the user is said to provide multipathing functionality. One of the hosts in a cluster. A situation where a node leaves a cluster (on an emergency basis) without attempting to stop ongoing operations. The process through which a node joins a cluster and gains access to shared disks. A form of FastResync that cannot preserve its maps across reboots of the system because it stores its change map in memory. An entity that is defined to and recognized internally by VxVM. The VxVM objects are: volume, plex, subdisk, disk, and disk group. There are actually two types of disk objectsone for the physical aspect of the disk and the other for the logical aspect. A calculated value that can be used to reconstruct data after a failure. While data is being written to a RAID-5 volume, parity is also calculated by performing an exclusive OR (XOR) procedure on data. The resulting parity is then written to the volume. If a portion of a RAID-5 volume fails, the data that was on that portion of the failed volume can be recreated from the remaining data and the parity. A RAID-5 volume storage region that contains parity information. The data contained in the parity stripe unit can be used to help reconstruct regions of a RAID-5 volume that are missing because of I/O or disk failures. The standard division of a physical disk device, as supported directly by the operating system and disk drives. When a disk is connected to a host, the path to the disk consists of the HBA (Host Bus Adapter) on the host, the SCSI or fibre cable connector and the controller on the disk or disk array. These components constitute a path to a disk. A failure on any of these results in DMP trying to shift all I/O for that disk onto the remaining (alternate) paths. In the case of disks which are not multipathed by vxdmp, VxVM will see each path as a disk. In such cases, all paths to the disk can be grouped. This way only one of the paths from the group is made visible to VxVM.
mirroring
multipathing
parity
partition
path
pathgroup
144
Glossary
Persistent FastResync
A form of FastResync that can preserve its maps across reboots of the system by storing its change map in a DCO volume on disk). and prevents failed mirrors from being selected for recovery. This is also known as kernel logging.
persistent state logging A logging type that ensures that only active mirrors are used for recovery purposes
The underlying storage device, which may or may not be under VxVM control. A plex is a logical grouping of subdisks that creates an area of disk space independent of physical disk size or other restrictions. Mirroring is set up by creating multiple data plexes for a single volume. Each data plex in a mirrored volume contains an identical copy of the volume data. Plexes may also be created to represent concatenated, striped and RAID-5 volume layouts, and to store volume logs. In Active/Passive disk arrays, a disk can be bound to one particular controller on the disk array or owned by a controller. The disk can then be accessed using the path through this particular controller. A disk group in which the disks are accessed by only one specific host in a cluster. A region of a physical disk used to store private, structured VxVM information. The private region contains a disk header, a table of contents, and a configuration database. The table of contents maps the contents of the disk. The disk header contains a disk ID. All data in the private region is duplicated for extra reliability. A region of a physical disk managed by VxVM that contains available space and is used for allocating subdisks. A disk array set up with part of the combined storage capacity used for storing duplicate information about the data stored in that array. This makes it possible to regenerate the data if a disk failure occurs. A recovery mode in which each read operation recovers plex consistency for the region covered by the read. Plex consistency is recovered by reading data from blocks of one plex and writing the data to all other writable plexes. The configuration database for the root disk group. This is special in that it always contains records for other disk groups, which are used for backup purposes only. It also contains disk records that define all disk devices on the system. The disk containing the root file system. This disk may be under VxVM control. The initial file system mounted as part of the UNIX kernel startup sequence. The disk region on which the root file system resides. The VxVM volume that contains the root file system, if such a volume is designated by the system configuration.
primary path
public region
read-writeback mode
root configuration
Glossary
145
rootability
The ability to place the root file system and the swap device under VxVM control. The resulting volumes can then be mirrored to provide redundancy and allow recovery in the event of disk failure. In Active/Passive disk arrays, the paths to a disk other than the primary path are called secondary paths. A disk is supposed to be accessed only through the primary path until it fails, after which ownership of the disk is transferred to one of the secondary paths. A unit of size, which can vary between systems. Sector size is set per device (hard drive, CD-ROM, and so on). Although all devices within a system are usually configured to the same sector size for interoperability, this is not always the case. A sector is commonly 512 bytes.
secondary path
sector
A disk group in which access to the disks is shared by multiple hosts (also referred to as a cluster-shareable disk group). A volume that belongs to a shared disk group and is open on more than one node of a cluster at the same time. A VM disk that belongs to a shared disk group in a cluster. A node that is not designated as the master node of a cluster. The standard division of a logical disk device. The terms partition and slice are sometimes used synonymously. A point-in-time copy of a volume (volume snapshot) or a file system (file system snapshot). A layout technique that permits a volume (and its file system or database) that is too large to fit on a single disk to be configured across multiple physical disks. A plex that is not as long as the volume or that has holes (regions of the plex that do not have a backing subdisk). A networking paradigm that provides easily reconfigurable connectivity between any subset of computers, disk storage and interconnecting hardware such as switches, hubs and bridges. A set of stripe units that occupy the same positions across a series of columns. The sum of the stripe unit sizes comprising a single stripe across all columns being striped. Equally-sized areas that are allocated alternately on the subdisks (within columns) of each striped plex. In an array, this is a set of logically contiguous blocks that exist on each disk before allocations are made from the next disk in the array. A stripe unit may also be referred to as a stripe element.
shared volume
snapshot
spanning
sparse plex
stripe unit
146
Glossary
The size of each stripe unit. The default stripe unit size is 64KB. The stripe unit size is sometimes also referred to as the stripe width. A layout technique that spreads data across several physical disks using stripes. The data is allocated alternately to the stripes within the subdisks of each plex. A consecutive set of contiguous disk blocks that form a logical disk segment. Subdisks can be associated with plexes to form volumes. A disk region used to hold copies of memory pages swapped out by the system pager process. A VxVM volume that is configured for use as a swap area. A set of configuration changes that succeed or fail as a group, rather than individually. Transactions are used internally to maintain consistent configurations. A disk that is both under VxVM control and assigned to a disk group. VM disks are sometimes referred to as VxVM disks. A small file that is used to locate copies of the boot disk group configuration. The file may list disks that contain configuration copies in standard locations, and can also contain direct pointers to configuration copy locations. The volboot file is stored in a system-dependent location. A virtual disk, representing an addressable range of disk blocks used by applications such as file systems or databases. A volume is a collection of from one to 32 plexes. The volume configuration device (/dev/vx/config) is the interface through which all configuration changes to the volume device driver are performed. The driver that forms the virtual disk drive between the application and the physical device driver level. The volume device driver is accessed through a virtual disk device node whose character device nodes appear in /dev/vx/rdsk, and whose block device nodes appear in /dev/vx/dsk. The VxVM configuration daemon, which is responsible for making changes to the VxVM configuration. This daemon must be running before VxVM operations can be performed.
striping
subdisk
swap area
VM disk
volboot file
volume
vxconfigd
Index
Symbols
/etc/vx/dmppolicy.info file 69
B
balanced path policy 70
A
A/A disk arrays 12 A/P disk arrays 13 A/P-C disk arrays 1314 A/P-F disk arrays 13 A/P-G disk arrays 14 access port 13 active path attribute 65 active paths devices 6667 Active/Active disk arrays 12 Active/Passive disk arrays 13 adaptive load-balancing 69 APM configuring 84 array policy module (APM) configuring 84 array ports disabling for DMP 75 displaying information about 55 enabling for DMP 76 array support library (ASL) 90 Array Volume ID device naming 106 arrays DMP support 89 ASL array support library 8990 attributes active 65 nomanual 65 nopreferred 65 preferred priority 66 primary 66 secondary 66 setting for paths 65, 67 standby 66 autotrespass mode 13
C
categories disks 90 check_all policy 82 check_alternate policy 82 check_disabled policy 83 check_periodic policy 83 clusters use of DMP in 18 Configuring DMP using templates 123 controllers disabling for DMP 75 disabling in DMP 43 displaying information about 54 enabling for DMP 76 customized naming DMP nodes 46
D
DDL 19 Device Discovery Layer 93 device discovery introduced 19 partial 88 Device Discovery Layer 93 Device Discovery Layer (DDL) 19, 93 device names 19 configuring persistent 107 user-specified 46 devices adding foreign 104 fabric 88 JBOD 89 listing all 94 metadevices 20 path redundancy 6667
148
Index
devices (continued) pathname 20 disabled paths 45 disk arrays A/A 12 A/P 13 A/P-F 13 A/P-G 14 Active/Active 12 Active/Passive 13 adding disks to DISKS category 101 excluding support for 99 JBOD devices 89 listing excluded 99 listing supported 98 listing supported disks in DISKS category 100 multipathed 19 re-including support for 99 removing disks from DISKS category 103 supported with DMP 98 disk names configuring persistent 107 disks 90 adding to DISKS category 101 array support library 90 categories 90 changing naming scheme 105 configuring newly added 87 configuring persistent names 107 Device Discovery Layer 93 disabled path 45 discovery of by DMP 87 discovery of by VxVM 89 displaying naming scheme 106 enabled path 45 enclosures 21 invoking discovery of 91 listing those supported in JBODs 100 metadevices 20 naming schemes 20 OTHER_DISKS category 90 primary path 45 removing from DISKS category 103 scanning for 88 secondary path 45 DISKS category 90 adding disks 101 listing supported disks 100 removing disks 103
displaying DMP nodes 50 redundancy levels 66 supported disk arrays 98 displaying statistics erroneous I/Os 62 queued I/Os 62 DMP check_all restore policy 82 check_alternate restore policy 82 check_disabled restore policy 83 check_periodic restore policy 83 configuring disk devices 87 configuring DMP path restoration policies 82 configuring I/O throttling 79 configuring response to I/O errors 77, 81 disabling array ports 75 disabling controllers 75 disabling paths 75 disk discovery 87 displaying DMP database information 44 displaying DMP node for a path 49 displaying DMP node for an enclosure 4950 displaying DMP nodes 50 displaying information about array ports 55 displaying information about controllers 54 displaying information about enclosures 55 displaying information about paths 44 displaying LUN group for a node 51 displaying paths for a controller 52 displaying paths for an array port 52 displaying recoveryoption values 81 displaying status of DMP path restoration thread 84 displaying TPD information 56 dynamic multi-pathing 12 enabling array ports 76 enabling controllers 76 enabling paths 76 enclosure-based naming 14 gathering I/O statistics 60 in a clustered environment 18 load balancing 17 logging levels 132 path aging 132 path failover mechanism 16 path-switch tunable 135 renaming an enclosure 77 restore policy 82
Index
149
DMP (continued) scheduling I/O on secondary paths 72 setting the DMP restore polling interval 82 stopping the DMP restore daemon 83 tuning with templates 123 vxdmpadm 47 DMP nodes displaying consolidated information 50 setting names 46 DMP support JBOD devices 89 dmp_cache_open tunable 131 dmp_daemon_count tunable 131 dmp_delayq_interval tunable 131 dmp_fast_recovery tunable 132 dmp_health_time tunable 132 dmp_log_level tunable 132 dmp_low_impact_probe 133 dmp_lun_retry_timeout tunable 133 dmp_monitor_osevent tunable 134 dmp_monitor_ownership tunable 134 dmp_native_support tunable 134 dmp_path_age tunable 135 dmp_pathswitch_blks_shift tunable 135 dmp_probe_idle_lun tunable 135 dmp_probe_threshold tunable 136 dmp_restore_cycles tunable 136 dmp_restore_interval tunable 136 dmp_restore_state tunable 136 dmp_scsi_timeout tunable 137 dmp_sfg_threshold tunable 137 dmp_stat_interval tunable 137
erroneous I/Os displaying statistics 62 errord daemon 15 errors handling transient errors 133 explicit failover mode 13
F
fabric devices 88 FAILFAST flag 16 failover mode 13 foreign devices adding 104
H
HBAs listing ports 95 listing supported 94 listing targets 95 hdx 19 hdx based naming scheme 20
I
I/O gathering statistics for DMP 60 scheduling on secondary paths 72 throttling 16 I/O policy displaying 68 example 73 specifying 68 I/O throttling 79 I/O throttling options configuring 81 idle LUNs 135 implicit failover mode 13 iSCSI parameters administering with DDL 97 setting with vxddladm 97
E
EMC PowerPath coexistence with DMP 92 EMC Symmetrix autodiscovery 92 enabled paths displaying 45 enclosure-based naming 21, 23, 105 displayed by vxprint 109 DMP 14 enclosures 21 discovering disk access names in 109 displaying information about 55 path redundancy 6667 setting attributes of paths 65, 67
J
JBOD DMP support 89 JBODs adding disks to DISKS category 101 listing supported disks 100 removing disks from DISKS category 103
150
Index
L
listing DMP nodes 50 supported disk arrays 98 load balancing 12 displaying policy for 68 specifying policy for 68 logical units 13 LUN 13 LUN group failover 14 LUN groups displaying details of 51 LUNs idle 135
M
metadevices 20 minimum queue load balancing policy 71 minimum redundancy levels displaying for a device 66 specifying for a device 67 mrl keyword 67 multi-pathing displaying information about 44
partition size displaying the value of 68 specifying 70 path aging 132 path failover in DMP 16 paths disabling for DMP 75 enabling for DMP 76 setting attributes of 65, 67 performance load balancing in DMP 17 persistence device naming option 106 persistent device name database 107 persistent device naming 107 ping-pong effect 18 polling interval for DMP restore 82 ports listing 95 PowerPath coexistence with DMP 92 preferred priority path attribute 66 primary path 13, 45 primary path attribute 66 priority load balancing 71
N
names device 19 naming DMP nodes 46 naming scheme changing for disks 105 changing for TPD enclosures 108 displaying for disks 106 naming schemes for disks 20 nomanual path attribute 65 non-autotrespass mode 13 nopreferred path attribute 65
Q
queued I/Os displaying statistics 62
R
recovery option values configuring 81 redundancy levels displaying for a device 66 specifying for a device 67 redundant-loop access 23 restore policy check_all 82 check_alternate 82 check_disabled 83 check_periodic 83 restored daemon 15 retry option values configuring 81 round-robin load balancing 71
O
OTHER_DISKS category 90
P
partial device discovery 88
Index
151
S
scandisks vxdisk subcommand 88 sdx based naming scheme 20 secondary path 13 secondary path attribute 66 secondary path display 45 setting path redundancy levels 67 single active path policy 72 specifying redundancy levels 67 standby path attribute 66 statistics gathering 16 storage processor 13
U
use_all_paths attribute 72 use_avid vxddladm option 106 user-specified device names 46
V
vxdctl enable configuring new disks 87 invoking device discovery 91 vxddladm adding disks to DISKS category 102 adding foreign devices 104 changing naming scheme 106 displaying the disk-naming scheme 106 listing all devices 94 listing configured devices 9697 listing configured targets 9596 listing excluded disk arrays 99, 102 listing ports on a Host Bus Adapter 95 listing supported disk arrays 98 listing supported disks in DISKS category 100 listing supported HBAs 94 removing disks from DISKS category 92, 103 104 setting iSCSI parameters 97 used to exclude support for disk arrays 99 used to re-include support for disk arrays 99 vxdisk discovering disk access names 109 displaying multi-pathing information 45 scanning disk devices 88 vxdisk scandisks rescanning devices 88 scanning devices 88 vxdiskadm changing the disk-naming scheme 105 vxdmpadm changing TPD naming scheme 108 configuring an APM 85 configuring I/O throttling 79 configuring response to I/O errors 77, 81 disabling controllers in DMP 43 disabling I/O in DMP 75 discovering disk access names 109 displaying APM information 84 displaying DMP database information 44 displaying DMP node for a path 49, 51 displaying DMP node for an enclosure 4950
T
targets listing 95 third-party driver (TPD) 91 throttling 16 TPD displaying path information 56 support for coexistence 91 tpdmode attribute 108 tunables dmp_cache_open 131 dmp_daemon_count 131 dmp_delayq_interval 131 dmp_fast_recovery 132 dmp_health_time 132 dmp_log_level 132 dmp_low_impact_probe 133 dmp_lun_retry_timeout 133 dmp_monitor_osevent 134 dmp_monitor_ownership 134 dmp_native_support 134 dmp_path_age 135 dmp_pathswitch_blks_shift 135 dmp_probe_idle_lun 135 dmp_probe_threshold 136 dmp_restore_cycles 136 dmp_restore_interval 136 dmp_restore_state 136 dmp_scsi_timeout 137 dmp_sfg_threshold 137 dmp_stat_interval 137 Tuning DMP using templates 123
152
Index
vxdmpadm (continued) displaying I/O error recovery settings 81 displaying I/O policy 68 displaying I/O throttling settings 81 displaying information about controllers 54 displaying information about enclosures 55 displaying partition size 68 displaying status of DMP restoration thread 84 displaying TPD information 56 enabling I/O in DMP 76 gathering I/O statistics 60 listing information about array ports 55 removing an APM 85 renaming enclosures 77 setting I/O policy 7172 setting path attributes 66 setting restore polling interval 82 specifying DMP path restoration policy 82 stopping DMP restore daemon 83 vxdmpadm list displaying DMP nodes 50 vxprint enclosure-based disk names 109 used with enclosure-based disk names 109 VxVM disk discovery 89
W
worldwide name identifiers 20 WWN identifiers 20