a storage story #chefconf2013

43
Kyle Bader [email protected] @mmgaggle DreamHost.com A Storage Story

Upload: kyle-bader

Post on 20-Jun-2015

1.846 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: A Storage Story #ChefConf2013

Kyle Bader

[email protected]

@mmgaggle

DreamHost.com

A Storage Story

Page 2: A Storage Story #ChefConf2013

About Me

Dad, husband, technologist.

Sr. Systems Engineer

@DreamHost

free software linux internals storage

networking security monitoring

distributed systems automation

DreamHost

Page 3: A Storage Story #ChefConf2013

Outline

DreamHost Storage History

Anatomy of Ceph

Automating Storage

DreamHost

Page 4: A Storage Story #ChefConf2013

Destro

- DreamHost's first web server

- Pentium 100

- SCSI storage

- Shared T1 line

DreamHost

Page 5: A Storage Story #ChefConf2013

DH2DreamHost

Page 6: A Storage Story #ChefConf2013

NetApp

NetApp Fabric Attached Storage

- 15k Fiber channel drives

- Filer heads serve NFS

- Fast failover

- Large failure domains

- Expensive

- Low density

DreamHost

Page 7: A Storage Story #ChefConf2013

Coraid

Coraid SAN

- Shelves carry SATA devices, provide AoE volumes

- Head units mount AoE volumes, XFS, NFS shares

- Linux!

- Fast failover

- Large failure domains (single L2 segment)

DreamHost

Page 8: A Storage Story #ChefConf2013

Thumper

Sun Sunfire X4500

- 45 Drives in a 4U chassis

- Legendary hardware

- Fast failover

- High density

- Large failure domains

- SATA

- Heavy

DreamHost

Page 9: A Storage Story #ChefConf2013

DreamHost Solution: Hybrid

Page 10: A Storage Story #ChefConf2013

BlueArc "Titanic"

- Switched fiber channel

- Head units serve NFS

- Tiered storage, FC/SATA

- Fast failover

- Larger failure domain (than NetApp)

- Software bugs :(

- Tiering: find -atime

DreamHost BlueArc

Page 11: A Storage Story #ChefConf2013

DreamHost UNLIMITED

Page 12: A Storage Story #ChefConf2013

DreamHost Thoughting..

Page 13: A Storage Story #ChefConf2013

Mixed Strategy

- Separate email and web storage

- Email IO is heavy random, lots of small files

- Web storage needs to be dense

- FC NAS for email

- SATA RAID for web storage

- SATA ZRAID for backups

DreamHost

Page 14: A Storage Story #ChefConf2013

Local RAID

Local RAID

- RAID6, RAID10, RAID6

- SATA, SAS disks

- ext3, XFS

- Shrink failure domain

- Great density

- Slower failover

- RAID Controllers..

DreamHost

Page 15: A Storage Story #ChefConf2013

SighDreamHost

Page 16: A Storage Story #ChefConf2013

Ceph

Ceph

- Open source

- Build with COTS hardware

- Distributed and replicated

- No single point of failure

- Consist

- Self healing and self managing

DreamHost

Page 17: A Storage Story #ChefConf2013

Building Blocks

Monitors:

- Maintain cluster map

- Provide consensus for distributed decision making

- Must have an odd number

- These do not serve stored objects to clients

OSDs:

- One per disk (recommended)

- Serve stored objects to clients

- Intelligently peer to perform replication tasks

- Supports object classes

DreamHost

Page 18: A Storage Story #ChefConf2013

Building Blocks

OSD States

Up available and ready

Down not available

In current member of cluster

Out not member of cluster

DreamHost

Page 19: A Storage Story #ChefConf2013

CephstoreDreamHost

XFSBTRFSEXT4

Page 20: A Storage Story #ChefConf2013

ClusterDreamHost

Page 21: A Storage Story #ChefConf2013

Ceph ConsumersDreamHost

Page 22: A Storage Story #ChefConf2013

Creating a MapDreamHost

Page 23: A Storage Story #ChefConf2013

CRUSHDreamHost

CRUSH

- Pseudo-random placement algorithm

- Ensures statistically even distribution

- Repeatable, deterministic

- Rule based configuration

- Replica count

- Infrastructure Topology

- Weighting

Page 24: A Storage Story #ChefConf2013

CRUSHDreamHost

Page 25: A Storage Story #ChefConf2013

OSD DOWN!DreamHost

Page 26: A Storage Story #ChefConf2013

Remap and BackfillDreamHost

Page 27: A Storage Story #ChefConf2013

Ceph AnatomyDreamHost

Page 28: A Storage Story #ChefConf2013

RESTful Storage ServiceDreamHost

Page 29: A Storage Story #ChefConf2013

DreamObjects

DreamObjects:

- Ceph Storage Cluster

- Ubuntu Linux (12.04)

- Managed by Opscode Chef

- S3 and Swift RESTful interfaces

- Highly durable (8 nines)

- 2+ PB raw capacity

DreamHost

Page 30: A Storage Story #ChefConf2013

DreamCompute

DreamCompute:

- Ceph Storage Cluster (RDB)

- Ubuntu Linux (12.04)

- Managed by Opscode Chef

- OpenStack

- Virtualized L2 and L3 networking

- Highly durable (8 nines)

- 3+ PB raw capacity

DreamHost

Page 31: A Storage Story #ChefConf2013

AutomateDreamHost

- Bootstrap cluster

- Packages and configuration

- Creates, Destroys and Encrypts OSDS

- Roles map to pdsh genders

- User and SSH key management

- Push monitoring configurations

Page 32: A Storage Story #ChefConf2013

Hard StuffDreamHost

Key management

Leader election

Page 33: A Storage Story #ChefConf2013

What we useDreamHost

- Attributes

- Environments

- Search

- No databags

Page 34: A Storage Story #ChefConf2013

EnvironmentsDreamHost

- Ceph package versions

- VIPs for API endpoints

- Package repository URI

- Ceph configuration data driven by attributes

Page 35: A Storage Story #ChefConf2013

Gated EnvironmentsDreamHost

Development

Staging

Production

Page 36: A Storage Story #ChefConf2013

Operational Feedback

- Continuous functional testing

- Metrics, metrics, metrics

- Dashboards

DreamHost

Page 37: A Storage Story #ChefConf2013

Chef Infrastructure

- Chef cluster per datacenter

- Private Chef from Opscode

- Erchef is awesome

- Migrating legacy automation

DreamHost

Page 38: A Storage Story #ChefConf2013

Chef for Ceph

- Prototyped Ceph cluster automation with Chef

- Adapted Ceph to ease configuration

- Pushed some automation down into Ceph

- Move towards being CM agnostic

- Simplify Chef recipes

DreamHost

Page 39: A Storage Story #ChefConf2013

Chef the network

- DreamCompute utilizes ODM switches

- Cumulus Networks provides Linux based OS

- Custom Chef omnibus builds for PPC

- Ohai networking!

DreamHost

Page 40: A Storage Story #ChefConf2013

Resiliency EngineeringDreamHost

- Amazon (GameDay)

- Etsy (GameDay)

- Google (DiRT)

Page 41: A Storage Story #ChefConf2013

Infra. a CodeDreamHost

- Bare metal servers configured by code

- Network devices configured by code

- Block storage configured by code

- Virtual networking configured by code

Page 42: A Storage Story #ChefConf2013

ThanksDreamHost

DreamHost

Sage Weil and Inktank

OpenStack Developers

Opscode

Page 43: A Storage Story #ChefConf2013

DreamObjectsDreamHost

Questions?

[email protected]

@mmgaggle