crystal: software-defined storage for multi-tenant object ... · what is software-defined storage?...

29
Crystal: Software-Defined Storage for Multi-tenant Object Stores Raúl Gracia-Tinedo, Josep Sampé, Edgar Zamora, Marc Sánchez- Artigas, Pedro García-López (Universitat Rovira i Virgili, Spain) Yosef Moatti, Eran Rom (IBM Research-Haifa, Israel)

Upload: others

Post on 22-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Crystal: Software-Defined Storage for Multi-tenant

Object Stores

Raúl Gracia-Tinedo, Josep Sampé, Edgar Zamora, Marc Sánchez-Artigas, Pedro García-López (Universitat Rovira i Virgili, Spain)

Yosef Moatti, Eran Rom (IBM Research-Haifa, Israel)

Page 2: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

A LESSON FROM A PALM TREE

2

Page 3: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

A lesson from a palm tree

3

• When the weather is good, all the trees enjoy J

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 4: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

A lesson from a palm tree

4

• But weather conditions may change dramatically…And, when the storm comes…

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 5: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

A lesson from a palm tree

5

• Some trees get through a storm better than others.

• One of the key properties for a tree to survive a storm is being flexible.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 6: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

A lesson from a palm tree

6

• This work aims to make object stores flexible for adapting the system to changing requirements.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Flexibility

• Programmability• Extensibility• Automation• Control

Page 7: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

CONTEXT: SOFTWARE DEFINED OBJECT STORAGE

7

Page 8: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

What is Software-Defined Storage?

“Software-defined storage (SDS) is a new term for data storage software that provides policy-based provisioning and managementof data storage independent of the underlying hardware.”

(Wikipedia)

8

• Hey! What does Software-Defined Storage mean?

• SDS: Automation, management, optimize workloads,…

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Google Trends

Object storage

SDS

Page 9: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

SDS Concepts & Works

9

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

• SDS systems decouple control/data planes:– Control plane: Definition of policies, intelligence– Data plane: Enforcement of policies, manage data flows

• SDS systems in the literature:– IOFlow (SOSP’13): BW control/middleboxes, targets file-system– Retro (NSDI’15): Resource management, guarantee SLOs – sRoute (FAST’16): Network-like model to treat flows (sSwitches)

• We focus on object storage (OpenStack Swift):– Policy-based redundancy models in Swift (from Kilo version)– Companies like SwiftStack sell automation, provisioning, and metering

services.

• But, can we go a step further? And, why?

Page 10: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

PROBLEM: ADVANCED STORAGE MANAGEMENT

10

Page 11: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

What if…

11

Swift Proxy

Storage Nodes

VM VM

VM VM

Tenant 1: Stores compressible data

Can we compress only T1’s data to save storage space?

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

VM VM

VM VM

Tenant 2: Stores non-compressible data

Page 12: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Or, what happens if…

12

Swift Proxy

Storage Nodes

VM VM

VM VM

VM VM

VM VM

Tenant 1: SLO=30MBps

Tenant 2: SLO=60MBps

Can we enforce service-level objectives on tenants?

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 13: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Sadly, Swift lacks from flexibility…

13

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 14: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

CRYSTAL

14

Page 15: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Design Principles of Crystal

15

• Crystal is a SDS framework to solve storage management problems in object stores (OpenStack Swift):– It is not an ad-hoc solution to a particular problem!

• Crystal decouples control/data planes:

Control Plane

Data Plane

Policies, Controllers

Filters, Triggers

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 16: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

16

Swift Proxy Swift Storage Node

Filter framework

• Filter: Data transformation executed on object requests.E.g., compression, caching, encryption, bandwidth allocation…

• Two types of filters:• OpenStack Storlets (isolated execution)• Native filters (non-isolated execution)

Filters are pluggable at runtime!!

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Crystal Design (Data Plane)

Page 17: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

17

Swift Proxy Swift Storage Node

Workload metrics framework

• Inspection triggers: Information of a particular aspect of the system operation to trigger the execution of filters.• Object metadata: object size, type,…• Workload metrics: E.g., requests/sec, CPU load, object contents,…

PUTS_SECPUTS_SEC

Workload metric process

Metrics are pluggable at runtime!!

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Crystal Design (Data Plane)M

onitoring info

