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 a hardware CI infrastructure. Since the current host hardware is an order of magnitude faster than the physical CI implementation, such connection - if it were possible - would greatly limit the virtual system throughput.
For data storage, the CIXCD connects to one or more virtual HSJ50 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 disks in the CI nodes, is likely to case 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 |
---|---|
Type | Numeric |
Value | An integer value that specifies the TCP/IP port number at which the emulated CIXCD host adapter listens for connections from another emulated CIXCD host adapter 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 host name (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 port-no in the range from 1024 through 32767. Initially not set. |
xmi_node_id
Parameter | xmi_node_id |
---|---|
Type | Numeric |
Value | An integer value that specifies the location of the virtual CIXCD host adapter on the XMI bus. Possible values are from 11 through 14 (Initially set to 14). |
ci_node_id
Parameter | ci_node_id |
---|---|
Type | Numeric |
Value | An integer value that specifies the address of the virtual CIXCD host adapter on the virtual CI network. Possible values are from 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:
|
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 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 SCSNOD:
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 |
---|---|
Type | Numeric |
Value | An integer value that specifies the address of an emulated HSJ50 storage controller on the virtual CI network. Possible values are from 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 is up to 6 characters long. Possible characters are uppercase letters A through Z, figures 0 through 9. Initially set to the name of the emulated HSJ50 controller. Therefore name of 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 |
---|---|
Type | Numeric |
Value | An integer value that specifies the ALLOCLASS of the emulated HSJ50 storage controller. Possible values are from 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:
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:
where:
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 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:
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 instead: Syntax:
where:
|
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). |
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, one HSJ50 storage controller serving two disks:
|
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:
|
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.