![]() |
![]() |
![]() |
![]() |
![]() |
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:
DISKS
(JBOD) category.
DISKS
category.
DISKS
category.
The following sections explain these tasks in more detail.
See the vxddladm
(1M) manual page.
To list all supported disk arrays
You can use this command to obtain values for the vid
and pid
attributes that are used with other forms of the vxddladm
command.
To display details about a supported array library
# vxddladm listsupport libname=
library_name.so
This command displays the vendor ID (VID
), product IDs (PID
s) 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
=================================================
To exclude support for a disk array library
# vxddladm excludearray libname=libvxenc.so
This example excludes support for disk arrays that depends on the library libvxenc.so
. You can also exclude support for disk arrays from a particular vendor, as shown in this example:
To re-include support for an excluded disk array library
includearray
keyword to remove the entry from the exclude list, as shown in the following example:
# vxddladm includearray libname=libvxenc.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.
To list all disk arrays that are currently excluded from use by VxVM
To list disks that are supported in the DISKS (JBOD) 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.
To add an unsupported disk array to the DISKS category
# /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
Product id (PID) : ST318404LSUN18G
In this example, the vendor ID is SEAGATE
and the product ID is ST318404LSUN18G
.
[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
vxdctl
enable
command to bring the array under VxVM control.
The following is sample output from this command for the example array:
VID PID Opcode Page Code Page Offset SNO length
=============================================================
vxdmpadm
listenclosure
command as shown in the following sample output for the example array:
ENCLR_NAME ENCLR_TYPE ENCLR_SNO STATUS
=============================================================
OTHER_DISKS OTHER_DISKS OTHER_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:
Disk_0 auto:none - - online invalid
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
.
To remove disks from the DISKS category
vxddladm
command with the rmjbod
keyword. The following example illustrates the command for removing disks supplied by the vendor, Seagate:
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 \
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.