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

Similar documents
RAID4S: Improving RAID Performance with Solid State Drives

Moneta: A High-performance Storage Array Architecture for Nextgeneration, Micro 2010

MODERN FILESYSTEM PERFORMANCE IN LOCAL MULTI-DISK STORAGE SPACE CONFIGURATION

Parallelizing Inline Data Reduction Operations for Primary Storage Systems

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

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

Presented by: Nafiseh Mahmoudi Spring 2017

Computer Organization and Structure. Bing-Yu Chen National Taiwan University

Moneta: A High-Performance Storage Architecture for Next-generation, Non-volatile Memories

Linux Storage System Analysis for e.mmc With Command Queuing

Linux storage system basics

Delayed Partial Parity Scheme for Reliable and High-Performance Flash Memory SSD

Storage. Hwansoo Han

I/O CANNOT BE IGNORED

Operating Systems 2010/2011

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

LETTER Solid-State Disk with Double Data Rate DRAM Interface for High-Performance PCs

Using Transparent Compression to Improve SSD-based I/O Caches

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

Adaptation of Distributed File System to VDI Storage by Client-Side Cache

Differential RAID: Rethinking RAID for SSD Reliability

Chapter 14 HARD: Host-Level Address Remapping Driver for Solid-State Disk

Solid-state drive controller with embedded RAID functions

Architectural Issues for the 1990s. David A. Patterson. Computer Science Division EECS Department University of California Berkeley, CA 94720

Storage Devices for Database Systems

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

Storage. CS 3410 Computer System Organization & Programming

AD910A M.2 (NGFF) to SATA III Converter Card

Frequently asked questions from the previous class survey

Chapter 6. Storage and Other I/O Topics

Design and Implementation of a Random Access File System for NVRAM

File Memory for Extended Storage Disk Caches

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

Quiz for Chapter 6 Storage and Other I/O Topics 3.10

EIDE Disk Arrays and Its Implement

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

CSC Operating Systems Spring Lecture - XIX Storage and I/O - II. Tevfik Koşar. Louisiana State University.

RAID Structure. RAID Levels. RAID (cont) RAID (0 + 1) and (1 + 0) Tevfik Koşar. Hierarchical Storage Management (HSM)

Minerva. Performance & Burn In Test Rev AD903A/AD903D Converter Card. Table of Contents. 1. Overview

Optimization of thread affinity and memory affinity for remote core locking synchronization in multithreaded programs for multicore computer systems

Computer Architecture Computer Science & Engineering. Chapter 6. Storage and Other I/O Topics BK TP.HCM

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

Mass-Storage Structure

Implementation and Performance Evaluation of RAPID-Cache under Linux

Chapter 6. Storage and Other I/O Topics

Mass-Storage Structure

MINERVA. Performance & Burn In Test Rev AD912A Interposer Card. Table of Contents. 1. Overview

PC-based data acquisition II

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

Proceedings of the Linux Symposium. July 13th 17th, 2009 Montreal, Quebec Canada

I/O Topology. Martin K. Petersen Oracle Abstract. 1 Disk Drives and Block Sizes. 2 Partitions

Azor: Using Two-level Block Selection to Improve SSD-based I/O caches

OPERATING SYSTEM. PREPARED BY : DHAVAL R. PATEL Page 1. Q.1 Explain Memory

* Department of Computer Science Jackson State University Jackson, MS 39217

Outlines. Chapter 2 Storage Structure. Structure of a DBMS (with some simplification) Structure of a DBMS (with some simplification)

SUPERTALENT ULTRADRIVE LE/ME PERFORMANCE IN APPLE MAC WHITEPAPER

Toward Seamless Integration of RAID and Flash SSD

Lecture 23. Finish-up buses Storage

Chapter 12: Mass-Storage

RAID (Redundant Array of Inexpensive Disks)

Chapter 12: Mass-Storage

FhGFS - Performance at the maximum

Chapter 6. Storage and Other I/O Topics. ICE3003: Computer Architecture Fall 2012 Euiseong Seo

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

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

I/O CANNOT BE IGNORED

Chapter 12: Mass-Storage

Stupid File Systems Are Better

Guide to SATA Hard Disks Installation and RAID Configuration

Onyx: A Prototype Phase-Change Memory Storage Array

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

Introduction to I/O and Disk Management

I/O Systems. Jo, Heeseung

File. File System Implementation. Operations. Permissions and Data Layout. Storing and Accessing File Data. Opening a File

Lectures More I/O

