Return to Home --> How-To

 

System Configuration

 

Tons of parameters have to be configured in 9 types of configuration files before running a simulation. Table 1 summarizes the configuration files and Table 2-10 details each parameter to be configured. User is suggested to check the Modules page for better understanding of the parameters to be configured.

Table 1. Initialization Files

File Type

File Cnt

Name Convention

Where to specify the file name

Description

Parameter Details

Host Configuration Files

one for each Host

Host*.ini

omnetpp.ini

IO Generation, SCSI, N_Port, LUN Masking etc.

Table 2

Switch Configuration Files

one for each Switch

Sw*.ini

omnetpp.ini

E_Port, F_Port, Switch Control Centre, Domain, etc.

Table 3

Disk Array Configuration Files

one for each Disk Array

Dev*.ini

omnetpp.ini

CHIP, Caching, LUN, ACP, and Disk, etc.

Table 4

Processor Timing Files

one for each processor

My*.ini

Host/Switch/Device configuration files

Timing Host/CHIP CPU, Switch CPU, Array CPU, and FC Controller, etc.

Table 5

Disk Parameter Files

one for each disk model

*.params.ini

DiskModel is setup in section [5] of Device configuration file

Disk parameters for a given disk model.

Table 6

Disk Seek Files

one for each disk model

*.seek.full.ini

DiskModel is setup in section [5] of Device configuration file

Disk seek table for a given disk model.

Table 7

Zoning Configuration Files

one for the active network

ZoneSet*.ini

omnetpp.ini

ZoneSet configuration.

Table 8

Link Events File

one for the active network

LinkEvents.ini

omnetpp.ini

Link events triggered by Port events.

Table 9

OMNeT++ Initialization File

one for the active network

omnetpp.ini

-

General simulation parameters and SimSANs global parameters.

Table 10

 

 

Table 2. Host Parameters

Section ID

Parameter Name

Description

Comments

[1]

PeriBusWid

Host peripheral controller bus width in bit, usually 16, 32, or 64-bit

refer to HPC

 

PeriBusClk

Host peripheral controller but clock in MHz, usually 33, 66, 100, or 133MHz

refer to HPC

 

CPU

Host CPU file that defines timing elements

refer to Host CPU

 

MaxTarLun

Maximum number of target LUNs that the Host can access

if more than MaxTarLun LUNs are specified in LUN Masking table (in section [2.1]) those extra LUNs cannot be accessed.

 

MaxRdWrIo

Maximum number of concurrent READ/WRITE IOs that the host SCSI layer can open at any one time. Usually we choose 64, 128, 256, and 512.

 

 

MaxCtrlIo

Maximum number of concurrent control IOs (RPT_LUNS, INQUIRY, and MODE_SENSE) that the host SCSI layer can open at any one time. Usually this value is < 64.

 

[2]

Port#

Specify the index for N_Port configuration

each Host normally installs at most two HBAs.

 

MaxPortSpeed

Specify the port speed. Two values to choose: 1 for 1Gbps and 2 for 2Gbps.

Speed auto-negotiation is enabled so that the port speed agreed by both sides will be chosen as the actual link speed.

 

R_T_TOV

Specify event time out value in millisecond. Two values to choose: 100 for 100ms and 0.1 for 100us.

100ms is the default value defined in FC-FS.

 

FcpFeature

Specify FCP Feature for this N_Port. Two values to choose: "Ini" for FCP Initiator or "Tar" for FCP Target.

for Host N_Ports, always be FCP Initiator.

 

RxBufSize

Maximum number of Frames that can be queued in the receiver buffer. This value is used to configure BB_Credit at the attached FC_Port. At lease one receiver buffer must be setup.

in SimSANs, for 2G link, approx. 2 BB_Credits are required for every 3km.

 

TxBufSize

Maximum number of Frames that can be queued in the transmitter buffer. TxBufSize can be zero.

FC-FS does not require setting up transmitter buffer.

 

C3ConCurrSeq

