25
University of Amsterdam System & Network Engineering Large Installation Administration Project Performance of remote storage for clouds Authors: Danny Groenewegen [email protected] Pieter Lange [email protected] Abstract The physical location of data is sometimes a problem for companies that want to use cloud services. We have developed a way to bootstrap systems in the cloud for remote storage using iSCSI and a IPsec tunnel and have tested the performance of remote storage systems using different performance characteristics (estimations of public and private clouds). Network latency definitely has an impact on performance no matter what kind of filesystem is used, but when dedicated and reliable connections are available there are still use cases for this. March 28, 2011

Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Embed Size (px)

Citation preview

Page 1: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

University of AmsterdamSystem & Network Engineering

Large Installation Administration Project

Performance of remote storage for clouds

Authors:Danny [email protected]

Pieter [email protected]

Abstract

The physical location of data is sometimes a problem for companies that want to usecloud services. We have developed a way to bootstrap systems in the cloud for remotestorage using iSCSI and a IPsec tunnel and have tested the performance of remote storagesystems using different performance characteristics (estimations of public and privateclouds). Network latency definitely has an impact on performance no matter what kindof filesystem is used, but when dedicated and reliable connections are available there arestill use cases for this.

March 28, 2011

Page 2: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Contents

1 Introduction 2

2 Test environment 3

2.1 The storage server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 Layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2 The bootstrap process for clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.1 Initial ramdisk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.2 IPsec tunnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.2.3 iSCSI initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3 The cloud hosts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.1 Private cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.3.2 Public cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Reference metrics 6

3.1 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3.2 Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3 The storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.1 Iozone graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.2 Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.3.3 Interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.4 The network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.4.1 Private cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3.4.2 Public cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Test results 11

4.1 Public cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1.1 Iozone graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.1.2 Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2 Private cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2.1 Iozone graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2.2 Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

ii

Page 3: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CONTENTS iii

5 Conclusion 14

5.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

A IPsec configuration files 16

A.1 /etc/ipsec-tools.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

A.2 /etc/racoon/racoon.conf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

B Test script 17

C Reference metrics test script 19

iii

Page 4: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

List of Figures

3.1 Baseline read speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

(a) ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

(b) ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

(c) xfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

(d) btrfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.2 Baseline write speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

(a) ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

(b) ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

(c) xfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

(d) btrfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

4.1 Public cloud write speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

(a) ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

(b) ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

(c) xfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

(d) btrfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

4.2 Private cloud write speeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

(a) ext3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

(b) ext4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

(c) xfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

(d) btrfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

iv

Page 5: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

List of Tables

3.1 Baseline Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2 Private cloud round-trip time and bandwidth . . . . . . . . . . . . . . . . . . . . . 10

3.3 Public cloud round-trip time and bandwidth . . . . . . . . . . . . . . . . . . . . . . 10

4.1 Public cloud Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

4.2 Private cloud Bonnie++ results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1

Page 6: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Chapter 1

Introduction

Cloud computing infrastructures are becoming an increasingly important tool for organisations tosave on expenses. Because of the virtualised nature of the resources provided by cloud systemsthese resources can be consolidated and equipment is more efficiently used.

However, tradeoffs have to be made before moving your organisation to the cloud. By deployingyour systems in the cloud instead of maintaining your own infrastructure you relinquish someamount of control over your systems. Processing power, memory space and I/O bandwidth has tobe shared between your own organisation and others. As long as the cloud provider is not over-consolidating resources, this often does not pose a problem. The fact that all persistent storage isunder control of the cloud provider does make some organisations worry about where the data isphysically located and if they still have any control over their data.

If organisations would provide the persistent storage themselves, they would not necessarily losecontrol over their data. Some organisations have access to fast (high bandwidth, low latency) linkswhich could be used to serve storage to the cloud provider. For instance universities with accessto a National Educational Network (NEN) would be likely candidates for community clouds. TheDutch SURFnet network is a prime example of such a NEN. Also, commercial organisations wouldlike to leverage public cloud providers for their processing power and cheap scalability, but do notfeel comfortable with handing over control of their data.

Research question

This made us arrive at the following research question:

How feasible is it to securely deploy systems in cloud architectures using remote iSCSI storage?

This question has been devided in sub-questions:

1. How do we build a secure link to the storage system in the bootstrap phase of the cloudmachine?

2. What filesystems are more suitable when used over iSCSI?

3. What difficulties are involved with storage over the internet?

4. What are the security considerations involved with this solution?

