Product Documentation and Knowledge Base - HomeDocumentation


Charon-VAXCharon-AXPCharon-PDPCharon-SSPCharon-PAR
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Table of Contents

Back to Table of Contents

Introduction

This section will describe how to configure DSSI cluster in CHARON-VAX for Linux.

Back to Table of Contents

General description

The DSSI storage subsystem for the CHARON VAX 4000 106, 108, 700 and 705 models is based on the emulation of "SHAC" host adapters. Routing of SCS cluster information among the emulated "SHAC" host adapters of multiple nodes is done via separate TCP/IP links.

The DSSI storage subsystem is functionally emulated and operates at a much higher throughput than the original hardware. Connection to physical DSSI hardware is neither possible nor planned for future releases.

The current version of DSSI emulation for CHARON-VAX supports up to 3 VAX nodes in a virtual DSSI cluster and handles a maximum cluster size of 8 nodes. A single virtual DSSI network supports up to 256 storage elements.

For more details on DSSI configuration follow this link.

Back to Table of Contents

Configuration steps

To create a CHARON-VAX DSSI cluster, the following elements must be configured:

  1. "SHAC" host adapter

  2. "HSD50" storage controller

DSSI hardware topology is emulated by establishing TCP/IP channels between the emulated SHAC host adapters of each CHARON-VAX system. The emulated HSD50 storage controllers are then connected to every SHAC host adapter in the virtual DSSI network.

Cluster operation requires (virtual) disks that are simultaneously accessible by all CHARON-VAX nodes involved. This can be implemented for instance by using a properly configured iSCSI initiator / target structure or a fiber channel storage back-end. Disks on a multiport SCSI switch are not acceptable, as a SCSI switch does not provide true simultaneous access to multiple nodes.

 

Steps to configure DSSI cluster:

  1. Set unique ID for SHAC controller of each node

    Configuration

    IDs of SHAC is set using console (and stored in ROM file, so make sure the ROM file is specified in configuration file) in the following way:

    >>>sho dssi_id
    DSSI_ID Bus 0/A = 1
    DSSI_ID Bus 1/B = 1

    >>>set dssi_id 0 2
    >>>set dssi_id 1 2

    Description(warning) Note that value of "dssi_id" must be unique for each SHAC instances and HSD50 controllers must not use them; for example if 0 and 1 is used as SHAC ID of different VAX nodes the HDS50 controller instance cannot use ID 0 and 1.

    .

  2. Configure preloaded SHAC adapters PAA

    Configuration
    set PAA port[<ID of the node to connect to>]=<port to receive connection from the node specified by ID> host[<ID of the node to connect to>]="<connected node host>:<connected node port>"

    Example:

    set PAA port[2]=11012 host[2]="pollux:11021"

    In this example a VAX node SHAC adapter connects to a node "pollux" (having ID=2) to its port 11021 and expects connection from it on the port 11012.

    Description

    The second step is to interconnect SHAC adapters of different nodes.

    Use ID of the nodes as a reference for interconnections as it is shown in the example at left.

    Detailed meaning of the parameters is explained in "Example 1" section below

    .

  3. Load HSD50 adapter

    Configuration
    load HSD50 <instance name> dssi_host=<SHAC instance> dssi_node_id=<HSD50 node ID>

    Example:

    load HSD50 DISKS dssi_host=PAA dssi_node_id=3

    In this example HSD50 controller instance "DISKS" is loaded, connected to "PAA" SHAC controller and assigned with ID 3.

    Description

    Load HSD50 instance, assign ID for it and connect it to "PAA" SHAC adapter.

    For each member of cluster an identical definition of HSD50 controllers must be loaded. It is convenient to introduce a specific include configuration file containing the same configuration commands as it is shown in "Example 2" section below.

    (warning) Note that <HSD50 node ID> parameter must be unique for each SHAC and HSD50 instances; for example if 0 and 1 are used as IDs for nodes (see the Step 1) the HDS50 instance cannot use 0 or 1, but it can be set to 3, for example.

    .

  4. Set SCS system ID and allocation class

    Configuration
    set <HSD50 instance name> scs_system_id=<SCS ID> mscp_allocation_class=<allocation class>

    Example:

    set DISKS scs_system_id=3238746238 mscp_allocation_class=1

    In this example HSD50 instance "DISKS" (configured at the previous step) is assigned with SCS ID "3238746238" and MSCP allocation class 1.

    Description

    Set SCS system ID and the MSCP allocation class.

    (warning) These setting must be the same for all HSD50 controllers loaded!

    Note that the MSCP allocation class must be different from the allocation class of the VAX node (excuding some special cases when they can be the same - please refer to OpenVMS Guides on Clusters configuration for more details).

    For nodes it is set using MODPARAMS.DAT and AUTOGEN

    Refer to OpenVMS User's Guides for details

    .

  5. Configure mapping to the system resources

    Configuration
    set <HSD50 instance name> container[<unit number>] = <mapping>

    Example:

    set DISKS container[0]="/mnt/share/dua0-rz24-vms-v6.2.vdisk"

    In this example the Unit 0 of the HSD50 controller instance "DISKS" is mapped to some disk image, located in some shared directory on disk server.

    Description

    The final step is specifying HSD50 mapping to the system resources.

    Since the disks should be distributed between different VAX nodes they should be located as disk images on some shared space or - alternatively - CHARON host should use such mechanism as iSCSI to address the common disks on some disk storage.

    See the sections below for different examples of the mapping

 

 

