Home Modules How-To Samples Download Advanced Others  
Parameter Input    Running and Data Collection    Download Sample    Try More  




The following sample demos how the SimSANs simulates a multi-site storage network, which contains three data centres (DataCtr1, DataCtr2, and DataCtr3) remotely inter-connected. DataCtr1 has 6 hosts, 6 switches, and 1 disk array (Dev1). DataCtr2 has 4 hosts, 4 switches, and 1 disk array (Dev2). DataCtr3 has 2 switches and 2 disk arrays (Dev3 and Dev4). The distances between data centres are: 300km between 1 and 2, 1400km between 2 and 3, and 1200km between 1 and 3. DataCtr3 is the remote-mirroring site for other two centres. Dev1 setups 6 LUNs: LUN11 and LUN12 accessible by Host1, LUN21 and LUN22 accessible by Host2, LUN3 accessible by Host3, and LUN4 accessible by Host4. Dev2 setups 6 LUNs: LUN7, 8, 9, 10, 5, and 6 accessible by Host7, 8, 9, 10, 5, and 6 respectively. All Dev1's 6 LUNs are remote-mirrored at Dev3 and Dev2' 6 LUNs are remote-mirrored at Dev4. ISL Trunking is automatically enabled when multiple ISLs are setup between two adjacent switches - this sample uses ISL trunking between Sw6 and Sw11, and between Sw10 and Sw12. Please refer to the following two figures for more details. Figure 1 shows the network topology and figure 2 shows the configurations: Port#, Domain_ID, and N_Port Address_ID are labeled. To run this demo please check Parameter Input and Running and Data Collection. To download the package please go to Download Sample.



Figure 1. Network Topology

Click here to see the full image




Figure 2. Network Configurations

Click here to see the full image



Parameter Input

Input parameters should be configured in the initialization (.ini) files before running the simulation. There are 9 types of .ini files that user has to take care of. Please see the following table. As for this demo, I have put some simple comments in every initialization file so help understanding the configurations.  User can always refer to the System Configuration for more details about how to configure and setup parameters. Besides, the Modules section will help a lot in understanding the parameters.


Table 1. Initialization Files

File Type

File Cnt

File Name


Host Configuration Files



IO Generation, SCSI, N_Port, LUN Masking etc.

Switch Configuration Files



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

Disk Array Configuration Files



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

Processor Timing Files



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

Disk Parameter Files



Disk parameters.

Disk Seek Files



Disk seek table.

Zoning Configuration Files



ZoneSet configuration.

Link Events File



Link events triggered by Port events.

OMNeT++ Initialization File



General simulation parameters and SimSANs global parameters.



Running and Data Collection

Before running the demo please make sure the following setups have been completed:
[1] Tcl/Tk 8.4 is installed and setup in the PATH environment variable. Usually PATH is updated after the Tcl/Tk is successfully installed.
[2] (optional) OMNETPP_BITMAP_PATH environment variable is setup and includes .\bitmaps (for WIN) or ./bitmaps (for UX).
[3] (optional) TCL_LIBRARY environment variable is setup, e.g., C:\Tcl\lib\tcl8.4 (for WIN) or /usr/local/lib/tcl8.4 (for UX).


For Windows 2000/XP User:

Running the demo does not require OMNeT++ 2.3 installed but it would be much more convenient if you have the pre-compiled OMNeT++ 2.3 for Windows since it already includes Tcl/Tk 8.4 and takes care of the above settings without user's intervention. If you do not have OMNeT++ 2.3 installed then you may consider downloading and installing ActiveTcl and setup above environment variables before running the demo.


For Cygwin and Linux User: Please get Tcl/Tk 8.4 from here. For Linux please modify stack size before running the demo:

#ulimit -s 65536


Running Demo

Five executable files are related to the demo. Please see the following table. Using default parameter configurations, the demo requires 25-40MB memory (depending on CmdEnv or TkEnv) and 50MB+ disk space for output data, and take about 25 minutes to complete under Express Mode running on a PC with Pentium III 733. By customizing the input parameters, the demo may require as large as 80-100MB memory and hundreds of MB disk space, and take hours (or even days if your program generates millions of IOs) to complete.


Table 2. Executable Files

File Name




Windows XP/2000

Demo simulation program for TkEnv. Requiring Tcl/Tk 8.4.



Demo simulation program for CmdEnv.



Batch file for starting up SimSANs TkEnv executable including cleaning old output files.



Batch file for starting up SimSANs CmdEnv executable including cleaning old output files.



Batch file for cleaning old output files.



Demo simulation program for TkEnv. Requiring Tcl/Tk 8.4.



Demo simulation program for CmdEnv.



Shell script for starting up SimSANs TkEnv executable including cleaning old output files.



Shell script for starting up SimSANs CmdEnv executable including cleaning old output files.



Shell script for cleaning old output files.



Collecting Data

Data is collected during the simulation. The data collection is performed in two ways: updating WATCH variables (see OMNeT++ User Manual about WATCH) or outputting data to files. There're total 33 WATCHable variables and 31 types of output files generated and for user to analysis during or after the simulation. Output Files summarizes the output files and links to the details of output data. WATCH Variables gives the details about the WATCH variables. User is suggested to check the Modules page for better understanding of the data collected. 


All output files are Excel and Matlab ready. A useful tool for converting SimSANs output files to OMNeT++ vector files is also available for Plove/GnuPlot. If you have to extract data from the output files I suggest you try grep or gawk shipped with OMNeT++ 2.3. The following example is trying to extract all successful IOs issued from IO Generator[1] of Host1:

gawk "$5 == 1 && $3 !~ /-/" SimSANs.DataCtr1.Host1.Scsi.IoResp > Host1.Gen[1].SuccIo 


Link Coloring

Link coloring is associated with link events. When a link is DOWN, its colour turns into light gray colour. When all active links fails for a given Host, Switch, or Disk Array, the icon of that Host, Switch, or Disk Array changes indicating a DOWN state. Following figure shows an example of the link coloring.


Figure 3. Link Coloring Example

Click here to see the full image




Please download the SimSANs_V2.0.15_DEMO package from HERE. This demo provides user with configuration-level development. For design-level development user has to download SimSANs Libraries. Currently the demo supports Windows 2000/XP, Linux, and Cygwin. The physical and logical sector maps for each of the four pre-defined disk models are available at HERE - user can always generate these maps by enable writePhySecMap and writeLogSecMap flags from omnetpp.ini.