We chose to limit our research to iSCSI block storage due to its availability in the marketplace andthe open standards it encompasses. One of iSCSI’s ‘selling features’ is the ability to transport itover regular TCP/IP networks. We are aware that other protocols such as NFSv4[6] are designedto handle high latency, however these don’t offer the block semantics we’re interested in.

2

Page 7: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Chapter 2

Test environment

2.1 The storage server

Our central storage system consists of a spare server in the OS3 server lab. This machine willserve generic Internet Small Computer System Interface (iSCSI) volumes over IPsec encapsulatedtunnels to virtual machines booting in the cloud. This machine is supposed to be as generic aspossible so we do not lock ourselves into specific use-cases. All measurements taken must becorrelated to baseline tests conducted on this machine, because storage servers are usually a lotfaster.

The hardware specifications of this machine are as follows:

CPUModel Intel(R) Pentium(R) D CPU 3.00GHzL2 Cache 2048 KB

MemoryTotal 2 GB

NetworkModel Broadcom NetXtreme BCM5721 Gigabit Ethernet

StorageDisk model Seagate ST3808110ASSize 80 GBCache 8 MBController Intel N10/ICH7 Family

2.1.1 Layers

Client data has to travel through a substantial amount of layers; each of these layers mightimplement buffers that we have to take into account when performing tests.

We use a dedicated disk as the iSCSI backing store with the Linux Logical Volume Manager (LVM)directly on top of the disk to flexibly partition the physical storage device into logical volumes.We chose the iSCSI Enterprise Target daemon (ietd) as the target software to serve the volumes.

The native Linux IPsec implementation is serving the IPsec tunnels.

Thus, we can identify the following buffers at the storage server:

• Disk cache (physical)

• Various kernel caches, including:

3

Page 8: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 2. TEST ENVIRONMENT 4

– Block cache

– Page cache

– Network stack

• iSCSI Target software

2.2 The bootstrap process for clients

Because cloud providers do not offer the ability to boot from remote storage and we wanted tocreate a system that would be as flexible as possible (would ‘plug in everywhere’). We opted togo for a ‘local’ cloud storage disk with a minimal amount of space reserved for the kernel and aninitial ramdisk. This gave us the added benefit of being able to use remaining space for a localswap disk; for obvious reasons it is undesirable to be swapping memory over the internet. Thisswap space can be initialised with a random cryptographic key on boot.

2.2.1 Initial ramdisk

The initial ramdisk is a temporary filesystem used in virtually every linux machine to makepreparations for mounting the real root filesystem. It is tasked with loading the necessary driversfor hardware and other modules needed, configuring them and finally switching to the real rootas the last step which is called pivot root.

Our system used a generic Ubuntu 8.04 initial ramdisk, extended with IPsec and iSCSI modules.These where statically configured with a ‘hardcoded’ key for IPsec and iSCSI target to initialize;each cloud system would require its own initial ramdisk file.

2.2.2 IPsec tunnel

Using remote storage for cloud systems means that the data has to travel over unknown networks.It should be obvious that we need to ensure the origin, integrity and confidentiality of the datawhen it is travelling across unknown networks such as the internet. The Internet Protocol Security(IPsec) is a protocol suite for securing IP communications. IPsec provides a set of protocolsto ensure this: Authentication Headers (AH) to ensure connectionless integrity and data originauthentication for IP datagrams; Encapsulating Security Payloads (ESP) to ensure confidentiality,data origin authentication and connectionless integrity; Security associations (SA) provide thebundle of algorithms and data necessary to facilitate the AH and ESP operations.

As of version 2.5.47, native IPsec support is implemented in the Linux kernel. Besides the IPsecsupport from the Linux kernel we used IPsec-Tools[3] to setup the connections. IPsec-Tools im-plements the Internet Security Association and Key Management Protocol (ISAKMP). It containssetkey, a tool to manipulate the kernel Security Policy Database (SPD) and Security AssociationDatabase (SAD). We used racoon[3] as the Internet Key Exchange (IKE) implementation. Theracoon daemon runs on both the storage server and the cloud instance to negotiate a SecurityAssociation.

IPsec configuration

IPsec has two modes of operation, transport mode and tunnel mode. Transport mode is what weneed for host-to-host communication, from the storage server to the cloud system. Because someof our test instances will be running behind a NAT router, AH cannot be enabled on the IPsecconnection. A copy of the configuration files can be found in Appendix A.

4

Page 9: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 2. TEST ENVIRONMENT 5