Yiying Zhang, Leo Prasath Arulraj, Andrea C. Arpaci-Dusseau, and Remzi H. Arpaci-Dusseau. University of Wisconsin - Madison

Introduction to I/O and Disk Management

Virtual Allocation: A Scheme for Flexible Storage Allocation

COMP283-Lecture 3 Applied Database Management

2011/11/04 Sunwook Bae

D E N A L I S T O R A G E I N T E R F A C E. Laura Caulfield Senior Software Engineer. Arie van der Hoeven Principal Program Manager

Survey on Virtual Memory

The Impact of Write Back on Cache Performance

Chapter 6 Storage and Other I/O Topics

SAY-Go: Towards Transparent and Seamless Storage-As-You-Go with Persistent Memory

P2FS: supporting atomic writes for reliable file system design in PCM storage

Mission-Critical Enterprise Linux. April 17, 2006

SMCCSE: PaaS Platform for processing large amounts of social media

Enabling Cost-effective Data Processing with Smart SSD

RDMA-like VirtIO Network Device for Palacios Virtual Machines

An Analysis on Empirical Performance of SSD-Based RAID

Guide to SATA Hard Disks Installation and RAID Configuration

Computer Science 61C Spring Friedland and Weaver. Input/Output

Empirical Analysis on Energy Efficiency of Flash-based SSDs

Pharmacy college.. Assist.Prof. Dr. Abdullah A. Abdullah

Kartik Lakhotia, Rajgopal Kannan, Viktor Prasanna USENIX ATC 18

Chapter 6. Storage and Other I/O Topics. ICE3003: Computer Architecture Spring 2014 Euiseong Seo

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

SPIN: Seamless Operating System Integration of Peer-to-Peer DMA Between SSDs and GPUs. Shai Bergman Tanya Brokhman Tzachi Cohen Mark Silberstein

High Performance SSD & Benefit for Server Application

Transcription:

Linux Software RAID Level Technique for High Performance Computing by using PCI-Express based SSD Jae Gi Son, Taegyeong Kim, Kuk Jin Jang, *Hyedong Jung Department of Industrial Convergence, Korea Electronics Technology Institute, Korea jgson@keti.re.kr, taegyeong@keti.re.kr, kjang@keti.re.kr, *hudson@keti.re.kr Abstract The Linux-based legacy server systems are configured and used with software RAID to improve the performance of the disk I/O. Server systems requiring high performance prefer a special SSD that connects directly with the PCI-express bus to the SATA interface. However, the problem is that the current Linux kernel and software RAID are difficult to optimize the high-performance SSD based on PCI-Express because it is designed to be optimized for the conventional hard disk. Therefore, we propose the efficient method using re-combination and remapping techniques to improve the performance of software RAID level- provided on the Linux kernel level. This proposed method is designed to have more bandwidth at a time by reducing the number of system calls considering the block I/O characteristics of Linux kernel and RAID level. As a low-level I/O benchmarking tool, XDD is used to evaluate the performance of the proposed method. According to the experimental results, our performance gains are 28.4% on write bandwidth and 13.77% on read bandwidth compared with legacy software RAID. Moreover, CPU occupancy rates are decreased 81.2% and 77.8%, respectively. Keywords Software RAID, PCI-E Express SSD, High Performance Computing, Disk I/O, Memory Block Device 1. INTRODUCTION As big data, parallel and distributed processing become widespread, the demand for high-speed data storage technologies continues to rise. Moreover, more recent applications require fast response time with high throughput. However, as hard-disk inputoutput speed depends on mechanical movement, the speed lacks in comparison to processor and network transfer speed. Therefore, flash-memory based SSD have been increasingly used in personal computers and laptops and research is actively pursued related to non-volatile memory [1]. Currently companies such as FusionIO, Intel, etc. have developed and commercialized PCI-Express based high performance SSD products. Unlike SSD based on the common SATA interface, PCI-Express based SSD directly access the system bus architecture. Therefore, in this paper we designate all such devices as memory block devices. Despite the improved performance of PCI- Express based SSD when compared to hard disk drives of SATA SSD, system using such devices are configured using software RAID (Redundant Array of Inexpensive Disks). This is due to the nonexistence of hardware-level RAID for SSD. Therefore in most Linux systems, software RAID (MD: Multiple Disk) is used to improve performance. However, the software RAID provided with standard Linux distributions was developed without consideration for high-speed block devices resulting in suboptimal performance when used with block devices. This is due to the fact that software RAID does simple mapping of input-output (IO) requests to the actual devices which are collected and optimized by the IO scheduler. In the case of high-speed block memory devices, as the devices are connected directly to the system bus in order to improve performance, the IO Scheduler does not exist. Therefore, a need exists to design the architecture for software RAID taking memory block devices into consideration. Therefore, in this paper we propose a method for improving the performance when applying software RAID Level provided by standard Linux distributions. The proposed method has the following characteristics: First, the number