StepTitleConfigurationDescription
1Set unique ID for SHAC controller of each node

IDs of SHAC is set using console (and stored in ROM file, so make sure the ROM file is specified in configuration file) in the following way:

>>>sho dssi_id
DSSI_ID Bus 0/A = 1
DSSI_ID Bus 1/B = 1

>>>set dssi_id 0 2
>>>set dssi_id 1 2

(warning) Note that value of "dssi_id" must be unique for each SHAC instances and HSD50 controllers must not use them; for example if 0 and 1 is used as SHAC ID of different VAX nodes the HDS50 controller instance cannot use ID 0 and 1.
2Configure preloaded SHAC adapters PAA
set PAA port[<ID of the node to connect to>]=<port to receive connection from the node specified by ID> host[<ID of the node to connect to>]="<connected node host>:<connected node port>"

Example:

set PAA port[2]=11012 host[2]="pollux:11021"

In this example a VAX node SHAC adapter connects to a node "pollux" (having ID=2) to its port 11021 and expects connection from it on the port 11012.

The second step is to interconnect SHAC adapters of different nodes.

Use ID of the nodes as a reference for interconnections as it is shown in the example at left.

Detailed meaning of the parameters is explained in "Example 1" section below

3Load HSD50 adapter
load HSD50 <instance name> dssi_host=<SHAC instance> dssi_node_id=<HSD50 node ID>

Example:

load HSD50 DISKS dssi_host=PAA dssi_node_id=3

In this example HSD50 controller instance "DISKS" is loaded, connected to "PAA" SHAC controller and assigned with ID 3.

Load HSD50 instance, assign ID for it and connect it to "PAA" SHAC adapter.

For each member of cluster an identical definition of HSD50 controllers must be loaded. It is convenient to introduce a specific include configuration file containing the same configuration commands as it is shown in "Example 2" section below.

(warning) Note that <HSD50 node ID> parameter must be unique for each SHAC and HSD50 instances; for example if 0 and 1 are used as IDs for nodes (see the Step 1) the HDS50 instance cannot use 0 or 1, but it can be set to 3, for example.

4Set SCS system ID and allocation class
set <HSD50 instance name> scs_system_id=<SCS ID> mscp_allocation_class=<allocation class>

Example:

set DISKS scs_system_id=3238746238 mscp_allocation_class=1

In this example HSD50 instance "DISKS" (configured at the previous step) is assigned with SCS ID "3238746238" and MSCP allocation class 1.

Set SCS system ID and the MSCP allocation class.

(warning) These setting must be the same for all HSD50 controllers loaded!

Note that the MSCP allocation class must be different from the allocation class of the VAX node (excuding some special cases when they can be the same - please refer to OpenVMS Guides on Clusters configuration for more details).

For nodes it is set using MODPARAMS.DAT and AUTOGEN

Refer to OpenVMS User's Guides for details

5Configure mapping to the system resources
set <HSD50 instance name> container[<unit number>] = <mapping>

Example:

set DISKS container[0]="/mnt/share/dua0-rz24-vms-v6.2.vdisk"

In this example the Unit 0 of the HSD50 controller instance "DISKS" is mapped to some disk image, located in some shared directory on disk server.

The final step is specifying HSD50 mapping to the system resources.

Since the disks should be distributed between different VAX nodes they should be located as disk images on some shared space or - alternatively - CHARON host should use such mechanism as iSCSI to address the common disks on some disk storage.

See the sections below for different examples of the mapping,

It is advisable to start any field test with implementing the cluster examples provided below

Back to Table of Contents

Example 1: Dual node DSSI cluster with 4 shared disks

To setup two emulated VAX 4000 Model 108 nodes, we need two host machines, preferably running the same version of Linux. 

Assume that these host systems have network host names CASTOR and POLLUX in the host TCP/IP network.

The following are CHARON-VAX configuration files for the emulated VAX 4000 Model 108 nodes running on CASTOR and POLLUX:


CASTOR node

...
set PAA port2=11012 host[2]=”pollux:11021”

load HSD50 DISKS dssi_host=PAA dssi_node_id=3

set DISKS scs_system_id=3238746238 mscp_allocation_class=1

set DISKS container[0]="/mnt/share/dua0-rz24-vms-v6.2.vdisk"
set DISKS container[1]="/mnt/share/dua1-rz24-vms-v6.2.vdisk"
set DISKS container[2]="/mnt/share/dua2-rz24-vms-v6.2.vdisk"
set DISKS container[3]="/mnt/share/dua3-rz24-vms-v6.2.vdisk"
...