Ipsec-Tools’ setkey adds the required security policies to the kernels SPD. This forces all iSCSItraffic to the storage server to be encrypted using the ESP protocol. When an encrypted connectionis required, the kernel will call racoon to negotiate a SA with the storage server. On both sides,racoon is configured to use aes for the encryption algorithm.

2.2.3 iSCSI initialisation

The initial ramdisk contains the iscsistart binary to connect to the iSCSI target on the storageserver. When connected, it tries to attach the disk to /dev/sda and succeeds. However, whenthe partition table is initialized the kernel encounters the already existing /dev/sda1 block deviceinitialized by Xen. This results in a kernel panic. On our local cloud we were able to create aworkaround by attaching the local boot disk to /dev/xvda. Unfortunatly this was not possiblein the public cloud environment due to lack of control of the hypervisor. To enable access to thepartitions of the iSCSI disk we had to map the block devices to virtual device-mapper devices.The kpartx tool allowed us to easily do this. After this alternative workaround, we were able toscan for LVM backing devices.

2.3 The cloud hosts

We considered two different cloud types in our test. The main difference is the location, resultingin different latencies and bandwith.

2.3.1 Private cloud

Our private cloud server is located in the same subnetwork as the storage server. It is set up witha default Xen 4.0 installation on top of Debian Squeeze. The DomU instance running on top ofit is configured with 613MB of memory and 1 Virtual CPU with the same specifications as thestorage server.

2.3.2 Public cloud

We used Amazon EC2[2] as the public cloud provider. The EC2 instances are located in the region“EU West (Ireland)”. The instances are clones from AMI ID ami-3d1f2b49, with the manifest de-scription “099720109477/ebs/ubuntu-images/ubuntu-lucid-10.04-amd64-server-20110201.1”. Weconfigured the EC2 instances with the type micro instance. Those have 613MB of memory, 1CPU core and up to 2 EC2 Compute Units (ECUs).

5

Page 10: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Chapter 3

Reference metrics

The performance measured using different filesystems and environments won’t have any valuewithout a reference to compare them to. For the reference metrics we measured the performancefrom the storage server itself. We executed the tests directly on the LVM block devices, withoutiSCSI and IPsec. The results are presented in Section 3.3.

The test script used from the private and public cloud can be found in Appendix B. Besides theperformance tests, we also measured the bandwidth using iperf between each filesystem test.During the whole test we also measured the round-trip time using ping. The round trip time andbandwidth can be found in Section 3.4.

3.1 Tools

Bonnie++

bonnie++ is the go-to tool if you require a quick indication of a filesystems’ performance. Itperforms three basic throughput tests using different IO interfaces and also has the ability to testthe performance in creating, reading and deleting inodes (‘files’). We only used the last featureof bonnie because Iozone gave us much more fine grained insight in the filesystem throughputperformance.

Iozone

Iozone is a standard UNIX filesystem benchmarking tool that we used as our main result.

iperf

We used iperf to measure the network throughput. Because the filesystem performance cannotexceed this speed by definition (except for short durations due to caching), this gives us a decentexpected value and enables us to see where caching must occur.

ping

High latencies might influence the filesystem performance aswell; therefore we also measure themachines’ response time throughout the test.

6

Page 11: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 3. REFERENCE METRICS 7

3.2 Buffers

Buffers are useful for queueing writes so they can be flushed to the backing store in order and ina large batch, which improves performance and consistency. However, for the purpose of testingfilesystems buffers also prevent us from measuring the actual throughput of the medium when onlywriting very small files. These kind of writes are the ones that will be most impacted by filesystemsthat use aggressive syncing - increasing the consistency on disk, but decreasing performance.

To prevent buffers from skewing the results we decided to mount the all filesystems used for testingwith the sync mount option. This requires every write to reach stable storage before completion.

3.3 The storage

The following performance graphs are measured using Iozone on the storage server. Appendix Ccontains the script used for the local storage test.

3.3.1 Iozone graphs

Figure 3.1 and 3.2 show respectively the read and write speeds measured on the storage server.The write graphs of all 4 filesystems show similar behaviour at the largest filesize and smallestrecordsizes. The cause of this is the configuration of the iozone test. During the larger filesizes,the smallest record sizes are skipped unless specified otherwise. Testing all larger filessizes withthe smallest recordsizes would take longer to test, without much added value.

3.3.2 Bonnie++ results

The reference metrics for Bonnie++ are presented in table 3.1.

Create Read Delete/sec %CP latency /sec %CP latency /sec %CP latency

ext3Sequential 761 5 316ms 160010 99 1183us 196 2 870msRandom 753 4 362ms 292207 99 76us 240 2 1035ms

