• No results found

Moving Virtual Storage to the Cloud

N/A
N/A
Protected

Academic year: 2021

Share "Moving Virtual Storage to the Cloud"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

White Paper

Moving Virtual Storage to the Cloud

Guidelines for Hosters Who Want to Enhance

Their Cloud Offerings with Cloud Storage

(2)

© Parallels Moving Virtual Storage to the Cloud 2

Overview ... 3

Understanding the Storage Problem ... 3

What Makes an Ideal Cloud Storage Solution for Hosters? ... 4

Scalability ... 4

Multiple Nodes ... 4

Block-Based ( Not File-Based) Roots for Virtual Environments ... 4

Object Handling ... 5

Cloning, Snapshotting and Deduplication ... 5

Sparse Objects and Thin Provisioning ... 5

Object Resizing and Support for Legacy File System Roots ... 5

Redundancy ... 6

Cluster Simplicity ... 6

Storage Expansion ... 6

Summary of Requirements ... 6

Must Have for Initial Deployment ... 6

Nice to Have for Future Deployments ... 7

Conclusion ... 7

Contact Us ... 7

Table of Contents

(3)

Overview

In traditional hosting models, storage is usually directly attached to the node serving up the virtual envi- ronments (VEs)1. The storage usually comes in the form of SATA devices with 1.5-3Gb/s interfaces and an approximate sustained bandwidth of around 100MB/s. The great advantage of local storage is that it’s fast (100MB/s) and it’s scalable (as you add nodes, they come with more local storage). But the local nature of the traditional storage model is also a disadvantage – because if you want to migrate your vir- tual environments, you have to take a physical copy of their associated storage, as well. This requirement makes the locally attached storage model inappropriate for dynamic, highly fluid environments, such as those found in the cloud.

The ideal virtual storage solution for hosters offering cloud services is one that provides the speed and scalability advantages of locally attached storage but adds the ability to migrate, scale, and snapshot the storage. In addition, its cost per terabyte must be similar to that of local storage, and it should provide object copy redundancy for higher data reliability.

The purpose of this white paper is to provide guidance to hosters who are thinking of moving from traditional storage to cloud storage to enhance their cloud offerings. By explaining how to evaluate the various features offered by the large range of storage providers in the market today, it will help you choose the system that’s best for you.

Understanding the Storage Problem

Most hosting providers today are using either some kind of storage area network (SAN) or direct attached storage (DAS). The latter typically consists of a large machine with multiple disks in a RAID configuration, together with redundant power units, and it exports its storage as a block-level device – either via iSCSI or as shared file-system via NFS.

Neither approach is ideal for hosters, however. The problem with enterprise-class SAN solutions is that they are very expensive, so they will significantly decrease your per-customer margin. The common drawback with DAS is that it doesn’t allow you to leverage unused disk space if other resources – such as CPU or memory – are already assigned to virtual environments. As a result, you’re unable to make efficient use of your available disk space (see Figure 1).

Disk Space Utilization (% Free vs. Used)

100%

80%

90%

(4)

© Parallels Moving Virtual Storage to the Cloud 4

What Makes an Ideal Cloud Storage Solution for Hosters?

In this section, we look at various terms used to describe storage and relate them back to features that will (or won’t) be useful in a hosting environment.

SCALABILITY

Given the necessity of maintaining local scaling of storage bandwidth, it’s clear that you need a distributed environment, because a centralized server system cannot scale. For instance, a centralized NFS server, even on 10Gb/s links, can serve just ten nodes before reaching its maximum bandwidth.

Even if you add fabric-switching technology (such as a SAN or InfiniBand switch) to deliver the full available bandwidth from the servers to the clients, it still won’t match the capacity you can get from a distributed environment. Because of this requirement for a distributed system, any system that uses file servers like NFS, iSCSI, or Fibre Channel is inappropriate. And although it’s possible to use split-fabric technology to overcome some of the objections to a centralized store, such solutions tend to raise the cost per terabyte beyond acceptable limits, making this approach impractical for hosters as well.

MULTIPLE NODES

In a hosting environment, pretty much every box has one or two 1Gb/s Ethernet interfaces, connected by a switch and a local disk. This means that in a storage hosting environment, it’s possible to evenly host at 100MB/s, provided that the storage is served evenly across the cluster, with each node serving storage to all the others at its maximum link speed. However, for this approach to work, the node count of the storage cluster must be the same as that of the compute cluster. This requirement is easiest to achieve if all the nodes in the cluster are both storage and compute nodes.

