MSCP and TMSCP Controllers


Table of Contents

Introduction

CHARON-VAX provides MSCP controllers for hardware disks (including floppy and CD/DVD) and disks images. TMSCP controllers provide support for hardware tapes and tape images.

MSCP and TMSCP controllers are added to the configuration using the "load" command. The individual units are defined by using the container parameter.

MSCP devices appear in VMS as DUA for the first controller and DUB for the second controller, etc.
TMSCP devices appear in VMS as MUA, MUB, etc.

When adding multiple MSCP or TMSCP controllers, follow Qbus addressing conventions.

When a tape or disk image connected to an emulated TMSCP or MSCP controller is dismounted in VAX/VMS, it is disconnected from CHARON-VAX and can be manipulated. It may even be replaced with a different disk image if it keeps the same name. This capability may be useful when designing back-up and restore procedures. When copying CHARON-VAX disk images while CHARON-VAX is running, please take care to minimize the risk of overloading a heavily loaded CHARON-VAX host system. For example using a sequential series of simple ftp binary copies is less resource intensive and thus less disruptive than multiple, simultaneous copies.

Empty disk images are created with the "mkdskcmd" utility. Tape images (vtapes) will be created if they don't exist.

CHARON-VAX is able to boot disk images of any VAX/VMS version (for VAX/VMS starting with 4.5 or higher for MicroVAX II or VAX 3600 and VAX/VMS 5.5-2 or higher for the VAX4000).


RQDX3 Controller

The CHARON-VAX QBUS system provides support for RQDX3 disk controllers. The original RQDX3 disk controller is capable of serving up to 4 disk units. CHARON-VAX extends this limit so that the RQDX3 disk controller can be configured with up to 256 disk units. Normally all 256 disks can be connected to one MSCP disk controller but, if an application does intensive simultaneous I/O to more than 16 disks on one MSCP controller, it is recommended to configure additional RQDX3 controllers.

Use the following command to load an instance of an RQDX3 disk controller:

load RQDX3/RQDX3 <logical name>


Example:

load RQDX3/RQDX3 DUA
The RQDX3 offers the following configuration parameters, which can be specified with the "set" command:

address

Parameteraddress
TypeNumeric
Value

Specifies the CSR address. The address must be a valid QBUS 22-bit wide address in IO space.

Initial value is 017772150 which is the factory setting for the RQDX3 disk controller.

Use the "address" parameter for loading several instances of RQDX3. The "address" parameter value must be unique for every instance of the controller.

max_n_of_units

Parameter

max_n_of_units

TypeNumeric
Value

Specifies the maximum number of units supported by the controller. Possible values are 4…9999.

Default is 9999.


container

Parameter

container[N]

N=0…9999

Type

Text String

Value

Specifies the location of the disk container. It can be either the name of a ".vdisk" file or the name of a physical disk:

  • Local fixed disks (IDE, SCSI, SATA)
    • "/dev/disk/by-id/..." - addressing by the disk ID, for example "/dev/disk/by-id/ata-ST1000DM003-9YN162_S1D01QJ4"
    • "/dev/disk/by-label/..." - addressing by the disk label, for example "/dev/disk/by-label/MyStorage"
    • "/dev/disk/by-uuid/..." - addressing by the disk UUID, for example "/dev/disk/by-uuid/0e808a2f-cdd3-4944-a245-f729ffd73882"

    • DO NOT USE "/dev/sd<L>" – it is not persistent

      Since "/dev/sd<L>" addressing is not persistent, so it is strongly recommended to use "/dev/disk/by-id/wwn-*." syntax instead to refer the disk by its WWID - especially in the enviroments utilizing FC and SAN storages.

      (info) It is also possible to use not a whole disk, but previously created partitions on it. In this case the syntax is the following: "/dev/sd<L><N>" where N is the number of partition to be used. 
      .

  • Floppy drives
    • "/dev/fd<N>"
      .
  • CD-ROM and DVD drives (IDE, SCSI, …)
    • "/dev/cdrom<N>",
    • "/dev/sr<N>"
      .
  • Multipath disks
    • "/dev/dm-<N>",
    • "/dev/mapper/mpath<N>",
    • "/dev/mapper/disk<N>"