Maximum number of Class-3 concurrent Sequences that an N_Port login pair can handle

refer to EE_Pair and PLOGI

 

MaxSeqTRy

Maximum number of transmission attempts for a Sequence. MaxSeqTry - 1 is the maximum number of re-transmission attempts if a Sequence fails.

 

 

MaxPeerPort

Maximum number of remote N_Ports that this N_Port can login to communicate with

refer to EE_Pair

 

FC_CTRL

FC-2 Controller file that defines timing elements

refer to FC-2 Controller

[2.1]

LUN_WWN

Specify the WWN for a LUN that has LUN Mask setting configured

if you do not want a given LUN to be accessed by the Host, just don't setup the LUN Masking on that LUN.

 

LUN_MASK

Specify the Port# that allows the LUN to be accessed. Multiple Ports can be specified, separated by comma.

if all the Port# specified have no connections out, that LUN is not accessible.

 

PRI_INI_WWPN

Specify the Initiator N_Port WWPN (in fact the WWPN uses module full-path, check OMNeT++ for more details) of the primary Initiator-Target path

SimSANs supports fail-back if the failed primary path is restored.

 

PRI_TAR_WWPN

Specify the Target N_Port WWPN of the primary Initiator-Target path

 

[3]

LUN_WWN

Specify the WWN for a LUN that has READ/WRITE IOs to issue

in section [3] IO generation table, each row represents a single IO stream to a given LUN.

 

IoNum

Total number of IOs to be generated for this stream

 

 

Stime

The start time of issuing the 1st IO for this stream, unit in millisecond.

 

 

IoPattern

Specify the IO Pattern (the combination of R/W ratio, IO Size, BlkAddr, and IO Gap) for this stream

 

[3.1]

Name

IO Pattern name

 

 

R/W

The ratio of READ IOs over WRITE IOs

100 - Sequential READ, 0 - Sequential WRITE

 

SizG

Specify the Size Pattern Name for this IO Pattern

 

 

BlkG

Specify the Block Address Pattern Name for this IO Pattern

 

 

GapG

Specify the Gap Pattern Name for this IO Pattern

 

[3.1.1]

Name

Size Pattern Name

 

 

RGN

Random number generator name (or distribution function name). For IO size, the random number generated is in the unit of K-byte.

there're 24 RGNs including 20 pre-defined distribution functions in OMNeT++ and another 4 dedicated to SimSANs. Please see IO Generator.

 

RNG#

Random number generator ID from 0 - 31

this parameter only applicable to the 20 pre-defined OMNeT++ RNGs.

 

Par1

Distribution function's 1st input parameter

all 24 functions require at least one input parameter so Par1 cannot be set as N/A string "-".

 

Par2

Distribution function's 2nd input parameter

if the function requires two or more input parameters then Par2 cannot be set as N/A string "-".

 

Par3

Distribution function's 3rd input parameter

if the function requires three input parameters then Par3 cannot be set as N/A string "-".

[3.1.2]

Name

Block Address Pattern Name

 

 

RGN

Random number generator name (or distribution function name). For Block Address, the random number generated is the LUN Block Number.

see here

 

RNG#

Random number generator ID from 0 - 31

see here

 

Par1

Distribution function's 1st input parameter. For seq_block, represents the initial block address.

see here

 

Par2

Distribution function's 2nd input parameter

see here

 

Par3

Distribution function's 3rd input parameter

see here

[3.1.3]

Name

IO Gap Pattern Name

 

 

RGN

Random number generator name (or distribution function name). For IO Gap, the random number generated is the time interval (millisecond) between IOs.

see here

 

RNG#

Random number generator ID from 0 - 31

see here

 

MinGap

Minimum gap (microsecond) between consecutive IO requests

for for self_sim only

 

OnShape

Shape parameter for ON periods

for for self_sim only

 

OffShape

Shape parameter for OFF periods

for for self_sim only

 

Load

Expected IO load in IOPS (IO per second)

for for self_sim only

 

Srcs

Number of sources used for traffic aggregation

