5. The Lion of Storage Systems
HIGH Availability
3 Vs in 3 HIGHs
HIGH Cost
Performance Ratio
HIGH
Scalability
LeoFS Non Stop
Velocity: Low Latency
Minimum Resources
Volume: Petabyte / Exabyte
Variety: Photo, Movie, Unstructured-data
5
10. LeoFS Overview - Storage
Gateway Storage (Storage Cluster)
WRITE: Auto Replication
READ : Auto Repair of an Inconsistent Object with Async
Use Consistent Hashing
for Data Operation
in the Storage Cluster
Choosing Replica Target Node(s)
RING
2 ^ 128 (MD5)
# of replicas = 3
KEY = “bucket/leofs.key”
Hash = md5(Filename)
Secondary-1
Secondary-2
Primary Node
P2P
10
11. Storage consists of Object Storage and Metadata Storage
Includes Replicator and Recoverer for the eventual consistency
Request From Gateway
LeoFS Overview - Storage
...
LeoFS Storage
Replicator
Recoverer
...
Storage Engine
Storage Engine, Metadata Gateway + Object Storage
Metadata
Storage Object
Storage
11
12. LeoFS Overview - Storage - Data Structure
Metadata
Storage
Object Storage
for retrieving an object
Offset Version Time-
Key stamp
for Sync
Checksum KeySize DataSize Offset Version Time-stamp
Key User-Meta Footer
Actual
File
Robust and
High Performance
Necessary for GC
Metadata
Checksum
KeySize Custom
Meta Size File Size
Footer (8B)
User-Meta
Size
Header (Metadata - Fixed length) Body (Variable Length)
Needle
Super-block
Needle-1
Needle-2
Needle-3
Object Container
Needle-4
Needle-5
Log Structure File Format
12
16. Brief Benchmark Report
1st Case:
Group of Value Ranges
Storage:5, Gateway:1, Manager:2
R:W = 9:1
source: https://github.com/leo-project/notes/tree/master/leofs/benchmark/leofs/20140605/tests/1m_r9w1_240min
2nd Case:
Group of Value Ranges
Storage:5, Gateway:1, Manager:2
R:W = 8:2
source: https://github.com/leo-project/notes/tree/master/leofs/benchmark/leofs/20140605/tests/1m_r8w2_120min
16
17. Brief Benchmark Report
Server Spec - Gateway:
CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz * 2 (12 cores / 24 threads)
Memory 96GB
Disk HDD - 240GB RAID0
Network 10G-Ether
Server Spec - Storage x5:
CPU Intel(R) Xeon(R) CPU X5650 @ 2.67GHz * 2 (12 cores / 24 threads)
Memory 96GB
Disk
HDD - 240GB RAID0 (System)
HDD - 2TB RAID0 (Data)
Network 10G-Ether
17
18. Brief Benchmark Report - 1st Case (R:W=9:1)
Environment:
Network 10Gbps
OS CentOS release 6.5 (Final)
Erlang OTP R16B03-1
LeoFS v1.0.2
System Consistency Level: [ N:3, W:2, R:1, D:2 ]
Benchmark Configuration:
Duration 4.0h
R:W 9:1
# of Concurrent Processes 64
# of Keys 100,000
Value Size
Range (byte) Percentage
1,024 10,240 24%
10,241 102,400 30%
102,401 819,200 30%
819,201 1,572,864 16%
18
19. Brief Benchmark Report - 1st Case (R:W=9:1)
The range of the data size of 80%
is between 1KB and 1.5MB
Range (byte) Percentage
1,024 10,240 24%
10,241 102,400 30%
102,401 819,200 30%
819,201 1,572,864 16%
19
20. Brief Benchmark Report - 1st Case (R:W=9:1)
source: https://github.com/leo-project/notes/tree/master/leofs/benchmark/leofs/20140601/tests/1m_r9w1_240min
50ms
50ms
1,500ops
No Errors
OPS Latency
20
29. Brief Benchmark Report
Conclusion:
LeoFS kept in a stable performance
through the benchmark
Bottleneck is Disk I/O
The cache mechanism contributed to reduce
network traffic between Gateway and Storage
29
31. LeoFS - For Disaster Recovery
Storage cluster Manager cluster
For Disaster Recovery
= High Scalability + High Availability
w/o SPOF and Performance Degradation
31
32. Multi Data Center Replication
Designes it as simple as possible
1. Easy Operation to build multi clusters.
2. Asynchronous data replication between clusters
Stacked data is transferred to remote cluster(s)
3. Eventual consistency
32
33. join cluster DC-2 and DC-3
[# of replicas:3] [# of replicas:1] [# of replicas:1]
DC-2 DC-3
Client Storage cluster Manager cluster
DC-1
leo_rpc leo_rpc
Monitors and Replicates each “RING” and “System Configuration”
Leo Storage Platform
Multi Data Center Replication
Executing “Join Cluster”
on Manager Console
Preparing the MDC Replication
33
34. [# of replicas:1] [# of replicas:1]
DC-2 DC-3
Multi Data Center Replication
Stacking objects
Client Storage cluster Manager cluster
Monitors and Replicates each “RING” and “System Configuration”
Leo Storage Platform
Application(s)
Request to
the Target Region
[# of replicas:3]
DC-1
Temporally Stacking objects
- One container's capacity is *32MB
- When capacity is full,
send it to remote cluster(s)
* 32MB: default capacity - able to set optional value
leo_rpc leo_rpc
34
35. DC-2 DC-3
Client Storage cluster Manager cluster
Monitors and Replicates each “RING” and “System Configuration”
Leo Storage Platform
Application(s)
DC-1
Stacked an object with a metadata
Compress it with LZ4
Replicated an object
Request to
the Target Region
leo_rpc
leo_rpc
leo_rpc
Multi Data Center Replication
Transferring stacked objects
Stacked objects
35
36. leo_rpc
Multi Data Center Replication
Investigating stored objects
DC-2 DC-3
Client Storage cluster Manager cluster
leo_rpc
Monitor and Replicate each “RING” and “System Configuration”
Leo Storage Platform
Application(s)
Request to
the Target Region
DC-1
1) Receive metadata of stored objects
2) Compare them at the local cluster
3) Fix inconsistent objects
leo_rpc leo_rpc
36
42. External Users
Project FiFo is an open-source Cloud Management and Orchestration
system for SmartOS virtualization environments.
The components of FiFo are written entirely in Erlang which gives the
suite excellent stability and fault recovery as it continues maturing to a
production quality release.
Project FiFo uses LeoFS packages for SmartOS in their repository.
42
50. File Sharing Service - Required Targets
+
Reduce Costs
Handle Confidential Files
Store Large Files
Scale Easily
50
51. File Sharing Service - Usage
+
Share Docs and Videos with Group Companies
Over 20 Companies, Over 10 Countries
Over 10,000 Users, Over 4,000 Teams
51
52. LDAP
Monitor
Manager x 2
GUI Console
( Erlang RPC)
( Erlang RPC)
( TCP/IP,SNMP )
Authenticate Users
Manage
Configurations
Manage
Login Session
(KVS)
File Sharing Service - System Layout
Web GUI File Browser
52
53. LeoFS Continuous Automated Testing
Continuous Integration with Jenkins
AWS SDK for PHP
AWS SDK for Ruby
AWS SDK for Java
Boto(Python)
erlcloud(Erlang)
s3cmd
s3fuse
LeoFS Client Test: https://github.com/leo-project/leofs_client_tests
53
54. File Sharing Service - Future Plans
Cover 25 Countries/Regions
Over 20,000 Users
+
54
57. LeoFS v2.0 - Cloud Storage
Always keeps best condition of LeoFS
Autonomic Operation
Automatic Rebalance
Automatic Data Compaction
QoS
Statistics of internal LeoFS
Watchdog
Request / Traffic Control
57
58. LeoFS v2.0 - Cloud Storage
Hybrid Storage
Centralizes Huge Amount and Various Kind data in LeoFS
Supports Online and Offline Access
PaaS / IaaS
BigData Analysis
Log / Event /
Sensor data
BigData
Analysis Platform
Document / Contents
Photo / Movie
Various Kind and
Huge Amount Data
Various Kind Data
Any Services
Log / Event /
Sensor data
58
59. LeoFS v2.0 - Cloud Storage
PaaS / IaaS
BigData Analysis
Log / Event /
Sensor data
BigData
Analysis Platform
Document / Contents
Photo / Movie
Various Kind and
Huge Amount Data
Various Kind Data
Any Services
Log / Event /
Sensor data
REST-API (JSON)
Operate LeoFS
Notify a message of over # of req threshold
NewDB Proj
for LeoFS Insight
+
Retrieve metrics and stats from NewDB Proj's Agents
- Autonomic operation
- NFS Support
- Erasure Code
- NewDB Integration
- OpenStack Integration
and more...
59
61. NewDB Proj - Background
We need to get Value in Data in realtime
Typical System
Transaction Analysis Cache
NewDB Proj is a Hybrid DB
Handle Atomic Data
and Analyze Data in realtime
Typical Systems still realise
Semi-realtime Data Analysis
+
Database Statistics / ML
NewDB Proj
61
62. NewDB Proj - Concept
Analyzing Data in Realtime
Retrieving Value in Exponential Data
Ad-hoc Query
Pluggable QL
ODBC/JDBC, REST, CLI,...
NewDB Proj
ML-lib
Integration
Pluggable ML/Statistics
Mechanism
High Realiability High Scalability
62
63. Analyzing Data
Handle Event, Sensor
and Metrics Data
Online
Transaction Statistics, ML
Clustering Data
Finding Patterns in Data
Calculate and Generate Data
Then Grow Value of Data
Pluggable QL
Ease of Operation
and The QL Express Intuition Directly
NewDB Proj - Concept
SQL
Snapshot, Backup
Restore
Visualizing Data
63