Previous | Contents | Index |
Remote Device Facility can survive network failures of up to 15 minutes long. If the network comes back within the 15 minutes allotted time, the RDCLIENT continues processing WITHOUT ANY INTERRUPTION OR DATA LOSS. When a network link drops while RDF is active, after 10 seconds, RDF creates a new network link, synchronizes I/Os between the RDCLIENT and RDSERVER, and continues processing.
The following example shows how you can test the Remote Device Facility's ability to survive a network failure. (This example assumes that you have both the RDSERVER and RDCLIENT processes running.)
Example 11-1 Testing RDF Surviving a Forced Network Failure |
---|
$ @tti_rdev:rdallocate tti::mua0: RDEV - VMS Remote Device Facility (Version V4.n) - RDallocate Procedure Copyright (c) 1990-2000 by Touch Technologies, Inc. Device TTI::TTI$MUA0 ALLOCATED, use TAPE01 to reference it $ backup/rewind/log/ignore=label sys$library:*.* tape01:test from a second session: $ run sys$system:NCP NCP> show known links Known Link Volatile Summary as of 13-JAN-2000 14:07:38 Link Node PID Process Remote link Remote user 24593 20.4 (JR) 2040111C MARI_11C_5 8244 CTERM 16790 20.3 (FAST) 20400C3A --rdclient-- 16791 tti_rdevSRV 24579 20.6 (CHEERS) 20400113 REMACP 8223 SAMMY 24585 20.6 (CHEERS) 20400113 REMACP 8224 ANDERSON NCP> disconnect link 16790 . . . Backup pauses momentarily before resuming. Sensing the network disconnect, RDF creates a new --rdclient-- link. Verify this by entering the following command: NCP> show known links Known Link Volatile Summary as of 13-JAN-2000 16:07:00 Link Node PID Process Remote link Remote user 24593 20.4 (JR) 2040111C MARI_11C_5 8244 CTERM 24579 20.6 (CHEERS) 20400113 REMACP 8223 SAMMY 24585 20.6 (CHEERS) 20400113 REMACP 8224 ANDERSON 24600 20.3 (FAST) 20400C3A --rdclient-- 24601 tti_rdevSRV NCP> exit |
The Remote Device Facility includes a high-level language call interface. The interface allows OpenVMS based languages to ALLOCATE and DEALLOCATE remote devices.
12.1 Implementation
The call interface is implemented as a single callable routine
RDEV_CONTROL. RDEV_CONTROL is
contained in a sharable image. The image is pointed to by the
system-wide logical RDEV_CONTROL_SHR.
The use of a shared image allows RDEV_CONTROL's code areas to be shared among users. But, more importantly, it allows RDEV_CONTROL to be optionally accessed using the OpenVMS Library routine LIB$FIND_IMAGE_SYMBOL.
Figure 12-1 RDF Callable Interface Example From BASIC
1 ! EXAMPLE.BAS - Will RDALLOCATE and RDDEALLOCATE a tape device 10 external long function rdev_control(string) 20 declare long rdf_status% 25 print "Allocating remote device MSA0:..." 30 rdf_status% = rdev_control("allocate tti::msa0: mytape") 40 if (rdf_status% and 1%) = 0 then exit program rdf_status 50 print "Tape device allocated, use MYTAPE to reference it." 55 linput "Press<return> to continue"; z$ 60 rdf_status% = rdev_control("deallocate mytape") 70 if (rdf_status% and 1%) = 0 then print "MYTAPE deallocated" 80 exit program rdf_status 100 end $ basic EXAMPLE.BAS $ link EXAMPLE,tt:/option RDEV_CONTROL_SHR/share <CTRL/Z> $ $ run EXAMPLE Allocating remote device MSA0:... Tape device allocated, use MYTAPE to reference it. Press <return> to continue? MYTAPE deallocated |
Figure 12-2 RDF Callable Interface Example From C
/* EXAMPLE.C - Will RDALLOCATE and RDDEALLOCATE a tape device */ #include stdio #include descrip extern long rdev_control (struct dsc$descriptor *); main () { long rdf_status; $DESCRIPTOR (alloc_dsc, "allocate tti::msa0: mytape"); $DESCRIPTOR (dealloc_dsc, "deallocate mytape"); printf ("Allocating remote device MSA0:...\n"); rdf_status = rdev_control (&alloc_dsc); if ((rdf_status & 1) == 0) exit (rdf_status); printf ("Tape device allocated, use MYTAPE to reference it.\n"); printf ("Press <return> to continue..."); getchar (); rdf_status = rdev_control (&dealloc_dsc); if ((rdf_status & 1) == 0) exit (rdf_status); printf ("MYTAPE deallocated\n"); } $ cc EXAMPLE.C $ link EXAMPLE,tt:/option SYS$SHARE:VAXCRTL/SHARE RDEV_CONTROL_SHR/share $ $ run EXAMPLE Allocating remote device MSA0:... Tape device allocated, use MYTAPE to reference it. Press <return> to continue... MYTAPE deallocated |
The physical device may be referenced by any name that is valid with the RDALLOCATE command. This includes the device name or any optional device characteristics that are specified in the server configuration file.
13.1 Initiating Remote Backups with REMOTE_BACKUP.COM
To facilitate CLIENT node backups, the
REMOTE_BACKUP.COM command procedure has been included
with the RDF software.
REMOTE_BACKUP.COM is used to initiate CLIENT node backup procedures by:
If the RDALLOCATE is not successful, the procedure waits five minutes before attempting to RDALLOCATE the tape device again. This looping continues until the tape device is successfully RDALLOCATED or until the specified timeout period is reached.
An example usage of REMOTE_BACKUP.COM follows:
$ @tti_rdev:remote_backup "ZEUS::MSA0: TAPE01" "MY_BACKUP.COM" |
This RDALLOCATES a tape device on node ZEUS and then executes the MY_BACKUP.COM command file. MY_BACKUP.COM references the remote tape device using the name, TAPE01.
CLIENT node backups can be automated by adding an OpenVMS submit command to REMOTE_BACKUP.COM.
$! REMOTE_BACKUP - Procedure to initiate a remote backup using RDF $! Copyright (c) 1990-2000 Touch technologies, Inc. $! $! p1 = server_node::tape_device $! p2 = BACKUP command file $! $! $ submit/after="tomorrow"/parameters=("ZEUS::MSA0: TAPE01","MY_BACKUP.COM") - tti_rdev:remote_backup . . . |
The submit command submits the command procedure, REMOTE_BACKUP.COM, to sys$batch to be executed at midnight.
13.2 Starting Remote Node Backups with SUBMIT/REMOTE
CLIENT node backups can also be initiated by using the OpenVMS
SUBMIT/REMOTE command. The SUBMIT/REMOTE queues a job
to SYS$BATCH on the specified remote node.
For example, to start a backup job on CLIENT node MINI from SERVER node ZEUS with SUBMIT/REMOTE:
$! zeus_backup.com -- backup procedure for node ZEUS . . . $ mount/foreign msa0: $ backup/... $ dismount/nounload msa0: $ submit/remote mini::dua0:[oper]mini_backup.com |
The CLIENT node backup command procedure includes both RDALLOCATE and RDDEALLOCATE commands.
$ mini_backup.com -- backup procedure for node MINI . . . $ @tti_rdev:rdallocate zeus::msa0: mytape $ mount/foreign mytape $ backup/norewind ... mytape:mini.bck/save_set $ @tti_rdev:rddeallocate mytape |
Proxy accounts must be enabled for SUBMIT/REMOTE to work. |
This chapter provides information about the Dynamic Tape Accelerator product and how it works with RDF. Dynamic Tape Accelerator (DTA) is a software tape monitor and acceleration tool that increases performance of I/O write operations to tape devices.
For detailed information on the Dynamic Tape Accelerator, see the Dynamic Tape Accelerator reference manual. |
tm Dynamic Tape Accelerator is a trademark of Touch Technologies, Inc. |
14.1 ACCELERATING Remote Devices
Running RDF, DTA, and OpenVMS BACKUP at the same time requires a very fast CLIENT CPU. We recommend at least three VUPS. Use of the DTA COMPRESSION option requires at least 25 VUPS when using RDF, DTA, and OpenVMS BACKUP at the same time on a CLIENT node. |
DTA can be used on an RDF CLIENT node to improve tape write performance and to monitor throughput rates to remote devices. This is accomplished by:
$ @tti_rdev:rdallocate zeus::mub0: RDEV - VMS Remote Device Facility (Version V4.n) - RDallocate Procedure Copyright (c) 1990-2000 by Touch Technologies, Inc. Device ZEUS::ZEUS$MSA0 ALLOCATED, use TAPE01 to reference it |
$ @tti_dta:control accel tape01 1250 |
The ACCEL command takes the form:
$ @tti_dta:control accel device capacity |
Where device is the name of the RDALLOCATED tape device and capacity is the capacity of a single tape volume in megabytes.
The following command would be used to ACCELERATE a 4mm device with a capacity of 1.2GB.
$ @tti_dta:control accel tape01 1250 Dynamic Tape Accelerator (V4.1) - Acceleration Procedure Copyright (c) 1990, 1999 Touch Technologies, Inc. TAPE01 accelerated |
Because the performance of most remote tape operations is limited by the network bandwidth, we suggest ACCELERATING the RDALLOCATED tape drive on only the CLIENT node. |
14.2 DEACCELERATING an RDALLOCATED DEVICE
To DEACCELERATE a tape device, issue the following command:
$ @tti_dta:control deaccel device |
Although the @TTI_DTA:CONTROL DEACCEL command can be used at any time, DTA delays the actual deacceleration until all pending I/O operations to the tape device have completed.
An RDALLOCATED tape device should always be DEACCELERATED prior to RDDEALLOCATING the device. |
$ @tti_rdev:rdallocate zeus::mub0: $ @tti_dta:control accel tape01 1250 . . various tape operations . $ @tti_dta:control deaccel tape01 $ @tti_rdev:rddeallocate tape01 |
If you would like to MONITOR an RDALLOCATED tape device but do not want to ACCELERATE it, you can use the PREACCEL command procedure.
$ @tti_dta:control preaccel tape01 |
The DTA MONITOR procedure allows you to monitor the data transfer rate across the network to the physical tape device in KB/sec. The data transfer rate is determined from tape I/O acknowledgments sent by the RDSERVER node.
The flow of data from application to tape and resulting tape I/O acknowledgment is:
DATA <-------<-----------<-----------<-----------<------- TAPE I/O ACKNOWLEDGMENT -------->----------->----------->----------->-------> +-----+ +--+ +--+ +--+ +--+ | | | | | | | | | | | |-----| |---------//---------| |-----| |-----| | | | | | | | | | | | +-----+ +--+ +--+ +--+ +--+ Tape RDF NETWORK RDF DTA Application Drive RDSERVER NODE RDCLIENT NODE |
To monitor a tape device, it must first be either ACCELERATED or PREACCELERATED.
$ @tti_rdev:rdallocate zeus::mub0: $ @tti_dta:control accel tape01 1250 $ @tti_dta:monitor rdeva0 |
If you have more than one device RDALLOCATED, rdeva0 might be rdevb0 or rdevc0, etc. The following command can be used to show which devices are RDALLOCATED. (See Section 4.4, Showing All RDALLOCATED Devices on your CLIENT node.)
$ @tti_rdev:rdshow devices |
The DTA MONITOR can be viewed interactively or written to a file. To write the MONITOR to a file:
$ @tti_dta:monitor device file_spec |
Where device is the reference name of the RDALLOCATED tape device to monitor and file_spec is an OPTIONAL parameter indicating the logfile name. By default, the monitor displays on your terminal.
Example 14-1 DTA MONITOR Sample Display |
---|
DTA MONITOR (n.n) of TAPE01: on 12-JAN-2000 19:13:05.14 Sample 3 User OPER, image BACKUP SYS$SYSDEVICE:[TEST]MYFILE.LIS;12 20 40 60 80 100 + - - - + - - - + - - - + - - - + - - - + Percent of capacity 2|X Cachesize/100KB 8|XXXX 500| 450| 400| Throughput History 350| in KB/sec 300| 250| 200| X X Average KB/sec: 180 150| X X X 100| X X X 50| X X X + - - - - - - - - - - - - - - - - - - - - I/O queue len : 96 Elapsed : 12:53 Volume/Saveset: BACK02 I/O requests : 145 Func time: 0:02 Current Funct : WRITE Virtual KB/sec: 190 Est EOT : 8:13 DTA state : CACHING PHY/ACT KB/sec: 180/180 Errors : 0 Device state : OPEN PHY/ACT MB : 14/15 Density : 1600 Compression : ON |
Before installing RDF, make sure that you have read this manual COMPLETELY. RDF can be loaded into any directory on any disk ...e.g., $1$WORK:[RDF] |
The following is an example installation of RDF on an OpenVMS system:
Example A-1 Installing Remote Device Facility |
---|
APPLICATIONS SYSTEM OpenVMS Version 5.5 Username: SYSTEM Password: (the system password on SERVER node ZEUS) $ CREATE/DIRECTORY SYS$SYSDEVICE:[tti_rdev] $ SET DEFAULT SYS$SYSDEVICE:[tti_rdev] $ DIRECTORY No files found. $ ALLOCATE MSA0: _MSA0: allocated $ MOUNT MSA0:/FOREIGN Volume is write locked RDF mounted on _MSA0: $ BACKUP/LOG MSA0:*.* *.*/NEW_VERSION . . . $ DISMOUNT MSA0: $ DEALLOCATE MSA0: $ $ @RDSERVER_STARTUP RDEV - VMS Remote Device Facility (Version V4.n) - RDserver Startup Procedure Copyright (c) 1990-2000 by Touch Technologies, Inc. %RUN-S-PROC-ID, identification of created process is xxxx RDserver startup complete $ $! Enhance the configuration file ** This is an OPTIONAL step ** $ edit CONFIG_ZEUS.DAT . . DEVICE $1$mua0 MUA0, TK50 DEVICE $1$msa0 MSA0, TU80, 1600bpi $ $ SET HOST MINI Username: SYSTEM Password: (the system password on CLIENT node MINI) $ CREATE/DIRECTORY SYS$SYSDEVICE:[tti_rdev] $ SET DEFAULT SYS$SYSDEVICE:[tti_rdev] $ DIRECTORY No files found. $ COPY ZEUS::SYS$SYSDEVICE:[tti_rdev]:*.* *.*/LOG . . . $ @RDCLIENT_STARTUP RDEV - VMS Remote Device Facility (Version V4.n) - RDclient Startup Procedure Copyright (c) 1990-2000 by Touch Technologies, Inc. %RUN-S-PROC-ID, identification of created process is xxxx RDclient startup complete $ log SYSTEM logged out at 01-JAN-2000 09:50:59.95 Control returned to node _ZEUS:: $ LOG SYSTEM logged out at 01-JAN-2000 09:52:10.95 |
Previous | Next | Contents | Index |