for for self_sim only

 

Par1

Distribution function's 1st input parameter. Not applicable to self_sim

see here

 

Par2

Distribution function's 2nd input parameter. Not applicable to self_sim

see here

 

Par3

Distribution function's 3rd input parameter. Not applicable to self_sim

see here

 

 

Table 3. Switch Parameters

Section ID

Parameter Name

Description

Comments

[1]

Domain_ID

Switch Domain ID. Each switch in the fabric must be assigned a unique Domain_ID. Valid from 0 - 239.

 

 

R_A_TOV

Resource Allocation Time-out Value in millisecond

currently SimSANs does not use it.

 

E_D_TOV

Error Detection Time-out Value in millisecond

required for REC_TOV timer. see SCSI and FC-ELS.

 

CPU

CPU file that defines timing elements for switch control centre

see Switch Control Centre

[2]

Port#

Specify the index for Sw_Port configuration

 

 

Area_ID

Area that the port belongs to. Valid from 0 - 255.

 

 

MaxPortSpeed

Specify the port speed. Two values to choose: 1 for 1Gbps and 2 for 2Gbps.

see here

 

R_T_TOV

Specify event time out value in ms. Two values to choose: 100 for 100ms and 0.1 for 100us.

see here

 

B_Port

Specify whether the switch port is a B_Port. N for No or Y for Yes.

currently SimSANs does not support B_Port so should always set "N".

 

RxBufSize

Maximum number of Frames that can be queued in the receiver buffer. This value is used to configure BB_Credit at the attached FC_Port. At lease one receiver buffer must be setup.

see here

 

TxBufSize

Maximum number of Frames that can be queued in the transmitter buffer. TxBufSize can be zero.

see here

 

FC_CTRL

FC-2 Controller file that defines timing elements

refer to FC-2 Controller

 

 

Table 4. Device Parameters

Section ID

Parameter Name

Description

Comments

[1]

CHIP_ID

CHIP index for the CHIP configuration

refer to Device

 

PeriBusWid

CHIP peripheral controller bus width in bit, usually 16, 32, or 64-bit

same as the one in Host configuration

 

PeriBusClk

CHIP peripheral controller but clock in MHz, usually 33, 66, 100, or 133MHz

same as the one in Host configuration

 

CPU

CHIP CPU file that defines timing elements

same as the one in Host configuration

 

MaxTarLun

Maximum number of target LUNs that the CHIP can access. Only affect the Initiator N_Ports within the CHIP. Make no sense to Target N_Ports.

same as the one in Host configuration. see here.

 

MaxRdWrIo

Maximum number of concurrent READ/WRITE IOs that the CHIP SCSI_Rmt can open at any one time. Usually we choose 64, 128, 256, and 512.

 

 

MaxCtrlIo

Maximum number of concurrent control IOs (RPT_LUNS, INQUIRY, and MODE_SENSE) that the CHIP SCSI_Rmt can open at any one time. Usually this value is < 64.

 

[2]

CHIP_ID

CHIP index for the N_Port configuration

 

 

Port#

Specify the port index within the CHIP

usually each CHIP configures at most four N_Ports.

 

MaxPortSpeed

Specify the port speed. Two values to choose: 1 for 1Gbps and 2 for 2Gbps.

see here

 

R_T_TOV

Specify event time out value in millisecond. Two values to choose: 100 for 100ms and 0.1 for 100us.

see here

 

FcpFeature

Specify FCP Feature for this N_Port. Two values to choose: "Ini" for FCP Initiator or "Tar" for FCP Target.

in SimSANs, Target ports always in CHIP.

 

RxBufSize

Maximum number of Frames that can be queued in the receiver buffer. This value is used to configure BB_Credit at the attached FC_Port. At lease one receiver buffer must be setup.

see here

 

TxBufSize

Maximum number of Frames that can be queued in the transmitter buffer. TxBufSize can be zero.

see here

 

C3ConCurrSeq

Maximum number of Class-3 concurrent Sequences that an N_Port login pair can handle