media_type

Parameter

media_type[N]

N=0…9999

Type

Text String

Value

Overrides default (automatically determined) MSCP media type of the device.

Syntax:

"<device-name>[,<device-type>]"

where:

  • <device-name> is one of “DU”, “DK”, “SCSI”, “DI”, “DSSI”, “DJ”

  • <device-type> is of the form “LLD” or “LLLD”, where “L” is letter from A through Z, and “D” is decimal number from 0 through 99

If not specified, the device name is set to “DU”, and the device type is selected based on disk size.

Initialy not specified.

geometry

Parameter

geometry[N]

N=0…9999

Type

Text String

Value

This formatted string value specifies the explicit geometry of the disk storage element with DSSI node id N and MSCP unit number N. This parameter is not applicable to tape storage elements.

The string format is <X>”/”<Y>[“/”<Z>] where:

  1. X is number of sectors on track;

  2. Y is number of tracks on cylinder;

  3. Z (optional) is the number of cylinders on the unit. If omitted, Z is calculated based on X, Y and the total number of sectors on the unit that reflects the size of the disk storage element;

If this parameter is not set, CHARON-VAX will configure the geometry based on the most probable disk type.

use_io_file_buffering

Parameter

use_io_file_buffering[N]

N=0…9999

TypeBoolean
Value

Enables use of host OS I/O buffering.

Initially set to “false” (buffering disabled).


Example 1

load RQDX3/RQDX3 DUA address=017772150 max_n_of_units=4

set DUA container[0] = "/charon/disks/rx23.vdisk"
set DUA container[1] = "/dev/sdb"

load RQDX3/RQDX3 DUB address=017760334

set DUB container[5] = "/dev/cdrom"

In the above example, "rx23.vdisk" will be seen in VMS as DUA0, "/dev/sdb" as DUA1 and "/dev/cdrom" as DUB5.

Example 2:

load RQDX3/RQDX3 DIA address=017772150 max_n_of_units=4

set DIA container[0] = "/charon/disks/rx23.vdisk"
set DIA media_type[0] = "dssi"
set DIA container[1] = "/dev/sdc2"
set DIA media_type[1] = "dssi"

In the above example, "rx23.vdisk" will be seen in VMS as DIA0 and "/dev/sdc2" as DIA1.

TQK50 and TUK50 Controllers

The CHARON-VAX QBUS system provides support for the TQK50 tape controller.  UNIBUS systems support the TUK50 tape controller.

The original TQK50/TUK50 tape controller is capable of serving only 1 tape unit. CHARON-VAX extends the limit to 10000 tape units.

Use the following commands to load an instance of a TQK50/TUK50 tape controller:

load TQK50/TQK50 <logical name 1>
load TUK50/TUK50 <logical name 2>


Example:

load TQK50/TQK50 MUA1
load TUK50/TUK50 MUA2

The TQK50/TUK50 controllers have the following configuration parameters, which can be specified with the "set" command:

address

Parameteraddress
TypeNumeric
Value

Specifies the CSR address. The address must be a valid QBUS 22-bit wide address in IO space for TQK50 and a valid QBUS 18-bit wide address in I/O space for TUK50.

The initial values are 017774500 (TQK50) and 0774500 (TUK50) which is the factory setting for those tape controllers.

Use the "address" parameter to load several instances of TQK50/TUK50. The "address" parameter value must be unique for each instance of TQK50/TUK50.

container

Parameter

container[N]

N=0…9999

Type

Text String

Value

Specifies the location of the tape container. It can be either the name of a ".vtape" (".mtd") file or the name of a physical tape drive:

"dev/sg<N>"– for the local physical tape drive.


media_type

Parameter

media_type[N]

N=0…9999

Type

Text String

Value

Overrides default (automatically determined) TMSCP media type of the device.

Syntax:

"<device-name>[,<device-type>]"

