Storage System. Distributor. Network. Drive. Drive. Storage System. Controller. Controller. Disk. Disk

Similar documents
Avoiding the Cache Coherence Problem in a. Parallel/Distributed File System. Toni Cortes Sergi Girona Jesus Labarta

Technische Universitat Munchen. Institut fur Informatik. D Munchen.

Mass-Storage Structure

Dynamic load balancing of SCSI WRITE and WRITE SAME commands

A Detailed Simulation Model of the HP Disk Drive. July 18, Abstract

Linear Aggressive Prefetching: A Way to Increase the Performance of Cooperative Caches.

Modern RAID Technology. RAID Primer A Configuration Guide

Database Systems II. Secondary Storage

CHAPTER 4 AN INTEGRATED APPROACH OF PERFORMANCE PREDICTION ON NETWORKS OF WORKSTATIONS. Xiaodong Zhang and Yongsheng Song

Administrivia. CMSC 411 Computer Systems Architecture Lecture 19 Storage Systems, cont. Disks (cont.) Disks - review

Execution-driven Simulation of Network Storage Systems

CSE 153 Design of Operating Systems

Introduction Disks RAID Tertiary storage. Mass Storage. CMSC 420, York College. November 21, 2006

Linux Software RAID Level 0 Technique for High Performance Computing by using PCI-Express based SSD

CISC 7310X. C11: Mass Storage. Hui Chen Department of Computer & Information Science CUNY Brooklyn College. 4/19/2018 CUNY Brooklyn College

Storage Systems. Storage Systems

Readings. Storage Hierarchy III: I/O System. I/O (Disk) Performance. I/O Device Characteristics. often boring, but still quite important

EIDE Disk Arrays and Its Implement

Computer Science 146. Computer Architecture

CSE 153 Design of Operating Systems

Reducing Disk Latency through Replication

Chapter-6. SUBJECT:- Operating System TOPICS:- I/O Management. Created by : - Sanjay Patel

Resource Management on a Mixed Processor Linux Cluster. Haibo Wang. Mississippi Center for Supercomputing Research

Che-Wei Chang Department of Computer Science and Information Engineering, Chang Gung University

I/O, Disks, and RAID Yi Shi Fall Xi an Jiaotong University

Disk to Disk Data File Backup and Restore.

Chapter 11: File System Implementation. Objectives

Algorithm Performance Factors. Memory Performance of Algorithms. Processor-Memory Performance Gap. Moore s Law. Program Model of Memory I

RAID SEMINAR REPORT /09/2004 Asha.P.M NO: 612 S7 ECE

Today: Secondary Storage! Typical Disk Parameters!

clients (compute nodes) servers (I/O nodes)

THE IMPLEMENTATION OF A DISTRIBUTED FILE SYSTEM SUPPORTING THE PARALLEL WORLD MODEL. Jun Sun, Yasushi Shinjo and Kozo Itano

Contents. Memory System Overview Cache Memory. Internal Memory. Virtual Memory. Memory Hierarchy. Registers In CPU Internal or Main memory

1. Introduction. Traditionally, a high bandwidth file system comprises a supercomputer with disks connected

Towards a Zero-Knowledge Model for Disk Drives

Figure 1: Representation of moving images using layers Once a set of ane models has been found, similar models are grouped based in a mean-square dist

Chapter 12: Secondary-Storage Structure. Operating System Concepts 8 th Edition,

CHAPTER 6 Memory. CMPS375 Class Notes Page 1/ 16 by Kuo-pao Yang

MEMORY. Objectives. L10 Memory

Memory. Objectives. Introduction. 6.2 Types of Memory

Application. CoCheck Overlay Library. MPE Library Checkpointing Library. OS Library. Operating System

1 PERFORMANCE ANALYSIS OF SUPERCOMPUTING ENVIRONMENTS. Department of Computer Science, University of Illinois at Urbana-Champaign

COSC 243. Memory and Storage Systems. Lecture 10 Memory and Storage Systems. COSC 243 (Computer Architecture)

I/O Management and Disk Scheduling. Chapter 11

Specifying data availability in multi-device file systems

Disks and I/O Hakan Uraz - File Organization 1

