CI Subsystem

Table of Contents

Introduction

The virtual CIXCD is the functional equivalent of a hardware CIXCD host adapter, with the exception that there is no physical layer to connect to. The current host hardware is an order of magnitude faster than the physical CI implementation, such connections - if it were possible - would greatly limit the virtual system throughput.

For data storage, the CIXCD connects to one or more virtual HSJ50 storage controllers, that are loaded as a separate component in the configuration file. To configure VAX CI clusters, the virtual CIXCDs of the multiple CHARON-VAX/66X0 instances are interconnected via TCP/IP links.

Configuring (large) virtual VAX CI clusters requires many configurable parameters and a replicated identical definition of the shared virtual HSJ50 storage controllers in each virtual VAX instance.

To connect a virtual VAX 66x0 to a virtual CI network, the CHARON-VAX configuration file must load at least one virtual CIXCD host adapter; one unit is sufficient in all practical cases.

VAX/VMS enumerates the virtual CIXCD host adapters in the order of increasing XMI node IDs and assigns them the VMS internal names PAA, PAB, etc. It is recommended for clarity to keep the same naming scheme for virtual CIXCD host adapters in the configuration file.

The emulated CI subsystem has many configurable parameters when multiple nodes on a single CI bus are to be configured. Incorrect configuration, in particular non-identical specification of the emulated HSJ50 storage controller disks in the CI nodes, is likely to cause data corruption. It is advisable to start any field test by implementing a single node.

CIXCD host adapter

To connect an emulated VAX 66x0 node to a virtual CI network, the CHARON-VAX configuration must load at least one emulated CIXCD host adapter.

To load the adapter and assign it an instance name of "PAA", enter the following line in the configuration file:


load CIXCD PAA

The CIXCD emulation has the following configuration parameters:


port

Parameter

port[N]

N=0…127

TypeNumeric
Value

An integer value that specifies the TCP/IP port number on which the emulated CIXCD host adapter listens for connections from other emulated CIXCD host adapters with address: N.

Possible values are from 1024 through 32767.

Initially not set.

host

Parameter

host[N]

N=0…127

Type

Text String

Value

A string value that specifies the TCP/IP hostname (and optionally the TCP/IP port number) to connect to another emulated CIXCD host adapter with address: N.

The syntax for the string is “host-name[:port-no]”, with possible values for the port-no in the range of 1024 through 32767.

Initially not set.

xmi_node_id

Parameter

xmi_node_id

TypeNumeric
Value

An integer value that specifies the location of the virtual CIXCD host adapter on the XMI bus.

Possible values are 11 through 14 (Initially set to 14).

ci_node_id

Parameterci_node_id
TypeNumeric
Value

An integer value that specifies the address of the virtual CIXCD host adapter on the virtual CI network.

Possible values are 0 through 127 (Initially set to 127).


These parameters can be added to the "load" command or specified separately with the "set" command.

The example below shows how to configure a virtual CIXCD adapter with a location on the XMI bus other than the default. It declares a CIXCD adapter in slot 11 (0xB = decimal 11) of the virtual XMI bus:

load CIXCD PAA xmi_node_id=0xB



The configuration file below creates a virtual VAX 6610 (single CPU) node with one virtual HSJ50 storage controller serving two disks to the VAX over a virtual CI network:


set session hw_model="VAX_6000_Model_610"
set session log="vax6610.log"
set toy container="vax6610.dat"
set eeprom container="vax6610.rom"
load virtual_serial_line/chserial OPA0
set OPA0 port=10003 application="putty.exe -load OPA0"
load CIXCD PAA
load HSJ50 DISKS
set DISKS container[0]="C:\Charon\Disks\dua0-rz24-vms-v6.2.vdisk"
set DISKS container[1]="C:\Charon\Disks\dua1-rz24-vms-v6.2.vdisk"

HSJ50 storage controller

The virtual HSJ50 storage controller functionally replaces a physical HSJ50 CI storage unit. It supports virtual and physical disks, tapes and removable storage devices that are mapped on local or remote host platform storage. The virtual HSJ50 cannot connect to a physical CI infrastructure. 

In a single CHARON-VAX/66X0 instance without a CI cluster, the virtual HSJ50 is located as a separate entity on the same host platform. In a CI cluster, the definition of each HSJ50 is replicated exactly in each CHARON-VAX CI node. In most cases one HSJ50 storage controller per virtual CI network is enough.

When loading an instance of a virtual HSJ50 storage controller, the CHARON-VAX configuration file must supply a unique reference name for that instance. While this name is only valid within the configuration file, it is recommended, for clarity, to use the VAX/VMS SCSNODENAME as an instance name.

The line below loads an emulated HSJ50 storage controller and assigns it the instance name SCSNODE:


load HSJ50 MYDISKS

