Over the years of selling and support virtual VAX and Alpha machines I had to develop various methods of getting data from the original hardware to the new virtual system. Since every site is different almost every migration involved something new. I have always wanted a tool that could handle almost every migration cleanly and easily without having to install any drivers or packages. Instead of waiting for someone to create the tool, I finally wrote it myself to make migrations easy and simple.

This tool uses the standard OpenVMS BACKUP tool to create a backup image of a disk in memory. As the BACKUP tool runs the tool converts the disk image into a virtual tape image and sends that virtual tape image to a vtAlpha or vtVAX server. Since everything happens in memory this works great on hardware that do not have spare disk space. It uses FTP for the migration, so you do not have to worry about setting up DECnet or having devices that block DECnet traffic on the network. It works on both VAX/VMS and Alpha/VMS as the source and the virtual tape image it creates can be read on vtServer or vtVAX for Windows. When the target is vtVAX for Windows then you have to install and configure a FTP server on the Windows host, or use another FTP server as a intermediate step.

To date this tool has been tested on the versions shown in the table. The current version of the send_tape_image.for code is V1.051 and the most recent version of the send_tape_image.cld is V1.6 .

Source Version Source IP Stack Source Platform Fortran Compiler Target Version Target Platform
OpenVMS Alpha V8.4 UCX 5.7 ECO 5 vtAlpha 4.2.1 V8.2 OpenVMS Alpha V8.4 vtAlpha 4.2.1
OpenVMS Alpha V8.3 UCX 5.5 Hardware DS20 V8.2 OpenVMS Alpha V8.4 vtAlpha 4.2.1
OpenVMS Alpha V8.4 UCX 5.7 ECO 5 vtServer 4.2.1 V7.6 OpenVMS Alpha V8.4 vtServer 4.2.1
OpenVMS Alpha V8.4 UCX 5.7 ECO 5 vtServer 4.2.1 V7.6 VAX/VMS 7.4 vtServer 4.2.1
OpenVMS VAX V7.3 UCX 4.1 vtVAX 4.2.1 V6.6 OpenVMS Alpha V8.4 vtServer 4.2.
OpenVMS VAX V7.3 UCX 4.1 vtVAX 4.2.1 V6.6

OpenVMS VAX V7.3 vtVAX for Windows

The program does not need to be installed and there are no drivers involved. The only requirement is that the host system has a TCP/IP stack. The program has been tested using UCX (or TCPIP Services for OpenVMS if you prefer the newer name for UCX) but should also work with TCPware and Multinet. As long as the user has enough privilege to run BACKUP/IMAGE and has TMPMBX and NETMBX then they can run the program. There is one single .EXE file and an optional .CLD. If the user is running this interactively then they can just enter RUN SEND_TAPE_IMAGE and the program will prompt for all the information it needs. The prompts and information displayed is very verbose because it was created for end users to run once during their migrations. The .CLD allows the user to create a batch job that can run unattended to copy all the data in the off-hours.

If using the .CLD then the user can do basic troubleshooting by adding /DEBUG=BRIEF. Adding /DEBUG=SENSITIVE will display all the data that BRIEF displays plus the password being used. The default if not specified is /DEBUG=NONE. When using the .CLD all case sensitive text must be within quotes. Directory names that have special characters must also be quoted. When running the program without the CLD then the quotes are not needed.

Because the program spends time reading the disk working with memory and sending data out through the network you can get multiple disks migratting in parallel to reduce the total time. This means that if you are migrating three disks you can setup three batch jobs or three terminals, one to do each disk. Having all three migrations running at the same time will complete faster than running each one sequentially.

Here is an example of how it runs when using the .CLD with all required qualifiers passed from the command line. If there are any qualifiers not in the command line that the program needs then it will prompt for the information. The text that the user enters is in bold with a green background. All other text is from the program.

$ 
set command send_tape_image
$
send_tape_image /disk=dkc500: /ip=192.168.2.26 /user="root" /overwrite=always -
   /directory="/Backup2" /password"MySecretPass" /target=vtserver