Therefore, in a hosting environment, scalable storage is best delivered by reusing the existing nodes to run as storage servers. But if you take this approach, it’s important to not disrupt the existing services running on the nodes by overtaxing them with excessive resource requirements – so you need to choose a storage system that makes minimal use of resources.

It’s interesting to note that a 64-node rack cluster with a fast Ethernet switch supporting fabric-switching technology can, using nothing more than 1Gb network cards and fairly run-of-the-mill SATA devices, deliver an aggregate storage bandwidth of around 50GB/s, provided the data placement is done correctly. That’s a greater bandwidth capability than a super-fast SSD array on a modern InfiniBand network, which can only deliver around 40GB/s aggregate on the fabric.

BLOCK-BASED ( NOT FILE-BASED) ROOTS FOR VIRTUAL ENVIRONMENTS

VEs may either (1) use a shared, file-based root (using NFS, a cluster file system like GFS2 or CEPH – or, in the case of containers, binding the mounting directly into the host); or (2) use a block-based root (usually either iSCSI or a block projection of an image file).

The problem with the first approach is that all shared, file-based root systems suffer from a scaling problem as the number of VEs rises. That’s because each VE root contains a large number of small files, and aggregating them in a file environment causes the file server to see a massively growing number of objects. As a result, metadata operations will run into bottlenecks. To explain this problem further: if each root has N objects and there are M roots, tracking the combined objects will require an N times M scaling of effort. Additionally, the objects must be tracked by the metadata, and in a root file system, the size of the objects can vary by ten orders of magnitude (that is, from a few bytes up to many gigabytes).

Tracking objects of such variable sizes creates considerable metadata overhead. For all these reasons, we don’t recommend using shared file-based roots for VEs in highly scalable cloud systems.

In contrast, block-based roots can elegantly avoid the metadata scaling and sizing problems of shared file-based roots because the metadata is effectively partitioned. That is, each root runs a separate file system, which encapsulates its own metadata. Consequently, the metadata of the block export system

(5)

needs to track only the metadata of the object representing the root, so scaling depends only on M (instead of N times M). In addition, because each image representing the block data ranges only from about a gigabyte to a terabyte in size (i.e., varying by only three orders of magnitude), you can use simpler techniques in the metadata to track these objects.

OBJECT HANDLING

The ideal backend for handling block-based roots is one that’s capable of doing incredibly rapid and random updates to the objects. This requirement tends to rule out abstracted image storage like Amazon S3 – an approach that makes it very hard to do random updates.

For the fastest possible updates, once the object layout has been identified from the metadata, you shouldn’t need any further metadata communication to read from and write to the object. Further, the node performing the read or write should be able to communicate directly with the node(s) providing the object. Any encapsulation should be minimal, so the update process can use as much of the available network bandwidth as it needs.

CLONING, SNAPSHOTTING AND DEDUPLICATION

Cloning involves using copy-on-write2 techniques to produce a duplicate of an image object.

Snapshotting involves making a volatile copy of the object, either to permit rollback from a fallible operation, such as an update, or simply to facilitate a backup. Deduplication involves identifying and combining storage regions with identical content in different objects. All three techniques have been important for some time in enterprises that manage virtual environments. However, hosters currently have less need for deduplication, as surveys have shown that they have considerable available space in their environments. Thus, although deduplication may become a requirement for the future, it isn’t currently high on hosters’ feature list at present.

SPARSE OBJECTS AND THIN PROVISIONING

Sparse objects are objects in which not every byte has been allocated – so these objects actually consume less storage than their size would imply. Sparse objects exist because root image files don’t necessarily occupy all the space they have allocated (to see this, just look at the free space on any computer). The technique of using sparse objects is also referred to as “thin provisioning” by array vendors.

As with deduplication, use of sparse objects typically is not of interest to hosting providers because they already generally have more storage than they need. The other factor that makes sparse objects a non-issue for hosters is the widespread use of cloning: in a root that’s been cloned multiple times, unoccupied space will still point back to the master copy, so the only space saving that a sparse object would create would be a single block in the master copy, despite the existence of hundreds of clones.

However, sparse objects are still a useful feature to keep in mind – particularly because they allow

(6)

© Parallels Moving Virtual Storage to the Cloud 6 REDUNDANCY

Hosters today tend to provide redundancy for their local storage solutions by using hardware RAID systems on their individual nodes. Therefore, any cloud storage system based on these nodes can take advantage of the RAID system to provide initial redundancy. However, hosting providers need to be able to survive node failure as well as disk failure, so a cloud storage solution should also be able to duplicate objects across multiple nodes in the cluster. And because object duplication takes additional space, hosters should be able to specify the desired number of object copies.

