Symantec logo

How to administer the Device Discovery Layer

Dynamic addition of disk arrays is possible because of the existence of the Device Discovery Layer (DDL) which is a facility for discovering disks and their attributes that are required for VxVM and DMP operations.

The DDL is administered using the vxddladm utility, which can be used to perform the following tasks:

The following sections explain these tasks in more detail.

See the vxddladm(1M) manual page.

Listing all supported disk arrays

 To list all supported disk arrays

Displaying details about a supported array library

 To display details about a supported array library

Excluding support for a disk array library

 To exclude support for a disk array library

Re-including support for an excluded disk array library

To re-include support for an excluded disk array library

Listing excluded disk arrays

 To list all disk arrays that are currently excluded from use by VxVM

Listing supported disks in the DISKS category

 To list disks that are supported in the DISKS (JBOD) category

Adding unsupported disk arrays to the DISKS category

Disk arrays should be added as JBOD devices if no ASL is available for the array. In VxVM 4.0 and later releases, a SEAGATE disk is added as a JBOD device by default.

JBODs are assumed to be Active/Active (A/A) unless otherwise specified. If a suitable ASL is not available, an A/A-A, A/P or A/PF array must be claimed as an Active/Passive (A/P) JBOD to prevent path delays and I/O failures.

See "How DMP works" on page 137.

Warning: This procedure ensures that Dynamic Multipathing (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

  1. Use the following command to identify the vendor ID and product ID of the disks in the array:

    # /etc/vx/diag.d/vxdmpinq device_name

    where device_name is the device name of one of the disks in the array (for example, /dev/rdsk/c1t20d0s2). 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 is sample output:

    # /etc/vx/diag.d/vxdmpinq /dev/rdsk/c1t20d0s2

    Vendor id (VID) : SEAGATE

    Product id (PID) : ST318404LSUN18G

    Revision : 8507

    Serial Number : 0025T0LA3H

    In this example, the vendor ID is SEAGATE and the product ID is ST318404LSUN18G.

  2. Stop all applications, such as databases, from accessing VxVM volumes that are configured on the array, and unmount all VxFS file systems and checkpoints that are configured on the array.
  3. If the array is of type A/A-A, A/P or A/PF, configure it in autotrespass mode.
  4. Enter the following command to add a new JBOD category:

    # vxddladm addjbod vid=vendorid pid=productid \

  [length=serialno_length] [policy=ap]

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

  1. Use the vxdctl enable command to bring the array under VxVM control.

    # vxdctl enable

    See "Enabling discovery of new disk arrays" on page 88.

  2. 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 PID Opcode Page Code Page Offset SNO length

    =============================================================

    SEAGATE ALL PIDs 18 -1 36 12

  3. 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 all

    ENCLR_NAME ENCLR_TYPE ENCLR_SNO STATUS

    =============================================================

    OTHER_DISKS OTHER_DISKS OTHER_DISKS CONNECTED

    Disk Disk DISKS CONNECTED

    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 TYPE DISK GROUP STATUS

    Disk_0 auto:none - - online invalid

    Disk_1 auto:none - - online invalid

    ...

  4. 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

    ...

    This 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.

Removing disks from the DISKS category

 To remove disks from the DISKS category

Foreign devices

DDL may not be able to discover some devices that are controlled by third-party drivers, such as those that provide multipathing or RAM disk capabilities. For these devices it may be preferable to use the multipathing capability that is provided by the third-party drivers for some arrays rather than using the Dynamic Multipathing (DMP) feature. 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

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:

If a suitable ASL is available for an array, these limitations are removed.

See "Third-party driver coexistence" on page 89.