ext4Sequential 808 5 304ms 178431 99 3906us 213 2 819msRandom 787 5 406ms 280088 99 2184us 250 2 1043ms

xfsSequential 98 0 459ms 295639 99 393us 99 0 404msRandom 99 0 1182ms 138093 99 11049us 58 0 2154ms

btrfsSequential 7212 93 11399µs 157749 99 4282µs 4257 5 13586µsRandom 7980 92 2716µs 277969 100 134µs 3026 91 1322ms

Table 3.1: Baseline Bonnie++ results

3.3.3 Interpretation

We can see that the read operations definately benefit from fast cache access, where the speedonly decreases on large operations that are not or only partially cached. Because of these cachesthere is very little difference between the filesystems, except for a small write hole in btrfs.

The write performance presents us with more interesting metrics, mostly due to the filesystemsemantics and how they handle consistency and integrity. Ext3 and its counterpart ext4 behavevery similar; they perform better when writing bigger record sizes and reach a maximum between70 and 80 megabyte per second. XFS and btrfs are written for different purposes and also show

7

Page 12: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 3. REFERENCE METRICS 8

(a) ext3 (b) ext4

(c) xfs (d) btrfs

Figure 3.1: Baseline read speeds

similar characteristics. XFS has been designed with consistent and predictable throughput inmind, a feature that clearly shows up in the graph. Btrfs is a GPL counterpart to the popularfilesystem ZFS and is written with consistency in mind. Write performance is clearly lacking inraw throughput, but is regained at inode level; creating and deleting lots of files is something btrfsexels at.

8

Page 13: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 3. REFERENCE METRICS 9

(a) ext3 (b) ext4

(c) xfs (d) btrfs

Figure 3.2: Baseline write speeds

3.4 The network

The following sections show the measured round-trip time and bandwidth from the private cloudand public cloud. The round-trip time is measured using ping for the complete duration of themeasurements of each filesystem type. The bandwidth is measured using iperf before and aftereach filesystem type.

3.4.1 Private cloud

Table 3.2 shows the round-trip time and bandwidth measurements for the private cloud. This ismeasured on a local reliable link. The bandwidth values clearly show the Gigabit Ethernet Cardbottleneck. We consider these values consistent enough to get reliable filesystem performanceresults.

9

Page 14: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 3. REFERENCE METRICS 10

Filesystem RTT min RTT avg RTT max RTT mdev Bandwidth before Bandwidth afterext3 0.166ms 0.439ms 11.017ms 0.998ms 943 Mbits/sec 940 Mbits/secext4 0.168ms 0.445ms 8.895ms 0.991ms 943 Mbits/sec 942 Mbits/sec

xfs 0.166ms 0.452ms 12.391ms 0.988ms 942 Mbits/sec 940 Mbits/secbtrfs 0.169ms 0.322ms 24.000ms 0.541ms 942 Mbits/sec 942 Mbits/sec

Table 3.2: Private cloud round-trip time and bandwidth

3.4.2 Public cloud

Table 3.3 shows the round-trip time and bandwidth measurements for the private cloud. Theaverage bandwidth measured is 261Mbits/sec and a standard deviation of 24. The measuredround-trip times are consistent enough as well. The deviation is higher compared to the privatecloud, but still acceptable.

Filesystem RTT min RTT avg RTT max RTT mdev Bandwidth before Bandwidth afterext3 21.070ms 22.696ms 211.651ms 2.114ms 214Mbits/sec 270Mbits/secext4 21.047ms 22.621ms 71.207ms 1.581ms 270Mbits/sec 271Mbits/sec

xfs 21.052ms 22.596ms 152.893ms 1.754ms 286Mbits/sec 250Mbits/secbtrfs 21.024ms 22.597ms 421.668ms 2.581ms 283Mbits/sec 246Mbits/sec

Table 3.3: Public cloud round-trip time and bandwidth

10

Page 15: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Chapter 4

Test results

4.1 Public cloud

4.1.1 Iozone graphs

Figure 4.1 shows the write speeds from the public cloud. The general write speeds are nearly 10%of the local write speeds. Looking at the values in table 3.3, the available bandwidth has enoughroom for roughly 5 times the measured write speeds. But it’s probably the latency of the linkthat limits the write performances on the filesystem. Between the different filesystems there’s notmuch difference, the shapes of the graphs show similar behavior among the filesystems. At thelarge file and record sizes, ext4 and btrfs are performing slightly better with 1-1.5 MBytes/secmore then respectively xfs and ext3.