CLUSTER SIMPLICITY

One of the cardinal principles of system design is that a system should be as simple as possible, containing only as much complexity as is needed to perform all of its functions. Additional complexity beyond this point simply increases overhead, impairing the system’s efficiency and generally weakening it. This is true in part because shared access to objects adds complexity to the cluster algorithms, and in part because the only use case for object roots is exclusive. In fact, mounting the same root to more than one machine will corrupt the underlying file system, making it important that the storage system itself be able to detect and prevent this condition.

Additional complexity also increases the amount of testing required to thoroughly debug the code – but since most organizations have fixed budgets for testing, the net effect is that testing is less comprehensive.

For all these reasons, it’s generally a bad idea to base your cloud storage on clustered file systems.

STORAGE EXPANSION

Since it’s a given that customer storage requirements will only increase over time, expanding the capacity of the cloud storage system should be extremely easy – whether it’s done by adding new disks to individual nodes (preferably by hot-plugging them, so the storage system sees the new disks and simply absorbs them) or by adding additional nodes to the cluster.

Summary of Requirements

This section summarizes our recommendations for cloud storage, based on the preceding observations.

Assuming you’ll be deploying the cloud storage solution on mostly existing hardware, we’ve divided the requirements into two categories: must have for initial deployment, and nice to have for the future.

MUST HAVE FOR INITIAL DEPLOYMENT

The absolutely critical requirements for your initial cloud storage deployment are:

• Cost-effectiveness. The storage solution should be able to reuse your existing hardware setup, require little extra hardware, and be as light as possible in terms of its resource footprint.

• Multi-node performance. The solution must be spread over enough nodes to be able to deliver the same level of performance as your current locally attached storage.

• Block-based objects. To assure optimal performance and handling, the technology must be based on objects representing roots.

• Cloning and snapshotting. The solution must support copy-on-write use of master images, as well as the ability to freeze the state of the storage at any point in time.

(7)

• Hot-plugability. The solution should be easy to expand by simply inserting additional nodes and devices.

• Failure tolerance and redundancy. At a minimum, the solution should protect against single-disk failure. Ideally, it should protect against single-node failure, as well.

• Exclusive object access. The solution should ensure that an object representing a root file system is mounted only once in the cluster at any given time.

NICE TO HAVE FOR FUTURE DEPLOYMENTS

Some additional features that you may find convenient to add for future deployments are:

• Deduplication, to free up additional storage space.

• Sparse objects (thin provisioning), so you can safely overcommit storage.

• Assistance for shrinking legacy file systems, so customers who are charged per unit of storage can optimize their use of storage.

Conclusion

As the cloud revolution progresses, the ability to separate storage from your physical systems will become increasingly important. By understanding what your storage requirements are and how well different cloud storage systems match them, you’ll be able to take full advantages of the benefits that cloud storage has to offer.

To learn more about how cloud storage systems can increase the reliability and scalability of your hosted services and how Parallels helps service providers deliver cloud storage, please visit

www.parallels.com/products/pcs.

NOTES

Virtual environments are individual Infrastructure as a Service (IaaS) units, provided either by hypervisor or container technology.

Copy on write is a technique that enables multiple images to share the same storage block, as long as users only read from those images. Once users write to an image, it will create a block that is unique to that image.

1 2

References

Related documents

* This paper is presented to the 2nd KRIS-Brookings Joint Conference on "Security and Diplomatic Cooperation between ROK and US for the Unification of the

The new formalization using the stratified sample design with non-overlapping strata, allows to consider rigorously all the mathematical details of the model as for instance

Existing estimates of sea surface temperatures (SSTs) indicate that, during the early twentieth century, the North Atlantic and Northeast Pacific oceans warmed by twice the

creditors provide a Loan Estimate in good faith, based on the best information reasonably available to the creditor..  It must be delivered or placed in the mail to

The Mint reports the Deep Storage gold as a custodial asset held for Treasury and the Working Stock gold as a component of the operating inventory of coinage metal (copper,

NOTAM NOTAM FPL FPL ATALIS Nairobi HKJK ATALIS Nairobi HKJK NOTAM NOTAM ATALIS Briefing HKMO, HKNW ATALIS Briefing HKMO, HKNW IP IP AFTN AFTN IP IP.. ATALIS

The conditional means of individual connections are plotted against their true values (over all simulations) in Figure 8, for the full model (upper left panel) and selected

Information Builders is the only vendor Ovum evaluated that does not offer its own data discovery tool meant for the nontechnical business user.. However, as this is now