"other_disks," "scsi3_jbod" or "jbod" ASLs (Array Support Libraries) are claiming disks as generic devices

Article:TECH204408  |  Created: 2013-03-27  |  Updated: 2013-04-11  |  Article URL http://www.symantec.com/docs/TECH204408
Article Type
Technical Solution


Issue



Commands such as vxdmpadm, vxddladm and vxdisk -p list show that the disks are being claimed as generic devices instead of being claimed by by a specific array support library (ASL).


Solution



 

This article is a part of a set on troubleshooting volume performance. Click here to start at the beginning: http://www.symantec.com/docs/TECH202712

 



Table of Contents

Introduction
Determining which ASL has claimed a disk
Determining which ASL supports a disk array
Determining why an ASL is not claiming a disk




 

Introduction

(Back to top)


When Veritas detects new disks, it attempts to determine which ASL (Array Support Library) to load by comparing identification strings that are provided by the disk array. If the identifiers match those that the ASL is designed to support, then the corresponding ASL will be loaded. If there is no match, a generic ASL will be loaded.

For some vendors, ASLs may check for additional attributes before claiming a disk. The generic ASLs provide limited multipathing functionality, but vendor-specific ASLs provide the best performance.


Note: A common cause of poor performance is that a generic ASL is loaded instead of a vendor-specific ASL. While troubleshooting performance, verify that the correct ASL is loaded.

 

Table 1 - Generic ASLs and their descriptions

ASL Description
jbod, disk Used when no vendor-specific ASLs claim the disk
scsi3_jbod, disk Used when no vendor-specific ASLs claim the disk. Scsi3_jbod is loaded if the disks supports VPD pages 0x83 or 0x80.
other_disks If a disk is claimed by "other_disks," this usually indicates one of the following:
  • /etc/vx/vxdmp.exclude has modified to exclude the disk from DMP control.
  • The device is not recognized as a SCSI-compliant device. This is normally due to either a configuration problem with the array, or the disks are simply not SCSI-compliant, and therefore not supported.

 



Determining which ASL has claimed a disk


(Back to top)


Use vxddladm list devices to determine which ASL has claimed each disk. In Figure 1, libvxhdsalua.so has claimed the SAN disk, while the local disk are claimed by a generic jbod ASL.

 

Note: This command is available starting in 5.0 mp3. As an alternative, for versions earlier than 5.0 mp3, use vxdmpadm list dmpnode | egrep  "^dmpdev|^asl" to determine which ASL has claimed each disk (Figure 2).




Figure 1 - Using vxddladm list devices to determine which ASL has claimed each disk (for 5.0 mp3, and later)


Syntax:

vxddladm list devices


Example, with typical output:

# vxddladm list devices

DEVICE               TARGET-ID    STATE   DDL-STATUS (ASL)
===============================================================
c1t0d0s2             -            Online  CLAIMED (Disk)
c1t1d0s2             -            Online  CLAIMED (Disk)
c3t0d0s2             -            Online  CLAIMED (libvxhdsalua.so)
c3t0d1s2             -            Online  CLAIMED (libvxhdsalua.so)
c3t0d2s2             -            Online  CLAIMED (libvxhdsalua.so)
c3t0d3s2             -            Online  CLAIMED (libvxhdsalua.so)
c3t0d4s2             -            Online  CLAIMED (libvxhdsalua.so)

 




Figure 2 - Using vxdmpadm list dmpnode | egrep  "^dmpdev|^asl" to determine which ASL has claimed each disk (for versions earlier than 5.0 mp3)


Syntax:

vxdmpadm list dmpnode | egrep  "^dmpdev|^asl"


Example, with typical output:

# vxdmpadm list dmpnode | egrep  "^dmpdev|^asl"

dmpdev          = disk_0
asl             = jbod
dmpdev          = disk_1
asl             = jbod
dmpdev          = ams_wms0_59
asl             = libvxhdsalua.so
dmpdev          = ams_wms0_60
asl             = libvxhdsalua.so
dmpdev          = ams_wms0_61
asl             = libvxhdsalua.so
dmpdev          = ams_wms0_62
asl             = libvxhdsalua.so
dmpdev          = ams_wms0_63
asl             = libvxhdsalua.so
 




 

Determining which ASL supports a disk array

(Back to top)


Use vxddladm listsupport to generate a list of ASLs, along with the devices that they support (Figure 3). Since this generates a long list, grep may be used to narrow the output to a specific vendor.

Figure 3 - Using vxddladm listsupport to determine ASL support for a particular manufacturer


Syntax:

vxddladm listsupport


Example, with typical output:

