How to copy disks using the EmuVM MigTool.

The migration tools are designed to assist migrations of an Alpha AXP system to AlphaVM. The tool can be used to make the disk images of the real Alpha system. The disk images can then be used as AlphaVM disk container files (virtual disks).

The tool consists of two parts:

  • The server part. It run on Windows or Linux. It receives the disk data sent by the client part.
  • The client part. It runs on OpenVMS or Tru64/Digital UNIX systems whose disks are to be copied.

The tool is convenient in that it

  • does not require space to store the disk image on the client machine.
  • creates a disk container file directly compatible with AlphaVM.

If the tools is shared with you, you will see it on the Download page.

The server part (migsrv).

The server part of the tool can be run on Windows or Linux (x64). When migsrv is run, it listens for the connections from the client part. When the client part connects, it send a disk. The disk is written in a file on the server side. The file name is the same as of the disk name on the client side. The file extension is .dd. When the disk is copied, the server side listens for the next attempt to copy the disk. Control-C can be used to stop mgsrv.

The tool usage is: migsrv -d <dir> -p <port>, where <dir> is the directory where the disks will be put and the <port> is the TCP IP port used to listen connections from the client (8080 by default).

Example on Windows: migsrv -d C:\AlphaVM-Disks -p 8080

Example on Linux: migsrv -d /usr/alphavm-disks -p 8080

The client part (mig).

The client part can run on OpenVMS or Tru64/Digital UNIX. The client part connects to the server part and sends a disk image to the server.

The tool usage is: mig <disk> <ip> <port> where disk is the disk name, <ip> is the IP address of the server and <port> is the TCPIP port used by the server to listen for the client connections (8080).

The client part on OpenVMS.

Examples:

$ mig :== $DKA0:[000000.MIG]MIG_VMS.EXE
$ mig dka0 192.168.2.20 8080
$ mount dka100: /for
$ mig dka100 192.168.2.20 8080

Do not put ‘:’ after the disk name. With the colon the tool will work, but the colon will be put in the image name on the server side.

If a disk is not mounted, mount it foreign. The tool can run on the system disk.

When the queue manager is used, its files are not copied correctly, if the queue manager is running. There can also run other layered products that are better stopped while the disk images are taken. To guarantee that the disks are remounted foreign makes sure the disks are not changed on the fly while being copied. Here is an example.

  • Stop layered products
    • Stop DSMMGR. As DSFMGR: $ @sys$manager:dsm$shutdown
    • Stop PATHWORKS As SYSTEM: $ @sys$startup:pwrk$shutdown
    • Stop the queue manager: $ stop /queue/manager/cluster
  • Unmount the non-system disks: $ dismount dka100:
  • Mount the disks foreign: $ mount dka100: /foreign
  • Assuming the migration tool is in DKA0:[000000.MIG]: $ mig :== $dka0:[000000.mig]mig_vms.exe
  • Copy disks
    • $ mig dka0 192.168.2.20 8080
    • $ mig dka100 192.168.2.20 8080
  • Restore the queue manager: $ start /queue/manager
  • Reboot the system to make sure everything is started normally: $ reboot

The tool has been tested on OpenVMS 7.1-2 – 8.4.

The client part on Tru64/Digital UNIX.

Example on Tru64 5.x: ./mig_unix.exe dsk0 192.168.2.20 8080. The tools uses the block devices like /dev/disk/dsk0c

Example on Tru64/Digital UNIX 4.x: ./mig_unix.exe rz0 192.168.2.20 8080. The tools uses the block devices like /dev/rz0c.

The tool works for the Tru64/UNIX labeled disks, because the partition C maps the whole disk. The tools also works for unlabeled disks. The block device for C maps the whole disk. However, Linux sometimes creates a disk label whose C partition does not map the whole disk. The tool fails for such disks, because the C partition size is not the same as the whole disk size.

We advise to take the disk images in the single user mode to make sure the disks are not being changed by a running program while the copy process is running. Here is an example:

>>> boot -fl s dka0
# bcheckrc
# ifconfig tu0 192.168.2.15/24 speed 200 up
# ls /dev/disk/dsk*c
# ./mig_unix.exe dsk0 192.168.2.20 8080

The tool has been tested on the OS version 4.0e – 5.1b. It is built on 4.0e using the standard C compiler.

Alternatives to MigTool.

As an alternative on OpenVMS, one can create a backup /image backup and then extract the backup on AlphaVM booted from some installation of OpenVMS.

On Tru64 one can use dd to create a compatible disk image.



Leave a Reply