4.1.2 Bonnie++ results

Table 4.1 shows the results from Bonnie++ run from the public cloud. Due to the low read anddelete performance we ran the test with less files the reference metrics, 8 * 1024 files files. Sincethe read performance is affected by caching, bonnie++ wasn’t able to provide reliable results.This happens when the total time, in this case for the read speeds, is below 0.5 seconds. Thisdoesn’t result in an actual value for the read performance, but we can conduct that the read speedis at least 8*1024*2 = 16384 files/sec.

We see similar results compared to the reference metrics, the create and delete values of btrfs aremuch higher then the other filesystems. The actual values however aren’t very impressive andcould be a real bottleneck for many applications.

Create Read Delete/sec %CP latency /sec %CP latency /sec %CP latency

ext3Sequential 14 0 181ms >16384 - 355µs 7 0 309msRandom 14 0 481ms >16384 - 211µs 7 0 462ms

ext4Sequential 14 0 273ms >16384 - 351µs 7 0 586msRandom 14 0 284ms >16384 - 76µs 7 0 592ms

xfsSequential 34 0 89570µs >16384 - 92µs 31 0 183msRandom 34 0 273ms >16384 - 10µs 29 0 188ms

btrfsSequential 3626 8 202µs >16384 - 366µs >8192 - 397µsRandom 3859 9 289µs >16384 - 10µs >8192 - 295µs

Table 4.1: Public cloud Bonnie++ results

11

Page 16: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 4. TEST RESULTS 12

(a) ext3 (b) ext4

(c) xfs (d) btrfs

Figure 4.1: Public cloud write speeds

4.2 Private cloud

4.2.1 Iozone graphs

Figure 4.2 shows the write speeds from the private cloud. The overall performance is about 4times higher then the public cloud, but still not close to the reference metrics with a top of 22-25MBytes/sec. Again similar shapes among the filesystems, all reaching 25MBytes/sec, exceptxfs with 22MBytes/sec. If we compare this to the measured bandwidth in table 3.2 we see similarbehavior as private cloud. With a top of 25MBytes/sec the private cloud is also using roughly20% of the available bandwidth. The round-trip time between the private cloud and the storageserver is around 0.4ms nothing compared to the public cloud, but still quite a lot compared withthe reference metrics where the storage is attached locally.

4.2.2 Bonnie++ results

Table 4.2 shows the Bonnie++ results measured from the private cloud. Same as the other tests,btrfs is on top with the create and delete speeds. Interesting to note is that the number of filescreated and deleted per seconds is around 5 times as high as measured on the local storage server.

12

Page 17: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 4. TEST RESULTS 13

(a) ext3 (b) ext4

(c) xfs (d) btrfs

Figure 4.2: Private cloud write speeds

We weren’t able to locate the exact reason for this, we think that some network caching is takingplace that isn’t used on the storage server itself.

Create Read Delete/sec %CP latency /sec %CP latency /sec %CP latency

ext3Sequential 294 2 125ms 91970 99 1553µs 126 1 1004msRandom 293 2 231ms 101853 96 233µs 119 1 1075ms

ext4Sequential 293 2 206ms 89827 98 1035µs 126 1 973msRandom 294 2 233ms 99783 97 157µs 121 1 972ms

xfsSequential 553 8 286ms 102355 98 169µs 551 7 52116µsRandom 560 8 220ms 100693 99 139µs 310 99 837ms

btrfsSequential 9285 64 1570µs 95189 98 758µs 10376 99 2312msRandom 9400 64 2642µs 97677 96 1070µs 10181 99 1880µs

Table 4.2: Private cloud Bonnie++ results

13

Page 18: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Chapter 5

Conclusion

We were able to build an initial ramdisk and use this to boot a cloud instance from a remote iSCSItarget over a secure connection. We can conclude that as long as the environment is managable toa certain extent (require the ability to modify block devices’ names) that this works as expected.The write performance presented earlier clearly shows an impact on the performance compared tothe baseline. Nevertheless we still think that remote booting from the cloud is possible. Althoughwe don’t have any data on what could be considered a community cloud, we think that this is themost usable environment. We noticed that the introduction of a few milliseconds of latency doesn’tinfluence the benchmark significantly. Depending on the application(s) used, the performanceimpact isn’t neccesarily a problem and the community cloud also has some interesting use casesas presented in the introduction. Remote booting from the public cloud has a few unpreventableproblems. The high latency has a big impact on the performance. Also the fact that long distancelinks are generally unreliable causes problems with iSCSI, since machines can only cope with ashort interruption of service for their disks. After a timeout of less than 2 minutes the systemsimply crashes.