The HSJ50 emulation has the following configuration parameters:

ci_host

Parameter

ci_host

Type

Text String

Value

A string value that specifies the instance name of the emulated CIXCD host adapter serving the virtual CI network.

If this value is not set, CHARON-VAX will try to locate the host adapter automatically. Automatic lookup works only if the CHARON-VAX configuration has exactly one instance of an emulated CIXCD host adapter.

ci_node_id

Parameter

ci_node_id

TypeNumeric
Value

An integer value that specifies the address of an emulated HSJ50 storage controller on the virtual CI network.

Possible values are 0 through 127 (initially set to 0).


scs_node_name

Parameter

scs_node_name

Type

Text String

Value

A string value that specifies the SCSNODENAME of the emulated HSJ50 storage controller.

The string can contain up to 6 characters. Possible characters are uppercase letters A through Z and the integers 0 through 9.

Initially set to the name of the emulated HSJ50 controller. Therefore the name of the emulated HSJ50 controller must follow the above rules.

scs_system_id

Parameter

scs_system_id

Type

Numeric

Value

An integer value that specifies the SCSSYSTEMID of the emulated HSJ50 storage controller.

Initially set to an arbitrary value that is guaranteed to be unique within the running emulated VAX 66x0 node.

mscp_allocation_class

Parameter

mscp_allocation_class

TypeNumeric
Value

An integer value that specifies the ALLOCLASS of the emulated HSJ50 storage controller.

Possible values are 0 through 255 (initially set to 0).


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 tape drives
    • "\\.\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 DISKS container[2]="\\.\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 DISKS container[3]="\\.\PhysicalDrive(iScsiTarget= iqn.2008-04:iscsi.charon-target-test1, LUN= 1)"

      .

  • Physical tape drives recognized by Windows
    • "\\.\Tape<X>", where X is 0, 1, …
      .
  • Floppy drives
    • "\\.\A:" or
    • "\\.\B:"
      .
  • CD-ROM drives (read-only)
    • "\\.\CdRom<X>", where X is 0, 1, …
      .
  • CHARON-VAX disk images
    • [<drive>":\"<path-name>"\"]<file-name>[".vdisk"]
      .
  • CHARON-VAX tape images
    • [<drive>":\"<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 the default (automatically determined) MSCP media type of the device.

Syntax:

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

where:

  • <device-name> is either: “DU”, “MU”, “DK”, “MK”, “SCSI”, “DI”, “MI”, “CI”, “DJ” or “MJ”

  • <device-type> is in the for of: “LLD” or “LLLD”, where “L” is a letter from A through Z, and “D” is a 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.

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 CI 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 the number of sectors per track

  2. Y is the number of tracks per 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 above is applicable only to disk storage elements.

If the container is a tape image, the following format is used:

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 the 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

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 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:

set DISKS use_io_file_buffering[0]=true


The following example configures a virtual HSJ50 storage controller with a non-default CI network address of 11:

load HSJ50 DISKS ci_node_id=0x0B

The configuration file below emulates a VAX 6610 node with one HSJ50 storage controller serving two disks:

set session hw_model="VAX_6000_Model_610"
set session log="vax6610.log"
set toy container="vax6610.dat"
set eeprom container="vax6610.rom"
load virtual_serial_line/chserial OPA0
set OPA0 port=10003 application="putty.exe -load OPA0"
load CIXCD PAA xmi_node_id=0x0C
load HSJ50 DISKS ci_node_id=0x0B
set DISKS container[0]="C:\Charon\Disks\dua0-rz24-vms-v6.2.vdisk"
set DISKS container[1]="C:\Charon\Disks\dua1-rz24-vms-v6.2.vdisk"



When this configuration file is executed and "container[0]" points to a valid VMS system disk image, a virtual VAX 6610 can boot VAX/VMS with the following command:

>>> BOOT /XMI:C /NODE:B DU0

In the above boot command, "/XMI:C" and "/NODE:B" instruct the boot ROM to connect to the disk via the host adapter in XMI slot C (the hex value C stands for decimal 12).

Then via the storage controller with CI node id B (decimal 11), DU0 is reached (defined as container[0]) and the boot command is executed for the associated file on the host system.

After logging into VMS, the “SHOW DEVICE” command displays the following:

$ show devices
Device                 Device           Error    Volume         Free  Trans Mnt
  Name                  Status           Count     Label        Blocks Count Cnt
DISKS$DUA0:            Mounted              0     DSSI01        32022   147   1
DISKS$DUA1:            Online               0

Device                 Device           Error
  Name                  Status           Count
OPA0:                  Online               0
FTA0:                  Offline              0

Device                 Device           Error
  Name                  Status           Count
PAA0:                  Online               0


(info) When a tape or disk image connected to an emulated HSJ50 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.



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