where:

  • <device-name> is one of “MU”, “MK”, “SCSI”, “MI”, “DSSI”, or “MJ”

  • <device-type> is of the form “LLD” or “LLLD”, where “L” is letter from A through Z, and “D” is decimal number from 0 through 99

If not specified, the device name is set to “MU”, and the device type is set to “TK50”

Initially not specified.

geometry

Parameter

geometry[N]

N=0.9999

Type

Text String

Value

Specifies the size of the tape image and (optionally) the size of an "early-warning" area at the end of tape image.

Syntax:

"<image-size>[, <early-warning-zone-size>]"

where:

  • <image-size> is the tape size in MB

  • <early-warning-zone-size> is the size (in KB) of space left on the tape that, when reached, issues a warning to the OS. If omitted, 64K is assumed.

Example:

load TQK50 MUA

set MUA geometry[0] = 90


Example:

load TQK50 MUA address=017774500

set MUA container[0] = "/dev/sg4"

set MUA container[1] = "/charon/tapes/tape1.vtape"

Multi-volume tape images may be handled as follows:

set MUA container[0] = "..."
set MUA container[1] = "..."
set MUA container[2] = "..."
set MUA container[3] = "..."


Once this configuration is established, the following VMS command (for example) could be used:

$ BACKUP MUA0:BACKUP.SAV,MUA1,MUA2,MUA3/SAVE_SET DUA0:...

KDM70 Controller

KDM70 is an MSCP/TMSCP disk and tape controller for the VAX 6000.

The CHARON-VAX virtual KDM70 controller supports 9999 disks and tapes instead of the 8 disk limitation of the original hardware. This design modification has the advantage of using only one XMI slot for up to 9999 disk and tape devices.

The I/O behavior of the virtual KDM70 is as follows:

  • Up to 16 connected disks operate in parallel without any I/O performance degradation.

  • For systems with more than 16 heavily used disks, configure two controllers and distribute the heavily loaded disks evenly.

  • As in the hardware KDM70, VMS can be booted only from the first 10 devices on the KDM70 (DU0 - DU9).

  • Hardware KDM70's do not support tape drives. The virtual KDM70's support a transparent extension for data tapes (boot from tape is not supported).

The line below loads an emulated KDM70 storage controller:

load KDM70/KDM70 PUA

The KDM70 emulation has the following configuration parameters:

xmi_node_id

Parameter

xmi_node_id

TypeNumeric
Value

Specifies the XMI slot in which virtual KDM70 controller is placed.

For CHARON-VAX/66X0 a free slot between 10 (A) and 14 (E) must be chosen.


container

Parameter

container[N]

N=0…9999

Type

Text String

Value

Possible values of the parameter are strings in one of the following forms:

  • Physical disk drives
    • /dev/disk/by-id/..." - addressing by the disk ID, for example "/dev/disk/by-id/ata-ST1000DM003-9YN162_S1D01QJ4"
    • "/dev/disk/by-label/..." - addressing by the disk label, for example "/dev/disk/by-label/MyStorage"
    • "/dev/disk/by-uuid/..." - addressing by the disk UUID, for example "/dev/disk/by-uuid/0e808a2f-cdd3-4944-a245-f729ffd73882"

    • Do not use device names of the form "/dev/sd<L>" – they are not persistent. Use one of the above device names instead.

      Instead of an entire disk, a partition can be mapped by using the device name with the partition-letter at the end.
  • Physical tape drives
    • "/dev/sg<X>", where X is 0, 1, …
      .

  • Floppy drives
    • "/dev/fd<X>", where X is 0, 1, …
      .

  • CD-ROM drives (read-only)
    • "/dev/cdrom<X>" or

    • ("/dev/sr<X>"), where X is 0, 1, …
      .

  • Multipath disks
    • "/dev/dm-<N>",

    • "/dev/mapper/mpath<N>",

    • "/dev/mapper/disk<N>"
      .

  • CHARON-VAX disk images
    • [<path-name>"/"]<file-name>[".vdisk"]
      .

  • CHARON-VAX tape images
    • [<path-name>"/"]<file-name>".vtape"

