HP Volume Shadowing for OpenVMS |
Creating and Managing Shadow Sets Using DCL Commands |
|
|
| |
Displaying 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 and OpenVMS VAX systems, respectively.
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.
| 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 Write Bitmaps With DCL Commands.
Examples
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 DDevice Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA0: Mounted 0 SHADOWDISK 8694 151 1DSA9999: 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:)
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 DSA8Device Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA8: Mounted 0 APPARITION 890937 1 1$11$DUA8: (SYSTMX) ShadowSetMember 0 (member of DSA8:)$11$DUA89: (SYSTMY) ShadowSetMember 0 (member of DSA8:)
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 DSADevice Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA7: Mounted 0 PHANTOM 27060 35 7DSA8: Mounted 0 APPARITION 890937 4 6
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 MntName Status Count Label Blocks Count CntDSA8: Mounted 0 APPARITION 890937 1 1$11$DUA8: (HSJ001) ShadowSetMember 0 (member of DSA8:)$11$DUA89: (HSJ002) ShadowSetMember 0 (member of DSA8:)
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 $11$DUA8:Device Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA8: Mounted 0 APPARITION 890937 1 1$11$DUA8: (HSJ001) ShadowSetMember 0 (member of DSA8:)$11$DUA89: (HSJ002) ShadowCopying 0 (copy trgt DSA8: 48% copied)
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.$SHOW DEVICE DSA8Device Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA8: 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)
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 Ensuring Shadow Set Consistency for more information about merge operations.
The next example shows how the SHOW DEVICE command display looks during the merge operation.
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 DEVICE DSA8Device Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA8: Mounted 0 APPARITION 890937 1 1$11$DUA8: (HSJ001) ShadowMergeMbr 0 (merging DSA8: 78% merged)$11$DUA89: (HSJ002) ShadowMergeMbr 0 (merging DSA8: 78% merged)
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 DEV DDevice Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA456: (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/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.$SHOW DEVICE/FULL DSA80Disk 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 138Owner process "" Owner UIC [SHADOW]Owner process ID 00000000 Dev Prot S:RWED,O:RWED,G:RWED,W:RWEDReference count 1 Default buffer size 512Total blocks 891072 Sectors per track 51Total cylinders 1248 Tracks per cylinder 14Volume label "SHADTEST1" Relative volume number 0Cluster size 3 Transaction count 1Free blocks 890937 Maximum files allowed 111384Extend quantity 5 Mount count 4Mount status System Cache name "_DSA2010:XQPCACHE"Extent cache size 64 Maximum blocks in extent cache 89093File ID cache size 64 Blocks currently in extent cache 0Quota cache size 0 Maximum buffers in FCP cache 216Volume 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 MSCP served SCSI disk, is online, member of shadow set DSA80:, error logging is enabled.Error count 0 Shadow member operation count 301Host name "SHASTA" Host type, avail VAX 6000-320,yesAllocation class 255Volume 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 107Host name "SHASTA" Host type, avail VAX 6000-320,yesAllocation class 255Volume status: volume is a merge member of the shadow set.
Using
ANALYZE/DISK/SHADOW to Examine a Shadow Set ![]()
The
/SHADOW qualifier for the ANALYZE/DISK utility can be used to examine
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. Differences are also expected in the following system files:
ANALYZE/DISK/SHADOW Command Qualifiers describes the qualifiers for the ANALYZE/DISK/SHADOW command.
ANALYZE/DISK/SHADOW Sample Output shows the use of the ANALYZE/DISK/SHADOW command with the /BRIEF and /BLOCK qualifiers.
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. ![]()
|
|
Device $255$DUA56
Index 0 Device Status A6 merge, cip, src , valid
UCB 810510D0 VCB 81400A00 Unit Id. 12A10038 000000FF
Merge LBN 0004B94DThis information translates to the following:
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.) ![]()
|
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:
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:
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.
| 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. |
| 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
will be used for merge and copy repair operations and for shadow
set recovery operations.
|
|
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_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_COPYING |
String |
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 will undergo 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 will
be 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 DEVICE or
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.
|
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_MEMBERIf 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.
|
|