SCSI Controllers

Table of Contents

Introduction

CHARON-VAX provides two SCSI controllers for the SCSI and SCSI/QBUS models of VAX.

Hardware disks, disk images, hardware tapes, tape images, floppy devices and CD-ROM devices can be connected to these SCSI controllers. Each device has to be configured to connect to a specific SCSI address in CHARON-VAX.

Use the following emulated device types to map real peripherals to the emulated SCSI devices:

Type of mappingDescription
virtual_scsi_diskFor disk image containers and physical disks
floppy_scsi_deviceFor floppy drives
virtual_scsi_tapeFor tape image containers
virtual_scsi_cdromFor host CD-ROM and *.iso images
physical_scsi_device For physical tapes and other SCSI devices connected to a host

CHARON-VAX disk/tape devices can be SCSI disk/tape devices connected to a host system or disk/tape containers that are presented to the operating system environment as files.

Two SCSI controllers are provided ("PKA" and "PKB") in CHARON-VAX, with 7 addresses each.

Beyond the capabilities of the hardware, VAX 3100/9x and 4000/10x, CHARON-VAX/XX implements extended SCSI addressing. Each of the seven device addresses, of a SCSI controller, supports up to eight disk/tape images. Thus the number of disks supported becomes 2x Controllers*7 addresses*8 Disks/Tapes, a total of 112 disks/tapes.

SCSI devices with the same ID but different LUNs (logical units) appear in the VAX console with different names. The naming convention is as follows:

Each SCSI device has the name in the form of "xKct0n:", where:

  • "x" stands for the device type (D means disks, M means magnetic tapes, G is reserved by VAX/VMS for special purposes)
  • "c" stands for the controller letter (A - the first controller, B - the second controller, ...)
  • "t" stands for the SCSI device ID (usually 0 through 6, and 7 is allocated by the controller itself)
  • "n" stands for a particular logical unit number, LUN.

Most of the 'normal' SCSI devices have only one logical unit - 0. Therefore, under normal conditions, disks in VAX/VMS appear as DKA0 (which is really DKA000), DKA100, DKA200, ..., tapes as MKA0 (which is really MKA000), MKA100, MKA200, ...

As soon as there is a disk/tape device with LUNs 0 and 1, VMS identifies them as, for example, DKA300 and DKA301 (MKA300 and MKA301) respectively.

The boot ROM of CHARON-VAX detects SCSI devices with multiple LUNs and builds proper device names for them.

(info) To display a list of devices on the VAX console (SRM), enter ">>> show device" .

This list is passed to VAX/VMS at boot time.

(warning) VAX/VMS creates devices only for logical unit 0 for each device detected in the boot ROM. To add additional logical units, use the following SYSGEN command:

$ MCR SYSGEN CONNECT DKxxx/NOADAPTER

where DKxxx (or MKxxx) stands for the correct VAX/VMS name of the logical unit to be connected. You can find its name from the SRM console using the ">>> show scsi" command.

This command is not boot persistent, so it must be included in the VAX/VMS "SYSTARTUP_VMS.COM" file to ensure it is executed with each startup.

Also note: that the following rules are applied for logical units.

  1. Each SCSI device must implement logical unit 0.

  2. A SCSI device must implement all logical unit numbers between the highest and the lowest numbers implemented.

Empty disk images can be created with the "MkDisk" utility.

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

Mapping to host resources

Load a mapping device with the "load" command.  Specify the name of the device instance, the emulated SCSI bus to connect the device to and the SCSI identifier of the CHARON-VAX device.

scsi_bus

Parameter

scsi_bus

TypeIdentifier
Value

Name of the emulated SCSI disk controller: "pka" or "pkb"


scsi_id

Parameter

scsi_id

TypeNumeric
Value

A value between 0 and 7. This is the ID number of the emulated SCSI device. The SCSI adapter is preloaded with address 7. If required, set it to another value in the range of 0-7 from the VAX console.

.

There is no direct correspondence between the host hardware SCSI ID and these CHARON-VAX SCSI addresses. Set the correspondence between the physical SCSI addresses on the host system and the CHARON-VAX SCSI bus ID in the configuration file.