This parameter is initially not set, thus creating NO storage elements on the controller


media_type

Parameter

media_type[N]

N=0…9999

Type

Text String

Value

Overrides default (automatically determined) MSCP media type of the device.

Syntax:

"<device-name>,<device-type>"

where:

  • <device-name> is one of “DU”, “MU”, “DK”, “MK”, “SCSI”, “DI”, “MI”, “DSSI”, “DJ”, “MJ”

  • <device-type> is of the form “LLD” or “LLLD”, where “L” is letter from A through Z, and “D” is decimal number from 0 through 99

If not specified, the device name is set to “DI”, and the device type is selected based on disk size for disk storage elements. For tape storage elements, the device name and type are set to “MI” and “TF86”, respectively.

Initialy not specified.

geometry

Parameter

geometry[N]

N=0…9999

Type

Text String

Value

This formatted string value specifies the explicit geometry of the disk storage element with DSSI node id N and MSCP unit number N. This parameter is not applicable to tape storage elements.

The string format is <X>”/”<Y>[“/”<Z>] where:

  1. X is number of sectors on track

  2. Y is number of tracks on cylinder

  3. Z (optional) is the number of cylinders on the unit. If omitted, Z is calculated based on X, Y and the total number of sectors on the unit that reflects the size of the disk storage element

If this parameter is not set, CHARON-VAX will configure the geometry based on the most probable disk type.

Initially not set.

The syntax described above is applicable only to disk storage elements. If the container is a tape image, the following format is used instead:

Syntax:

"<image-size>[, <early-warning-zone-size>]"

where:

  • <image-size> is the tape size in MB

  • <early-warning-zone-size> is a size (in KB) of a space left on the tape when a warning to the OS is issued. If omitted, 64K is assumed.


use_io_file_buffering

Parameter

use_io_file_buffering[N]

N=0…9999

Type

Boolean

Value

Enables use of host OS I/O buffering.

Initially set to “false” (buffering disabled).


Example:

Create a KDM70 (T)MSCP controller in XMI slot 10:

load KDM70/KDM70 PUA xmi_node_id=10

Configure on this controller a system disk to show up as DUA0: in VMS:

set PUA container[0]="/charon/disks/vms72-66X0.vdisk"

Configure a user disk to show up as DUA1: in VMS:

set PUA container[1]="/charon/disks/usertest.vdisk"

Configure the first SCSI tape drive connected to the host to show up as MUA4: in VMS:

set PUA container[4]="/dev/sg0"

The file my_tape.vtape in the default directory is used by VMS as MUA5:


set PUA container[5]="/charon/tapes/my_tape.vtape"

The first host system CD-ROM can be used to read VMS CDs and shows up as DUA9:

set PUA container[9]="/dev/sr0"

The host system floppy drive "/dev/fd0' can be used inVMS as DUA10:

set PUA container[10]="/dev/fd0"

The virtual KDM70 examines the file extension (vdisk or vtape) to distinguish between a disk image and a tape image, Configured physical devices or tape/disk images that do not exist on the host system will, in general, cause VAX/VMS to report the unit offline. In some cases this will result in a VMS BUG CHECK. In this case, an error message will be written to the log file.


KDB50 Controller

KDB50 is an MSCP controller for the VAX 6000. The CHARON-VAX virtual KDB50 controller supports up to 9999 disks instead of the 4 disk limitation of the original hardware. This design modification has the advantage of using only one VAXBI slot for up to 9999 disk and tape devices.

The I/O behavior of the virtual KDB50 is as follows:
  1. Up to 16 connected disks operate in parallel without any I/O performance degradation.
  2. For systems with more than 16 heavily used disks, configure two controllers  and distribute the heavily loaded disks evenly.
  3. Like the hardware KDB50, VMS can boot only from the first 10 devices on the KDB50 (DU0 - DU9).

The line below loads an emulated KDB50 storage controller:

load KDB50 PUA

The KDB50 emulation has the following configuration parameters:

vax_bi_node_id

