Table of Contents
Introduction
CHARON-VAX / CHARON-PDP 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 the 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 / CHARON-PDP and can be manipulated. It can 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 / CHARON-PDP disk images while CHARON-VAX / CHARON-PDP is running, please take care to minimize the risk of overloading a heavily loaded CHARON-VAX / CHARON-PDP 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 ("*.vtape") will be created automatically if they don't exist (no utility needed).
CHARON-VAX / CHARON-PDP is able to boot from disk images of any VMS/RSX11/RT11 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 / CHARON-PDP QBUS system provides support for RQDX3 disk controllers. The original RQDX3 disk controller is capable of serving up to 4 disk units. CHARON-VAX / CHARON-PDP 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 are specified with the "set" command:
address
Parameter | address |
---|---|
Type | Numeric |
Value | Specifies the CSR address. This address must be a valid QBUS 22-bit address in IO space. Initially its 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 |
---|---|
Type | Numeric |
Value | Specifies the maximum number of units supported by the controller. Possible values are 4…9999. The default value 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:
|
media_type
Parameter | media_type[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Overrides the default (automatically determined) MSCP media type of a device. Syntax:
where:
If not specified, the device name is set to “DU” and the device type is selected based on disk size. Initially 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 a DSSI node id: N and an MSCP unit number: N. This parameter is not applicable to tape storage elements. The string format is <X>”/”<Y>[“/”<Z>] where:
If this parameter is not set, CHARON-VAX / CHARON-PDP will configure the geometry based on the most probable disk type. |
use_io_file_buffering
Parameter | use_io_file_buffering[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Instructs CHARON-VAX to enable host operating system I/O cache on reading/writing operations. The following values are possible:
Note that this caching has a significant effect only in case of mapping to disk and tape containers, not physical drives. When enabled, host operating system I/O cache may significantly improve I/O performance of the virtual system. At the same time maintaining I/O cache requires additional host resources (CPU and memory) which may negatively affect overall performance of the virtual system. Initially is set to "false". Example:
|
Example 1:
|
In the above example the "rx23.vdisk" will be seen in VMS as DUA0, "\\.\PhysicalDrive1" as DUA1 and "\\.\CdRom0" as DUB5.
Example 2:
|
In the above example the "rx23.vdisk" will be seen in VMS as DIA0 and "\\.\PhysicalDrive1" as DIA1.
TQK50 and TUK50 Controllers
The CHARON-VAX / CHARON-PDP QBUS system provides support for the TQK50 tape controller. UNIBUS systems support the TUK50 tape controller.
The original TQK50/TUK50 tape controllers were capable of serving only 1 tape unit. CHARON-VAX / CHARON-PDP 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> |
Example:
|
The TQK50/TUK50 controllers have the following configuration parameters, which are specified with the "set" command:
address
Parameter | address |
---|---|
Type | Numeric |
Value | Specifies the CSR address. This address must be a valid QBUS 22-bit address in IO space for a TQK50 and a valid UniBUS 18-bit address in I/O space for a TUK50. The initial values are 017774500 (TQK50) and 0774500 (TUK50), which is the factory setting for these tape controllers. Use the "address" parameter to load several instances of TQK50's/TUK50's. The "address" parameter value must be unique for each instance of a 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:
|
media_type
Parameter | media_type[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Overrides the default (automatically determined) TMSCP media type of a device. Syntax:
where:
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 a tape image and (optionally) the size of an "early-warning" area at the end of a tape image. Syntax:
where:
Example:
|
Example:
|
Multi-volume tape images are handled as follows:
|
Once this configuration is established, the following VMS command (for example) can be used:
$ BACKUP MUA0:BACKUP.BCK,MUA1,MUA2,MUA3/SAVE_SET DUA0:... |
KDM70 Controller
KDM70 is an MSCP/TMSCP disk and tape storage controller for a VAX 6000.
The CHARON-VAX virtual KDM70 storage 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 storage controller 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 storage controller, VMS can be booted only from the first 10 devices (DU0 - DU9) on the KDM70 storage controller.
Hardware KDM70 storage controllers do not support tape drives. The virtual KDM70 storage controllers 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 storage controller emulation has the following configuration parameters:
xmi_node_id
Parameter | xmi_node_id |
---|---|
Type | Numeric |
Value | Specifies the XMI slot in which the virtual KDM70 storage 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:
|
media_type
Parameter | media_type[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Overrides the default (automatically determined) MSCP media type of the device. Syntax:
where:
If not specified, the device name is set to “DI”, and the device type is selected based on disk size for the disk storage elements. For tape storage elements, the device name and type are set to “MI” and “TF86”, respectively. Initially 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:
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:
where:
|
use_io_file_buffering
Parameter | use_io_file_buffering[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Instructs CHARON-VAX to enable host operating system I/O cache on reading/writing operations. The following values are possible:
Note that this caching has a significant effect only in case of mapping to disk and tape containers, not physical drives. When enabled, host operating system I/O cache may significantly improve I/O performance of the virtual system. At the same time maintaining I/O cache requires additional host resources (CPU and memory) which may negatively affect overall performance of the virtual system. Initially is set to "false". Example:
|
Example:
Create a KDM70 storage controller: (T)MSCP controller in XMI slot 10:
load KDM70/KDM70 PUA xmi_node_id=10 |
Configure, on this controller, a system disk to be DUA0: in VMS:
set PUA container[0]="C:\Charon\Disks\vms72-66X0.vdisk" |
Configure a user disk to be DUA1: in VMS:
set PUA container[1]="C:\Charon\Disks\usertest.vdisk" |
Configure the first SCSI tape drive connected to a host to be MUA4: in VMS:
set PUA container[4]="\\.\Tape0" |
The file my_tape.vtape in the default directory is used by VMS as MUA5:
set PUA container[5]="C:\Charon\Tapes\my_tape.vtape" |
The first host system CD-ROM is used to read VMS CDs and be DUA9:
set PUA container[9]="\\.\CdRom0" |
The host system floppy drive "A:" is used in VMS as DUA10:
set PUA container[10]="\\.\A:" |
The virtual KDM70 storage controller 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 Storage Controller
KDB50 is an MSCP storage controller for a VAX 6000.
The CHARON-VAX virtual KDB50 storage 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 storage controller 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 storage controllers and distribute the heavily loaded disks evenly.
VMS can boot only from the first 10 devices (DU0 - DU9) on the KDB50 storage controller, same as for the original hardware.
The line below loads an emulated KDB50 storage controller:
load KDB50 PUA |
The KDB50 storage controller emulation has the following configuration parameters:
vax_bi_node_id
Parameter | vax_bi_node_id |
---|---|
Type | Numeric |
Value | Specifies the VAXBI slot in which the virtual KDB50 storage controller is placed. For CHARON-VAX / CHARON-PDP a free slot between 1 (1) and 15 (F) must be chosen. Initially set to 14. |
container
Parameter | container[N] N=0…9999 | ||
---|---|---|---|
Type | Text String | ||
Value | Possible values of the parameter are strings in one of the following forms:
This parameter is initially not set, thus creating NO storage elements on the storage controller |
media_type
Parameter | media_type[N] N=0…9999 | |
---|---|---|
Type | Text String | |
Value | Overrides the default (automatically determined) MSCP media type of the device. Syntax:
where:
If not specified, the device name is set to “DU” and the device type is selected, based on the disk size for the disk storage elements. For tape storage elements, the device name and type are set to “MI” and “TF86”, respectively. Initially 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 MSCP unit number: N. This parameter is not applicable to tape storage elements. The string format is <X>”/”<Y>[“/”<Z>] where:
If this parameter is not set, CHARON-VAX / CHARON-PDP 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 | |
---|---|---|
Type | Text String | |
Value | Instructs CHARON-VAX to enable host operating system I/O cache on reading/writing operations. The following values are possible:
Note that this caching has a significant effect only in case of mapping to disk and tape containers, not physical drives. When enabled, host operating system I/O cache may significantly improve I/O performance of the virtual system. At the same time maintaining I/O cache requires additional host resources (CPU and memory) which may negatively affect overall performance of the virtual system. Initially is set to "false". Example:
|
Example:
Create a KDB50 MSCP controller in BI slot 1 of a VAX/PDP11:
load KDB50/KDB50 PUA vax_bi_node_id=1 |
Configure on this controller a system disk to be DUA0: in VMS:
set PUA container[0]="C:\Charon\Disks\vms72-66X0.vdisk" |
Configure a user disk to be DUA1: in VMS:
set PUA container[1]="C:\Charon\Disks\usertest.vdisk" |
The first host system CD-ROM can be used to read VMS CDs, named DUA9:
set PUA container[9]="\\.\CdRom0" |
The host system floppy drive `A:` can be used in VMS, named DUA10:
set PUA container[10]="\\.\A:" |
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.