[an error occurred while processing this directive]
HP OpenVMS Systems Documentation |
Volume Shadowing for OpenVMS
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.
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:
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.
The OpenVMS DCL Dictionary contains a large list of item codes that you can supply as an argument to F$GETDVI. Table 4-4 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.
To check a device for possible shadow set membership, you could include the following DCL command in a command procedure:
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.
Chapter 5
|
SYS$MOUNT itmlst |
Example 5-1 illustrates MACRO-32 statements that produce a $MOUNT system service item list to create and mount a shadow set.
Example 5-1 Item List to Create and Mount a Shadow Set |
---|
DSA23: .ASCID /DSA23:/ MEMBER001: .ASCID /$4$DUA9:/ MEMBER002: .ASCID /$4$DUA5:/ VOLUME_LABEL: .ASCID /MYVOLUME/ VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/ .MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0 .WORD SIZE, CODE .ADDRESS BUFFER, RETURN .ENDM .ITEM ITMLST: .ITEM 6, MNT$_SHANAM, DSA23 (1) .ITEM 8, MNT$_SHAMEM, MEMBER001 (2) .ITEM 8, MNT$_SHAMEM, MEMBER002 .ITEM 8, MNT$_VOLNAM, VOLUME_LABEL (3) .ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM (4) .LONG 0 |
The following list describes the elements in Example 5-1:
Later, if you want to add another device to the shadow set, you make another call to $MOUNT that specifies an item list that contains the name of the virtual unit and the name of the device you want to add to the shadow set. Example 5-2 shows how to add the physical device $4$DUA10: to the shadow set created in Example 5-1.
Example 5-2 Item List to Add a Member to a Shadow Set |
---|
DSA23: .ASCID /DSA23:/ MEMBER003: .ASCID /$4$DUA10:/ VOLUME_LABEL: .ASCID /MYVOLUME/ VOLUME_LOGNM: .ASCID /DISK$MYVOLUME/ .MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0 .WORD SIZE, CODE .ADDRESS BUFFER, RETURN .ENDM .ITEM ITMLST: .ITEM 6, MNT$_SHANAM, DSA23 .ITEM 9, MNT$_SHAMEM, MEMBER003 .ITEM 8, MNT$_VOLNAM, VOLUME_LABEL .ITEM 13, MNT$_LOGNAM, VOLUME_LOGNM .LONG 0 |
Section 5.2 briefly describes the $MOUNT shadow set item codes and
discusses how to construct a valid $MOUNT item list. For a complete
description of the $MOUNT service and all its item codes, refer to the
OpenVMS System Services Reference Manual.
5.2 $MOUNT Shadow Set Item Codes
This section briefly describes the SYS$MOUNT item codes that are useful for shadow set management. Refer to the OpenVMS System Services Reference Manual for complete information about SYS$MOUNT, item codes, and other system services.
Table 5-1 describes the $MOUNT shadow set item codes.
Item Code | Function |
---|---|
MNT$_FLAGS |
Specifies a longword bit vector in which each bit specifies an option
for the mount operation. The buffer must contain a longword, which is
the bit vector.
The $MNTDEF macro defines symbolic names for each option (bit) in the bit vector. You construct the bit vector by specifying the symbolic names for the desired options in a logical OR operation. The following list describes the symbolic names for each shadow set option:
|
MNT$_SHANAM |
Specifies the name of the virtual unit to be mounted. The buffer is a
1- to 64-character string containing the virtual unit name in the
format DSA
n:. This string can also be a logical name; if it is a logical
name, it must translate to a virtual unit name. An item list must
include at least one MNT$_SHANAM item descriptor.
If you are mounting a volume set containing more than one shadow set, you must include one MNT$_SHANAM item descriptor for each virtual unit included in the volume set. |
MNT$_SHAMEM |
Specifies the name of a physical device to be mounted into a shadow
set. The shadowing software adds the device to the shadow set
represented by the virtual unit specified in the MNT$_SHANAM item
descriptor. The MNT$_SHAMEM descriptor is a 1- to 64-character string
containing the device name. The string can be a physical device name or
a logical name; if it is a logical name, it must translate to a
physical device name.
An item list must contain at least one item descriptor specifying a member; this item descriptor must appear after the MNT$_SHANAM item descriptor. |
Here are some important things to remember when you construct a $MOUNT item list:
When mounting volume sets, always list the volume with the largest storage capacity first. You should name the largest volume first because the volume set and directory information goes on the first volume listed in a MOUNT command line. A small-capacity disk may not have adequate storage for the volume and directory information.
Example 5-3 shows the MACRO-32 statements required to produce a $MOUNT system service item to mount a volume set that contains two shadow sets.
Example 5-3 Item List to Create and Mount a Volume Set |
---|
DSA23: .ASCID /DSA23:/ DSA51: .ASCID /DSA51:/ MEMBER009: .ASCID /$4$DUA9:/ MEMBER005: .ASCID /$4$DUA5:/ MEMBER010: .ASCID /$4$DUA10:/ MEMBER012: .ASCID /$4$DUA12:/ MEMBER003: .ASCID /$4$DUA3:/ MEMBER034: .ASCID /$4$DUA34:/ VOLUME_WORK1: .ASCID /WORK1/ VOLUME_WORK2: .ASCID /WORK2/ VOLUME_LOGNM: .ASCID /WRKD$/ .MACRO .ITEM, SIZE, CODE, BUFFER, RETURN=0 .WORD SIZE, CODE .ADDRESS BUFFER, RETURN .ENDM .ITEM ITMLST: .ITEM 6, MNT$_SHANAM, DSA23 (1) .ITEM 8, MNT$_SHAMEM, MEMBER009 (2) .ITEM 8, MNT$_SHAMEM, MEMBER005 .ITEM 9, MNT$_SHAMEM, MEMBER010 .ITEM 5, MNT$_VOLNAM, VOLUME_WORK1 (3) .ITEM 6, MNT$_SHANAM, DSA51 (4) .ITEM 9, MNT$_SHAMEM, MEMBER012 (4) .ITEM 8, MNT$_SHAMEM, MEMBER003 .ITEM 9, MNT$_SHAMEM, MEMBER034 .ITEM 5, MNT$_VOLNAM, VOLUME_WORK2 (4) .ITEM 5, MNT$_LOGNAM, VOLUME_LOGNM (5) .LONG 0 |
The following list describes the elements in Example 5-3:
You can use the $DISMOU system service to perform the following three shadow set operations:
The call to the $DISMOU system service has the following format:
SYS$DISMOU devnam, flags |
The action that $DISMOU takes depends in part on whether you specify a shadow set virtual unit or a shadow set member in the devnam argument.
For a complete description of the $DISMOU service and its arguments,
see the OpenVMS System Services Reference Manual.
5.4.1 Removing Members from Shadow Sets
If you want to remove a single member from a shadow set, you must make a call to $DISMOU. In the devnam argument, you should specify the name of the shadow set member you want to remove. The specified member is spun down unless you specify the DMT$M_NOUNLOAD option in the flags argument.
The MACRO-32 code in Example 5-4 demonstrates a call to $DISMOU that removes the member $2$DUA9 from a shadow set.
Example 5-4 Removing a Member from a Shadow Set |
---|
$DMTDEF FLAGS: .LONG DMT$M_NOUNLOAD MEMBER001: .ASCID /$2$DUA9:/ . . . $DISMOU_S - devnam = MEMBER001, - flags = FLAGS . . . .END |
If you want to dismount a shadow set on a single node, you must make a call to $DISMOU. In the devnam argument, you should specify the name of the virtual unit that represents the shadow set you want to dismount. If you want to dismount the shadow set clusterwide, specify the DMT$M_CLUSTER option in the flags argument of the call.
When you dismount a shadow set on a single node in an OpenVMS Cluster system, and other nodes in the OpenVMS Cluster still have the shadow set mounted, none of the shadow set members contained in the shadow set are spun down, even if you have not specified the DMT$M_NOUNLOAD flag. After this call completes, the shadow set is unavailable on the node from which the call was made. The shadow set is still available to other nodes in the cluster that have the shadow set mounted.
If the node on which the shadow set is being dismounted is the only node that has the shadow set mounted, the shadow set dissolves. The shadow set member devices are spun down unless you specify the DMT$M_NOUNLOAD flag.
The MACRO-32 code in Example 5-5 demonstrates how to use the $DISMOU system service to dismount the shadow set represented by the virtual unit DSA23.
Example 5-5 Dismounting and Dissolving a Shadow Set Locally |
---|
$DMTDEF FLAGS: .LONG 0 DSA23: .ASCID /DSA23:/ . . . $DISMOU_S - devnam = DSA23, - flags = FLAGS . . . .END |
When a shadow set is dissolved:
The MACRO-32 code in Example 5-6 demonstrates a call to the $DISMOU system service to perform a dismount across the cluster. When the shadow set is dismounted from the last node, the shadow set is dissolved.
Example 5-6 Dismounting and Dissolving a Shadow Set Across the Cluster |
---|
$DMTDEF FLAGS: .LONG DMT$M_CLUSTER DSA23: .ASCID /DSA23:/ . . . $DISMOU_S - devnam = DSA23, - flags = FLAGS . . . .END |
You must specify the DMT$M_CLUSTER option with the flags argument if you want the shadow set dismounted from every node in the cluster. When each node in the cluster has dismounted the shadow set (the number of hosts having the shadow set mounted reaches zero), the volume shadowing software dissolves the shadow set.
Previous | Next | Contents | Index |