Parametervax_bi_node_id
TypeNumeric
ValueSpecifies the VAXBI slot in which the virtual KDB50 controller is placed. For CHARON-VAX a free slot between 1 (1) and 15 (F) must be chosen.Initially set to 14.

container

Parameter

container[N]

N=0…9999

TypeText String
Value

Possible values of the parameter are strings in one of the following forms:

  • Physical disk drives
    • /dev/disk/by-id/..." - addressing by the disk ID, for example "/dev/disk/by-id/ata-ST1000DM003-9YN162_S1D01QJ4"
    • "/dev/disk/by-label/..." - addressing by the disk label, for example "/dev/disk/by-label/MyStorage"
    • "/dev/disk/by-uuid/..." - addressing by the disk UUID, for example "/dev/disk/by-uuid/0e808a2f-cdd3-4944-a245-f729ffd73882"

    • Do not use device names of the form "/dev/sd<L>" – they are not persistent. Use one of the above device names instead.

      (info) Instead of an entire disk, a partition can be mapped by using the device name with the partition-letter at the end.
      .

  • Floppy drives
    • "/dev/fd<X>", where X is 0, 1, …
      .
  • CD-ROM drives (read-only)
    • "/dev/cdrom<X>" or
    • ("/dev/sr<X>"), where X is 0, 1, …
      .
  • Multipath disks
    • "/dev/dm-<N>",
    • "/dev/mapper/mpath<N>",
    • "/dev/mapper/disk<N>"
      .
  • CHARON-VAX disk images
    • [<path-name>"/"]<file-name>[".vdisk"]

 

This parameter is initially not set, thus creating NO storage elements on the controller


media_type

Parameter

media_type[N]

N=0…9999

TypeText String
Value

Overrides default (automatically determined) MSCP media type of the device.

Syntax:

"<device-name>,<device-type>"

where:

  • <device-name> is one of “DU”, “DK”, “SCSI”, “DI”, “DSSI”, “DJ”
  • <device-type> is of the form “LLD” or “LLLD”, where “L” is letter from A through Z, and “D” is decimal number from 0 through 99
If not specified, the device name is set to “DU”, and the device type is selected based on disk size for disk storage elements. For tape storage elements, the device name and type are set to “MI” and “TF86”, respectively.Initialy not specified.

geometry

Parameter

geometry[N]

N=0…9999

TypeText String
Value

This formatted string value specifies the explicit geometry of the disk storage element with MSCP unit number N.

This parameter is not applicable to tape storage elements.T

he string format is <X>”/”<Y>[“/”<Z>] where:

  1. X is number of sectors on track
  2. Y is number of tracks on cylinder
  3. Z (optional) is the number of cylinders on the unit. If omitted, Z is calculated based on X, Y and the total number of sectors on the unit that reflects the size of the disk storage element
If this parameter is not set, CHARON-VAX will configure the geometry based on the most probable disk type.Initially not set.

use_io_file_buffering

Parameter

use_io_file_buffering[N]

N=0…9999

TypeBoolean
Value

Enables use of host OS I/O buffering.

Initially set to “false” (buffering disabled).


Example:

Create a KDB50 MSCP controller in VAX BI slot 1:

load KDB50/KDB50 PUA vax_bi_node_id=1

Configure on this controller a system disk to show up as DUA0: in VMS:

set PUA container[0]="/charon/disks/vms72-66X0.vdisk"

Configure a user disk to show up as DUA1: in VMS:

set PUA container[1]="/charon/disks/usertest.vdisk"

The first host system CD-ROM can be used to read VMS CDs and shows up as DUA9:

set PUA container[9]="/dev/sr0"

The host system floppy drive `/dev/fd0` can be used in VMS as DUA10:

set PUA container[10]="/dev/fd0"
Configured physical devices or tape/disk images that do not exist on the host system will, in general, cause VAX/VMS to report the unit offline. In some cases this will result in a VMS BUG CHECK. In this case, an error message will be written to the log file.



© Stromasys, 1999-2024  - All the information is provided on the best effort basis, and might be changed anytime without notice. Information provided does not mean Stromasys commitment to any features described.