Syntax:

load <instance type>/<module name> <instance name> scsi_bus=<bus name> scsi_id=<number>

Example:

load virtual_scsi_disk/chscsi pka_0 scsi_bus=pka scsi_id=0

CHARON-VAX/XX has only one preloaded SCSI adapter, named: PKA. If a second adapter (PKB) is required then add the following line to the configuration file before loading and configuring any device on the second SCSI adapter PKB:

include kzdda.icfg

"kzdda.icfg" loads the second SCSI adapter.

(info) OpenVMS version 5.5-2H4, or above, is required to use the "pkb" controller.

virtual_scsi_disk

Use the "virtual_scsi_disk" mapping for disk containers and physical disks. This is the most convenient way of connecting disks to SCSI adapters in CHARON-VAX

The "virtual_scsi_disk" mapping has the following parameters:


container

Parameter

container[N]

N=0…7

Type

Text String

Value

A string containing the device name to map to the emulator.

  • Disk images
    • [<path-name>"\"]<file-name>[".vdisk"]

      Format: A string containing the full path to a disk container.

      If only the name of the disk container is specified, CHARON-VAX will look for the container in the folder where the emulator executable resides, typically

      "C:\Program Files (x86)\CHARON\Build_XXXXX\x86" (Windows x64; for Windows x86 the path is "C:\Program Files\CHARON\Build_XXXXX\x86").

      Using compressed folders to store virtual disks and tapes is not supported

      .

  • Local fixed disks (IDE, SATA)
    • "\\.\PhysicalDrive<X>", where X is 0, 1, …
    • "\\.\PhysicalDrive(DevID =XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XXXX)"

      DevID addresses the target physical disk by its WWID (hexadecimal 128-bit identifier assigned to the disk drive by its manufacturer/originator).

      Example:

      set pka_1 container="\\.\PhysicalDrive(DevID= 6008-05F3-0005-2950-BF8E-0B86-A0C7-0001)"

      .The WWID values can be obtained from "Host Device Check" utility ("All drives" section).


      If the "Host Device Check" utility does not display any WWID, this means the target disk does not have one. Use the "\\.\PhysicalDrive<N>" mapping in this case.

  • iSCSI disks
    • "\\.\PhysicalDrive(iScsiTarget = <iSCSI target>, LUN = <LUN number>)"

      iScsiTarget addresses the disk by its iSCSI target name. LUN specifies LUN on connected iSCSI disk. 

      Example:

      set pka_2 container="\\.\PhysicalDrive(iScsiTarget= iqn.2008-04:iscsi.charon-target-test1, LUN= 1)"

      .

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


media_type

Parameter

media_type[N]

N=0…7

Type

Text String

Value

Overrides the PRODUCT ID in the default SCSI INQUIRY data.

Valid values may contain uppercase letters, integers and spaces. The length of the string cannot exceed 16 characters.

If not specified, synthetic SCSI INQUIRY data is returned containing a PRODUCT ID selected based on the disk size.

Initially left unspecified.

geometry

Parameter

geometry[N]

N=0…7

Type

Text String

Value

This formatted string value specifies the explicit geometry of the disk storage element

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

  • "X" is the number of sectors per track;
  • "Y" is the number of tracks per cylinder;
  • "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…7

Type

Text String

Value

Instructs CHARON-VAX to enable host operating system I/O cache on reading/writing operations.

The following values are possible:

  • "true" or "write-back" - the "write back" caching mode is used
  • "write-through" - the "write through" caching mode is used

  • "false" - caching is switched off

(info) Note that this caching has a significant effect only in case of mapping to disk 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:

set pka_0 use_io_file_buffering[0]=true

removable

Parameter

removable[N]

N=0…7

Typeboolean
ValueEnables the logical unit to appear as a removable SCSI disk drive.

Initially set to “false” (fixed, non-removable).

(warning) In the table above N stands for logical unit number. The first unit must be 0 with no gaps in subsequent numbering.

Example:

load virtual_scsi_disk/chscsi pka_0 scsi_bus=pka scsi_id=0

set pka_0 container[0] = "C:\Charon\Disks\disk1.vdisk"
set pka_0 container[1] = "\\.\PhysicalDrive1"

If only one LUN is configured, the LUN number can be omitted:

set pka_0 container = "C:\Charon\Disks\disk1.vdisk"
set pka_0 media_type = "RZ1ED"

When a virtual SCSI disk image is dismounted in VMS, it is no longer open by CHARON and may be copied. This capability can be useful when designing back-up and restore procedures. If copying CHARON-VAX disk images while CHARON-VAX is running, take care to minimize the risk of overloading the host system.

Unlike MSCP controlled disk images, a disk image connected to a SCSI controller as a virtual SCSI disk CANNOT be replaced by another disk image unless "removable" parameter is set for this particular disk image.

Example:

set pka_0 container[2] = "C:\Charon\Disks\my_removable_disk.vdisk"
set pka_0 removable[2] = true

floppy_scsi_device

Use "floppy_scsi_device" for host floppy drives.

"floppy_scsi_device" has the following parameter:

container

Parameter

container[N]

N=0…7

Type

Text String

Value

"\\.\A:" or "\\.\B:"

(warning) In the table above N stands for logical unit number. The first unit must be 0 with no gaps in subsequent numbering. If only one LUN is configured, the LUN number can be omitted:



Example:

load floppy_scsi_device/chscsi pka_0 scsi_bus=pka scsi_id=0
set pka_0 container= "\\.\A:"

virtual_scsi_tape

Use "virtual_scsi_tape" for tape containers. This is the most convenient way of connecting tapes to SCSI adapters in CHARON-VAX.

"virtual_scsi_tape" has the following parameters:

container

Parameter

container[N]

N=0…7

Type

Text String

Value

A string containing the full path to a tape container. If the specified tape image does not exist, CHARON-VAX creates it.

If only the name of the tape container is specified, CHARON-VAX will look for the container in the folder where the emulator executable resides, typically "C:\Program Files (x86)\CHARON\Build_XXXXX\x86" (Windows x64; for Windows x86 the path is "C:\Program Files\CHARON\Build_XXXXX\x86").

If the "CHARON Guest Utilities for OpenVMS" (CHARONCP) package is used, the syntax is different. Please read the corresponding chapter.


Using compressed folders to store virtual disks and tapes is not supported


media_type

Parameter

media_type[N]

N=0…7

Type

Text String

Value

Overrides PRODUCT ID in the default SCSI INQUIRY data.

Valid values may contain uppercase letters, integers and spaces. Length of this string cannot exceed 16 characters.

By default the PRODUCT ID returned is "TLZ04"


geometry

Parameter

geometry[N]

N=0…7

Type

Text String

Value

Specifies the size of the tape image and (optionally) the size of the "early-warning" area at the end of the 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 the space remaining on the tape when a warning to the OS is issued. If omitted, 64K is assumed.

Example:

load virtual_scsi_tape/chscsi pka_0
set pka_0 geometry[0] = 90

(warning) In the table above N stands for logical unit number. The first unit must be 0 with no gaps in subsequent numbering.

Example:

load virtual_scsi_tape/chscsi pka_0 scsi_bus=pka scsi_id=0

set pka_0 container[0] = "C:\Charon\Tapes\tape1.vtape"
set pka_0 container[1] = "C:\Charon\Tapes\tape2.vtape"

If only one LUN is configured, the LUN number can be omitted:

set pka_0 container = "C:\Charon\Tapes\tape1.vtape"
set pka_0 media_type = "TLZ08"

virtual_scsi_cdrom

Use "virtual_scsi_cdrom" to connect IDE or SATA host CD-ROM or *.iso file to CHARON-VAX.

"virtual_scsi_cdrom" has the following parameters:


container

Parameter

container[N]

N=0…7

TypeText String
Value

A string containing the device name to map to the emulator.

  • ISO images
    • [<path-name>"\"]<file-name>[".iso"]

      Format: A string containing the full path to an *.iso image.

      If only the name of the *.iso image is specified, CHARON-VAX will look for the image in the folder where the emulator executable resides, typically

      "C:\Program Files (x86)\CHARON\Build_XXXXX\x86" (Windows x64; for Windows x86 the path is "C:\Program Files\CHARON\Build_XXXXX\x86").
      .

  • CD-ROM and DVD drives (IDE and SATA)
    • "\\.\CdRom<X>", where X is 0, 1, …
      .

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

media_type

Parameter

media_type[N]

N=0…7

Type

Text String

Value

Overrides the PRODUCT ID in the default SCSI INQUIRY data.

Valid values may contain uppercase letters, integers and spaces. The length of the string cannot exceed 16 characters.

If not specified, synthetic SCSI INQUIRY data is returned containing a PRODUCT ID selected based on the disk size.

Initially left unspecified.

geometry

Parameter

geometry[N]

N=0…7

Type

Text String

Value

This formatted string value specifies the explicit geometry of the disk storage element

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

  • "X" is the number of sectors per track;
  • "Y" is the number of tracks per cylinder;
  • "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…7

Type

Text String

Value

Instructs CHARON-VAX to enable host operating system I/O cache on reading/writing operations.

The following values are possible:

  • "true" or "write-back" - the "write back" caching mode is used
  • "write-through" - the "write through" caching mode is used

  • "false" - caching is switched off

(info) Note that this caching has a significant effect only in case of mapping to ISO images, 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:

set pka_0 use_io_file_buffering[0]=true

(warning) In the table above N stands for logical unit number. The first unit must be 0 with no gaps in subsequent numbering. If only one LUN is configured, the LUN number can be omitted

Example:

load virtual_scsi_cdrom/chscsi pka_0 scsi_bus=pka scsi_id=0
set pka_0 container="\\.\CdRom0"

This example associates an unallocated CD-ROM drive "\\.\CdRom0" with virtual_scsi_cdrom "pka_0".


physical_scsi_device

Use "physical_scsi_device" to connect any host "raw" SCSI device to CHARON-VAX. This mapping type is suitable only for tape drives and other specific SCSI devices connected to CHARON host.

"physical_scsi_device" has the following parameters:

container

Parameter

container[N]

N=0…7

Type

Text String

Value

A string containing the device name to map to the emulator.

  • Physical tape drives recognized by Windows
    • "\\.\Tape<X>", where X is 0, 1, …
      .
  • Tape changer
    • "\\.\Changer<X>", where X is 0, 1, …
      .

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

media_type

Parameter

media_type[N]

N=0…7

Type

Text String

Value

Overrides the PRODUCT ID in the default SCSI INQUIRY data.

Valid values may contain uppercase letters, integers and spaces. The length of the string cannot exceed 16 characters.

If not specified, synthetic SCSI INQUIRY data is returned containing a PRODUCT ID selected based on the disk size.

Initially left unspecified.

geometry

Parameter

geometry[N]

N=0…7

Type

Text String

Value

This formatted string value specifies the explicit geometry of the disk storage element

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

  • "X" is the number of sectors per track;
  • "Y" is the number of tracks per cylinder;
  • "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.


removable

Parameter

removable[N]

N=0…7

Typeboolean
ValueEnables the logical unit to appear as a removable SCSI disk drive.

Initially set to “false” (fixed, non-removable).

disconnect_timeout

Parameter

disconnect_timeout[N]

N=0…7

TypeNumeric
Value

Sets logical unit disconnect timeout. This parameter helps if a connected SCSI device performs a given SCSI command for a very long time.

The default value depends on the type of the SCSI device attached. For example for a disk it is 10 seconds, for a tape - an hour. If the type of the device is not known the timeout is 1 hour.

Example: 48 days timeout

set pka_0 disconnect_timeout[1] = 0x400000

(warning) In the table above N stands for logical unit number. The first unit must be 0 with no gaps in subsequent numbering. If only one LUN is configured, the LUN number can be omitted.

Example:

load physical_scsi_device/chscsi pka_0 scsi_bus=pka scsi_id=0
set pka_0 container="\\.\Tape0"

This example associates a host tape device "\\.\Tape0" with physical_scsi_device "pka_0".



© 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.