refer to EE_Pair and PLOGI

 

MaxSeqTRy

Maximum number of transmission attempts for a Sequence. MaxSeqTry - 1 is the maximum number of re-transmission attempts if a Sequence fails.

 

 

MaxPeerPort

Maximum number of remote N_Ports that this N_Port can login to communicate with

refer to EE_Pair

 

FC_CTRL

FC-2 Controller file that defines timing elements

refer to FC-2 Controller

[2.1]

LUN_WWN

Specify the WWN for a LUN that has LUN Mask setting configured. Only applicable to Initiator N_Port.

see here

 

LUN_MASK

Specify the Port# that allows the LUN to be accessed. Multiple Ports can be specified, separated by comma.

see here

 

PRI_INI_WWPN

Specify the Initiator N_Port WWPN (in fact the WWPN uses module full-path, check OMNeT++ for more details) of the primary Initiator-Target path

see here

 

PRI_TAR_WWPN

Specify the Target N_Port WWPN of the primary Initiator-Target path

 

[3]

MaxArrLun

Maximum number of LUNs (including LUN0) that the Device installs

 

 

CacheSize

Total Cache space in Mega-byte

 

 

CswBusWidth

The Cache Switch bus width in bit. Usually we choose 16, 32, and 64-bit.

see Cache Switch

 

CswBusClock

The Cache Switch bus clock in MHz. Usually we choose 20, 25, 33, 66, and 100MHz.

see Cache Switch

 

CPU

Control Memory CPU file that defines timing elements

see Control Memory CPU

 

CchWrThru

Enable (Y) or disable (N) Write-Through caching

see Control Memory CPU

[3.1]

CCH_UPD

Specify the Cache Update Name: None, Fixed, or Adapt

see Control Memory CPU

 

FTH_actv

dirtyRatio threshold to activate flush operation

 

 

FTH_deactv

dirtyRatio threshold to de-activate flush operation

 

 

INT_flush

Flush operation time interval in millisecond

 

 

FBR_max

Maximum value of Flush Block Ratio - the ratio of dirty blocks to be flushed over total dirty blocks

for Fixed Update only

 

FBR_ini

Initial value of Flush Block Ratio

for Adapt Update only

 

FBR_min

Minimum value of Flush Block Ratio

for Adapt Update only

 

TOL_fact

Tolerance factor - usually a multiple of INT_flush

for Adapt Update only

 

AGG_fact

Aggressiveness factor to generate the value of thisMaxFlushBlk

for Adapt Update only

[3.2]

Enable

Enable (Y) or disable (N) Cache Cleaning operation

see Control Memory CPU

 

INT_Clean

Clean operation time interval in millisecond

 

 

HRTH

Cache-Hit ratio threshold value

 

 

CTH_H_actv

when Cache-Hit drops below HRTH, the ratio of occupied Cache space over total Cache space, when exceeded, the cleaning operation is activated

 

 

CBR_H_max

when Cache-Hit drops below HRTH, the maximum ratio of Cache blocks to be cleaned out over total Cache blocks opened

 

 

CTH_N_actv

when Cache-Hit above HRTH, the ratio of occupied Cache space over total Cache space, when exceeded, the cleaning operation is activated

 

 

CBR_N_max

when Cache-Hit above HRTH, the maximum ratio of Cache blocks to be cleaned out over total Cache blocks opened

 

[4]

ACP_ID

ACP index for the ACP configuration

refer to Device

 

PeriBusWid

ACP peripheral controller bus width in bit, usually 16, 32, or 64-bit

same as the one in Host and CHIP configuration

 

PeriBusClk

ACP peripheral controller but clock in MHz, usually 33, 66, 100, or 133MHz

same as the one in Host and CHIP configuration

 

CPU

ACP CPU file that defines timing elements

same as the one in Host and CHIP configuration

[5]

ACP_ID

ACP index for the Array Group configuration

 

 

ArrGrp#

Specify the Array Group index within the ACP

 

 