Note that this program uses ftp. The ftp protocol sends text, including the ftp password and all the data in the save set, as plain text. Anyone capturing traffic on your network may capture the ftp password or other sensitive data. Do not use this program if you think network traffic might be captured by someone who should not see this data. We will backup DKC500: to 192.168.2.26::/Backup2 using root We will erase the existing tape if there is one. FTP Server said: 220 vtserver FTP Server said: 230 Login successful. FTP Server said: 227 Entering Passive Mode (192,168,2,26,117,76). We will spawn the command: BACKUP DKC500:/image/ignore=interlock backupmbx:DKC500.bck/save_set/block_size=8192 Starting the timer... %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]PAGEFILE.SYS;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SWAPFILE.SYS;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SYS$ERRLOG.DMP;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SYSDUMP.DMP;1 data not copied, file marked NOBACKUP FTP Server said: 226 Transfer complete. We sent 1087492672 bytes (1.01GB) to the ftp server and the ftp server received the same number of bytes. You can now connect your tape device to that virtual tape as a MTD format, mount it and restore the backup. Remember that the tape is in MTD format so you must use "TAPEMGR SET tapedevice: /FORMAT=MTD" before issuing the "TAPEMGR LOAD" command. FTP Server said: 221 Goodbye. ELAPSED: 0 00:02:56.15 CPU: 0:02:02.24 BUFIO: 1326874 DIRIO: 3 FAULTS: 12

Here is an example of how it runs when you are not using the .CLD. The text that the user enters is in bold with a green background. All other text is from the program. Note how the program gives the timestamp of the existing .mtd file in this example, in the .CLD example we used /overwrite=always so the file was automatically overwritten. When using the .CLD you can specify /overwrite=always or /overwrite=never or /overwrite=ask. The default when using the .CLD is /overwrite=ask. When run interactively without the .CLD then the program will always ask you if there is an existing .mtd file.
$ 
run send_tape_image
Enter the disk name of the disk you want to do the /IMAGE backup of:
dkc500
Enter the IP address (not the name) of the ftp server:
192.168.2.26
Enter the username for 192.168.2.26:
root
Note that this program uses ftp. The ftp protocol sends text, including the ftp password and all the data in the save set, as plain text. Anyone capturing traffic on your network may capture the ftp password or other sensitive data. Do not use this program if you think network traffic might be captured by someone who should not see this data. Enter the password for root on 192.168.2.26: Enter the directory on 192.168.2.26 to store the .mtd file:
/Backup2
Enter Y or y to add /IGNORE=NOBACKUP to the backup command. Normally you do not want to /IGNORE=NOBACKUP so enter N unless you know that you need to:
n
Enter V or v to if 192.168.2.26 is a vtServer machine Enter W or w to if 192.168.2.26 is a Windows machine:
v
We will backup dkc500: to 192.168.2.26::/Backup2 using root FTP Server said: 220 vtserver FTP Server said: 230 Login successful. the file /Backup2/dkc500.mtd already exists, the timestamp on it is 20220712214347 if you continue then that file will be overwritten. Enter Y to continue and overwrite that file, or N to cancel and try a different file:
y
FTP Server said: 227 Entering Passive Mode (192,168,2,26,117,89). If you want to use the CLD next time you can use; SEND_TAPE_IMAGE /DISK=dkc500:/IP=192.168.2.26/user="root" - /PASSWORD="**yourpassword**"/DIRECTORY="/Backup2" - /OVERWRITE=ASK We will spawn the command: BACKUP dkc500:/image/ignore=interlock backupmbx:dkc500.bck/save_set/block_size=8192 Starting the timer... %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]PAGEFILE.SYS;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SWAPFILE.SYS;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SYS$ERRLOG.DMP;1 data not copied, file marked NOBACKUP %BACKUP-I-NOBACKUP, DKC500:[SYS0.SYSEXE]SYSDUMP.DMP;1 data not copied, file marked NOBACKUP FTP Server said: 226 Transfer complete. We sent 1087492672 bytes (1.01GB) to the ftp server and the ftp server received the same number of bytes. You can now connect your tape device to that virtual tape as a MTD format, mount it and restore the backup. Remember that the tape is in MTD format so you must use "TAPEMGR SET tapedevice: /FORMAT=MTD" before issuing the "TAPEMGR LOAD" command. FTP Server said: 221 Goodbye. ELAPSED: 0 00:02:58.37 CPU: 0:02:03.95 BUFIO: 1326874 DIRIO: 3 FAULTS: 11

Currently this tool is only available to the resellers of Vere Technologies and AVTware systems. There is a slightly older version of this tool on the VTTOOLS disk image included with vtAlpha and vtVAX, the only differences are a few minor typos in comments and a missing RETURN line that the OpenVMS x86 compilier flagged. If you are a reseller and want a copy of this tool then email support@weaverconsulting and I will send you the link.