of system calls within the Linux system is reduced to lower processor overhead. Second, the fast response times and high throughput of memory block devices are considered to improve the performance of software RAID. accessed in parallel, performance improves when compared to using a single device. The paper is organized as follows. In section 2, the technological background is described followed by an explanation of the proposed method for software RAID Level for PCI-Express based highperformance SSD. Section 3 describes proposed method and error handling. In section 4, the performance is evaluated. Section 5 is the conclusion and direction for future research. 2. BACKGROUND In Linux, two general approaches for software RAID are provided. These are the multiple disk (MD) and device mapper (DM). Though these two methods are similar, MD was developed with RAID considerations. DM was developed for virtual block devices resulting in a framework which allows for direct access to real block devices. In this section we concentrate on MD which has shown better performance comparatively. Figure 1. General disk hierarchy (left) and general hierarchical structure of an MD device. (right) The MD provided by the Linux kernel handles 'bio request' in the sequence depicted in Figure 2 in order to execute IO on the actual device. 2.1 RAID LEVEL IN MD An MD device is a Linux virtual block device consisting of several disk drives combined together to provide larger capacity and improved reliability [2]. Figure 1 depicts the general hierarchical structure of an MD device and general disk hierarchy. From Figure 1, MD functions as a virtual device between the file system layer and the block device layer. The virtual MD layer receives IO requests and distributes them accordingly to the underlying disk layer. RAID Level comprised of data striping to provide improved performance. In general, RAID systems interleave sections of consecutive data on different devices in order to improve parallelism. These sections of data which are interleaving and allow parallel access are called stripes [3]. For example, for writing 1MB file, the files are divided into sections of 64KB and recorded by interleaving the section across each of the disks. Even though the data itself is not Figure 2. RAID level processing of an MD Additionally, the procedure for handling of 'bio request' is shown in Code 1. As shown in Code 1, the key procedure of software RAID can be analyzed as follows: 1. From the software RAID device of bio (bio bi_bdev) passed to the 'generic make request()' function, a function call is made to the callback 'md make request'

2. The 'md make request ()' function makes a subsequent call to the proper 'make request' function depending on the RAID Level. For RAID Level, the 'raid make request()' function is called 3. From the RAID Level handler 'raid make request ()' analyzes the sector and size of the bio passed to the function and maps it to the actual device such as a hard disk drive. For bio which exist across two block devices are divided and mapped accordingly. 4. The mapped block device make a call once again to the 'generic make request' and passes the 'bio request' to the actual device 1. generic_make_request() Call make_request followed by bio->bi_bdev. 2. md_make_request() Call raid_make_request for raid module. 3. raid_make_request() Check real block device to process the request, map bio->bi_bdev to the block device 4. generic_make_request() Send switched bio->bi_bdev. 5. make_request() Insert request to request queue of real block device. 6. Process request in real block device. Code 1. Procedure of request in MD As can be seen in the key highlight of the MD handling procedure, sequential IO events occur and in the case of large data recursive calls can result in drawbacks of high system overhead. In particular, performance improvement is limited due to the IO characteristics of disk devices and the stripe-level transfer of data for conciseness of software RAID. In the case of memory block devices with fast response times and high throughput, random memory access is possible therefore it is advantageous to send as much data as possible. However, the current software RAID is unable to utilize such characteristics. 2.2 DEVICE MAPPER The device mapper was not originally developed for RAID but as a framework for storage devices. Thus the architecture allows for direct mapping of a virtual block device to an arbitrary physical device. DMRAID was developed to add support for RAID in DM [4]. 3. LINUX SOFTWARE RAID LEVEL TECHNIQUE FOR PCI-EXPRESS BASED HIGH-PERFORMANCE SSD 3.1 PROPOSED RAID LEVEL TECHNIQUE PCI-Express based high performance SSD have greatly improved IO performance when compared to general disk drives. However, as the current Linux IO layer is optimized for low-speed devices, it is unable to utilize the full performance potential of high speed block devices. Unlike slower hard disk drives, highspeed memory block devices are directly connected to the PCI-Express bus and therefore is unaffected by the Linux IO scheduler. Moreover, as the architecture of direct memory access (DMA) is organized in Scatter-Gather structure, which allows for transfer of non-consecutive segments of memory, large data transfers are possible. The proposed methods was designed to operate under the following assumptions. The memory block device is a device with fast response time and high throughput supports random access in a Scatter-Gather DMA structure. Analyzing the MD procedure from the Linux kernel under this assumption, an increase in performance can be expected from sending the first bio (block IO) and the (number of devices)*n+1 bio. Figure 3 depicts how the Linux kernel IO process when the strip size is 4 KB. Each 4KB bio is added on the underlying physical device in sequence. Figure 3. Block IO process in MD of Linux kernel As can be seen in Figure 3, bio1 and bio5 occur on the same physical device. A significant gain in performance can occur if bio1 and bio5 can be

