HP Volume Shadowing for OpenVMS: OpenVMS Version 8.4 > Chapter 4 Creating and Managing Shadow Sets Using DCL Commands

Displaying Information About Shadow Sets

You can use the DCL command SHOW DEVICE or the F$GETDVI lexical function to get information about a shadow set virtual unit and the physical volumes that make up the members. You can also use the System Dump Analyzer (SDA) to get more information about shadow sets.

The following sections describe how to use these tools to examine volume shadowing virtual units and shadow set members. See also the HP OpenVMS DCL Dictionary for a full description of how to use the SHOW DEVICE command and the F$GETDVI lexical function. See the OpenVMS Alpha System Analysis Tools Manual and the OpenVMS VAX System Dump Analyzer Manual for more information about how to use SDA on OpenVMS Alpha.

You can use any of the SHOW DEVICE qualifiers when you examine shadow sets (by specifying a shadow set's virtual unit name) or shadow set members.

NOTE: Because shadow sets are created and maintained individually on each node in the OpenVMS Cluster, the SHOW DEVICE display does not list shadow sets that have been created on only remote nodes.

Listing Shadow Sets

Use SHOW DEVICE in the following format to display information about shadow sets:

SHOW DEVICE [virtual-unit-name[:]]

The variable virtual-unit-name replaces device-name as the SHOW DEVICE command parameter for shadow sets. Use the virtual unit naming format DSAn:.

As with any SHOW DEVICE command, the colon is optional. Note also that you can specify a complete virtual unit name (or a portion of a virtual unit name) just as you can with device names. If you omit the virtual unit number, SHOW DEVICE lists all the shadow set virtual units that represent shadow set member disks of the type specified. If you truncate a device name (for example, if you specify D), SHOW DEVICE lists all the devices and all the virtual units that begin with the letters you entered (in this case, D).

When you specify the virtual unit number, SHOW DEVICE displays the names of the shadow set members it represents. If you use the /FULL qualifier, SHOW DEVICE displays full information about the shadow set and all the associated shadow set members.

Because individual shadow set members that are mounted for systemwide or clusterwide access are not allocated or mounted in the traditional sense, a SHOW DEVICE command with the /ALLOCATED or /MOUNTED qualifiers displays only virtual units.

Listing Shadow Set Members

Use the same format for the SHOW DEVICE command with shadow set members as you use with other physical devices. The command lists all shadow set members of the device name you specify.

Because shadow set members are not mounted in a traditional sense and they all have the same device characteristics, SHOW DEVICE displays most of the relevant data with the associated virtual unit. Listings of shadow set members include information about current membership status.

If a shadow set is undergoing a copy or a merge operation, the display resulting from the SHOW DEVICE command includes the percentage of the disk that has been copied or merged. The SHOW DEVICE information is available on all nodes that have the shadow set mounted.

The SHOW DEVICE display indicates the exact percentage of the disk that has been copied. The node that is managing the copy operation knows precisely how far the copy or merge operation has progressed, and periodically notifies the other nodes in the OpenVMS Cluster of the progress. Thus, the other nodes in the cluster know approximately the percentage copied. When you enter the SHOW DEVICE command from a node other than the one where the copy or merge operation is taking place, the number indicating the percentage copied in the SHOW DEVICE output lags (by a small percentage) the actual percentage copied.

Note that if a copy and a merge operation are occurring at the same time in the same shadow set, the number indicating the percentage merged remains static until the copy completes. Then the merge operation proceeds to completion.

SHOW DEVICE Examples for Shadow Set Information

The following examples of output from the SHOW DEVICE command illustrate the types of shadow set information you can obtain, such as shadow set membership and the status of each shadow set member during copy and merge operations. For examples of output for write bitmaps used with the minicopy operation, see “Managing Bitmaps With DCL Commands”.

Examples

$SHOW DEVICE D

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA0:                Mounted           0  SHADOWDISK        8694   151   1
DSA9999:             Mounted           0  APPARITION      292971     1   1
$4$DUA0:   (SYSTMX)  Online            0
$4$DUA8:   (HSJ001)  ShadowSetMember   0  (member of DSA0:)
$4$DUA10:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA11:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA12:  (SYSTMX)  ShadowSetMember   0  (member of DSA9999:)
$4$DUA89:  (HSJ002)  ShadowSetMember   0  (member of DSA0:)

By truncating the device name, you cause the SHOW DEVICE command to list all the devices and all the virtual units on the local node that begin with the letters you entered (in this case, D). This example shows that two virtual units, DSA0 and DSA9999, are active. Both shadow sets are in a steady state. The device status “ShadowSetMember” indicates that the shadow set is in a steady state—the shadow set members are consistent with each other.

$SHOW DEVICE DSA8

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:   (SYSTMX)   ShadowSetMember   0  (member of DSA8:)
$11$DUA89:  (SYSTMY)   ShadowSetMember   0  (member of DSA8:)

This example shows the membership and status of the shadow set represented by the DSA8 virtual unit. The SHOW DEVICE display provides information not only about the virtual unit DSA8, but also about the physical devices $11$DUA8 and $11$DUA89 that are members of the shadow set. The device status “ShadowSetMember” indicates that the shadow set is in a steady state—the shadow set members are consistent with each other. The shadow set members are being served by OpenVMS Cluster nodes SYSTMX and SYSTMY.

$SHOW DEVICE DSA

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA7:                Mounted           0  PHANTOM          27060    35   7
DSA8:                Mounted           0  APPARITION      890937     4   6

You might specify DSA on the SHOW DEVICE command to request information about all the shadow sets on the local node. Entering a generic virtual unit name, such as DSA, as a parameter produces a display of all virtual units representing shadow sets mounted on the local system. This example shows that two shadow sets are mounted on the local node, represented by the virtual units DSA7 and DSA8.

$SHOW DEVICE $11$DUA8:

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:   (HSJ001) ShadowSetMember   0  (member of DSA8:)
$11$DUA89:  (HSJ002) ShadowSetMember   0  (member of DSA8:)

Although the SHOW DEVICE command specifies the name of a single device, the resulting display includes information about the membership and status of the shadow set represented by the DSA8 virtual unit to which the $11$DUA8 device belongs. The device status “ShadowSetMember” indicates that the shadow set is in a steady state---the shadow set members are consistent with each other. The shadow set members are accessed through the node named HSJ001.

$SHOW DEVICE $11$DUA8:

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
$11$DUA8:  (HSJ001)  ShadowSetMember   0  (member of DSA8:)

$11$DUA89: (HSJ002)  ShadowCopying     0  (copy trgt DSA8:  48% copied)

The output from this SHOW DEVICE command shows a shadow set that is in a transient state. The device status “ShadowCopying” indicates that the physical device $11$DUA89 is the target of a copy operation, and 48% of the disk has been copied. The device $11$DUA8 is the source member for the copy operation.

$SHOW DEVICE DSA8

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1  12

$11$DUA8:  (HSJ001)  ShadowCopying     0  (copy trgt DSA8: 5% copied)
$11$DUA89: (HSJ002)  ShadowMergeMbr    0  (merging DSA8:   0% merged)

This example shows how the SHOW DEVICE command displays a shadow set during a copy operation after a node in an OpenVMS Cluster system fails. In this example, the shadow set members are located on different nodes in the cluster, and one node on which the shadow set is mounted fails. At the time of the failure, the shadow set was in a transient state, with the $11$DUA8 device undergoing a copy operation. The SHOW DEVICE command shows the state of the shadow set during the copy operation, before the merge operation occurs.

At the same time the $11$DUA89 shadow set member is acting as the source member for the copy operation, $11$DUA89 also accepts and performs I/O requests from applications running on the OpenVMS Cluster system. Once the copy operation completes, a merge operation automatically starts. See Chapter 6 for more information about merge operations.

The next example shows how the SHOW DEVICE command display looks during the merge operation.

$SHOW DEVICE DSA8

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1

$11$DUA8:   (HSJ001) ShadowMergeMbr    0  (merging DSA8: 78% merged)
$11$DUA89:  (HSJ002) ShadowMergeMbr    0  (merging DSA8: 78% merged)

The SHOW DEVICE command produces a display similar to this example when a shadow set is in a transient state because of a merge operation. The merge operation is 78% complete.

$SHOW DEV D

Device               Device        Error    Volume         Free  Trans Mnt
Name                Status        Count     Label        Blocks Count Cnt
DSA456:      (FUSS)  Mounted           0  AUDITINGDISK    123189   225  17
$11$DIA1:  (LISBEN)  Online            0
$11$DJA16: (GALEXI)  Online            0
$11$DJA128:(GALEXI)  Mounted wrtlck    0  CORPORATEVOL    164367     1  18
$11$DJA134:(GALEXI)  Mounted           0  WORKVOLUME      250344     1  16
$11$DUA1:    (FUSS)  Mounted           0  MAR24DISKVOL    676890     1  18
$11$DUA2:    (FUSS)  ShadowSetMember   0  (member of DSA456:)
$11$DUA7:   (BLISS)  Online            0  (remote shadow member)
$11$DUA11: (LISBEN)  Mounted           0  RMSFILES        621183     1  18
$11$DUA13:  (BLISS)  Mounted           0  RESIDENTVOL     525375     1  18

This example shows how the SHOW DEVICE command displays remote shadow set members. In this display, the device $11$DUA7, whose description is “remote shadow member,” is a member of a shadow set that is not mounted on this system.

$SHOW DEVICE/FULL DSA80

Disk DSA80:, device type MSCP served SCSI disk, is online, mounted, file-
oriented device, shareable, available to cluster, error logging is enabled.


Error count                    0    Operations completed               138
Owner process                 ""    Owner UIC                      [SHADOW]
Owner process ID        00000000    Dev Prot    S:RWED,O:RWED,G:RWED,W:RWED
Reference count                1    Default buffer size                512
Total blocks              891072    Sectors per track                   51
Total cylinders             1248    Tracks per cylinder                 14

Volume label         "SHADTEST1"    Relative volume number               0
Cluster size                   3    Transaction count                    1
Free blocks               890937    Maximum files allowed           111384
Extend quantity                5    Mount count                          4
Mount status              System    Cache name         "_DSA2010:XQPCACHE"
Extent cache size             64    Maximum blocks in extent cache   89093
File ID cache size            64    Blocks currently in extent cache     0
Quota cache size               0    Maximum buffers in FCP cache       216

Volume status:  subject to mount verification, file high-water marking, write-through
     XQP caching enabled, write-through XFC caching enabled.

Volume is also mounted on BLASTA, CNASTA, SHASTA.

Disk $255$DUA56:, device type MSCP served SCSI disk, is online, member of 
shadow set DSA80:, error logging is enabled.

Error count                    0    Shadow member operation count      301
Host name               "SHASTA"    Host type, avail      VAX 6000-320,yes
Allocation class             255

Volume status:  volume is a merge member of the shadow set.

Disk $255$DUA58:, device type MSCP served SCSI disk, is online, member of 
shadow set DSA80:, error logging is enabled.

Error count                    0    Shadow member operation count      107
Host name               "SHASTA"    Host type, avail      VAX 6000-320,yes
Allocation class             255

Volume status:  volume is a merge member of the shadow set.

This example shows how the SHOW DEVICE/FULL command displays detailed information about the shadow set and its members. Notice that both members, $255$DUA56 and $255$DUA58, are merge members. “Displaying Shadow Set Information With SDA ” shows what this shadow set looks like when it is examined using the System Dump Analyzer.

Using ANALYZE/DISK/SHADOW to Examine a Shadow Set

The /SHADOW qualifier for the ANALYZE/DISK utility can be used to compare either a specified range of blocks in a shadow set or the entire contents of a shadow set. The ANALYZE/DISK/SHADOW command is useful if the INITIALIZE/SHADOW command was used without the /ERASE qualifier to initialize a shadow set. Another use of ANALYZE/DISK/SHADOW is to exercise the I/O subsystem.

In the unlikely event a discrepancy is found, the shadowset's clusterwide write lock is taken on the shadow set, and the blocks are reread. If a discrepancy is still present, the file name is displayed and the data block containing the discrepancy is dumped to the screen or to a file if /OUTPUT was specified. If no discrepancy is found on the second read, then the error is considered transient (a write was in flight to that disk block). Although the transient error is logged in the summary, verification that all members contained the same information is considered a success.

Differences outside the file system are expected if INITIALIZE/SHADOW was used without the /ERASE qualifier to initialize a shadow set. This is not disk corruption. The blocks that are reported as different have not been written to, but they may contain stale data. The blocks reported as inconsistent may even be allocated to a file, because there may be unwritten space between the file’s end-of-data location and the end of the allocated space.

To eliminate such inconsistencies, perform a full merge. To initiate a full merge, execute the DCL command SET SHADOW/DEMAND_MERGE DSAxxx. If the devices are served by controllers that support controller-based minimerge (for example, HSJ50s), this command should be issued while the shadow set is mounted on only one node within the cluster. Otherwise, a minimerge occurs, and the discrepancy may not be resolved. When you are adding members to a single member shadow set, a full copy operation also ensures that the disk is consistent both within and outside of the file system. If errors are reported on an ANALYZE/DISK/SHADOW command after a full merge has been executed, they should be investigated.

Differences are also expected in the following system files:

  • SWAPFILE*.*

  • PAGEFILE*.*

  • SYSDUMP.DMP

  • SYS$ERRLOG.DMP

Table 4-4 describes the qualifiers for the ANALYZE/DISK/SHADOW command.

Table 4-4 ANALYZE/DISK/SHADOW Command Qualifiers

QualifierFunction

/BLOCKS={(START:n,COUNT:x,END:y), FILE_SYSTEM, ALL}

Compare only the range specified. The options are:

  • START: n = Number of the first block to be analyzed; the default is the first block.

  • COUNT:x = Number of blocks to be analyzed. This option is an alternative to the END option; you can specify both.

  • END:y = Number of the last block to be analyzed; the default is the last block of the volume.

  • FILE_SYSTEM = Blocks currently in use by valid files on the disk. This is the default.

  • ALL = All blocks on the disk.

You can specify START/END/COUNT and either ALL or FILE_SYSTEM. For example, if you specify /BLOCKS=(START, END, COUNT:100, ALL), the software checks the first 100 blocks on the disk, regardless of whether they are in use by the file system.

If you specify /BLOCKS=(START, END, COUNT:100, FILE_SYSTEM), the software checks only those blocks in the first 100 blocks that are in use by valid files on the disk.

/BRIEF

Displays only the logical block number (LBN) if a difference is found. Without this qualifier, if differences exist for an LBN, the hexadecimal data of that block is displayed for each member.

/[NO]IGNORE

Ignore "special" files, which are likely to have some blocks with different data. These differences are not unusual and can be ignored. These special files are SWAPFILE*.*, PAGEFILE*.*, SYSDUMP.DMP, and SYS$ERRLOG.

/OUTPUT=file- name

Outputs the information to the specified file.

/STATISTICS

Display only the header and footer. The best use of this is with /OUTPUT.

 

Example 4-9 shows the use of the ANALYZE/DISK/SHADOW command with the /BRIEF and /BLOCK qualifiers.

Example 4-9 ANALYZE/DISK/SHADOW Sample Output

$ ANALYZE/DISK/SHADOW/BRIEF/BLOCK=COUNT=1000 DSA716:
Starting to check _DSA716: at 14-MAY-2003 13:42:52.43
Members of shadow set _DSA716: are _$252$MDA0: _$252$DUA716:
and the number of blocks to be compared is 1000.
Checking LBN #0 (approx 0%)
Checking LBN #127 (approx 12%)
Checking LBN #254 (approx 25%)
Checking LBN #381 (approx 38%)
Checking LBN #508 (approx 50%)
Checking LBN #635 (approx 63%)
Checking LBN #762 (approx 76%)
Checking LBN #889 (approx 88%)

Run statistics for _DSA716: are as follows:
         Finish Time = 14-MAY-2003 13:42:52.73
         ELAPSED TIME =    0 00:00:00.29
         CPU TIME = 0:00:00.02
         BUFFERED I/O COUNT = 10
         DIRECT I/O COUNT = 16
         Failed LBNs = 0
         Transient LBN compare errors = 0

ANALYZE/DISK/SHADOW Command Behavior With a Connectivity Problem

If a member of the shadow set experiences connectivity problems for any reason after you have issued the ANALYZE/DISK/SHADOW command, an error is displayed, and the DCL prompt is displayed. To correct the connectivity problem and run the utility again on the same shadow set, you might need to create a temporary file on the virtual unit before reissuing the ANALYZE/DISK/SHADOW command.

ANALYZE/DISK/SHADOW Command Behavior with Dissimilar Device Shadow Sets

An ANALYZE/DISK/SHADOW command may also report explainable discrepancies if a full merge has not occurred since the shadow set was logically expanded after a new member was added. The following example illustrates this problem:

  • Shadow set DSA1: consistes of two members, $1$DGA20: (18 GB) and $1DGA21 (36 GB).

  • A second 36 GB member, $1$DGA22;, is added to the shadow set with a full copy operation.

  • After the copy completes, $1$DGA20: is removed from the shadow set.

At this point, if the SET VOLUME/SIZE DSA1: command is executed, the shadow set virtual unit DSA1: increases to 36 GB. Then,ANALYZE/DISK/SHADOW reports discrepancies because only the first 18 GB of the shadow set contents were copied to $1$DGA22:. The discrepancies reported by ANALYZE/DISK/SHADOW are harmless because the space in question has not yet been written to by applications.

Displaying Shadow Set Information With SDA

The System Dump Analyzer (SDA) is a utility provided with the OpenVMS operating system. Although the main function of SDA is for crash dump analysis, it is also a useful tool for examining a running system, including the shadow sets. You can also use SDA to determine whether or not a third-party SCSI device supports the shadowing data repair (disk bad block errors) capability.An example is included in “Using SDA to Obtain Information About Third-Party SCSI Devices”.

The SDA command SHOW DEVICE displays information from the system data structures that describe the devices in the system configuration. To examine a shadow set, first enter ANALYZE/SYSTEM at the DCL prompt to invoke the System Dump Analyzer. Then, at the SDA> prompt, enter the SHOW DEVICE command followed by the virtual unit name.

The following example shows how to obtain information about the shadow set represented by the virtual unit DSA80. Compare the SDA output in the following example with the DCL SHOW DEVICE output shown in the last example in “SHOW DEVICE Examples for Shadow Set Information”.

$ANALYZE/SYSTEM

VAX/VMS System analyzer

SDA>SHOW DEVICE DSA80

I/O data structures
-------------------
DSA80                                   HSJ00              UCB address:  810B7F50

Device status:   00021810 online,valid,unload,lcl_valid
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd
00082021 clu,mscp,loc,vrt

Owner UIC [004000,000015]   Operation count        138   ORB address    810B8080
PID        00000000   Error count              0   DDB address    813F49F0
Alloc. lock ID   009C2595   Reference count          1   DDT address    810BEBB8
Alloc. class            0   Online count             1   VCB address    810BE3F0
Class/Type          01/15   BOFF                  0000   CRB address    8129EB10
Def. buf. size        512   Byte count            0200   PDT address    810121A0
DEVDEPEND        04E00E33   SVAPTE            81FDE55C   CDDB address   813F4360
DEVDEPND2        00000000   DEVSTS                0004   SHAD address   8111D460
FLCK index             34   RWAITCNT              0000   I/O wait queue    empty
DLCK address     00000000

Shadow Device status:   0004 nocnvrt

----- Shadow Descriptor Block (SHAD) 8111D460 -----

Virtual Unit status:              0041 normal,merging

Members                2    Act user IRPs          0    VU UCB          810B7F50
Devices                2    SCB LBN         0006CC63    Write log addr  00000000
Fcpy Targets           0    Generation Num  28D47C20    Master FL          empty
Mcpy Targets           2                    00935BC7    Restart FL         empty
Last Read Index        1    Virtual Unit Id 00000000
Master Index           0                    12610050

----- SHAD Device summary for Virtual Unit  DSA80  -----

Device $255$DUA56
Index 0 Device Status    A6 merge,cip,src,valid
UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
Merge LBN 0004B94D
Device $255$DUA58
Index 1 Device Status    A6 merge,cip,src,valid
UCB 81051260     VCB 81439800      Unit Id. 12A1003A 000000FF
Merge LBN 0004B94D

SDA>exit

The SDA utility's SHOW DEVICE command first displays device characteristics of the DSA80 virtual unit and the addresses of data structures. SDA then displays the DSA80 virtual unit status and the status of the individual shadow set members. Notice how the device status for each member reflects that the unit is in a merge state. For example, $255$DUA56 is shown with the following device status:

Device $255$DUA56
	Index 0 Device Status    A6 merge, cip, src , valid
UCB
810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
Merge
LBN 0004B94D

This information translates to the following:

  • merge — $255$DUA56 is marked for a merge operation.

  • cip — Copy in progress. In this example, a merge operation is in progress

  • src — $255$DUA56 is considered asource member for the read operations.

  • valid — The SCB information on $255$DUA56 is considered valid.

Notice also how both devices $255$DUA56 and $255$DUA58 show that, at the time the SDA took this “snapshot” of the shadow set, the merge operation is merging at LBN 0004B94D.

The following example shows an SDA display of the same shadow set when $255$DUA56 is a merge member and $255$DUA58 is the recipient of a copy operation. A shadow set can be in this merge/copy state when a node that has the shadow set mounted crashes while a member in the shadow set is undergoing a copy operation. Volume shadowing automatically marks the member undergoing the copy operation so that it receives a merge operation after the copy operation completes. This ensures consistency across the shadow set.

The example first shows output for one shadow set member, using the DCL command SHOW DEVICE $255$DUA58; then the example shows the output for the entire shadow set, using the SDA command SHOW DEVICE DSA80. (SDA is invoked by the ANALYZE/SYSTEM command.)

$SHOW DEVICE $255$DUA58

Device                  Device           Error    Volume         Free  Trans Mnt
Name                   Status           Count     Label        Blocks Count Cnt
DSA80:                  Mounted              0  SHADTEST1       890937     1   3

$255$DUA56:   (SHASTA)  ShadowMergeMbr       0  (merging DSA80:   0% merged)
$255$DUA58:   (SHASTA)  ShadowCopying        0  (copy trgt DSA80: 9% copied )


$ANALYZE/SYSTEM

VAX/VMS System analyzer

SDA>SHOW DEVICE DSA80

I/O data structures
-------------------
DSA80                                   RA81              UCB address:  810B7F50

Device status:   00021810 online,valid,unload,lcl_valid
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd
00082021 clu,mscp,loc,vrt

Owner UIC [004000,000015]   Operation count        130   ORB address    810B8080
PID        00000000   Error count              0   DDB address    813F49F0
Alloc. lock ID   009C2595   Reference count          1   DDT address    810BEBB8
Alloc. class            0   Online count             1   VCB address    810BE3F0
Class/Type          01/15   BOFF                  0000   CRB address    8129EB10
Def. buf. size        512   Byte count            0000   PDT address    810121A0
DEVDEPEND        04E00E33   SVAPTE            00000000   CDDB address   813F4360
DEVDEPND2        00000000   DEVSTS                0004   SHAD address   8111D460
FLCK index             34   RWAITCNT              0000   I/O wait queue    empty
DLCK address     00000000

Shadow Device status:   0004 nocnvrt


----- Shadow Descriptor Block (SHAD) 8111D460 -----

Virtual Unit status:              0061 normal,copying,merging

Members                1    Act user IRPs          0    VU UCB          810B7F50
Devices                2    SCB LBN         0006CC63    Master FL         empty
Fcpy Targets           1    Generation Num  7B7BE060    Restart FL         empty
Mcpy Targets           0                    00935BC4   
Last Read Index        0    Virtual Unit Id 00000000
Master Index           0                    12610050

----- SHAD Device summary for Virtual Unit  DSA80  -----

Device $255$DUA56
Index 0 Device Status    A2 merge,src,valid
UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
Merge LBN FFFFFFFF
Device $255$DUA58
Index 1 Device Status    87 fcpy,merge,cip,valid
UCB 81051260     VCB 81439800      Unit Id. 12A1003A 000000FF
Copy LBN 00033671

In this example, in the SHAD Device summary for Virtual Unit DSA80 display, the device status (fcpy) for $255$DUA58 shows that it is the target of a full copy operation. The source of the operation is $255$DUA56; notice that the Merge LBN line for $255$DUA56 shows a series of Fs (FFFFFFFF). This notation indicates that a merge operation must be done after the copy operation completes. The Copy LBN line for the target disk $255$DUA58 shows that the copy operation is currently copying at LBN 00033671.

Using SDA to Obtain Information About Third-Party SCSI Devices

When you mount a SCSI disk, the SCSI disk class driver, DKDRIVER, checks the device-specific parameters to see whether the disk supports READL/WRITEL commands.

If a SCSI disk does not support READL and WRITEL commands, DKDRIVER sets a NOFE (no forced error) bit to indicate that the disk cannot support the shadowing data repair (disk bad block errors) capability. You can use the SDA command SHOW DEVICE to check for the NOFE flag in the Characteristics field of the SDA display.

For SCSI devices that support READL and WRITEL operations, SDA displays a Characteristics field that does not contain the NOFE flag, similar to the following example:

Example 4-10 SDA Display of Third-Party SCSI Device

SDA>SHOW DEVICE DKA200:
I/O data structures
-------------------
COLOR$DKA200             Generic_DK        UCB address:  806EEAF0

Device status:   00021810 online,valid,unload,lcl_valid
Characteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd
                 01010281 clu,srv,nnm,scsi

The Characteristics field does not show a NOFE bit set; therefore, device DKA200 can support shadowing data repair.

Obtaining Shadow Set Information With F$GETDVI

The F$GETDVI lexical function provides another method for obtaining information about devices mounted in shadow sets. Using F$GETDVI, you can obtain general device and volume information and specific information about the shadow set status of the device or volume. For example, you can determine the following types of information:

  • Whether a device is a shadow set virtual unit or a shadow set member

  • Whether a copy operation is in progress on a device

  • What type of copy operation is in progress on a device

  • The name of the virtual unit that represents the shadow set of which the particular device is a member

  • The entire membership of a shadow set, including the virtual unit and all of the members

You can use the F$GETDVI lexical function interactively at the DCL command level or in a DCL command procedure. You can also use the $GETDVI system service with volume shadowing (see “Using $GETDVI to Obtain Information About Shadow Sets”).

The format for the F$GETDVI lexical function is as follows:

F$GETDVI (device-name,item)

You supply two arguments to the F$GETDVI lexical function: a physical device name and the name of an item that specifies the type of information you want to obtain.

NOTE: If you use the file-system-related item codes with the $GETDVI system service to obtain meaningful system information (such as FREEBLOCK information) for a shadow set, you should specify the virtual unit name with the $GETDVI service. If you specify the device name of one of the shadow set members, the $GETDVI service returns a value of 0.

Table 4-5 lists the items specific to volume shadowing that you can supply as arguments to the F$GETDVI lexical function. It shows the type of information returned by each item and the data types of the return values. (The HP OpenVMS DCL Dictionary lists all the item codes that you can supply as an argument to F$GETDVI.)

Table 4-5 F$GETDVI Item Codes for Volume Shadowing

Item

Return Type

Information Returned

SHDW_CATCHUP_COPYING

String

Returns TRUE or FALSE to indicate whether the device is a member that is the target of a copy operation.

SHDW_COPIER_NODE

String

The name of the node that is actively performing the copy or merge operation.

SHDW_DEVICE_COUNT

Longword

The total number of devices in the virtual unit, including devices being added as copy targets.

SHDW_GENERATION

Quadword

The current internal revision number for the virtual unit. This value is subject to change.

SHDW_MASTER

String

Returns TRUE or FALSE to indicate whether the device is a virtual unit.

SHDW_MASTER_MBR

String

The name of the master member unit that is used for merge and copy repair operations and for shadow set recovery operations.

SHDW_MASTER_NAMEString

Returns the name of the virtual unit that represents the shadow set of which the specified device is a member. F$GETDVI returns a null string if the specified device is not a member or is, itself, a virtual unit.

SHDW_MBR_COPY_DONE Longword

The percent of the copy operation completed on this member unit.

SHDW_MBR_COUNT

Longword

The number of full source members in the virtual unit. Devices being added as copy targets are not full source members.

SHDW_MBR_MERGE_DONE

Longword

The percent of the merge operation completed on this member unit.

SHDW_MBR_READ_COST

Longword

The current value set for the member unit. This value can be modified to use a user-specified value.

SHDW_MEMBER

String

Returns TRUE or FALSE to indicate whether the device is a shadow set member.

SHDW_MERGE_COPYINGString

Returns TRUE or FALSE to indicate whether the device is a member that is a merge member of the shadow set.

SHDW_MINIMERGE_

ENABLE

Longword interpreted as a Boolean

A value of TRUE indicates that the virtual unit undergoes a minimerge, not a full merge, if a system in the cluster crashes.

SHDW_NEXT_MBR_NAME

String

Returns the device name of the next member in the shadow set. If you specify a virtual unit, F$GETDVI returns the device name of a member of the shadow set. If you specify the name of a shadow set member with the device name and item arguments, F$GETDVI returns the name of the “next” member or a null string if there are no more members.

To determine all the members of a shadow set, first specify the virtual unit to F$GETDVI; on subsequent calls, specify the member name returned by the previous F$GETDVI call until it has finished, when it returns a null member name.

SHDW_READ_SOURCE

String

The name of the member unit that is used for reads at this time. The unit with the lowest sum total of its queue length and read cost is used. This is a dynamic value.

SHDW_SITE

Longword

Returns as a longword the site value for the specified device. This value is set by the SET SHADOW command.

SHDW_TIMEOUT

Longword

The user-specified timeout value set for the device. If the user has not set a value by using the SETSHOSHADOW utility, the value of the SYSGEN parameter SHADOW_MBR_TMO is used for member units and the value of MVTIMEOUT is used for virtual units.

 

To check a device for possible shadow set membership, you can include the following DCL command in a command procedure:

$  IF F$GETDVI("WRKD$:","SHDW_MEMBER") THEN GOTO SHADOW_MEMBER

If WRKD$ (a logical name for a disk) is a shadow set member, then F$GETDVI returns the string TRUE and directs the procedure to the volume labeled SHADOW_MEMBER.

See the HP OpenVMS DCL Dictionary for additional information about the F$GETDVI lexical function.