FCALSpeed

Specify the port speed for disk connection. Two values to choose: 1 for 1Gbps and 2 for 2Gbps.

see FC-AL Hub

 

DiskModel

Specify the disk model name used by the Array Group. The disk parameter file name is DiskModel.params.ini and the seek delay file is DiskModel.seek.full.ini.

four pre-defined disk models are included in the SimSANs package.

 

ArrGrpDiskNum

Specify the number of disks that the Array Group installs

 

 

WrSecResp

Specify whether or not output sector response files: *.SecResp

see Sector Response Output

[6]

LUN_WWN

Specify WWN for the LUN (except LUN0) to be configured.

do not setup LUN0

 

DiskNum

The number of member disks for the LUN

 

 

BlkSize

Specify the LUN Block Size in K-byte. Usually we choose 4K, 8K, 16K, 32K, 64K, and 128K.

 

 

ConCurrIo

Maximum number of concurrent IOs that the LUN can handle at any one time

see LUN Controller

 

StripeDepth

Stripe Depth in K-byte. Must be a multiple of Block Size. Usually we use 4 x BlkSize.

SimSANs use RAID 1+0. see LUN Controller

 

PrimaryDisks

Primary member disks identified by acpId.arrGrpId.diskId, e.g., 012 is ACP[0].ArrGrp[1].Disk[2]. Multiple disks are separated by comma. 

use "-" to specify the member disk missing.

 

MirrorDisks

Mirrored member disks

 

 

 

Table 5. Processor Timing Parameters

Section ID

Parameter Name

Description

Comments

[1]

CPU_Clock

Processor clock in MHz

 

 

Mem_Clock

Memory clock in MHz

 

[2]

Task_Name

Program task that consumes processor resource

see Timing Elements

 

INSTR_NUM

Number of processor instructions to fulfill the task. Two values should be specified, and separated by comma. The 1st one is mean and the 2nd one is stddev.

see Timing Elements

 

CPU_CYL_INS

Number of processor cycles for decoding and execution of an instruction. Two values should be specified, and separated by comma. The 1st one is mean and the 2nd one is stddev.

see Timing Elements

 

MEM_REF_INS

Number of memory references needed for an instruction. Two values should be specified, and separated by comma. The 1st one is mean and the 2nd one is stddev.

see Timing Elements

 

 

Table 6. Disk Parameters

Parameter Name

Description

Comments

Cyl

Cylinder number

 

SecSize

Disk sector size in byte. Three values to choose: 512, 1024, or 2048.

 

TrkSec

Track density - sectors per track

 

Bands

Number of bands

see Disk Drive Parameter

CPBidx

Cylinder-per-Band index

see Disk Drive Parameter

SPBidx

Sector-per-Band index

see Disk Drive Parameter

L2P_MAP

Specify the mechanism for mapping logical sector to physical sector. Two values to choose: 1 for cylinder-band basis and 2 for cylinder basis.

see Logical to Physical Sector Mapping

Heads

Number of Read/Write heads

 

Rotat

Rotational speed in RPM - rotations per minute

 

BufSize

Disk buffer size in K-byte

see Disk Buffer

WrDly

Additional delay for settling read/write head for write operation. Unit in millisecond.

see Disk Media Access

HeadSw

Delay for performing head switch operation. Unit in millisecond.

see Disk Media Access

CylSw

Delay for performing cylinder switch operation. Unit in millisecond.

see Disk Media Access

CtrlOH

Controller overhead to initiate mechanic of read/write head. Unit in millisecond.

see Disk Media Access

FCALDly

Overhead for transfer sector between disk buffer and FC-AL loop link

 

cmdQueDpth

Command queuing depth. Unit in number of sectors.

see Disk Buffer

cmdQueDly

Delay in command queuing operation. Unit in microsecond.

see Disk Buffer

 

 

Table 7. Disk Seek Parameters

Column

Description

Comments

1

Cylinder-to-move

 

2

Seek delay against the cylinder-to-move

 

 

 

