Top Banner
You can rely on whenever you need Yosuke Hara Oct 30, 2012 Tuesday, October 30, 12
44

Introduce LeoFS

Nov 12, 2014

Download

Technology

Yosuke Hara

Introduce LeoFS - Object Storage System for the Web
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduce LeoFS

You can rely on whenever you need

Yosuke Hara Oct 30, 2012

Tuesday, October 30, 12

Page 2: Introduce LeoFS

1. Motivation

Tuesday, October 30, 12

Page 3: Introduce LeoFS

Need to store and managehuge amount of “media files” at low-cost.

Tuesday, October 30, 12

Page 4: Introduce LeoFS

1. Low ROI2. Possibility of SPOF3. Storage Expansion is difficult during increasing data

?

Tuesday, October 30, 12

Page 5: Introduce LeoFS

X 3.5

Face the situation

*ZDNet: http://www.zdnet.com/blog/btl/amazon-web-services-hosts-more-than-762-billion-objects-in-s3/68308

Tuesday, October 30, 12

Page 6: Introduce LeoFS

“Object Storage System”

Tuesday, October 30, 12

Page 7: Introduce LeoFS

5MB 100MB a few GB

From Photo Storage To Cloud Storage

1st step as Cloud StorageSpecialize in “Photo”

Tuesday, October 30, 12

Page 8: Introduce LeoFS

5MB 100MB a few GB

From Photo Storage To Cloud Storage

Aim to “DATA-HUB” in the CloudHandle various unstructured data

Tuesday, October 30, 12

Page 9: Introduce LeoFS

S3FS-C

Tuesday, October 30, 12

Page 10: Introduce LeoFS

Aim To

Tuesday, October 30, 12

Page 11: Introduce LeoFS

2. Overview

Tuesday, October 30, 12

Page 12: Introduce LeoFS

Storage

Gateway

Manager

ConcurrencyDistributionFault tolerance

Using in Telecom, Banking, e-commerce, Instant messaging,...

Tuesday, October 30, 12

Page 13: Introduce LeoFS

LeoFS-Manager

LeoFS-Gateway

LeoFS-Storage

REST over HTTPRPC

Request from Web Application(s) or Browser

META Object Store

Storage Engine/Router

META Object Store META Object Store

RPC

Storage Engine/Router Storage Engine/Router

Load Balancer

S3-API

SNMP

GUI Console

LeoFS Overview

Gateway (Stateless Proxy)

HTTP Request/Response Handling+

w/Object Cache

ManagerSystem Management

Ring MonitorNode State Monitor

StorageObject Storage, Meta data Storage

+Replicator/Recoverer, Qeueue

Tuesday, October 30, 12

Page 14: Introduce LeoFS

LeoFS-Manager

LeoFS-Gateway

LeoFS-Storage

REST over HTTP (80/443) RPC

(4369)

Request from Web Application(s) or Browser

META Object Store

Storage Engine/Router

META Object Store META Object Store

RPC (4369)

Storage Engine/Router Storage Engine/Router

Load Balancer

S3-API

Monitor(SNMP)

GUI Console

(4000,4010,4020)

(10020, 10021)

Tuesday, October 30, 12

Page 15: Introduce LeoFS

1 - Minimum for Development

Manager x 1 Gateway x 1 Storage x 1