CSE325 Principles of Operating Systems. Mass-Storage Systems. David P. Duggan. April 19, 2011

RAID. Redundant Array of Inexpensive Disks. Industry tends to use Independent Disks

Abstract Studying network protocols and distributed applications in real networks can be dicult due to the need for complex topologies, hard to nd phy

Evaluation of Scheduling Algorithms for Real-Time Disk I/O

Module 1: Basics and Background Lecture 4: Memory and Disk Accesses. The Lecture Contains: Memory organisation. Memory hierarchy. Disks.

Address Accessible Memories. A.R. Hurson Department of Computer Science Missouri University of Science & Technology

CSE 153 Design of Operating Systems Fall 2018

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 20 Dr. Kuo-pao Yang

Storage System COSC UCB

A Freely Congurable Audio-Mixing Engine. M. Rosenthal, M. Klebl, A. Gunzinger, G. Troster

Chapter 12: Mass-Storage

V. Mass Storage Systems

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy (Cont.) Storage Hierarchy. Magnetic Hard Disk Mechanism

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy. Storage Hierarchy (Cont.) Speed

Transparent Access to Legacy Data in Java. Olivier Gruber. IBM Almaden Research Center. San Jose, CA Abstract

I/O CANNOT BE IGNORED

Data Storage and Query Answering. Data Storage and Disk Structure (2)

Computer Overview. A computer item you can physically see or touch. A computer program that tells computer hardware how to operate.

Monday, May 4, Discs RAID: Introduction Error detection and correction Error detection: Simple parity Error correction: Hamming Codes

Concepts Introduced. I/O Cannot Be Ignored. Typical Collection of I/O Devices. I/O Issues

Mass-Storage. ICS332 - Fall 2017 Operating Systems. Henri Casanova

