architecting an enterprise storage platform using object stores

46
Architecting an Enterprise Storage Platform Using Object Stores © mekuria getinet / www.mekuriageti.net NirajTolia Chief Architect, Maginatics @nirajtolia

Upload: niraj-tolia

Post on 15-Jan-2015

798 views

Category:

Technology


1 download

DESCRIPTION

Presented at SNIA SDC 2013

TRANSCRIPT

Page 1: Architecting An Enterprise Storage Platform Using Object Stores

Architecting an Enterprise Storage

Platform Using Object Stores

© mekuria getinet / www.mekuriageti.net

Niraj Tolia

Chief Architect, Maginatics

@nirajtolia

Page 2: Architecting An Enterprise Storage Platform Using Object Stores

A Whirlwind Tour

Page 3: Architecting An Enterprise Storage Platform Using Object Stores

Awesome Questions == Awesome T-shirts

Page 4: Architecting An Enterprise Storage Platform Using Object Stores

80% YoY Growth in Unstructured Data

41% Growth in IaaSSystems through 2016

Sources:

Gartner, IT Marketing Clock for Storage, Sep 2011

Gartner, Forecast Overview: Public Cloud Services, Worldwide, 2011-2016, Feb 2013

Page 5: Architecting An Enterprise Storage Platform Using Object Stores

MagFS –The File System for the Cloud

Consistent, Elastic, Secure, Mobile-Enabled

Layered on Object Stores

“Software-Defined”

Page 6: Architecting An Enterprise Storage Platform Using Object Stores

No (Initial) Legacy Support (NFS/CIFS)

Native Clients: Push Intelligence to Edges

Strong Consistency w/ Full-Spectrum Caching

Page 7: Architecting An Enterprise Storage Platform Using Object Stores

File System Design Goals

Low Cost, High Scale

Intelligent Clients

Span Devices and Networks

Support Rapid Iteration

Page 8: Architecting An Enterprise Storage Platform Using Object Stores

In-CloudFile System

NAS Replacement and Consolidation

Enterprise File Sharing

Use Cases

Page 9: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage(public, on-premises, or hybrid)

Data

Metadata

Metadata Servers

Clients

10,000 Foot View

Page 10: Architecting An Enterprise Storage Platform Using Object Stores

Koukouvaya / flickr.com/photos/jackoughton/6535137981/

Heavy (Data) Lifting via Clients

Encryption

Inline Deduplication

Compression

Persistent Data Caching

Bulk Data Transfers

Page 11: Architecting An Enterprise Storage Platform Using Object Stores

Cloud Object Storage

Scale Out, Low Cost

Handles Placement + Replication

Tolerates Failures

High Aggregate Performance

Page 12: Architecting An Enterprise Storage Platform Using Object Stores

Virtualized Metadata Servers

Enforce Strong Consistency

Enforce Authentication and Integrity

Runtime Performance Optimization

Share-level Deduplication

Data Scrubbing & Garbage Collection

Page 13: Architecting An Enterprise Storage Platform Using Object Stores

Architecture

Page 14: Architecting An Enterprise Storage Platform Using Object Stores

Client

Architecture

Page 15: Architecting An Enterprise Storage Platform Using Object Stores

Client Architecture

Application

Redirector

(e.g., FUSE)

File System

OS Glue

Data Manager

Metadata Transport

Layer

Local Remote

Userspace

Kernel

Deduplication Encryption Compression

Locking Leases

Page 16: Architecting An Enterprise Storage Platform Using Object Stores

Data Manager

File System Layer

Simplified Write: Deduplication + Encryption

Write Request

Plaintext

Variable-Length

Chunking

Encrypted Text (E)

AES-256 (K)

Object Name (N)SHA-256

Local Cache Remote Transfer

Encryption Key (K)SHA-256

Page 17: Architecting An Enterprise Storage Platform Using Object Stores

Data Manager

File System Layer

Simplified Write: Deduplication + Encryption

Write Request

Plaintext

Variable-Length

Chunking

Encrypted Text (E)

AES-256 (K)

Object Name (N)SHA-256

<File, Offset, N, K>

Optional(<URI>)Local Cache Remote Transfer

<N, E>

<URI, E>

No Encryption Keys

in the Cloud

No Encryption Keys

in Local Cache

Encryption Key (K)SHA-256

<E>

Page 18: Architecting An Enterprise Storage Platform Using Object Stores

Data Manager

File System Layer

Simplified Read: Deduplication + Encryption

Read Request

<File, Offset, Range>

Local Cache Remote Transfer

<N, URI>

Encryption Key (K)

<N, K, URI>

Encrypted Text (E)

<E>

<URI>

<E>

<URI>

<E>

Plaintext

AES-256 (K)

Page 19: Architecting An Enterprise Storage Platform Using Object Stores

The Client in Real Life Does a Lot More!

• File and Directory Leases (data and metadata caching)

• Asynchronous Operations (including writes)

• Operation Compounding

• Runtime Optimizations (e.g., read ahead)

• Optimizing for High Bandwidth Delay Product (BDP)

• …

Page 20: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage(public, on-premises, or hybrid)

Data

Metadata

Metadata Servers

Clients

Communication Details

Thrift

(HTTPS)

REST

(HTTPS)

