SIMCAN: A SIMulator Framework for Computer Architectures and Storage Networks Alberto Núñez, Javier Fernández, Jose D. Garcia, Laura Prada and Jesús Carretero Architecture Group, Computer Science Department Universidad Carlos III de Madrid, Leganés. Spain {anunez, jfmunoz, jdgarcia, lprada, jcarrete}@inf.uc3m.es ABSTRACT This paper presents an OMNeT-based Framework to simu- late large complex storage networks, with its corresponding underlying subsystems (I/O, Networking, etc.). With this Framework, custom environments can be configured and de- ployed on a flexible and easy way. The most interesting fea- tures of this Framework are its flexibility and scalability, so the simulation of distributed storage environments can be performed with the required detail level. Thus, we will able to study the behaviour of complex distributed environments to several purposes, like detecting system bottlenecks, cal- culating the scalability degree of the system or testing the performance of developed algorithms, without using a real system. Keywords I/O simulation, distributed systems simulation, network stor- age simulation 1. INTRODUCTION Nowadays, distributed and parallel computing is increas- ing its role due to the fast evolution on computer networks and communication technologies. The complexity of this systems and the need of storing great amounts of data, sug- gest that the process of performing studies of real complex distributed environments, will becomes a time-consuming and expensive task. There are two ways to perform studies of complex dis- tributed environments: running tests on a real system or on a simulated environment that represents the real system. The first choice is more complex and expensive; it requires having the real hardware of the system, with their nodes connected with the corresponding network, etc. Meanwhile, performing simulations do not require the real hardware; ba- sically it needs a computer system of any kind to execute the program that simulates the real environment behaviour. Another point to be considered is the speed of the whole testing process. In most cases, developing and perform- Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. OMNeT++ 2008 March 3, 2008, Marseille, France. ACM copyright notice upon transfer of copyright Copyright 2008 ACM 978-963-9799-20-2 ...$5.00. ing real tests is slower that simulated tests. Moreover, real tests should be performed as they are, while simulated tests can be improved, parallelizing their execution, on a cluster, where the performance can be scaled with the number of nodes involved. The scalability of the tests is another feature to have in mind. Scaling the architecture of the real system is more expensive and time-consuming that performing the same changes in a simulated environment. Generally, simulated environments are parameterized, thus, making a change in the simulated architecture only requires changing some pa- rameters. Another feature that makes simulations a good choice for studying complex distributed environments is when the real system does not exist. Simulation process let us test new architectures before building them. The main problem with the use of simulated tests instead of real tests is the accuracy of the results. The simulations have to obtain results that must be similar enough to those obtained on a real system. Obtaining and assuring this ac- curacy is the problem that must be solved when designing new simulation environments. Our primary goal is to develop a Framework that let us make simulated storage networks environments with its cor- responding underlying subsystems, like the I/O subsystem and networking subsystem. A real storage network con- tains several components that must been simulated, like Disk Drives, File Systems, Volume Managers, Schedulers, Caches, Communication Networks, etc. Storage subsystem performance is one of the major concerns that arise on this kind of large computing networks. The I/O subsystem is usually a system bottleneck in most of the computing sys- tems. The proposed Framework is being developed using OM- NeT++ [1]. OMNeT++ is a discrete event simulation en- vironment that let us develop modules and communicate them. The most important features of the proposed Framework are flexibility and scalability. SIMCAN follows a modular and hierarchical architecture, like OMNeT++. Each mod- ule represents a component in the system, that can con- tain other nested modules, or not. A module that does not contain nested modules represents an independent entity in SIMCAN (for example, a Disk Drive, a File System, etc.). These kinds of modules implement the entity’s behaviour. With our proposed Framework we intend to validate and verify distributed algorithms, locate system bottlenecks and detect poor resources management, with an acceptable accu-