Lecture 17 Introduction to Memory Hierarchies" Why it s important " Fundamental lesson(s)" Suggested reading:" (HP Chapter

Virtual Memory. Reading. Sections 5.4, 5.5, 5.6, 5.8, 5.10 (2) Lecture notes from MKP and S. Yalamanchili

CS3600 SYSTEMS AND NETWORKS

Tape pictures. CSE 30341: Operating Systems Principles

BBM371- Data Management. Lecture 2: Storage Devices

Design and Performance Evaluation of an Optimized Disk Scheduling Algorithm (ODSA)

Mladen Stefanov F48235 R.A.I.D

I/O Systems and Storage Devices

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

Input/Output Management

Introduction to I/O and Disk Management

Memory hierarchy and cache

Introduction to I/O and Disk Management

Data Storage and Disk Structure

FEATURE. High-throughput Video Data Transfer of Striping with SSDs for 8K Super Hi-Vision

Adaptive Methods for Distributed Video Presentation. Oregon Graduate Institute of Science and Technology. fcrispin, scen, walpole,

Current Topics in OS Research. So, what s hot?

I/O CANNOT BE IGNORED

Storing Data: Disks and Files

CSE 451: Operating Systems Spring Module 12 Secondary Storage

CSE 451: Operating Systems Winter Secondary Storage. Steve Gribble. Secondary storage

\Classical" RSVP and IP over ATM. Steven Berson. April 10, Abstract

Reliable Computing I

Chapter 10: Mass-Storage Systems

CSE 451: Operating Systems Spring Module 12 Secondary Storage. Steve Gribble

Enhancing Integrated Layer Processing using Common Case. Anticipation and Data Dependence Analysis. Extended Abstract

2 Data Reduction Techniques The granularity of reducible information is one of the main criteria for classifying the reduction techniques. While the t

CMSC 424 Database design Lecture 12 Storage. Mihai Pop

Appeared in the Proceedings of the Computer Measurement Group (CMG) Conference, December 1995, pp

Chapter 6 Objectives

CSCI-GA Database Systems Lecture 8: Physical Schema: Storage

Memory Management. CSE 2431: Introduction to Operating Systems Reading: , [OSC]

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Computer Architecture ECE 568

Transcription:

HRaid: a Flexible Storage-system Simulator Toni Cortes Jesus Labarta Universitat Politecnica de Catalunya - Barcelona ftoni, jesusg@ac.upc.es - http://www.ac.upc.es/hpc Abstract Clusters of workstations are becoming a quite popular platform to run high-performance applications. This fact has stressed the need of highperformance storage systems for this kind of environments. In order to design such systems, we need adequate tools, which should be exible enough to model a cluster of workstations. Currently available simulators do not allow heterogeneity (several kind of disks), hierarchies or resource sharing (among others), which are quite common in clusters. To ll this gap, we have designed and implemented HRaid, which is a very exible and easy to use storagesystem simulator. In this paper, we present this simulator, its main abstractions and some simple examples of how it can be used. Keywords: Storage-system modeling and simulation, Heterogeneous RAIDs, Cluster computing 1 Introduction One of the main characteristics of a cluster of workstations is its ability to grow whenever needed. If more storage space is required, a new disk can be easily attached. This ends up making it very dicult to have an homogeneous set of disks, unless all disks are replaced when a new one is bought. All simulation tools that are currently available assume a set of homogeneous components [1, 2, 3]. This kind of tools is adequate to simulate storage system for parallel machines, but it lacks the exibility to study the performance of an I/O system for a cluster of workstations. It is also quite common, in a cluster, to have This work has been supported by the Spanish Ministry of Education (CICYT) under the TIC-98-0511 contract. plenty of resource sharing within a storage system. Most tools do not take into account the eect of network or CPU contention. These issues cannot be left aside as the performance may depend on them heavily. We believe that it is very important to have tools that allow researchers to see the eect of a given policy using more real models than the ones currently available. HRaid is a new tool that gives the possibility to researchers to model heterogeneous storage system such a RAIDs where the disks are not homogeneous. It can also be used to model hierarchies of RAIDs or any other kind of networkdistributed system due to its great conguration exibility. Of course, it also allows to model traditional environments with homogeneous components, or even single disk systems. Furthermore, it is also exible enough to allow any researcher to add new components or new models for already existing components (such as disks or networks). In this paper, we will present the main functionalities of this new tool and the components that have already been implemented, which should be enough for most research works. 1.1 Kind of Problems to be Addressed Using HRaid To get a better idea of how this new tool could be used, we present a few example questions that can be answered using it. What is the eect of heterogeneity in a network RAID? How is the performance aected if a new and faster disk is added to the RAID system? Is it worth to buy

the fastest disk or with a slower one the same performance will be achieved? Are there better placement algorithm to be used when a RAID is not homogeneous? Which ones are them? How important is to place les in the disk which is closer to the application using it? When partitioning les (as done in Vesta [4] or PIOUS [5]) among heterogeneous disks, how should the sizes of the partitions be? How important is the network when implementing a distributed storage system? 1.2 Related Work As far as we know, there are no tools as exible as the one we present in this paper. All the simulators we have found are very specialized ones. They simulate single disks, a set of independent disks, or even RAIDs, but all of them can only model very specic and pre-dened storage systems. Our simulator no only models RAIDs but can be used to simulate any kind of storage system. It can simulate network attached I/O systems, disk sharing among nodes, hierarchical storage systems, etc. Furthermore, it can simulate very detailed disks and large storage systems, all at the same time, which allows much more reliable results. Ruemmler and Wilkes presented a disk model [6] that is widely used in many disk simulators. This model is the one we have used for our disk module although we are planning to improve it and adapt it to new concepts such as varying data density. The disk simulator implemented by Kotz [2] is a good example of a simulator that follows this model. RAIDFrame [1] is framework for rapid prototyping and evaluation of redundant disk arrays. This tool models RAIDs as acyclic graphs, which is a quite intuitive way to specify them. The problem with this tool is that it is specially designed to work with RAIDs and that no simple extension can be done to implement heterogeneous RAIDs or more complex storage-systems. Finally, the tool that is closer to the one we present in this paper is DiskSim [3]. DiskSim is a high-congurable and very detailed disk system simulator. Although many storage systems can be congured, systems such as heterogeneous RAIDs are not possible (at least in the current version). HRaid is more exible, powerful and easy to use, but DiskSim has a more detailed disk model, which probably makes it more accurate. Anyway, we plan to improve our modules to match their accuracy in a short period of time. 2 Simulation Model 2.1 Model Abstractions In this section, we will describe the abstractions used to model a storage system for a cluster of workstations in HRaid. Drive: Disk & Controller Any storage system must have a place where the data is permanently stored. The disk is the abstraction oered by HRaid to perform this task. Although we use the term disk, this abstraction refers to any device that can be used to store permanent data as could be a disk, a tape, a CD-ROM, etc. Disks need a processing unit, or controller, to manage their behavior. The controller has to position the head on the correct block and to request the transfer. It is also in charge of the communication between the disk and the upper-level requester, and in many cases it manages a small cache to increase the performance. To model this component, we have dened the controller abstraction, which represents the hardware card that controls a disk or a tape. As a disk always needs a controller to be able to work, we have grouped them in a new abstraction named drive that connects a controller to a disk. We have decided to oer separated abstractions for disks and controllers to increase the exibility of HRaid. In this way,

Storage System Drive Controller Disk Drive Controller Disk Distributor Network Storage System Figure 1: Schema of all the abstractions oered by HRaid. we can study what would happen if a given disk was managed by several dierent controllers. A schema of how these abstractions are related can be seen in Figure 1. Storage System: Distributor & Network As this tool is specially aimed at studying the behavior of storage systems for clusters of workstations, we want to be able distribute data among disks emulating any system one can think of. We want to be able to simulate RAIDs, systems that place les in the disk that it is closer to the node that most frequently use them, or even le partitioning as done by PI- OUS [5] or Vesta [4]. This software/hardware which is in charge of distributing data among disks is what we have called a distributor. A parallel/distributed le system would be a software distributor while a RAID card controller would be a hardware distributor. Our simulator does not make any dierence between hardware or software as they are only two dierent ways to implement a distribution algorithm. For a distributor to be able to use several disks, it needs some kind of network to distribute the data onto those disks. This network can either be a SCSI bus, an Ethernet or any other hardware that could be used for communication. This is another of the abstractions we propose. As a distributor will always need a network to distribute the data among the dierent disks, we have grouped these two abstraction in what we call a storage system. A storage system, besides distributor and network, also needs to have a set of drives in where to keep the data (Figure 1). Storage Devices While describing the storage system, we have assumed that the data is distributed among drives. This is not necessarily so as we could also want to distribute the data among other storage system making some kind of hierarchy. For this reason, we say that a storage system distributes its data among storage devices that can either be a drive or a storage system (Figure 1). 2.2 Simulation and Modules Now that we have gone over the abstractions oered by HRaid, it is a good time to see how the simulator works. The main function of HRaid is to manage events that go from one instance of a given abstraction to another one. It takes track of the time and delivers events, whenever they are triggered, to the correct abstraction instance. The rest of the code is made of modules that implement instances of any of the following abstractions: disk, controller, network or distributor. Of course, the current version of HRaid has the most common modules already implemented and ready to be used (Section 2.4). Modules are an implementation of a given model for one of the abstractions. For instance a SCSI-bus module is an instance of the network abstraction. In order to be able to plug modules together, the code has to conform the following simple rules: A module can only interact with other modules through a pre-dened interface. This interface allows modules to send/receive data to/from other modules and to request certain operations from other modules. In table 1, we can see this interface between modules.

Abstraction Abstraction Function that has it that uses it Disk Controller request data Controller Network deliver request Network Distributor send request Distributor send reply Controller send reply Distributor grab network Controller grab network Distributor release network Controller release network Distributor send data Controller send data Distributor Network deliver request Table 1: Interface between modules. Heterogeneous Network RAID RAID 5 Bus Node 0 Node 1 Node 2 Node 3 Slow Drive Slow Drive A module can only insert and extract events for itself. All modules must have an entry function that it is called by the event manager whenever an event for that module is triggered. As we can see, modules are quite independent one from the other. This simplies the programming of new modules as no special care has to be taken to be able to use new modules with older ones. This freedom of connection between modules is what makes HRaid so exible that it can model nearly any kind of storage system. 2.3 Some Examples To clarify how these abstractions can be used, we present a set of storage systems and how they are modeled using HRaid. Heterogeneous Network RAID In this example, we have a cluster of workstations where nodes are connected through a bus-type network. We also have four disks attached one to each node. Among these disks, we have two fast and two slow ones. In this environment (shown in Figure 2), we want to build a network RAID level 5. HRaid allows us to model this storage system and to study the eect that the load unbalance may have on Figure 2: Heterogeneous Network RAID. the performance. It can also help us to see the eect of sharing the bus, etc. To model this storage system, we need two distributor modules: one RAID level 5 and one forwarder, which only forwards the request it receives to its attached disk. We also need two network modules: one SCSI bus and one Ethernet bus. And nally, we need the slow and fast controller and disk modules. Network-attached RAID In this second example, we have a networkattached RAID that is part of two independent storage systems. Both hosts share the RAID that it is connected to a shared bus. Figure 3 presents a schema of this environment. To model this environment we need to de- ne two storage systems (SS1 and SS2) that are connected to a RAID through a bus. Both the bus and the RAID are shared and this is specied by giving them a name (SBus and SNAR), which is used in both storage-system denitions. RAIDs level 10 and 53 Besides the typical RAID levels (0-5), a combination between basic levels has also been proposed. For instance a RAID level 10 is a RAID level 0 where each segment is RAID level 1.

SS1 SS2 Sequential FS Sequential FS Bus [SBus] Bus [SBus] Network-attached Network-attached RAID [SNAR] RAID [SNAR] Network-attached RAID RAID 4 SBus SNAH Physical geometry Transfer rate Seek/search overhead sector size sectors per track tracks per cylinder cylinders revolutions per minute track-switch overhead track skew cylinder skew head-movement overhead Figure 3: Network-attached RAID. This kind of combinations are extremely easy to model in HRaid. We only have to congure a RAID level 0, where each device system is a RAID level one. In a similar way, we may dene a RAID level 53 which is a combination between levels 3 and 0. Although this is not necessarily a network example, it shows the exibility of our tool. All pieces can be mixed together to make more complicated system with very little (or none) eort. 2.4 Implemented Modules So far, we have implemented the most common modules to be able to start using the simulation to perform some research. In this section, we describe them and present the parameters that can be used to modify their behavior. Disk Controller and Drive The disk drive and the controller implemented follow the denition proposed by Ruemmler and Wilkes [6]. This is a quite detailed model of disks and controller which is currently being used in most disk simulators. In Tables 2 and 3 we present the parameters needed to model a controller and a disk as proposed in the afore mentioned paper. CPU consumption Cache information Transfer information Bus Table 2: Disk parameters new-command overhead block size cache size read ahead (Yes/No) read fence write fence immediate report (Yes/No) done message size Table 3: Controller parameters The only network that has been implemented so far is a bus-based network. We believe that this is the most general kind of network and will be most useful in many cases. The way we have modeled the bus is a simple, but widely used, one based on latency and bandwidth. The latency models the time needed to start a communication while the bandwidth is used to compute the real time needed to send a message through the bus. This bus only allows one message at a time, which simulates the network contention that can be found in a real net. This is very important as it can make a big dierence if all the disks in a RAID are connected through a BUS, which is the most common case [7]. Sequential File System (or forwarder) This module is basically oered for users that only want to work with a single disk or a hardware RAID. The only thing it does is to receive

CPU consumption Transfer information RAID level 1 RAID levels 4 & 5 new-command overhead block size immediate report (Yes/No) request message size read policy parity-computation overhead small-write policy Table 4: RAIDx parameters requests from the trace le and forwards them to the attached device though the network. We could not use a single disk without this module because then we would have no way to model the bus that connects the host to the controller. RAID Finally, we have implemented four modules that emulate the behavior of RAIDs levels 0, 1, 4 and 5 as described by Chen et al. [7]. It is important to notice that all these RAID can distribute the blocks either over drivers or over other storage systems. It is also very important to realize that RAIDs do not need to be homogeneous: we can have a RAID with two fast disks and four slow ones. The possible parameters used to dene the behavior of a RAID are presented in Table 4. Among all of them, I would like to explain three of them that my not be clear just by their name. The rst one is the read policy needed for RAIDs level 1. This parameter tells the module how to chose between the two copies of a block in a read operation. The two implemented options are random and shortest-queue rst [8]. For RAIDs level 4 and 5 we have also implemented two small-write policies: read write modify and regenerate write [8]. Finally, we have also allow immediate reporting, which means that the distributor will send a done message as soon as all data is in its buers, even if no data has already been physically written. milliseconds 250 200 150 100 50 0 Read Write 0F4S 1F3S 2F2S 3F1S 4F0S Figure 4: Read and write performance for a RAID1. 2.5 Model Validation All modules already implemented have been validated by comparing their results to the ones obtained experimentally from real systems. The disk is the only exception as we are trying to obtain real traces from a real disk. Anyway, we compared it to the simulator already implemented by Kotz [2]. When comparing both simulators all requests diered less than 0.2%. As this simulator was already validated, it also validates our implementation. 3 Using HRaid in Simple Examples To illustrate some of the issues that can be studied with this new tool, we present two simple, but interesting, examples. Figures 4 and 5 present the performance of a RAID1 and a RAID5 congurations while varying the kind of disks used to build them. In both examples, we used two kinds of disks: slow and fast. The fast disk was nearly twice as fast as the slow one. Each bar in the graph represents a RAID conguration varying the number of fast disks (F) and slow ones (S). In Figure 4, we can see that in a RAID level 1, changing slow disks by fast ones, only makes sense if you change half of them. In that case, read operation are improved quite a lot as the fastest disks are used for reading. On the other hand, write operations are not improved by changing slow disks by fast ones because all

milliseconds 200 150 100 50 0 Read Write 0F4S 1F3S 2F2S 3F1S 4F0S Figure 5: Read and write performance for a RAID5 (regenerate-write for small writes). disks are needed to perform a write operation. Actually, the performance is decreased. This happens because fast disks tend to use the network more greedily while the slow ones, which are the bottleneck, have to wait for the network. This increases their response time, decreasing the overall write performance. The results of performing the same experiment in a RAID level 5 is shown in Figure 5. On read operations we can see the eect of network contention as explained for RAIDs level 1. On the other hand, write operations are improved when fast disks are placed because all the small writes that can be done on only fast disks, are done much faster. 4 Conclusions In this paper, we have presented a new tool aimed at simplifying the task of researching on storage systems for clusters of workstations. We have presented its main abstractions, its functionality and some simple examples of how it can be used. Acknowledgments I would like to thank David Kotz for allowing us to use his disk simulator. We learned a lot by examining and using it. References [1] W. V. Coutright, G. Gibson, M. Holland, and J. Zelanka. A structured approach to redundant disk array implementation. In Proceedings of the International Computer Performance and Dependability Symposium, September 1996. [2] D. Kotz, S. B. Toh, and S. Radhakrishnan. A detailed simulation model of the HP- 97560 disk drive. Technical Report PCS- TR94-220, Department of Computer Science, Dartmouth College, July 1994. [3] G. R. Ganger, B. L. Worthington, and Y. N. Patt. The DiskSim Simulation Environment. Version 1.0 Reference Manual. Department of Electrical Engineering and Computer Science, University of Michigan, February 1998. (Technical report number CSE-TR-385-98). [4] P. F. Corbett and D. G. Feitelson. The Vesta parallel le system. ACM Transaction on Computer Systems, 14(3):225{264, August 1996. [5] S. A. Moyer and V. S. Sunderam. PIOUS: A scalable parallel I/O system for distributed computing environment. In Proceedings of the Scalable High Performance Computing Conference, pages 71{79, 1994. [6] Chris Ruemmler and John Wilkes. An introducction to disk drive modeling. IEEE COMPUTER, pages 17{28, March 1994. [7] P. M. Chen, E. K. Lee, G. A. Gibson, R. H. Katz, and D. A. Patterson. RAID: Highperformance and reliable secondary storage. ACM Computing Surveys, 26(2):145{ 185, 1994. [8] S. Chen and D. Towsley. A performance evaluation of RAID architectures. IEEE Transactions on Computers, 45(10):1116{ 1130, October 1996.