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.
7. 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
9. 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
13. 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
14. 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
15. What you can do with storage?
● Template
– Import template
– Create vm from template
– Export template
– Copy template between zones
16. Part2: storage framework
Mgt 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
17. 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.
18. 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.
19. 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.
20. 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
21. 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
22. 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?
23. 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
24. 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