New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO...

39
New Fresh Open Source Object Storage OpenIO Jean-Francois Smigielski SNIA SDC 2016 Santa Clara, CA

Transcript of New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO...

Page 1: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

New Fresh Open Source Object Storage

OpenIOJean-Francois Smigielski

SNIA SDC 2016Santa Clara, CA

Page 2: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

@OpenIO

2006 2007 2009 2012 2014 2015

OpenIOfork

Idea Dev. 1PBOpen

source15+PB

60M users

Lille, Tokyo, San Francisco, Montreal, Madrid

Page 3: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Achievements

E-mails + Consumer Cloud >> major french ISP

Strong SLAs (latency, availability)

15+PiB, 60M end users

50Gib/s IN+OUT

Page 4: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#idea

Page 5: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

-,2006: The painful days

Too much dataGrowth acceleration

Silos, sharding,migrations …

Too manyoperators

$TCO too high !

Page 6: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Powering Real apps

Large stacks of interfacesbecome I/O-unfriendly

Necessity of an App. Aware solution with pragmatic Software Definedapproach

Page 7: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

“Double Humped” data

Mixed data profiles● Most of the capacity by large

cold files● Most of the I/O ops on small

hot files

E.g. mailbox index vs. Contents.

Colocating seems a bad idea.

Capacityused

Ops / GiB

Content size

Page 8: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

No big investment at day-0

Start small

Grow when necessary

Grow without limit

Recycle HW

JIT invest. appreciated

Uninterrupted deliveries

US

ED

TO

TAL

Page 9: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Up-to-date HW

HW recycling

HW decommisionning

New vendor deals

Etc ...

JIT invest' problem:heterogeneity

Need for versatility adaptation!

Page 10: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Real humans managed

Strong End-User orientation

Observed Daylight rythm

Goal of flexibility

Users onlineOK for admin.

12AM

6PM8PM Bandwidth

IN+OUT

Page 11: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Real humans served

Major ISP use-case● Emails, Videos, Archives● 10⁸ users / ISP● 10⁶ contents / user● < 100ms to download 1MiB● < 20ms latency

Data life-cycle● Recent data used● Large data ignored● Buzz effects

Room for caches & multiple tiers

Page 12: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#Architecture

Page 13: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Split hot/cold, offload cold

Independant low cost drives

Software Defined glue

Go for an Elastic Storage

Page 14: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Consistent Hashing Algorithms !

● Scale up Rebalancing→

● Decommissioning Rebalancing→

Both happen every week…

The idea (to avoid)

Page 15: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Locations not fixed?Choose + Remember

Conscience Directories

Page 16: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Distributes recent snapshots of your platform

Discovers the servicesQualifies themLoad-Balances on them

The Conscience

Page 17: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

The directories

Remember polled locations for

10⁸ [user] * 10⁶ [content/user]

Divided into trivial problems

● Naming indirection !

● 1 directory of users services

● 1 directory of contents / user

Page 18: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

The directory of services

Layered as a hash table

● 1st level higly static

● 2nd level sharded in 64k slots

Replicated (replicas + backlinks)

SQLite powered: 1 file/shard replica

Sharded yet small & non-volatile → cached

...

Page 19: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

The containers

Object view

Versions, Hardlinks, Properties

Efficient listing

Notifications async mgmt→

Replicated (replicas + backlinks)

SQLite powered : 1 file/replica

Map<name, Set<@>>

Page 20: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

SDK's model

proxy-dirproxy-data

Client App.

data-client dir-client

oio-sds client

http http+json

CachingLoad-balancing

Erasure codingReplication

Page 21: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Where latency matters

proxy-dir

Client App.

data-client dir-client

oio-sds client

Page 22: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Connectors

OSS:

SDK: Python, C, Java

Interfaces: S3, Swift

Specific Editions:

Email: cyrus, dovecot, zimbra

Media: tailor-made HTTP

Filesystem: FUSE, NFS, ...

Page 23: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#Tiering#Flexibility

Page 24: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Easy Tiering

Directory of users

Directories of contents

Pointers everywhere!

Page 25: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Storage Policy

=

Storage Pool + Data Protection

“Where” “How”

Page 26: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Storage pools« Where »

Fine load-balancing

Tag-based, Fallbacks

Distance constraints

Geo-distribution

Data Protection« How »

Erasure code ?

Replication ?

Plain ?

Page 27: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Tiering rules « Why »

Dynamic storage policy(still under active development)Filter on metadata(Mime-Type,size, ctime, mtime, ...)

Configuration« When »

Set upon an upload

Per content > container > account

Managed asynchronously

Page 28: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Immediate benefits

Possible partitions...

● Platform (high-end, low-end)

● Users set (gold, regular)

All QoS elements!

All allow cost optimisations!

Page 29: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#hybrid#cloud

Page 30: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Why public tiers ?

TCO still too high for ultra-cold data

Alternative to tape archiving

Ultra-cold tier

Page 31: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Public tiers: How ?

Dedicated Storage Policy

Embedded connector

Asynchronism to cope with limited bandwidth

proxy-dirproxy-data

Client App.

data-client dir-client

oio-sds client

Page 32: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

First partner Backblaze B2

Page 33: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#serverless#storage

Page 34: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Still...

Too much HW complexity

Too much sysadmin required

Technical “lasagna” with bugs and latencies on each layer

Could we drop servers ?

Page 35: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

The Kinetic Opportunity

TCP/IP/Ethernet connected drives

Direct access to data

No host required

Sorted map of <Key,Value>

Page 36: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

The perfect tier!

Same vision !

Sleek protocol

No host required

Direct access to the data(when it matters)

Proxied access(when enough)

proxy-dir

Client App.

data-client dir-client

oio-sds client

K K K K K K K K KK K K K K K K K KK K K K K K K K K

Page 37: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

Meet theKinetic Open Storage Groupand OpenIO at the Plugfest

Sonoma Room, 09/20

Page 38: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

!Apps need more than just storage

Processing colocated to dataMetadata handlingFull text search

We call this Grid for Apps… out of scope of SDC

Page 39: New Fresh Open Source Object Storage OpenIO€¦ · @OpenIO 2006 2007 2009 2012 2014 2015 OpenIO fork Idea Dev. 1PB Open source 15+PB 60M users Lille, Tokyo, San Francisco, Montreal,

#scalable#opensource

#objectstorage#tiering

#serverless#hybrid#cloud

?http://openio.io