Remote Device Facilitytm


Previous Contents Index

Chapter 11
Surviving Network Failures

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


Chapter 12
High-level Language Call Interface

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.


Chapter 13
Backing Up CLIENT Nodes

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 

Note

Proxy accounts must be enabled for SUBMIT/REMOTE to work.


Chapter 14
Using Dynamic Tape Acceleratortm

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.

Note

For detailed information on the Dynamic Tape Accelerator, see the Dynamic Tape Accelerator reference manual.

Note

tm Dynamic Tape Accelerator is a trademark of Touch Technologies, Inc.

14.1 ACCELERATING Remote Devices

Note

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:

  1. RDALLOCATING the remote tape device with RDF


       $ @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 
    

  2. ACCELERATING the tape device with DTA using the logical name that was assigned in the RDALLOCATE command.


       $ @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 

Note

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.

Note

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 

14.3 PREACCELERATING an RDALLOCATED Device

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 

14.4 The DTA Tape MONITOR

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 


Appendix A
Installation Example

Note

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