processed in one IO event. In Figure 4, a total of 6 system calls occurs to transfer 24KB. In other words (Number of system calls) = (IO Data size) / (stripe size). Taking into consideration the characteristics of the 'bio request' and the MD process of the Linux kernel, and the assumption of low delay and high throughput of the high-speed memory block device the following methods are proposed: 1. Variable-length IO: The fixed stripe size of the bio request of MD is changed to allow variable length 2. Remapping & Reassemble: Remapping and reassemble occurs taking into consideration the characteristics of RAID Level of MD To support high-speed memory block devices such as PCI-Express based SSD according to the proposed RAID Level method, the included software RAID Level of the standard Linux kernel was modified and improved according to the proposed method. The improved software RAID in this paper is designated as. 3.2 ERROR HANDLING Figure 4. Proposed RAID Level method If we can combine IO data then, (Number of system calls) = (IO Data Size/Max Page Cache size +1) * Stripe Size, and in the case of Figure 4, the number of system calls is reduced to 4. The maximum allocation size for page cache is 1MB for the Linux kernel. However, allocating a large cache size results in a significant overhead cost. Though the stripe size of software RAID can be increased to improve performance, this results in a tradeoff of IO occurring on only a subset of the devices. For example, with 4 devices with a stripe size of 512KB and an IO of size 124KB results in IO on only 2 device. However, the proposed method allows for IO to occur distributed evenly across all devices. In IO systems, error handling is an important factor that has a significant impact on performance. bio of the applied with the proposed method generates a new 'bio request' through remapping & reassembly. The error handling of the newly generated 'bio request' is forwarded to the Linux 'bio error handler'. 4. PERFORMANCE EVALUATION 4.1 EVALUATION ENVIRONMENT The performance of the proposed method for software RAID Level was evaluated using the PCI- Express based 91 SSD from Intel. The Intel 91 SSD is configured with 2 physical SSD on a single interface card. For the performance evaluation, 2 interface cards were connected to PCI-Express 4x for a total of 4 physical SSD. The specifications of the evaluation environment are shown in detail in Table 1. We used CentOS with 2.6.32_x86_64 kernel and set the stripe size to 496 bytes. Intel Xeon X555 and 8GB memory were used for the system.

Table 1. Evaluation environment Specification the write bandwidth of achieved an improvement in performance on average of 28.24%. CPU Xeon X555 * 2EA 18 RAM 8GB 16 OS CentOS Linux 6. (final) 14 Kernel SSD Device Stripe Size 2.6.32_x86_64 Intel 91 SSD (2Gx4ea): PCI- E 496 bytes Bandwidth (MB/s) 12 1 8 6 4 2 For evaluation, the stripe size was set to 4KB using the mdadm utility of MD. For comparison, an unmodified MD installed by default on CentOS 6. was used with the same environment to compare measurements of CPU usage and IO bandwidth. The performance evaluation tool XDD was used [5]. The XDD benchmark is a tool to measure disk performance and can be used to analyze low-speed IO in software RAID. The tool is commonly used to effectively evaluate block device performance. The XDD performance test was set to run with IO on 16 threads to allow operation under a regular system load. 4.2 EXPERIMENTAL RESULTS The developed software RAID Level showed optimal performance with IO of size greater than (number of disk times stripe size) due to the characteristics of the key operating algorithm. From Figure 5 comparing the write bandwidth, it can be seen that the bandwidth greatly improves with. When the IO size is 4-16 KB, the results are similar to the characteristics of RAID Level. In this case, the request are handled as sequential writes to a single memory block device. There is a slight performance degradation when the IO size in 8KB. When the IO size is 32 ~ 124 KB, significant gains in performance is achieved by the proposed method. When the size is over 248 KB, it was analyzed that performance improvements are no longer achieved due to the fact that the size is over the maximum page cache allocation of Linux. Overall, CPU Usage on 48 core (%) Figure 5. Comparison of writing throughput 5 4 3 2 1 4 8 16 32 64 128 256 512 124 248 496 4 8 16 32 64 128 256 512 124 248 496 Figure 6. Comparison of CPU usage in writing Figure 6 compares the CPU usage from the evaluation. From the results, the overall CPU usage across all sizes is less with. This was analyzed to be due to the proposed methods remapping and reassembly, which results in a significant reduction in the number of system calls. As shown in Figure, the CPU usage is reduced by an average of 77.8%. The results for read performance were also improved in general as shown in Figure 7. As before with the result of write bandwidth, similar performance when compared with MD is shown for sizes of 4-16KB due to the characteristics of RAID