Research questions

How do we build a secure link to the storage system in the bootstrap phase of thecloud machine?

We were able to implement an IPsec tunnel from the init ramdisk phase, before mounting therootdisk over iSCSI. There were minor problems assembling the initial ramdisk, but they wereovercome rather quickly.

What filesystems are more suitable when used over iSCSI?

We did not notice significant differences between filesystems when used over a iSCSI connection ona local network. Therefore we recommend to go for a filesystem with high consistency guaranteeslike btrfs. Due to the unstable nature of TCP connections and possibly long recovery times ofiSCSI sessions this is a good practice anyway.

What difficulties are involved with storage over the internet?

We found several issues:

• Higher latency, more jitter due to buffers in every layer;

14

Page 19: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

CHAPTER 5. CONCLUSION 15

• Unreliable connections;

• Security;

• Incompatible interfaces.

The high latency definately impacts performance. Disk throughput is regularly slower than net-work throughput by a factor of 5. Note that this is without any tweaking and disabling the writebuffers.

Unreliable connections make machines stall and eventually lose their disk. This is a significantproblem due to potential loss of data, and a contributing factor to our choice for running the testswith the sync mount option.

We feel like we’ve provided adequate protection on our iSCSI Target server; however we’re stillexposing our storage server to the internet. Organisations that really value their data might wantto close exclusive deals with cloud providers for their own VPN connections or dedicated lines.This also provides the added benefit of being able to prevent a lot of the performance problemswe’ve noticed.

The Amazon EC2 cloud did not allow us to bootstrap from an iSCSI device due to the throwingof a kernel panic upon initialization of the device (registration of the major/minor numbers inthe kernel). There were collisions while trying to name the device which did not result in a panicpost-bootstrap, but still required some workarounds before we could access the device.

What are the security considerations involved with this solution?

While our method prevents permanent storage of the data in the cloud, cloud providers still haveaccess to the data in transit. Even though we’re using an IPsec connection, the cloud providercan access the data because they have access to the private key of the client in the initial ramdiskand in memory. In essence: this system does not help you if you distrust your cloud provider.Ofcourse you will be able to monitor the disk usage more closely, but at that point it’s alreadytoo late.

Each client requires a custom ramdisk file. Management of all these bootstrap files has to beautomated as to prevent user mistakes.

5.1 Future work

A few interesting topics for future research:

• We were unable to collect data for a community cloud environment. It would be interestingto see if the performance over longer, but fast and dedicated links is enough to provide areal usecase.

• Our results are focused on writespeeds and can be improved by enabling buffers and caches.Reading data is still a topic to look at.

• We only considered ext3, ext4, xfs and btrfs over iSCSI. An alternative is NFS, NetworkFile System, a protocol designed to operate over a network. It runs on IP, thus can also betunneled using IPsec between a cloud instance and a storage server.

• Our results are based on the chosen default parameters of IPsec and iSCSI. We have notlooked at the impact of IPsec encryption on the performance.

• We did not perform any performance tuning whatsoever, though some filesystems allow for alot of tuning options. For instance, disabling write barriers is expected to result in significantperformance improvements (at the loss of consistency).

15

Page 20: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Appendix A

IPsec configuration files

The /etc/ipsec-tools.conf file is used by setkey from ipsec-tools to set the Security Policies in thekernel. The /etc/racoon/racoon.conf file is the configuration for racoon, the IKE daemon. Notethat the following configuration files are from the perspective of the storage server.

A.1 /etc/ipsec-tools.conf

1 #!/ usr/ sbin / se tkey −f23 ## Flush the SAD and SPD4 f l u s h ;5 spd f lu sh ;67 # Always encrypt iSCSI to s torage server8 spdadd 145 . 1 0 0 . 1 0 4 . 2 0 [ 3 2 60 ] 0 . 0 . 0 . 0 / 0 any −P out i p s e c9 esp / t ranspor t // r equ i r e ;

10 spdadd 0 . 0 . 0 . 0 / 0 145 . 1 0 0 . 1 0 4 . 2 0 [ 3 2 60 ] any −P in i p s e c11 esp / t ranspor t // r equ i r e ;

A.2 /etc/racoon/racoon.conf