Page 18: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Crystal Design (Control Plane)• Controller: Algorithm that receives as input workload

metrics to manage the execution of filters.

• We provide two types of controllers:– Automation controllers: Simple activation rules (self-generated).– Global controllers: Global visibility and coordination of a filter at

the data plane (user-defined).18

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Workload metric processesLayer of distributed controllers

Publish/subscribe

Monitoring info

Page 19: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Crystal Design (Control Plane)• IFTTT-like policies: Crystal provides administrators with a

simple “If-This-Then-That”-like DSL

• The vocabulary of the DSL can be expanded at runtime:– By adding new filters– By adding new workload metrics and triggers

19

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 20: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

EXPERIMENTAL RESULTS

20

Page 21: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Setup

21

• 13 nodes cluster:– 1 Controller: controllers, metadata,

messaging, authentication, Swift proxy (Dell PowerEdge 420, 32GB RAM, 1TB HDD)

– 3 nodes to execute workloads (Dell PowerEdge 420, 32GB RAM, 1TB HDD)

– 2 Swift Proxies (Dell PowerEdge 320 , 28GB RAM, 1TB HDD, 500GB SSD)

– 7 Storage nodes (Dell PowerEdge 320,16GB RAM, 2x1TB HDD)

• Switched 1GBit Ethernet

• OpenStack Swift Kilo version

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 22: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Storage Automation

22Swift Proxy Swift Storage Nodes

Data Plane

Control Plane

FOR CONTAINER C1 WHEN GETS_SEC>5 DO SET CACHING ON PROXY

DSL Compiler

Crystal APIs

Metadata store

Container C1

C1 -> CACHING

GETS_SEC

GETS_SEC

Monitoring info

GET

S_SE

C

Page 23: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Storage Automation

23

• Oscillatory workload with high locality (0 to 10 PUT/GET per sec.).• Simple LRU caching filter exploiting proxy SSDs.• Enforce caching under higher loads (GET_SEC>5)

– Reads are 30% faster (in median) when caching is activated.– Writes are almost not affected.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 24: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Bandwidth Differentiation

24Swift Proxy Swift Storage Nodes

Data Plane

Control Plane

FOR TENANT T1 DO SET BANDWIDTHWITH GET_BW=30 ON STORAGE_NODE

DSL Compiler

Crystal APIs

Metadata store Monitoring info

GET_BW

GET_BW GET_BW

GET_BW GET_BW

T1 -> GET_BW=30

Page 25: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Bandwidth Differentiation

25

• 3 ssbench tenants executing 128MB GETs against the cluster.• Bandwidth throttling filter (deployed at storage nodes).• 2 global controllers (GET BW, Replication BW)• Until replication traffic is controlled, SLOs are not achieved.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 26: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

CONCLUSIONS

26

Page 27: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Conclusions

27

• Many object stores are hard to adapt to new requirements.

• We presented Crystal, the first SDS architecture for object stores:– Control plane: Policies (IFTTT-like), Controllers (distributed algorithms)– Data plane: Filters (compute on objects), Triggers (metrics, metadata)

• We demonstrated the extensible design of Crystal:– New storage automation policies (compression, caching,…).– A global bandwidth control filter.

• The framework opens the door to investigate new storage filters and control algorithms.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Page 28: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

QUESTIONS? THANK YOU!

http://crystal-sds.org

https://github.com/Crystal-SDS

28

Page 29: Crystal: Software-Defined Storage for Multi-tenant Object ... · What is Software-Defined Storage? “Software-defined storage (SDS) is a new term for data storage software that provides

Overheads

29

• Metadata accessoverhead:– 3.9% 1MB

• Isolated flowinterception:– 15.7% 1MB– 5.7% 10MB

• Performance mayalso depend on datacontent & access patterns.

http://crystal-sds.org @iostackprojecthttps://github.com/Crystal-SDS

Plai

n Sw

ift

Met

adat

a ac

cess

NO

OP

filte

rC

ompr

essi

on

(0s

data

)C

ompr

essi

on

(ran

dom

dat

a)

Plai

n Sw

iftM

etad

ata

acce

ssN

OO

P fil

ter

Com

pres

sion

(0

s da

ta)

Com

pres

sion

(r

ando

m d

ata)

PUT

Exec

utio

n Ti

me

(sec

onds

)