Command Definition/General
Applicable release versions: AP/Unix
Category General (155)
Description describes how to implement a full save/restore of one machine to another across a network, using "tape-socket". See the documentation "tape socket, General" for general information about his utility, "hot backup, General" for a description of a hot backup utility, and "tape-socket, TCL" for a detailed description of the tape-socket utility.


The "tape-socket" utility is a very generalized tool which allows to do any kind of tape operations across the network. The hot backup configuration uses this for transaction logging, but this can used to do t-dumps, account save and full saves. In the case of a full save/restore, the problem is a little more complex because the tool requires that Pick is up and running on the emitting side which is doing the file save (which is no problem), but also on the receiving end, which is a little more difficult since the Pick data file is being restored. To solve this problem, a small virtual machine is created on the receiver's side, just to act as a host to the tape-socket utility.

This can be represented by the following diagram, where VM0 represents the small virtual machine used only for the transfer, and VM1 the actual virtual machine being restored:

+---------------+ +---------+---------+ - - - -
| +---+ +---+ | | +---+ | +---+ |
| | T | | P |-|>-[netw]>-|-| P | | | T | | Pick
| +---+ +---+ | | +---+ | +---+ | VMs
| | | | | | VM0 | VM1 | |
+---|-------|---+ +---|-----+-----|---+ - - - -
| | | | | | | |
| +->-=->-+ | | +->-=====->-+ | Unix
| pipe | | pipe |
+---------------+ +-------------------+ - - - -

On the sender side, data is saved by the process T into the pipe, picked up by the Output Server P and sent over the network. On the receiver side, data is received by the Input Server P in the small virtual machine VM0, written into the pipe, and picked up by the process P doing the file restore in the real virtual machine VM1.

System Setup

To perform a save/restore across the network, the System Administrator must do the following steps:

- Create both virtual machines on the receiver's side. To do this, the simplest is to install Pick normally, calling the large virtual machine 'pick0', which makes it the default virtual machine for normal usage. Then re-install Pick (using 'installp', 'custom', etc...) and select the option 2 'Display/Change Pick configuration' at the main Pick installation menu. At this menu, select option 1 'virtual machine Name'. Select a new virtual machine name (eg 'vmrest'). CHANGE THE FOLLOWING ELEMENTS: Key (select any number different from the default, which is allocated to the main machine 'pick0'; Pick memory: The 'vmrest' machine needs very little memory. Select for example 8000 K; BASIC memory: This virtual machine does not need FlashBASIC, so enter 0; Disk: Select another disk (16 megabytes is enough); Number of ports: select a small numer (4 or 5 is enough); Number of phantoms: select at least 4.

- Boot and activate the small virtual machine ('ap -0 -n vmrest'). Install the Pick Systems original data set on this machine.

- Create Unix pipes on both systems, using "mknod", and make sure they have appropriate permissions. Put these pipes as 'pseudo-tapes' in the Pick configuration files of both main systems. The small virtual machine 'vmrest' does not need to know the pipe as a tape.

- Establish a network between the two systems. This network must support TCP/IP (eg Ethernet, Token Ring, etc...). The System Administrator must set the network names of both systems, even though only the receiver's host name is used. The hot backup connection only requires access to TCP. Other elements like NFS, FTP, etc... are not required.

- Determine a free TCP/IP port number. Use the "netstat -a" Unix command to see what is currently in use. A value like 2000 or 3000 is usually safe.

- Setup the Servers on both the main system and the small virtual machine 'vmrest' (see the section "Server Setup" in the Advanced Pick Reference Manual "tape socket, General"). Make sure that the Servers are NOT linked to the Transaction logger. NOTE: If the system is also used as a hot backup configuration, and this save/restore is used only to synchronize the two systems, it is better NOT to use the default servers for the save/restore operation. Select the 'Other Server" sub-menu operations to set the servers used for the save/restore, and give them some other name, like 'ssave'. Also select different TCP port numbers. Even though they should not be used simultaneously, it is cleaner.

- Start the Output Server on the sender's side and the Input Server in the small virtual machine.

- On the receiver's main machine, start the file restore, selecting the pipe as the 'tape'.

- On the sender's main machine, start the file save, selecting the pipe as the 'tape'. The data is now being restored across the network.

- After the file save is completed, stop the servers on both sides, using the 'shutdown' option in the tape-socket menu from the sender's side. This will terminate the input server on the small machine 'vmrest'.

- The small virtual machine 'vmrest' can then be shut down.

- If the machine just restored is to be used as a 'hot backup' for the sending machine, the servers on both sides, which should now be linked to the Transaction logger, can then be started.

NOTE: If the transfers between both systems are to be used regularly, for T-DUMPs, ACCOUNT-SAVEs, etc..., it is possible to leave the small virtual machine 'vmrest' up, and use it. However, it is probably more efficient to set up an Input Server in the main machine itself.
Related general.tape-socket