# Network save/restore

This topic describes how to implement a full save/restore
of one machine to another across a network, using tape-socket.

The tape-socket utility is a multifunctional
tool that 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 a t-dump, an account save,
and a full save. In the case of a full save/restore, the problem is
a slightly more complex. D3 must be running on both the emitting end
(the one running the file-save) and the receiving
end (which is a little more difficult since the D3 data file is being
restored). To solve this problem, a small virtual machine is created
on the receiver’s side to act as a host to the tape-socket utility.

This is 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.

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 complete these steps:

- Create both virtual machines on the receiver’s side. The best way to accomplish this is to install D3 normally, calling the large virtual machine pick0, which makes it the default virtual machine for normal usage. Then re-install D3 (using installp, custom, and so on) and select the option 2 Display/Change D3 configuration at the main D3 installation menu. From this menu, select option 1 virtual machine Name. Select a new virtual machine name (for example, vmrest).

- Change the following elements: | Key | Select any number different from the default, which is allocated to the main machine pick0. | | --- | --- | | Pick memory | vmrest machine needs very little memory. Select 8000 KB for example. | | BASIC memory | Virtual machine does not need FlashBASIC. Enter 0. | | Disk | Select another disk (16 MB is enough). | | Number of ports | Select a small number (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 D3 original data set on this machine.

- Create UNIX pipes on both systems, using mknod, and make sure they have the appropriate permissions. Put these pipes as pseudo tapes in the D3 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 (for example, Ethernet, Token Ring, and so on). 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, and so on 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 Tape socket). 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 submenu operations to set the servers used for the save/restore, and give them some other name, such as 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 terminates 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, and so on, 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.

## See also

- [Hot backup](https://d3codex.com/definitions/hot-backup/)
- [save command](https://d3codex.com/tcl/save-command/)
- [Tape socket](https://d3codex.com/definitions/tape-socket/)
- [tape-socket command](https://d3codex.com/tcl/tape-socket-command/)

---
Source: https://d3codex.com/definitions/network-save-restore/ - part of the D3Codex reference.