POLLUX node

...
set PAA port1=11021 host[1]=”castor:11012”

load HSD50 DISKS dssi_host=PAA dssi_node_id=3

set DISKS scs_system_id=3238746238 mscp_allocation_class=1

set DISKS container[0]="/mnt/share/dua0-rz24-vms-v6.2.vdisk"
set DISKS container[1]="/mnt/share/dua1-rz24-vms-v6.2.vdisk"
set DISKS container[2]="/mnt/share/dua2-rz24-vms-v6.2.vdisk"
set DISKS container[3]="/mnt/share/dua3-rz24-vms-v6.2.vdisk"

...

 

Let's review both configurations step-by-step.

  1. The first line of both configuration files establishes parameters for the preloaded "PAA" SHAC host adapter. Only 2 parameters of SHAC are important for us in this situation: 

    ParameterDescription
    port

    An integer value that specifies the TCP/IP port number on which an emulated SHAC host adapter listens for connections from another emulated SHAC host adapter.

    Possible port values are from 1024 through 32767.

    host

    A string value that specifies the TCP/IP host name (and optionally TCP/IP port number) to connect to another emulated SHAC host adapter.

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

    Thus, CASTOR connects to POLLUX's port 11021 and listens for POLLUX's connection on port 11012,  POLLUX connects to CASTOR's port 11012 and listens for CASTOR's connection on port 11021 

  2. Second and third lines of both configuration files are for loading "DISKS" HSD50 storage controller and its parametrization:

    ParameterDescription
    dssi_host

    A string value that specifies an instance name of the emulated SHAC host adapter serving virtual DSSI network.

    If this value is not set, CHARON-VAX tries to locate the host adapter automatically. This automatic lookup works only if the CHARON-VAX configuration has exactly one instance of emulated SHAC host adapter.

    dssi_node_id

    An integer value that specifies address of emulated HSD50 storage controller on virtual DSSI network. Possible values are from 0 through 7 (initially set to 0).

    scs_system_id

    A string value that specifies SCSNODENAME of emulated HSD50 storage controller.

    The string is up to 10 characters long. Possible characters are uppercase letters A through Z , figures 0 through 9.

    mscp_allocation_class

    An integer value that specifies ALLOCLASS of emulated HSD50 storage controller.

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

    In both configuration files, the data related to the emulated HSD50 storage controller "DISKS" must be identical. Not following this rule can cause data corruption on the (virtual) disks.

      

  3. The next lines demonstrate mapping "DISKS" HSD50 storage controller to disk images, shared between both hosts.. A "container" parameter is used for this purpose. This example assumes that all disk images are accessible from both host machines via network share (NFS, SAMBA) or some other realization.

Back to Table of Contents

Example 2: Triple node DSSI cluster with multiple iSCSI disks

In this example we assume that all three host systems have a iSCSI initiator and are connected to a common iSCSI server. The iSCSI disk server provides 8 virtual disks with R/W access on all hosts. These disks are configured as "/dev/sdc0" ... "/dev/sdc7" on each of the host machines.

Since the storage configuration must be identical on all three nodes, it is recommended to describe the storage structure in a separate configuration file (to be included in each CHARON-VAX configuration file with "include" instruction and name of the configuration file "disksets.cfg") and store it on a common network share ("/mnt/share") (NFS, SAMBA, etc):

load HSD50 DISKS1 dssi_host=PAA dssi_node_id=4

set DISKS1 scs_system_id=3238746238 mscp_allocation_class=1

set DISKS1 container[1]="/dev/sdc0"
set DISKS1 container[2]="/dev/sdc1"
set DISKS1 container[3]="/dev/sdc2"
set DISKS1 container[4]="/dev/sdc3"

load HSD50 DISKS2 dssi_host=PAA dssi_node_id=5

set DISKS2 scs_system_id=1256412654 mscp_allocation_class=2

set DISKS2 container[5]="/dev/sdc4"
set DISKS2 container[6]="/dev/sdc5"
set DISKS2 container[7]="/dev/sdc6"
set DISKS2 container[8]="/dev/sdc7"

CHARON-VAX configuration file for the emulated VAX 4000 Model 108 node running on HOST001 is as follows:

...

set PAA port[2]=11012 host[2]=”host002:11021”
set PAA port[3]=11013 host[3]=”host003:11031

include /mnt/share/disksets.cfg
... 

CHARON-VAX configuration file for the emulated VAX 4000 Model 108 node running on HOST002 is as follows:

...
set PAA port[1]=11021 host[1]=”host001:11012”

set PAA port[3]=11023 host[3]=”host003:11032”

include /mnt/share/disksets.cfg
... 

CHARON-VAX configuration file for the emulated VAX 4000 Model 108 node running on HOST003 is as follows:

...
set PAA port[1]=11031 host[1]=”host001:11013”

set PAA port[2]=11032 host[2]=”host002:11023”

include /mnt/share/disksets.cfg
...

Back to Table of Contents 

 

  • No labels