25
CloudStack storage subsystem introduction Edison Su

Introduction to CloudStack Storage Subsystem

Embed Size (px)

DESCRIPTION

Explore CloudStack storage architecture. Discuss the new CloudStack storage API and learn how to integrate all kinds of storages (s3/swift/NetApp/Ceph etc) into CloudStack.

Citation preview

Page 1: Introduction to CloudStack Storage Subsystem

CloudStack storage subsystem introduction

Edison Su

Page 2: Introduction to CloudStack Storage Subsystem

● Agenda– CloudStack storage subsystem introduction

– New storage API introduction

Page 3: Introduction to CloudStack Storage Subsystem

Storages in CloudStack

● Primary storage– Root disks and data disks

● Secondary storage– Images

– Volumes and snapshots backup

Page 4: Introduction to CloudStack Storage Subsystem

Primary storage

● Different scopes– Local storage, cluster-wide storage, zone-wide

storage

● Different types– NFS/iSCSI/FC/Ceph

Page 5: Introduction to CloudStack Storage Subsystem

Life Cycle of a primary storage

Start Initialized ReadyInitializeAttach

Maintenance

Maintenance

Removed

Remove

UnM

aintenance

Page 6: Introduction to CloudStack Storage Subsystem

Features highlight

● Storage as a service– Storage tags

– Disk offering with tags

Page 7: Introduction to CloudStack Storage Subsystem

Features highlight

● Mix setup of different storages– Multiple scope of storages can be coexist in one

zone

– Multiple types of storages can be coexist in one zone

– Different hypervisors can be coexist in one zone

Page 8: Introduction to CloudStack Storage Subsystem

Secondary storage

● Different scopes– Region/zone wide

● Different types– Nfs/S3/Swift

Page 9: Introduction to CloudStack Storage Subsystem

What is secondary storage VM?

● Don't mislead by its name, it's more powerful than just dealing with secondary storage

● A bootstrap VM created by CloudStack● It's the place where storage provision

happened● VM's cpu/ram/network throughput is fine

grained controlled

Page 10: Introduction to CloudStack Storage Subsystem

Scaling storage provision

Mgt server

Mgt server

Mgt server

SSVM

SSVM

SSVM

SSVM

PrimaryStorage

SecondaryStorage

Page 11: Introduction to CloudStack Storage Subsystem

A typical setup

Cluster storage

storage

storage

Nfs Secondary storage

Cluster storage

storage

storage

Zone

Page 12: Introduction to CloudStack Storage Subsystem

Multiple zones setup

Clusters

storages

Nfs as cache storage

Zone BZone A

Nfs as cache storage

S3/Swift

storages

Clusters

Page 13: Introduction to CloudStack Storage Subsystem

What you can do with storage?

● Volumes– Create root/data volume on primary storage

– Import data volume

– Create template from volume

– Create snapshot from volume

Page 14: Introduction to CloudStack Storage Subsystem

What you can do with storage?

● Snapshot– Create volume snapshot on primary storage

– Backup snapshot into secondary storage

– Create template from snapshot

– Xenserver supports delta snapshot

Page 15: Introduction to CloudStack Storage Subsystem

What you can do with storage?

● Template– Import template

– Create vm from template

– Export template

– Copy template between zones

Page 16: Introduction to CloudStack Storage Subsystem

Part2: storage frameworkMgt server storage orchestration engine

ImageService

VolumeService

SnapshotService

DataMotionService

StoragePoolAllocator

DataStore plugin

DataStore plugin

DataStore plugin

Storage provision

Hypervisor agent

SSVM agent

Any other provision service

Storage box

Page 17: Introduction to CloudStack Storage Subsystem

Design considerations

● Separate orchestration and provision– Orchestration decides which storage to use, where

to conduct storage provision, what resources needed for storage provision

– Orchestration only working on the control panel

– Provision working on the data panel, actually talking to storage, either through hypervisor API or storage vendor's API, or common storage protocols.

Page 18: Introduction to CloudStack Storage Subsystem

Orchestration is complicated

● Different hypervisors, different storage solutions have different requirements, can work differently

● CloudStack has different plugins to hookup into CloudStack management server, change the way how to orchestrate storage related operations.

Page 19: Introduction to CloudStack Storage Subsystem

Orchestration is complicated

● For example, what's the requirements to download a template from s3 into primary storage?– For file system based storage, it's easy, directly

download from s3 to primary storage

– For block based storage, you may need to download template into a temporary file system, then import the file primary storage through hypervisor's API

– So during the orchestration, it decides for this storage, need a file based storage as cache storage, download it into cache storage, then import into primary storage. While for other storage, don't need this cache storage.

Page 20: Introduction to CloudStack Storage Subsystem

Orchestration is complicated

● For example, where is the place to create volume?– For KVM/Xenserver, one can login into hypervisor

host, do a lot of things to create a volume

– For Vmware, has to go through vCenter API

– If storage vendor has its own APIs on the control panel, it can be directly called on the mgt server

– If there are other storage services running out of cloudstack mgt server, cloudstack should be able to talk to them

Page 21: Introduction to CloudStack Storage Subsystem

Orchestration is complicated

● For example, what's the requirements for storage migration?– If hypervisor supports, one can directly call

hypervisor's API, no additional resource needed

– If no, then may need a temporary storage to copy the storage back and forth

– If other storage vendor has its own clever way to do storage migration, may have other requirements

Page 22: Introduction to CloudStack Storage Subsystem

Orchestration is complicated

● For example, what's the best way to take and backup snapshot?– Full snapshot vs delta snapshot

– Hypervisor based snapshot vs storage snapshot

– Do you need a temporary storage as cache storage, during snapshot backup?

Page 23: Introduction to CloudStack Storage Subsystem

What's the plugins for orchestration

● CloudStack 4.2 will provide a flexible storage framework for deep integration with different storage solutions

● One thing can't fit all, so we orchestrate differently● The extension points for orchestration:

– Pluggable UI– DataStoreDriver– DataMotionStrategy– SnapshotStrategy

● It's actively developed on object_store branch, should be merged into 4.2

Page 24: Introduction to CloudStack Storage Subsystem

Provision

● Mainly related to data motion– Download template from s3 to primary storage

– Back up snapshot from primary storage to s3

– Move disk from one storage to another

– Etc

● It's on the data path● Provision usually happened inside SSVM or on

the hypervisor host– SSVM is the place to scale, by default

Page 25: Introduction to CloudStack Storage Subsystem

Q & A