20 - 50TB Storage System (# of replicas = 3)

Manager x 2 Gateway x 3 .. Storage x 8 - 15

10TB .. 20TB / server

50 - 300TB Storage System (# of replicas = 3)

Manager x 2 Gateway x 4 .. Storage x 45 - 90

10TB .. 20TB / server

on XEN, VMWare

Tuesday, October 30, 12

Page 16: Introduce LeoFS

Media Platform

Application / Log Collector

Search / Analysis

PaaS / IaaS

DATA-HUB

Tuesday, October 30, 12

Page 17: Introduce LeoFS

Tuesday, October 30, 12

Page 18: Introduce LeoFS

“DATA-HUB”

Tuesday, October 30, 12

Page 19: Introduce LeoFS

Inside LeoFS

Tuesday, October 30, 12

Page 20: Introduce LeoFS

LeoFS ArchitectureGatewayHTTP

Tuesday, October 30, 12

Page 21: Introduce LeoFS

LeoFS ArchitectureGatewayHTTP

Storage Cluster

Erlang RPC

Erlang RPC

Manager Cluster

State/Process MonitorErlang RPC

Object Cache

Tuesday, October 30, 12

Page 22: Introduce LeoFS

LeoFS Architecture - Gateway / Storage

Storage Engine

Object Storage Metadata

StorageRPC RPC

membership (fault-detection)

redundant-manager replicator

queue

read-repairer

Gateway REST over HTTP (S3-API)

redundant-manager membership (fault-detection)

get put delete head

RPC

Tuesday, October 30, 12

Page 23: Introduce LeoFS

LeoFS Gateway

Tuesday, October 30, 12

Page 24: Introduce LeoFS

*Cowboy: Erlang light-weight HTTP-Server - http://http://www.ninenines.eu/

Gateway

From ApplicationsS3-API

Object Cache

Replicate when using RPC

Consistent HashingHorizontal Distribution

Storage Nodes

[ LRU, Slab allocator, Skip graph ]“Cowboy”

“Stateless Proxy”

Tuesday, October 30, 12

Page 25: Introduce LeoFS

LeoFS Storage

Tuesday, October 30, 12

Page 26: Introduce LeoFS

...

LeoFS Storage

leo-object-storage

LeoFS Storage Engine

Metadata : Keeps an in-memory index of all data.Object Storage : Log structured (append-only) object store.

Request From Gateway

replicatorrepairer

queue...

Tuesday, October 30, 12

Page 27: Introduce LeoFS

LeoFS Storage Engine - Data Structure

Offset Version Time-stamp{VNodeId, Key}

<Metadata>

Checksum

for Sync

KeySize CustomMeta Size File Size

for Retrieve an File (Object)

Footer (8B)

Checksum KeySize DataSize Offset Version Time-stamp

{VNodeId,Key} User-Meta Footer

<Object>

Header (Metadata - Fixed length) Body (Variable Length)

User-MetaSize

ActualFile

Supe

r-bl

ock

Obj

ect-1

Obj

ect-2

Obj

ect-3

<Object Container>

Obj

ect-4

Obj

ect-5

Tuesday, October 30, 12

Page 28: Introduce LeoFS

ObjectID

Leo Object StorageTraditional File System

directory inode

owner infosize

timestampblocks

directory data

inodefilename

file inode

owner infosize

timestampblocks

File

LeoFS Storage Engine

Tuesday, October 30, 12

Page 29: Introduce LeoFS

ObjectID

Leo Object Storage

LeoFS Storage Engine

Robustness

High Performance

Tuesday, October 30, 12

Page 30: Introduce LeoFS

< META DATA >IDFilenameOffsetSizeChecksum

“Object Container”

Header

File

Footer

< META DATA >IdFilenameOffset, SizeChecksum (MD5)Version#

Storage Engine

LeoFS Storage Engine - Retrieve an object from the storage

Metadata Storage

Tuesday, October 30, 12

Page 31: Introduce LeoFS

Storage Engine

Data

LeoFS Storage Engine - Insert an object into the storage

Insert a metadata

Append an object into the object container

Metadata Storage

Tuesday, October 30, 12

Page 32: Introduce LeoFS

Compaction

OLD Object ContainerOLD Metadata

NEW Object ContainerNew Metadata

LeoFS Storage Engine - Remove unnecessary objects from the storage

Storage Engine

Tuesday, October 30, 12

Page 33: Introduce LeoFS

Large object Support

Tuesday, October 30, 12

Page 34: Introduce LeoFS

Large-object Support (LeoFS v0.12)

Gateway

chunk-0

chunk-1

chunk-2

chunk-3Client

1. Able to equalize disk usage of each storage node2. High I/O efficiency

Original fils’s Metadata #metadata{ ... dsize = 10485768, cnumber = 4, csize = 3670016, ...}

Storage Cluster

Tuesday, October 30, 12

Page 35: Introduce LeoFS

LeoFS Manager

Tuesday, October 30, 12

Page 36: Introduce LeoFS

LeoFS Manager

Manager

For Administrators

Monitor

Operate

RING, Node State

status, suspend,resume, detach, whereis, ...

TCP/IP

for continue operation

Tuesday, October 30, 12

Page 37: Introduce LeoFS

LeoFS-Manager

LeoFS-Gateway

LeoFS-Storage

REST over HTTP (80/443) RPC

(4369)

Request from Web Application(s) or Browser

META Object Store

Storage Engine/Router

META Object Store META Object Store

RPC (4369)

Storage Engine/Router Storage Engine/Router

Load Balancer

S3-API

Monitor(SNMP)

GUI Console

(4000,4010,4020)

(10020, 10021)

Verticalized Storage System

Tuesday, October 30, 12

Page 38: Introduce LeoFS

3. Future Works

Tuesday, October 30, 12

Page 39: Introduce LeoFS

Improve Performance & Functionality

High I/O efficiency

1. Multi-layer Cache (Using SSD)

HIGH-Performance (Low latency)

Primary Cache

Secondary Cache

Gateway

Reduce traffic between Gateway and Storage

Storage

Tuesday, October 30, 12

Page 40: Introduce LeoFS

Improve Performance & Functionality

2. Multi-Datacenter for Geographical Optimization

HIGH-Scalability

HIGH-Availability

Tuesday, October 30, 12

Page 41: Introduce LeoFS

System Console

Log Analyzer / Searcher

3. LeoFS’s Tools

Improve Performance & Functionality

Tuesday, October 30, 12

Page 42: Introduce LeoFS

4. Wrap Up

Tuesday, October 30, 12

Page 43: Introduce LeoFS

LeoFS will realize 3-HIGHs, soonHIGH Cost PerformanceHIGH ReliabilityHIGH Scalability

Tuesday, October 30, 12

Page 44: Introduce LeoFS

Thank you for your time

LeoFS - http://www.leofs.org

Tuesday, October 30, 12