pcloudstorage performance results wp en ltr 02192013 web

Upload: do-cong-thanh

Post on 03-Jun-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    1/14

    White Paper

    www.parallels.com

    Parallels

    Cloud Storage

    Performance Benchmark Results

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    2/14

    Parallels Performance Benchmark Results

    2

    Executive Summary ...............................................................................................................................3

    Architecture Overview ............................................................................................................................ 3

    Key Features .........................................................................................................................................4

    No Special Hardware Requirements ................................................................................................. 4High Reliability .................................................................................................................................. 5

    Extensive Scalability and Flexibility....................................................................................................5

    Top Performance..............................................................................................................................6

    Replication in Parallels Cloud Storage .................................................................................................... 6

    Overview .........................................................................................................................................6

    Results of Replication Performance Tests ........................................................................................ 8

    I/O Performance Tests ........................................................................................................................... 9

    Overview .........................................................................................................................................9

    Test Results for Horizontal Scalability ............................................................................................ 10 Test Results for Vertical Scalability ................................................................................................. 11

    Conclusion ..........................................................................................................................................12

    Appendix: Test Lab Configurations and Methodologies ........................................................................ 13

    Replication Testing ........................................................................................................................ 13

    Performance Testing ...................................................................................................................... 14

    Table of Contents

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    3/14

    Parallels Performance Benchmark Results

    3

    Executive Summary

    To support growing demands for both high performance and high data availability, modern data centers

    need a fast, flexible storage solution. But this requirement presents problems: besides the difficulties

    involved in managing and maintaining such storage, there are flexibility and cost issues. Redundant

    storage is typically either not flexible (as is the case with local RAID arrays) or too expensive for many

    organizations (as is the case with SAN storage).

    Parallels Cloud Storage is designed to solve both problems. It can run on commodity hardware, thus not

    requiring any significant infrastructure investment; and it is a very easy solution to set up and grow on

    demand.

    This white paper provides a description of the architecture, major features, and performance of Parallels

    Cloud Storage.

    Architecture OverviewParallels Cloud Storage is a highly available distributed storage system with built-in replication and

    disaster recovery. It runs on top of commodity hardware, using locally attached hard drives to create

    storage clusters that span multiple machines. This approach allows rapid live migration of containers

    (CTs) and virtual machines (VMs) across hardware nodes, without having to copy CT or VM data. It also

    ensures high availability, as it makes storage across the cluster available remotely.

    Figure 1 illustrates the logical structure and basic components of Parallels Cloud Storage. The key

    components are:

    Chunk Servers (CSs).All data in a Parallels Cloud Storage cluster, including disk images of both CTsand VMs, is stored in the form of fixed-size chunks on chunk servers, which provide access to the

    data as needed. The cluster automatically replicates the data chunks and distributes them across the

    available chunk servers to provide high availability of data. Therefore, to ensure this high availability, aParallels Cloud Storage cluster must have multiple chunk servers.

    Metadata servers (MDSs).To keep track of data chunks and their replicas, the cluster storesmetadata about them (such as their file names) on metadata servers. In addition to managing

    metadata, the MDSs control how files are split into chunks and where the chunks are stored. They

    also track versions of chunks, ensure that the cluster has enough replicas, and keep a global log of

    important events that happen in the cluster. As is the case with CSs, multiple MDSs are needed to

    provide high availability.

    Clients.Clients manipulate data stored in the cluster by sending different types of file requestsfor example, to modify an existing file or create a new one. Clients access a storage cluster by

    communicating with the MDSs and CSs. Parallels CT and VM clients can be run nativelyi.e., directly

    from the storage cluster. You can also mount storage as a conventional file system (although ParallelsCloud Storage is not POSIX-compliant). In addition, you can create and mount image files residing

    on storage as loop devices by using the ploop feature. You can format these loop devices in any file

    system you want (ext4, for instance) and can export them using iSCSI.

    Parallels3

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    4/14

    Parallels Performance Benchmark Results

    4

    Figure 1. Key components of Parallels Cloud Storage

    A recommended cluster setup would consist of three to five MDS instances (allowing you to survive

    the loss of one or two of the MDSs, respectively) and three or more CSs to provide storage capacity.

    (For more information, see the Recommended Configuration chapter in the Parallels Cloud Storage

    Administrators Guide.)

    You can set up any number of computers in the cluster to perform the role of an MDS, CS, or client.

    You can also assign twoor all threeroles to the same computer. For example, you can configure a

    computer to act as a client, and if you want it to allocate its local disk space to the cluster, you can set it

    up to be a chunk server, as well.In this paper, unless otherwise noted, the term server refers to a physical server. In each of our tests,

    three servers in each cluster are set up to host all three roles (MDS, CS, and client), and the remaining

    servers in the cluster have two roles (CS and client).

    Key Features

    NO SPECIAL HARDWARE REQUIREMENTS

    Parallels Cloud Storage has no special hardware requirements: it can be built using commodity hardware(such as SATA or SAS drives and 1Gbit+ Ethernet) and will run on your current hardware stack.

    Although additional hardware resources, such as SSD drives or 10Gbit Ethernet, can significantly boost

    performance, they are not required to get the major benefits of Parallels Cloud Storage: a cost-effective

    distributed storage solution with built-in replication and high availability.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    5/14

    Parallels Performance Benchmark Results

    5

    HIGH RELIABILITY

    Parallels Cloud Storage is designed to ensure that data availability will not be affected by the

    unavailability of up to a predefined number of logical or physical components. The following features

    ensure high reliability:

    Replicated metadata.Several MDSstypically three or fiverun simultaneously, enabling them tosurvive the unavailability of one or two MDSs, respectively. As long as more than half of the MDSs are

    responsive, clients are guaranteed the ability to access metadata.

    Replicated chunks.Every piece of data is saved in multiple copies across different CSs to ensurethat the data is available even if some CSs are in a failed state (e.g., disconnected from the network or

    being rebooted). Parallels Cloud Storage also automatically maintains the required number of replicas

    of each chunk. If some of the replicas become unavailable, Parallels Cloud Storage will start making

    more replicas and copying them to new locations.

    High availability and consistency.The existence of multiple CSs and MDSs and the replication ofdata chunks across the cluster mean that even if some CSs or MDSs are unavailable, clients can still

    access and modify data. Parallels Cloud Storage also tracks any chunk modifications to guarantee

    that all pieces of data are in the same stateso if a CS is down for a period of time and some of itschunks end up out of date as a result, Parallels Cloud Storage will recognize the problem and update

    the chunks to latest version once the CS comes back online.

    Data checksumming and scrubbing(works with SSD cache for a chunk server journal featureonly). Although Parallels Cloud Storage itself is highly available and consistent, there is always a

    chance that local storage could become corrupted. To guard against such silent data corruption

    which could occur, for example, due to hardware faultsParallels Cloud Storage periodically performs

    data checks. When data is first written or modified, the storage solution calculates and remembers

    checksums for each piece of data. Then, in background mode, Parallels Cloud Storage periodically

    inspects data from local storage and compares saved checksums with newly calculated ones to

    ensure that there is no corruption. If it detects any corrupted data chunks, it replaces them with

    replicas of known-good copies.

    EXTENSIVE SCALABILITY AND FLEXIBILITY

    Another advantage of Parallels Cloud Storage is its extensive scalability and flexibility. Key capabilities in

    this regard include:

    Growth on demand.You can easily extend Parallels Cloud Storage by simply adding new CSsupto a total of 1PB of storage space.

    Load balancing.Parallels Cloud Storage automatically balances workloads among all available CSs.In storing new chunks, Parallels Cloud Storage takes into account both the amount of free disk space

    and the distribution of the I/O load, in order to ensure high performance. Additionally, when you add

    new CSs to a cluster, Parallels Cloud Storage automatically balances existing data across all CSs.

    Storage tiers.Since fast storage costs more than slower storage, Parallels Cloud Storage lets youdefine allocation policies for different types of local drives so as to deliver the best price/ performanceratio. For instance, you may choose to store frequently accessed data on fast, but relatively expensive,

    SSD drives, while placing rarely needed backup data on inexpensive SATA drives.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    6/14

    Parallels Performance Benchmark Results

    6

    TOP PERFORMANCE

    Its hard to overestimate the importance of storage performance, which is usually the bottleneck for the

    whole systems performance. Parallels Cloud Storage offers several options for enhancing performance,

    including:

    Thin replication. Parallels Cloud Storage supports thin replication, in which only the changed partsof chunks are updated on recovery, rather than the whole chunks. This approach significantly boosts

    overall performance because it involves fewer reads, writes, and data transfers.

    SSD cache for a chunk server journal.You can attach an SSD drive to a CS in the cluster andconfigure the drive to store a write CS journala step that can boost the performance of random write

    operations in the cluster by a factor of two or more. The journal can also maintain chunk checksums

    to improve storage reliability.

    SSD read cache on the client.You can attach an SSD drive to a client and configure the driveto store a local cache of frequently accessed dataa step that can increase overall cluster read

    operations performance by a factor of 10 or more.

    Replication in Parallels Cloud Storage

    OVERVIEW

    To ensure high availability, Parallels Cloud Storage stores a number of replicas of each chunk across

    multiple physical servers. If it detects the unavailability of one or more chunk servers for a predefined

    amount of time, it will automatically start the replication process to ensure the availability of a sufficient

    number of copies of the data. Figures 2-4 illustrate the replication process in a cluster that consists of

    three CSs. With the replication level set to 2, each chunk should have two replicas. If CS #1 becomes

    unavailable for some reason, chunks 1 and 2 end up with only one replica. In such a case, Parallels

    Cloud Storage immediately detects that these chunks have fewer replicas than they should and creates

    however many additional replicas are needed to bring the number up to the specified replication level.

    Figure 2. This healthy cluster has three CSs and two replicas

    of each of three data chunks.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    7/14

    Parallels Performance Benchmark Results

    7

    Figure 3. This cluster, with one unavailable CS, has become degraded:

    Chunks 1 and 2 have only one replica.

    Figure 4. The cluster is healthy again after replication, with two replicas of every chunk.

    Parallels Cloud Storage replication is similar to the RAID rebuild process, but it has two key differences:

    Replication is much faster with Parallels Cloud Storage than with a typical online RAID 1/5/10 rebuild,

    because Parallels Cloud Storage is able to replicate in parallel, across all servers in the cluster. Incontrast, RAID is only able to copy data from a single hard drive to another single hard drive.

    The more CSs you have in a cluster, the less time it takes to replicate each chunk.

    Replication performance is important because it minimizes the time when the system operates with a

    lower than normal redundancy level. To ensure the overall reliability of the storage solution, replication

    time must be much shorter than the expected time between CS faultsbecause the briefer the period

    of reduced redundancy, the less likely you are to lose any data. In theory, the mean time to data loss

    (MTTDL) is in reverse proportion to T2, where T is the time to recover.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    8/14

    Parallels Performance Benchmark Results

    8

    Factors affecting replication performance include:

    Number of available CSs, because replication is a process that runs in parallelso the more available

    replication sources and destinations you have, the faster it goes.

    Performance of the local disk system used for storing chunks.

    Network performance, because as each chunk is read, its transferred by the network to write an

    additional copy.

    Chunk distribution, because some CSs may have much more data to be replicated than others and

    therefore may become overloaded during replication.

    I/O activity in the cluster under replication.

    RESULTS OF REPLICATION PERFORMANCE TESTS

    Figure 5 shows the results of the replication performance measurements of Parallels Cloud Storage,

    running on commodity hardware. Each server has software RAID 0 arrays, using two 7200-RPM SATA

    drives, with servers interconnected in a 1Gbit network. For a more complete description of the testing

    methodology, please refer to the appendix.

    Figure 5.The more servers a cluster has, the less time it takes to replicate data.

    These performance measurements show that with Parallels Cloud Storage, replication performance

    scales almost linearly as the number of servers in the cluster grows. For instance, with a cluster

    consisting of 21 servers, if one server is dead (due to kernel panic, network disconnection, or any

    other factor), it will take only about 20 minutes to replicate 1TB of data. Such linear scalability is not

    possible with RAID. In short, these tests demonstrate that even with Parallels Cloud Storage running

    on commodity hardware, its replication time is a fraction of what RAID requires, resulting in much

    longer MTTDL, and therefore much higher reliability.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    9/14

    Parallels Performance Benchmark Results

    9

    Note also that, although Parallels Cloud Storage was designed to operate efficiently when running

    even on modest hardware, its able to make full use of all the resources of more powerful systems.

    Figure 6 compares the performance of clusters with 7 and 14 servers running on software RAID 0

    (with two 7200-RPM SATA drives) with that of servers running on hardware RAID 0 arrays (with four

    7200-RPM SATA drives). In case of the hardware-based system, servers were interconnected via a

    10Gbit network because the 1Gbit network used in the previous tests is limited to 110MB/sec of datatransfera limitation that can become a bottleneck when used with fast disk storage.

    Figure 6. Using a more powerful hardware configuration enables a terabyte of datato be replicated much more rapidly.

    I/O Performance Tests

    OVERVIEW

    This section presents the results of tests comparing the I/O performance of software RAID 1 (mirroring)

    with that of Parallels Cloud Storage, deployed on servers configured with RAID 0 and two replicas of

    each data chunk. (We chose software RAID 1 for the RAID comparison because it has the same level of

    redundancy as a Parallels Cloud Storage configuration with two replicas.)According to our statistics, the vast majority of I/O operations on virtualization platforms are random.

    Based on these statistics, we used mostly random I/O for our tests, although we did include one

    sequential read, because its important for some scenarios (creating backups, for instance). Our tests

    used the following I/O load patterns:

    1. A sequential read of a 16M block(measured in MB/sec). This I/O workload is equivalent to asequential read of a large file.

    2. A random read of a 4K block(measured in IOPS). This pattern represents any workload with arandom read, such as one involving small files, script codes, file system journals, or file searches.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    10/14

    Parallels Performance Benchmark Results

    10

    3. A random write of a 4K block(measured in IOPS). This pattern represents any workload with arandom write, such one involving file system journals or small files.

    4. A random write of a 4K block + fdatasync (measured in fdatasync operations per second). Thisworkload is the most important, because it simulates work that a relational database must do to

    save simple database changes during a transaction.

    We performed two series of tests: one series measuring horizontal scalability (that is, the effects of

    adding more serversup to a total of 21) and one measuring vertical scalability (that is, the effects of

    adding more workload threads to a single serverup to a total of 16 threads).

    For a more complete description of the testing methodology, please refer to the appendix.

    TEST RESULTS FOR HORIZONTAL SCALABILITY

    Horizontal scalability is very important for distributed systems, as it allows you to add new nodes to a

    cluster to increase the systems overall performance. For these tests, we compared RAID 1 performance

    both with that of Parallels Cloud Storage running on commodity hardware and Parallels Cloud Storage

    with SSD journaling added. In each case, we ran 16 threads of I/O workload on each server, starting

    with a cluster consisting of a single server, then moving up to 10 servers, and then to 21. Figures 7 and

    8 show the performance results. In all cases, Parallels Cloud Storage demonstrates I/O performance thatis at least comparable with that of local RAID storageand when SSD caching is added, Parallels Cloud

    Storage dramatically exceeds RAIDs I/O performance.

    Figure 7. As the number of servers increases, the read performance

    of Parallels Cloud Storage increases accordingly.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    11/14

    Parallels Performance Benchmark Results

    11

    Figure 8. As the number of servers increases, the write performance

    of Parallels Cloud Storage increases accordingly.

    TEST RESULTS FOR VERTICAL SCALABILITY

    Vertical scalability is the ability to maintain the desired I/O performance as the number of workload

    threads on a server increases. For these tests, we ran 1, 8, and 16 threads of I/O workload on a single

    server in the cluster. Figures 9 and 10 show the performance results as the number of workload threads

    increased. As the figures show, because Parallels Cloud Storage is able to use idle HDDs on cluster

    servers, it thereby exceeds performance of local RAID storage which limited by local HDD speed.

    However, the bandwidth of 1 Gbit Ethernet may limit Parallels Cloud Storage performance on sequentialreads. When SSD caching is added, the performance of Parallels Cloud Storage is several times faster.

    Figure 9. Read performance of Parallels Cloud Storage scales well

    as the number of workload threads increases.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    12/14

    Parallels Performance Benchmark Results

    12

    Figure 10. Write performance of Parallels Cloud Storage scales well

    as the number of workload threads increases.

    Conclusion

    Parallels Cloud Storage demonstrates little to no overhead compared to local RAID storage, while at

    the same time providing flexibility and scalability far beyond whats available from a local RAID storage

    system. Its ability to replicate data chunks in parallel, across all servers in the cluster, makes it much

    faster than RAIDand because the faster replication results in a much longer MTTDL, its reliability is also

    greater. In addition, when running on commodity hardware, Parallels Cloud Storage offers horizontal and

    vertical scalability comparable to that of RAIDand when you add SSD for caching, its performance is

    dramatically better than what RAID can deliver.

    In short, Parallels Cloud Storage gives you a storage solution thats as fast or faster than RAID, while also

    offering greater reliability, flexibility, and scalability.

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    13/14

    Parallels Performance Benchmark Results

    13

    Appendix: Test Lab Configurations and Methodologies

    REPLICATION TESTING

    Two hardware sets were used in replication performance testing: a modest hardware set (software RAID

    0, 1Gbit network) and a more powerful hardware set (hardware RAID 0, 10Gbit network).

    Table 1 shows the test lab configuration for replication testing.

    The methodology we used for replication testing was as follows:

    1. Set up Parallels Cloud Storage cluster with a client mount on each server.

    2. Created 100GB of data on each client: dd if=/dev/urandom of=/pstorage/client_$i_test_lebs=1M count=102400, where/pstorageis the pstorage client mount point.

    3. Chose a random server and turned off its network connection (ifdown ethX, where ethXexternalnetwork connection used by pstorage).

    4. Checked pstorage event log for messages about replication start (Replication started. N chunksqueued to replication) and finish (Replication finished).

    5. Replication speed is an amount of replicated data divided by time it took to recover accordingto event log.

    6. Replication progress can be monitored via pstorage toptool (press v to get access to replicationperformance stat and ETA). (For more information, see the Monitoring General Cluster Parameterschapter in the Parallels Cloud Storage Administrators Guide.)

    Processor 1xQuadCore Intel Core i5 2400 2xOctoCore Intel Xeon E5 4650, hyper-threading

    Memory16 GB (4x4xGB), DDR3,

    1333MHz32GB (8x4GB), DDR3, 1333MHz

    Disk

    2x2TB 7200 RPT SATA drives

    connected visa SATA 3.0

    interface.

    Software RAID 0 with 512KB

    chunk size

    4x1TB 7200 RPM SATA drives connected via

    SATA 3.0 interface. Hardware Intel integrated

    RAID Module RMS25PB080, RAID 0 with 512KB

    chunk size

    Network CardIntel 82574L 1Gbit Network

    ConnectionIntel 82599 10Gbit Network Connection

    Network Switch Cisco Catalyst 2960, 1Gbit Cisco Nexus 5010, 10Gbit

    Software Stack

    Operation System Included in Parallels Cloud Storage 6.0 upd1 (build 6.0.0-789)

    Parallels Cloud StorageBuild 5.0.1-340; each server has FUSE client and chunk server;

    3 metadata servers in the cluster

    Kernel vzkernel-2.6.32-042stab064.6.x86_64

    Hardware Set 1 Hardware Set 2

  • 8/11/2019 PCloudStorage Performance Results WP en Ltr 02192013 Web

    14/14

    Parallels Performance Benchmark Results

    PERFORMANCE TESTING

    Table 2 shows the test lab configuration for performance testing.

    Table 2. Performance Testing Configuration

    The methodology used for performance testing was as follows:

    1. We used a custom-developed I/O load tool to simulate various workloads (random and sequentialreads and writes in multiple threads). The volume of test data was 16GB for each server.

    2. The set up for Parallels Cloud Storage clusters consisted of 21 servers, with a client mount on eachserver.

    3. Tested performance in several configurations, with 1, 4, and 16 workload threads running on 1, 10,and 21 servers.

    4. For a fair comparison between local RAID and Parallels Cloud Storage, giving each the same level ofredundancy and a similar logical structure, we used servers with RAID 1 (mirroring) for the local RAIDtests, vs. Parallels Cloud Storage configured to store 2 data replicas.

    5. For the PCS+SSD cases, SSD drives were added for both CS journaling and client read caching.

    2013 Parallels. All rights reserved. Parallels is a registered trademark of Parallels Software International in the USA and other

    countries. All others are the trademarks or registered trademarks of their respective owners.

    Processor 1xQuadCore Intel Core i5 2400

    Memory 16 GB (4x4xGB), DDR3, 1333MHz

    Disk2x2TB 7200 RPT SATA drives connected visa SATA 3.0 interface.

    Software RAID 0 with 512KB chunk size

    Network Card Intel 82574L 1Gbit Network Connection

    Network Switch Cisco Catalyst 2960, 1Gbit

    Software Stack

    Operation System Included in Parallels Cloud Storage 6.0 upd1 (build 6.0.0-789)

    Parallels Cloud StorageBuild 5.0.1-340; each server has FUSE client and chunk server;

    3 metadata servers in the cluster

    Kernel vzkernel-2.6.32-042stab064.6.x86_64

    Hardware Set 1