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 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:)
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 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:)
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.
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 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:)
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.
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.
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.
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.
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 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
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 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.
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.
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/SYSTEMVAX/VMS System analyzerSDA>SHOW DEVICE DSA80I/O data structures-------------------DSA80 HSJ00 UCB address: 810B7F50Device status: 00021810 online,valid,unload,lcl_validCharacteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd00082021 clu,mscp,loc,vrtOwner UIC [004000,000015] Operation count 138 ORB address 810B8080PID 00000000 Error count 0 DDB address 813F49F0Alloc. lock ID 009C2595 Reference count 1 DDT address 810BEBB8Alloc. class 0 Online count 1 VCB address 810BE3F0Class/Type 01/15 BOFF 0000 CRB address 8129EB10Def. buf. size 512 Byte count 0200 PDT address 810121A0DEVDEPEND 04E00E33 SVAPTE 81FDE55C CDDB address 813F4360DEVDEPND2 00000000 DEVSTS 0004 SHAD address 8111D460FLCK index 34 RWAITCNT 0000 I/O wait queue emptyDLCK address 00000000Shadow Device status: 0004 nocnvrt----- Shadow Descriptor Block (SHAD) 8111D460 -----Virtual Unit status: 0041 normal,mergingMembers 2 Act user IRPs 0 VU UCB 810B7F50Devices 2 SCB LBN 0006CC63 Write log addr 00000000Fcpy Targets 0 Generation Num 28D47C20 Master FL emptyMcpy Targets 2 00935BC7 Restart FL emptyLast Read Index 1 Virtual Unit Id 00000000Master Index 0 12610050----- SHAD Device summary for Virtual Unit DSA80 -----Device $255$DUA56Index 0 Device Status A6 merge,cip,src,validUCB 810510D0 VCB 81400A00 Unit Id. 12A10038 000000FFMerge LBN 0004B94DDevice $255$DUA58Index 1 Device Status A6 merge,cip,src,validUCB 81051260 VCB 81439800 Unit Id. 12A1003A 000000FFMerge LBN 0004B94DSDA>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$DUA58Device Device Error Volume Free Trans MntName Status Count Label Blocks Count CntDSA80: 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/SYSTEMVAX/VMS System analyzerSDA>SHOW DEVICE DSA80I/O data structures-------------------DSA80 RA81 UCB address: 810B7F50Device status: 00021810 online,valid,unload,lcl_validCharacteristics: 1C4D4008 dir,fod,shr,avl,mnt,elg,idv,odv,rnd00082021 clu,mscp,loc,vrtOwner UIC [004000,000015] Operation count 130 ORB address 810B8080PID 00000000 Error count 0 DDB address 813F49F0Alloc. lock ID 009C2595 Reference count 1 DDT address 810BEBB8Alloc. class 0 Online count 1 VCB address 810BE3F0Class/Type 01/15 BOFF 0000 CRB address 8129EB10Def. buf. size 512 Byte count 0000 PDT address 810121A0DEVDEPEND 04E00E33 SVAPTE 00000000 CDDB address 813F4360DEVDEPND2 00000000 DEVSTS 0004 SHAD address 8111D460FLCK index 34 RWAITCNT 0000 I/O wait queue emptyDLCK address 00000000Shadow Device status: 0004 nocnvrt----- Shadow Descriptor Block (SHAD) 8111D460 -----Virtual Unit status: 0061 normal,copying,mergingMembers 1 Act user IRPs 0 VU UCB 810B7F50Devices 2 SCB LBN 0006CC63 Master FL emptyFcpy Targets 1 Generation Num 7B7BE060 Restart FL emptyMcpy Targets 0 00935BC4Last Read Index 0 Virtual Unit Id 00000000Master Index 0 12610050----- SHAD Device summary for Virtual Unit DSA80 -----Device $255$DUA56Index 0 Device Status A2 merge,src,validUCB 810510D0 VCB 81400A00 Unit Id. 12A10038 000000FFMerge LBN FFFFFFFFDevice $255$DUA58Index 1 Device Status 87 fcpy,merge,cip,validUCB 81051260 VCB 81439800 Unit Id. 12A1003A 000000FFCopy 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
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_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 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.