Page 21: Architecting An Enterprise Storage Platform Using Object Stores

Server

Architecture

Page 22: Architecting An Enterprise Storage Platform Using Object Stores

Metadata Server Internals

Metadata Storage Layer

Storage Core

Backups

Production Development

GC

Scrubbing

Quotas Dedup Leases Security

HA

MagFS

Ext. Sharing

Multi-Cloud Versioning Offline Mode

Cloud Abstraction Layer

Legend

Page 23: Architecting An Enterprise Storage Platform Using Object Stores

Bootstrapping: Virtualized Namespaces

\\server.example.com\share

HOST FQDN FOLDER

Legacy

\\server.example.com\shareMagFS

Dynamic mapping to host:port

Page 24: Architecting An Enterprise Storage Platform Using Object Stores

Discovery Service

Metadata

Server

Metadata

Server (HA)

Metadata

Server

ZooKeeper

ZooKeeperZooKeeper

MonitoringManagement

Console

Config +

Scheduler

Virtual Filer Host:Port Mapping

Page 25: Architecting An Enterprise Storage Platform Using Object Stores
Page 26: Architecting An Enterprise Storage Platform Using Object Stores

Leases: Performance and Strong Consistency

Read Write HandleLease Types

ReadRead + Handle

Read + Write + Handle

Lease States

Valid File Leases

Valid Directory Leases

Page 27: Architecting An Enterprise Storage Platform Using Object Stores

Cloud Storage

Interaction

Page 28: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage(public, on-premises, or hybrid)

Page 29: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage systems

are like snowflakes!

Page 30: Architecting An Enterprise Storage Platform Using Object Stores

Object Store API Compatibility

Q: Has anyone come across a near 100%

Amazon S3 API compatible object storage

system?

A: It is hard to find a near-100% compatible

product…

- Vendor w/ S3 Compatible Product

Page 31: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage(public, on-premises, or hybrid)

Data

Metadata

Metadata Servers

Clients

Direct Client Access: Security Problem?

Page 32: Architecting An Enterprise Storage Platform Using Object Stores

Request Signing

Page 33: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = HTTP-Verb + "\n"

+ Content-MD5 + "\n"

+ Content-Type + "\n"

+ Date + "\n"

+ Resource + "\n"

+ ...

Page 34: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ Content-MD5 + "\n"

+ Content-Type + "\n"

+ Date + "\n"

+ Resource + "\n"

+ ...

Page 35: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ Content-Type + "\n"

+ Date + "\n"

+ Resource + "\n"

+ ...

Page 36: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ image/jpeg + "\n"

+ Date + "\n"

+ Resource + "\n"

+ ...

Page 37: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ image/jpeg + "\n"

+ Tue, 11 Jun 2013 00:27:41 + "\n"

+ Resource + "\n"

+ ...

Page 38: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ image/jpeg + "\n"

+ Tue, 11 Jun 2013 00:27:41 + "\n"

+ /container/example.jpeg + "\n"

+ ...

Page 39: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ image/jpeg + "\n"

+ Tue, 11 Jun 2013 00:27:41 + "\n"

+ /container/example.jpeg + "\n"

+ ...

HMAC-SHA1( , SignString)

Page 40: Architecting An Enterprise Storage Platform Using Object Stores

Server-Driven Request Signing

SignString = PUT + "\n"

+ 07BzhNET7exJ6qYjitX/AA== + "\n"

+ image/jpeg + "\n"

+ Tue, 11 Jun 2013 00:27:41 + "\n"

+ /container/example.jpeg + "\n"

+ ...

Signature = Base64(HMAC-SHA1( , SignString))

Page 41: Architecting An Enterprise Storage Platform Using Object Stores

Object Storage(public, on-premises, or hybrid)

Data

Metadata

Metadata Servers

Clients

Safe Direct Client Access via Request Signing

1. Read/Write Request

3. HTTP Request +

Signature +

Encrypted Data

2. HTTP Request + Signature

Page 42: Architecting An Enterprise Storage Platform Using Object Stores

Dealing with Lost Client Writes

• Clients can lose connectivity or, in the worst case, be malicious

• Naïvely trusting client writes can “corrupt” w/ global dedup

• MagFS server scrubs all writes:• Client acknowledges write

• Server verifies object existence (object store performed MD5 at PUT)

• Server can also read and verify object data (stronger SHA-256 check)

• The object will be available for deduplication only after scrubbing

Page 43: Architecting An Enterprise Storage Platform Using Object Stores

Handling Object Store Eventual Consistency

• Treat objects as immutable (even if modifications are allowed)

• Use content-based names (generated using cryptographic hashes)

• Tombstone names after Garbage Collection• Suffix generation number to content-based names in case of resurrection

Page 44: Architecting An Enterprise Storage Platform Using Object Stores

Security

Architecture

Page 45: Architecting An Enterprise Storage Platform Using Object Stores

Recap: On-Premises Security Model

• User authentication and permissions derived from native Active Directory setup

• Encryption keys are never exposed to the cloud

• Data and metadata is always encrypted: At-Rest and In-Flight

Page 46: Architecting An Enterprise Storage Platform Using Object Stores

Slides (with speaker notes) at http://tolia.org

Try MagFS at http://maginatics.com