Level. However, for IO sizes of 32-128 KB, the memory allocation of the proposed method was analyzed to be the cause of the performance degradation in page caching. In general, the read bandwidth showed an improvement of about 13.77% on average. Bandwidth (MB/s) Figure 7. Comparison of reading throughput The CPU usage for reads is similar to that of write operations as shown in Figure 8. From the figure, the overall CPU usage has been reduced significantly. These results confirm the positive improvements of the proposed system. For read operations there was an average of 81.2% reduction in CPU usage. CPU Usage on 48 core (%) 25 2 15 1 5 6 5 4 3 2 1 4 8 16 32 64 128 256 512 124 248 496 4 8 16 32 64 128 256 512 124 248 496 Figure 8. Comparison of CPU usage in reading From the overall analysis of the entire experimental results, it can be seen that the performance of the proposed method shows significant improvement compared to the software RAID of standard Linux. Moreover, reduction in CPU overhead and improvements in IO performance can lead to improvements in overall system performance. In particular, as shown from the results from XDD experiments, by improving low-level IO performance, the proposed method will lead to significant improvements to systems which do not use page caching such as database systems. 5. CONCLUSION The standard Linux kernel and software RAID is optimized for traditional block devices and is not suitable for current high-speed memory block devices. In the case of server systems which require high performance, limitations are shown in performance despite the use of high-speed memory block devices configure with SW RAID. Therefore, this paper proposed a method which provides a solution to the performance degradation when using high-speed memory block devices with the standard Linux kernel and software RAID Level. The proposed method has the following characteristics. First, the stripe unit of data used in RAID block IO was improved for variable length resulting in a reduction of system call within the Linux kernel. This reduces the overhead of the processor. Second, taking into consideration the fast response time and large bandwidth of the memory block device, the performance of software RAID is greatly improved. In addition, the performance was confirmed through evaluation using the low-level IO performance evaluation tool XDD. Based on the results in this paper, further research is needed to apply the method to RAID Level 4 and Level 5 while improving overall system reliability and safety. Furthermore, research regarding block migration on write operations which occurs due to the characteristics of SSD is needed ACKNOWLEDGEMENT This work was partly supported by the R&D program of MSIP/LEIT [14491, Development of Multimodality Imaging and 3D Simulation-Based Integrative Diagnosis-Treatment Support Software System for Cardiovascular Diseases] and [145299, Development of Integrated Resource Management Solution for VDI Service System].

REFERENCES [1] Alexandre P. Ferreira, Miao Zhou, Santiago Bock, Bruce Childers, Rami Melhem and Daniel Mosse, Increasing PCM Main Memory Lifetime, Proceedings of the Conference on Design, Automation and Test in Europe. European Design and Automation Association, pp.914-919, March 21. [2] Neil Brown, Software RAID in 2.4, Proceedings of linux.conf.au, Sydney, Australia, January 21. [3] Chen, P. M., Lee, E. K., Gibson, G. A., Katz, R. H., Patterson, D. A., RAID: High-Performance, Reliable Secondary Storage, ACM Computing Surveys, Vol.26, No.2, pp.145-185, June 1994. [4] Heinz Mauelshagen, dmraid - device-mapper RAID tool, Proceedings of the Linux Symposium, Vol.1, pp.289-295, Ottawa, Ontario, Canada, July 25. [5] XDD, http://www.ioperformance.com/ [6] A. Brown and D. A. Patterson., Towards Maintainablity, Availabilitsty, and Growth Benchmarks: A Case Study of Software RAID Systems, In Proceedings of the USENIX annual Technical Conference (USENIX ), pp.263-276, San Diego, Carlifornia, June 2. [7] D. Patterson, G. Gibson, and R. Katz., A Case for Redundant Arrarys of Inexpensive Disks(RAID), In Proceedings of the 1988 ACM SIGMOD Conference on the Management of Data (SIGMOD 88), pp.19-116, Chicago, IL, June 1988.