How to use scsicmd.exe to check whether Automatic Volume Transfer (AVT) mode has been set on an array controller

book

Article ID: 100021324

calendar_today

Updated On:

Resolution

Certain array models such as the IBM DS4000 series and the Sun StorageTek Flexline 380 require AVT mode to be set to work with Dynamic Multi-Pathing (DMP) DSMs.  If the AVT mode is not set then the relevant DSM will not claim the disk.  This prevents the disk from being available to the system after DMP has been installed.

It is possible to use scsicmd.exe to check whether the AVT bit has been set to see if this is the cause.

1. Remove DMP DSMs.  As the disk has not claimed by the DSM it will not be presented correctly to the system and it will not be possible to launch a SCSI enquiry against it.

2. Once the disks are visible following a reboot, run the following cmd:

> scsicmd.exe -dX -sc9

where X is substituted for a valid harddisk number of a disk from the array as seen on the system.

Note: scsicmd.exe is a Storage Foundation for Windows support utility, available at: http://www.veritas.com/docs/000082257

3. From the output of the above command, count from the 000 index:  0, 1, 2, 3, 5, 6, 7, 8 - this gives byte position 8h.  (Please see examples below for a graphical illustration of this).

4. Perform a Logical AND of byte 8h with 0x80 (binary 10000000).  If the result is not 0, then the AVT bit is set.

Example 1 - AVT bit not set:

device \\.\PhysicalDrive4, cmd = c9
Scsi Address
------------------
Length     : 0x8
PortNumber : 0x2
PathId     : 0x0
TargetId   : 0x1
Lun        : 0x0
Requesting Mode Page 0xc9
SCSI Command returned 0x6e bytes

000: 00 c9 00 2c  76 61 63 31  01 01 00 00  00 00 00 00 | ..., vac1 .... ....
010: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
020: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
030: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
040: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
050: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
060: 00 00 00 00  00 00 00 00  00 00 00 00  00 00       | .... .... .... ..

0x01 = 00000001
0x80 = 10000000
LOGICAL AND = 00000000

Example 2 - AVT bit set:

device \\.\PhysicalDrive3, cmd = c9
Scsi Address
------------------
Length     : 0x8
PortNumber : 0x2
PathId     : 0x0
TargetId   : 0x0
Lun        : 0x5
Requesting Mode Page 0xc9
SCSI Command returned 0x6e bytes

000: 00 c9 00 2c  76 61 63 31  c1 01 00 00  00 00 00 00 | ..., vac1 .... ....
010: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
020: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
030: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
040: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
050: 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00 | .... .... .... ....
060: 00 00 00 00  00 00 00 00  00 00 00 00  00 00       | .... .... .... ..

0xc1 = 11000001
0x80 = 10000000
LOGICAL AND = 10000000

Solution:

If the AVT mode is not set, it needs to be set on each controller presented to the server.  This can sometimes be denoted as "Windows 2000/Windows 2003/Windows 2008 (supports DMP)" in the Array Management tools.  Please refer to the array vendor for further information on how this should be configured.
 

 

Issue/Introduction

How to use scsicmd.exe to check whether Automatic Volume Transfer (AVT) mode has been set on an array controller