# vxddladm listsupport | grep -i hitachi

libvxhds.so         HITACHI             All
libvxhds9980.so     HITACHI             All
libvxhdsalua.so     HITACHI             DF600, DF600-V, DF600F, DF600F-V
libvxhdsusp.so      HITACHI             All
libvxhitachi.so     HITACHI             DF350, DF400, DF400F, DF500, DF500F

 



If a disk array is not listed, visit the ASL section of the Symantec SORT site to confirm that the disk array is supported by the installed version of Veritas. In some cases, an updated ASL package is required for support.


Detailed information on hardware compatibility as well as updated ASL packages can be found on the ASL section of SORT:

http://sort.symantec.com/asl







Determining why an ASL is not claiming a disk

(Back to top)



An ASL will fail to claim a disk if the PID and VID strings do not match what the ASL was designed to support. Some ASLs check for additional attributes before claiming a disk. As discussed in Table 1, the presence of the "other_disks" ASL indicates a configuration or hardware problem.

Use checkasl to determine if a specified ASL is able to claim a given disk. Figure 4 shows an example where the PID and VID matches between the ASL and the disk array. Figure 5 shows an example where the ASL does not claim a device because the identifiers do not match.


Figure 4 - Using vxcheckasl to compare attributes of an ASL and a given disk. In this case, the PID and VID match


Syntax:

/etc/vx/diag.d/vxcheckasl <ASL> <path to dmp node>


Example, with typical output:

# /etc/vx/diag.d/vxcheckasl libvxhdsalua.so /dev/vx/rdmp/ams_wms0_63

        libvxhdsalua.so:vendor_info()
        VID                                    : HITACHI
        PID                                    : DF600, DF600-V, DF600F, DF600F-V
        ATYPE                                  : A/A-A, A/PG, A/P, A/A
        ANAME                                  : HDS9500-ALUA, AMS_WMS, SMS_100, AMS_2100, AMS_2300, AMS_2500
        ASL_VERSION                            : vm-5.1.100-rev-1

        libvxhdsalua.key()
        Library Name                           : libvxhdsalua.so
        Feature Needed                         : 95
        VxVM Version Needed                    : 51

        scsi inquiry                           : /dev/vx/rdmp/ams_wms0_63
        Vendor Identification                  : HITACHI
        Product Identification                 : DF600F
        Revision                               : 0000
        Serial Number                          : 73061583003F

        libvxhdsalua.so:claim_device()         : CLAIMED
        PID                                    : DF600F
        CAB_SERIAL_NO                          : 73061583
        REVISION                               : 0000
        SCSI_VERSION                           : 3
        ARRAY_CTLR_ID                          : 0
        PORT_SERIAL_NO                         : 0A
        LUN_SERIAL_NO                          : 003F
        LUN_OWNER                              : Y
        ATYPE                                  : A/A-A
        ANAME                                  : AMS_WMS
        UDID                                   : HITACHI_DF600F_73061583_003F
        ARRAY_VOLUME_ID                        : 63
        DDL_DEVICE_ATTR                        : std fc
        DDL_THIN_DISK                          : thick

        claim_device() New attribute           : ARRAY_CTLR_ID

        ARRAY_CTLR_ID                          : 0

        claim_device() New attribute           : ARRAY_VOLUME_ID

        ARRAY_VOLUME_ID                        : 63

        claim_device() New attribute           : DDL_THIN_DISK

        DDL_THIN_DISK                          : thick

 




Figure 5 - In this case, the ASL does not claim the disk because the PID and VID do not match


Syntax:

/etc/vx/diag.d/vxcheckasl <ASL> <path to dmp node>


Example, with typical output:

# /etc/vx/diag.d/vxcheckasl libvxemc.so /dev/vx/rdmp/ams_wms0_63
        libvxemc.so:vendor_info()
        VID                                    : EMC
        PID                                    : SYMMETRIX
        ANAME                                  : EMC
        ATYPE                                  : A/A
        NR_DEVICE                              : Y
        ASL_VERSION                            : vm-5.1.100-rev-1
        MT_SAFE                                : Y

        libvxemc.key()
        Library Name                           : libvxemc.so
        Feature Needed                         : 22
        VxVM Version Needed                    : 51

        scsi inquiry                           : /dev/vx/rdmp/ams_wms0_63
        Vendor Identification                  : HITACHI
        Product Identification                 : DF600F
        Revision                               : 0000
        Serial Number                          : 73061583003F
        libvxemc.so:claim_device()             : UNCLAIMED

 

 




Article URL http://www.symantec.com/docs/TECH204408


Terms of use for this information are found in Legal Notices