[OpenVMS documentation]
[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
Updated: 11 December 1998

Volume Shadowing for OpenVMS


Previous Contents Index

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 DEVICES command display looks during the merge operation.
#7

$ SHOW DEVICES DSA8
Device               Device        Error    Volume         Free  Trans Mnt
 Name                Status        Count     Label        Blocks Count Cnt
DSA8:                Mounted           0  APPARITION      890937     1   1
 
$11$DUA8:    (FUSS)  ShadowMergeMbr    0  (merging DSA8: 78% merged)
$11$DUA89:   (MUSS)  ShadowMergeMbr    0  (merging DSA8: 78% merged)
 
      

The SHOW DEVICES 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.

#8

$ 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 DEVICES 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.

#9

$ SHOW DEVICES/FULL DSA80
Disk DSA80:, device type RA81, 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 caching enabled.
Volume is also mounted on BLASTA, CNASTA, SHASTA.
Disk $255$DUA56:, device type RA81, 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 RA81, 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 DEVICES/FULL command displays detailed information about the virtual unit and its shadow members. Notice that both members, $255$DUA56 and $255$DUA58, are merge members. Section 4.7.4 shows what this shadow set looks like when it is examined using the System Dump Analyzer.

4.7.4 Using the System Dump Analyzer

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. 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 at the end of this section.

The SDA command SHOW DEVICE produces displays taken 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.

4.7.4.1 Obtaining Information About Shadow Sets

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 DEVICES output shown in the last example in Section 4.7.3.


$ 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        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    AE merge,cip,master,src,valid
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
 Copy LBN 0004B94D
Device $255$DUA58
 Index 1 Device Status    A6 merge,cip,src,valid
 UCB 81051260     VCB 81439800      Unit Id. 12A1003A 000000FF
 Copy 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 unit 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    AE merge (1), cip (2), master (3), src (4), valid (5)
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF 
 Copy LBN 0004B94D 

This information translates to the following:

  1. merge---$255$DUA56 is marked for a merge operation.
  2. cip---Copy in progress. In this example, a merge operation is in progress.
  3. master---$255$DUA56 is considered the master member of the shadow set; it is the source first tried for all data repair operations.
  4. src---$255$DUA56 is considered a source member for the read operations.
  5. 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 copying 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 at the time 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 replicates the DCL command SHOW DEVICES; then it invokes SDA and presents the full SDA display of the DSA80 shadow set.


$ SHOW DEVICES $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% merged )
 
$ 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    Write log addr  00000000
Fcpy Targets           1    Generation Num  7B7BE060    Master FL          empty
Mcpy Targets           0                    00935BC4    Restart FL         empty
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    AA merge,master,src,valid
 UCB 810510D0     VCB 81400A00      Unit Id. 12A10038 000000FF
 Copy 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, the device status for $255$DUA58 shows that the unit is the target of a copy (fcpy) operation. The source of the operation is $255$DUA56; notice how the Copy LBN line for $255$DUA56 shows a series of Fs (FFFFFFFF) to indicate that a merge operaton 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.

4.7.4.2 Obtaining Information About Third-Party SCSI Devices

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

If a SCSI device does not support READL and WRITEL commands, DKDRIVER sets a NOFE (no forced error) bit to indicate that the device 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.


$ ANALYZE/SYSTEM
SDA> SHOW DEVICE DKA300:(1) 
I/O data structures 
------------------- 
COLOR$DKA300                            Generic_DK        UCB address:  
80A665E0 
 
Device status:   00000010 online 
Characteristics: 1C454008 dir,fod,shr,avl,elg,idv,odv,rnd 
                 05010281 clu,srv,nnm,scsi,nofe(2) 
   .
   .
   .

  1. Enter the SHOW DEVICE command and the physical device name.
  2. Device DKA300 has NOFE set indicating that the device cannot support shadowing data repair.

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:


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.

4.7.5 Using the F$GETDVI Lexical Function

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:

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 Section 5.6).

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.

The OpenVMS DCL Dictionary contains a large list of item codes that you can supply as an argument to F$GETDVI. Table 4-2 lists the items specific to volume shadowing that you can supply as arguments to the F$GETDVI lexical function. The table lists the type of information returned by each item and the data types of the return values.

Table 4-2 F$GETDVI Items 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_MASTER String Returns TRUE or FALSE to indicate whether the device is a virtual unit.
SHDW_MASTER_NAME String 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_MEMBER String Returns TRUE or FALSE to indicate whether the device is a shadow set member.
SHDW_MERGE_COPYING String Returns TRUE or FALSE to indicate whether the device is a member that is a merge member of the shadow set.
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 unit with the device name and item arguments, F$GETDVI returns the name of the "next" member unit 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.

Example

To check a device for possible shadow set membership, you could 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 OpenVMS DCL Dictionary for additional information about the F$GETDVI lexical function.


Previous Next Contents Index

[Site home] [Send comments] [Help with this site] [How to order documentation] [OpenVMS site] [Compaq site]
[OpenVMS documentation]

Copyright © Compaq Computer Corporation 1998. All rights reserved.

Legal
5423PRO_004.HTML