Table 8. Zoning Parameters

Parameter Expression

Description

Comments

[Zone Name]

Zone Name for the zone

 

N_Port WWN

A list of N_Port WWPNs belongs to the zone

SimSANs uses WWN zoning. see Switch Control Centre.

 

Table 9. Link Events Parameters

Parameter Expression

Description

Comments

@ FC_Port WWN

Specify the FC_Port that has port events to setup

see Transmitter Event Generator

D time

Specify the simulation time (millisecond) when the port is DOWN

Multiple events may exist for a given N_Port but the 1st event must always be DOWN.

U time

Specify the simulation time (millisecond) when the port is UP

At least one second gap must be allowed between consecutive events.

 

 

Table 10. SimSANs Global Parameters in omnetpp.ini

Parameter Name

Description

Comments

Output Files and Directories

There are 17 directories and 6 file names need to specified

see more details at Simulation Analysis

Data Collection Time Intervals

There are 9 interval values need to be specified for a variety of statistics

use larger value (> 1000ms) to decrease the disk space consuming

maxLinkEv

Maximum number of link events for each FC_Port

 

minEvInt

Minimum gap (millisecond) between events

SimSANs requires at least 1000ms gap.

light_speed

The value of light speed in km. Used to calculation of propagation delay.

 

link_1G_cost

Link cost for 1G Fibre Channel link

see Switch Control Centre about Link Cost and Path Selection.

link_2G_cost

Link cost for 2G Fibre Channel link

 

s_fact_km

How many kilometers the S factor get an increment by 1. Used to calculation of link cost.

see Switch Control Centre about Link Cost

evEndDelay

The flag evDone (one of the root module parameter indicating all link events are issued) is set true until this delay (millisecond) elapses after the last link event issued.

 

nsDbOutCol

How many columns of Port Address_IDs to display for each row of  the Name Server Database output data (*.NsDb files).

 

defConCurrSeq

Default concurrent sequence value.

in FC-FS this value should be 1. SimSANs allows user to customize it.

maxIoGen

Maximum number of IO generators (or streams) can be setup for each Host

 

writePhySecMap

Whether or not enable writing physical sector map

 

writeLogSecMap

Whether or not enable writing logical sector map

 

skipScsiIo

Whether or not skip SCSI IO generation.

this flag is useful and save time when you only want to watch network activities without caring about IO activities.

maxDomNum

Maximum number of domains (or switches) that can be setup for the whole fabric

 

maxSwPortNum

Maximum number of port (port count) that a switch can install

 

maxNsDbEntry

Maximum number of Name Server Database entries

each active N_Port will occupy an NsDb entry.

maxZoneMem

Maximum number of zone members (N_Port IDs) that each zone can setup

 

maxZoneNum

Maximum number of zones that the active zone set can setup

 

Host*.nxPortNum

Number of N_Ports installed for the Host

 

Sw*.swPortNum

Number of E_Ports/F_Ports installed for the Switch

do not setup SwPorts much more than the switch expects to use during the simulation - unused port will cost a lot of memory.

Dev*.chipNum

Number of CHIPs installed for the Device

 

Dev*.chipNxPortNum

Number of N_Port installed for each CHIP of the Device

 

Dev*.acpNum

Number of ACPs installed for the Device

 

Dev*.acpArrGrpNum

Number of Array Groups installed for each ACP of the Device

 

Dev*.busNum

Number of bus connections between Control Memory with each Cache Switch

see Internal Switched Fabric

Dev*.cswNum

Number of Cache Switches installed for the Device

 

linkEventFile

The input file name of link events

 

zoneSetFile

The input file name of the active zone set

user can setup as many zone set files as he/she wants but only the one setup here is active during the simulation.

Host*.confFile

Host configuration file name

each Host in the network must have a configuration file.

Dev*.confFile

Device configuration file name

each Device in the network must have a configuration file.

Sw*.confFile

Switch configuration file name

each Switch in the network must have a configuration file.

 

 


This page was last updated 2003.10.15