Samples
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 |
Description |
Host
Configuration Files |
12 |
Host*.ini |
IO
Generation, SCSI, N_Port, LUN Masking etc. |
Switch Configuration Files |
10 |
Sw*.ini |
E_Port, F_Port, Switch Control Centre, Domain, etc. |
Disk
Array Configuration Files |
4 |
Dev*.ini |
CHIP, Caching, LUN, ACP, and Disk, etc. |
Processor Timing Files |
5 |
My*.ini |
Timing Host/CHIP CPU, Switch CPU, Array CPU, and FC
Controller, etc. |
Disk
Parameter Files |
4 |
*.params.ini |
Disk
parameters. |
Disk
Seek Files |
4 |
*.seek.full.ini |
Disk
seek table. |
Zoning Configuration Files |
2 |
ZoneSet*.ini |
ZoneSet configuration. |
Link
Events File |
1 |
LinkEvents.ini |
Link
events triggered by Port events. |
OMNeT++ Initialization File |
1 |
omnetpp.ini |
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 |
Platform |
Description |
SimSANs_V2_TkEnv.exe |
Windows XP/2000 |
Demo
simulation program for TkEnv. Requiring Tcl/Tk 8.4. |
SimSANs_V2_CmdEnv.exe |
|
Demo
simulation program for CmdEnv. |
Start_SimSANs_V2_TkEnv.bat |
|
Batch
file for starting up SimSANs TkEnv executable including
cleaning old output files. |
Start_SimSANs_V2_CmdEnv.bat |
|
Batch
file for starting up SimSANs CmdEnv executable including
cleaning old output files. |
Delete_Files.bat |
|
Batch
file for cleaning old output files. |
SimSANs_V2_TkEnv |
Cygwin/Linux |
Demo
simulation program for TkEnv. Requiring Tcl/Tk 8.4. |
SimSANs_V2_CmdEnv |
|
Demo
simulation program for CmdEnv. |
Start_SimSANs_V2_TkEnv |
|
Shell
script for starting up SimSANs TkEnv executable including
cleaning old output files. |
Start_SimSANs_V2_CmdEnv |
|
Shell
script for starting up SimSANs CmdEnv executable including
cleaning old output files. |
RmvFiles |
|
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
Download
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.