1 path pre shared key ”/ etc / racoon/psk . txt ” ;23 l i s t e n {4 adminsock d i s ab l ed ;5 }67 remote anonymous {8 exchange mode agg r e s s i v e ;9 proposa l check s t r i c t ;

10 g en e r a t e po l i c y on ;11 n a t t r a v e r s a l on ;12 dpd delay 20 ;13 i k e f r a g on ;14 proposa l {15 enc rypt i on a lgo r i thm aes ;16 hash a lgor i thm sha1 ;17 authent icat ion method pre shared key ;18 dh group 2 ;19 }20 }2122 s a i n f o anonymous {23 p f s g roup 2 ;24 l i f e t im e time 1 hour ;25 enc rypt i on a lgo r i thm aes ;26 au then t i c a t i on a l go r i thm hmac sha1 ;27 compress ion a lgor i thm d e f l a t e ;28 }

16

Page 21: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Appendix B

Test script

1 #!/ bin/bash23 i n s t a l l p a c k a g e s ( ) {4 apt i tude update5 apt i tude −y i n s t a l l racoon ipsec−t o o l s bonnie i p e r f open− i s c s i kpartx lvm2

x f sp rog s b t r f s−t o o l s bui ld−e s s e n t i a l67 }89 i p s e c ( ) {

10 s e r v i c e racoon r e s t a r t11 s e r v i c e se tkey r e s t a r t12 }1314 i s c s i ( ) {15 i sc s iadm −−mode d i s cove ry −−type s endta rge t s −−po r t a l 145 . 100 . 104 . 2016 i sc s iadm −−mode node −−targetname iqn .2011−02. n l . os3 . s tud lab . paras : c l oud in s tance

−−po r t a l 145 . 100 . 104 . 20 : 3260 −−l o g i n1718 s l e ep 51920 # HAX21 kpartx −a /dev/ sda22 vgscan23 }2425 f i l e s y s t em ( ) {26 f s=$127 mkdir /mnt/ i s c s i2829 case $ f s in30 ext3 )31 mkfs . ext3 /dev/ c l oud in s tance / test32 ; ;33 ext4 )34 mkfs . ext4 /dev/ c l oud in s tance / test35 ; ;36 x f s )37 mkfs . x f s /dev/ c l oud in s tance / test38 ; ;39 b t r f s )40 mkfs . b t r f s /dev/ c l oud in s tance / test41 ; ;42 ∗)43 exit 144 ; ;45 esac46 mount /dev/ c l oud in s tance / test /mnt/ i s c s i −o sync47 }4849 setup ( ) {50 wget −O /mnt/work/ iozone . ta r http ://www. iozone . org / s r c / cur rent / iozone3 373 . ta r51 ta r x f iozone . ta r52 cd i o zone3 373 / s r c / cur rent53 make l inux−AMD6454 }

17

Page 22: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

APPENDIX B. TEST SCRIPT 18

5556 f i l e s ( ) {57 cat > /mnt/work/ i d r s a <<EOF58 . . .59 EOF60 cat > / etc / ipsec−t o o l s . conf <<EOF61 . . .62 EOF63 cat > / etc / racoon/ racoon . conf <<EOF64 . . .65 EOF66 cat > / etc / racoon/psk . txt <<EOF67 . . .68 EOF69 cp / usr / share /doc/ racoon/examples / samples / roadwarr ior / c l i e n t /phase1−∗ / etc /

racoon/70 }7172 p e r f t e s t ( ) {73 f s=$174 stamp=${ f s } . $ ( hostname ) . ${2}7576 mkdir /mnt/ r e s u l t s77 mkdir /mnt/ i s c s i / iozone78 mkdir /mnt/ i s c s i / bonnie7980 nohup ping − i 0 . 1 145 . 100 . 104 . 20 > /mnt/ r e s u l t s / r e s u l t s . ping . ${stamp} &81 s l e ep 1082 . / iozone −a −g 4096 −f /mnt/ i s c s i / iozone / i o | t ee /mnt/ r e s u l t s / r e s u l t s . i ozone . ${

stamp}838485 chown 1000 /mnt/ i s c s i / bonnie86 bonnie++ −d /mnt/ i s c s i / bonnie / −u 1000 −n 2 −s 0 | t ee /mnt/ r e s u l t s / r e s u l t s .

bonnie . ${stamp}8788 s l e ep 1089 k i l l a l l −2 ping90 scp − i /mnt/work/ i d r s a /mnt/ r e s u l t s /∗ pe r f r e su l t@para s . s tud lab . os3 . n l :91 }9293 cleanup ( ) {94 umount /mnt/ i s c s i95 dd i f=/dev/ zero o f=/dev/ c l oud in s tance / test bs=1M count=196 }9798 i n s t a l l p a c k a g e s99 f i l e s

100 i p s e c101 i s c s i102 setup103104 timestamp=$ ( date +%F.%H%M)105106 for FS in ext3 ext4 x f s b t r f s ; do107 f i l e s y s t em $FS $timestamp108 p e r f t e s t $FS $timestamp109 cleanup110 done

18

Page 23: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Appendix C

Reference metrics test script

1 #!/ bin/bash23 i n s t a l l p a c k a g e s ( ) {4 apt i tude update5 apt i tude −y i n s t a l l b t r f s−t o o l s x f sp rog s67 }89 f i l e s y s t em ( ) {

10 f s=$11112 mkdir /mnt/ l o c a l d i s k1314 case $ f s in15 ext3 )16 mkfs . ext3 /dev/ i s c s i / l o c a l t e s t17 ; ;18 ext4 )19 mkfs . ext4 /dev/ i s c s i / l o c a l t e s t20 ; ;21 x f s )22 mkfs . x f s /dev/ i s c s i / l o c a l t e s t23 ; ;24 b t r f s )25 mkfs . b t r f s /dev/ i s c s i / l o c a l t e s t26 ; ;27 ∗)28 exit 129 ; ;30 esac31 mount /dev/ i s c s i / l o c a l t e s t /mnt/ l o c a l d i s k −o sync32 }3334 setup ( ) {35 wget −O /mnt/work/ iozone . ta r http ://www. iozone . org / s r c / cur rent / iozone3 373 . ta r36 ta r x f iozone . ta r37 cd i o zone3 373 / s r c / cur rent38 make l inux−AMD6439 }4041 p e r f t e s t ( ) {42 f s=$143 stamp=${ f s } . $ ( hostname ) . ${2}4445 mkdir /mnt/ r e s u l t s46 mkdir /mnt/ l o c a l d i s k / iozone47 mkdir /mnt/ l o c a l d i s k /bonnie4849 nohup ping − i 0 . 1 145 . 100 . 104 . 20 > /mnt/ r e s u l t s / r e s u l t s . ping . ${stamp} &50 s l e ep 1051 . / iozone −a −g 4096 −f /mnt/ l o c a l d i s k / iozone / i o | t ee /mnt/ r e s u l t s / r e s u l t s .

i ozone . ${stamp}525354 chown 1000 /mnt/ l o c a l d i s k /bonnie55 bonnie++ −d /mnt/ l o c a l d i s k /bonnie / −u 1000 −n 2 −s 0 | t ee /mnt/ r e s u l t s / r e s u l t s .

bonnie . ${stamp}

19

Page 24: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

APPENDIX C. REFERENCE METRICS TEST SCRIPT 20

5657 s l e ep 1058 k i l l a l l −2 ping59 scp − i /mnt/work/ i d r s a /mnt/ r e s u l t s /∗ pe r f r e su l t@para s . s tud lab . os3 . n l :60 }6162 cleanup ( ) {63 umount /mnt/ l o c a l d i s k64 dd i f=/dev/ zero o f=/dev/ i s c s i / l o c a l t e s t bs=1M count=165 }6667 i n s t a l l p a c k a g e s68 setup6970 timestamp=$ ( date +%F.%H%M)7172 for FS in ext3 ext4 x f s b t r f s ; do73 f i l e s y s t em $FS $timestamp74 p e r f t e s t $FS $timestamp75 cleanup76 done

20

Page 25: Large Installation Administration Project Performance of ... · Large Installation Administration Project Performance of remote storage for clouds ... A.1 /etc/ipsec-tools.conf

Bibliography

[1] Kurt Hornik. The R FAQ, 2011. ISBN 3-900051-08-9.

[2] Amazon Inc. Amazon elastic compute cloud (amazon ec2). http://aws.amazon.com/ec2/.

[3] IPsec-Tools. Ipsec-tools. http://www.ipsec-tools.sourceforge.net/, 2009. version 0.7.3.

[4] Arne Redlich and Ross Walker. iscsi enterprise target, 2004. http://iscsitarget.sf.net.

[5] A. Shacham, B. Monsour, R. Pereira, and M. Thomas. Ip payload compression protocol(ipcomp). Technical report, Internet Engineering Task Force, 2001. http://tools.ietf.

org/html/rfc3173.

[6] S. Shepler, M. Eisler, and D. Noveck. Network file system (nfs) version 5 minor version 1protocol. Technical report, Internet Engineering Task Force, 2010. http://tools.ietf.org/html/rfc5661.

21