SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
OpenStack Swift Tiering
Proposal
© 2015 NetApp, Inc. All rights reserved.1
Shiva Chaitanya
Saeed Ghanbari
Barry Benight
Deepak Kenchammana
Problem Statement
§  Data hosted by capacity storage solutions such as Swift go through a
long information lifecycle.
§  As data ages, it becomes more and more unlikely to be accessed by the
user.
§  Slow but cheap, specialized archival-class products lower in $/GB than
Swift are better suited to store cold data in order to meet business TCO
needs.
§  Examples of such archival-class products include tape-based systems,
public cloud offerings such as Amazon Glacier.
© 2015 NetApp, Inc. All rights reserved.2
Application vs Swift – who should implement
tiering ?
§  Applications can potentially include the appropriate segregation in their
logic and periodically move data between storage tiers in Swift.
§  Such use cases are well served by existing Storage Policy feature which
provides the necessary API support for compartmentalizing data.
§  This proposal addresses use cases where Swift operators manage
multiple tiers of storage devices transparent to the application.
§  Operator’s key objective for cold data is to achieve best TCO across
archival devices spanning multiple hardware generations and media
types (SMR drives, tape, optical).
§  This proposal
§  Caters to applications that will find it harder to adapt to changes in workload &
underlying infrastructure over time. Selection of candidate cold data for tiering and
movement mechanisms are best deferred to Swift in such instances.
§  Aims to complement the Storage Policy feature by including data tiering as a native
feature (ala Ceph) in Swift.
© 2015 NetApp, Inc. All rights reserved.3
Proposal
§  Native tiering functionality in Swift.
§  Swift can leverage the gradual change in data properties to periodically
move cold data to lower cost storage tiers.
§  We propose to add a new background process in Swift to perform data
movement between storage tiers.
§  Data movement will be seamless to the client – no change in object
access API or namespace.
§  Potential applications of tiering feature:
§  Move cold data from a swift backend to an external tape device
§  Move cold data from a higher-cost swift backend (e.g SSD-based) to a lower-cost swift
backend (e.g HDD-based)
§  Move cold data from a lower-density swift backend (e.g replication policy) to a higher-
density swift backend (e.g erasure-coding policy)
© 2015 NetApp, Inc. All rights reserved.4
© 2015 NetApp, Inc. All rights reserved.5
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Overview of Tiering Prototype
Object Server
Tiering-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Swift DAS backend
Container Server
Container-migrator
BackendAPI
E Swift Tape …
Background process
Add-on/pluggable
background process
Patches to
existing code
Container DB
‘E’ stands for a generic external device that
can be accessed through BackendAPI
Code changes
§  Code changes primarily in the form of (i) a new background process
container-migrator and (ii) object server middleware
§  Container-migrator:
§  Runs on each container server
§  Scans each tiering-enabled container’s DB to identify objects that need to
be de-staged to external backend
§  Currently, we implement a simple age-threshold policy to determine
candidates for movement
§  Candidate objects are moved to the lower tier backend by invoking a
standard multi-backend compatible API
§  Moved objects from Swift are replaced by “Stub objects”
§  By default, there are three copies of container DB for each container. We
ensure that only one container-migrator process operates on a container
DB at any given time.
© 2015 NetApp, Inc. All rights reserved.6
Code changes (cont’d)
§  Object server middleware:
§  Interprets stub object when a client happen to access a de-staged object and
reconstructs the original object
§  Fetches lower tier backend directly via a standard multi-backend compatible
API
§  Handles requests from background processes. E.g GETs from container-sync,
DELETEs from account-reaper
§  Change to object server function:
§  Pass on (size, etag) of full object to container update operation – instead of
the stub object’s.
© 2015 NetApp, Inc. All rights reserved.7
Stub object
§  Stub is a zero-sized sparse reference object that points to an object
stored in a different backend
§  Object metadata are attached to the stub
§  All the ‘pointer’ information are attached to the stub as system
metadata
§  E.g
§  X-Object-Sysmeta-Eb-Dest-Path
§  X-Object-Sysmeta-Eb-Dest-Size
§  X-Object-Sysmeta-Eb-Dest-Etag
© 2015 NetApp, Inc. All rights reserved.8
Stub object (cont’d)
§  X-Object-Sysmeta-Eb-Dest-Path header helps locate the main object
on a GET request
§  X-Object-Sysmeta-Eb-Dest-Size/Etag headers help service HEAD
operations without accessing main object
§  A stub object is treated as just another regular swift object by
background processes. E.g,
§  Subject to 3-way replication by object-replicator to ensure reliability
§  Processed by object-auditor to ensure integrity
© 2015 NetApp, Inc. All rights reserved.9
Backend API
§  Currently using a simple four-function abstract class that can be
extended for custom implementations for Tape, Glacier, Swift etc.
§  __init__(args)
§  ‘args’ is an opaque list of params that can encapsulate arbitrary backend-
specific configuration info to enable setup, authentication, etc.
§  PUT(content_iter, path)
§  GET(path)
§  DELETE(path)
§  We have API implementation for a Swift container backend. This can
be used to tier objects between two Swift backends with different
policies (e.g SSD <-> HDD, Replication <-> Erasure-coding)
© 2015 NetApp, Inc. All rights reserved.10
© 2015 NetApp, Inc. All rights reserved.11
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Tiering process flow (object de-staging)
Object Server
Tiering-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Swift DAS backend
Container Server
Container-migrator
BackendAPI
E Swift Tape …
Background process
Add-on/pluggable
background process
Patches to
existing code
Container DB
1
2
3
4
Scan container DB to find next
candidate object for de-staging
Retrieve object from object server
Replace object with stub in the object
server
Write object to the lower tier
1
2
3
4‘E’ stands for a generic external device that
can be accessed through BackendAPI
© 2015 NetApp, Inc. All rights reserved.12
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Object Server
Tiering-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Add-on/pluggable
background process
Patches to
existing code
3
4
Incoming client GET request
Proxy server relays request to an
object server
Retrieve object and check if it’s a stub
If stub, fetch object from lower tier
backend
1
2
3
4‘E’ stands for a generic external device that
can be accessed through BackendAPI
Proxy Server 21
Client GET flow for a de-staged object
© 2015 NetApp, Inc. All rights reserved.13
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Client DELETE flow for a de-staged object
Object Server
Tiering-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Add-on/pluggable
background process
Patches to
existing code
3
4
Incoming client DELETE request
Proxy server relays request to an object server
Check via an internal ‘HEAD’ if object is a stub
If stub, delete object in lower tier backend
Remove the stub object
1
2
3
4
‘E’ stands for a generic external device that
can be accessed through BackendAPI
Proxy Server 21
5
5
© 2015 NetApp, Inc. All rights reserved.14
Container server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Internal requests – e.g from container-sync
Container-sync
Object Server
Tiering-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Patches to
existing code
2
3
GET request from
container-sync to object
server
Fetch object from DAS
backend
If stub, fetch the object
contents from lower tier
backend
1
2
3
1
‘E’ stands for a generic external device that
can be accessed through BackendAPI
Object batching
§  Minimize number of requests to the lower tier. This requirement
becomes important when communicating across WAN to remote DCs.
§  Maximize size of objects de-staged to lower tiers such as tape that are
more suited for large I/O.
§  To cater to above two requirements, the tiering process can coalesce
multiple candidate objects into a compound object before de-staging
§  Reference counts need to be maintained for compound objects to do
effective garbage collection when objects are deleted.
§  Our prototype implements the above batching mechanism and stores
reference counts for compound objects in a separate table in the
container DB.
© 2015 NetApp, Inc. All rights reserved.15
Other optimizations
§  Client DELETE requests for de-staged objects can be completed
asynchronously by background process to avoid increased latencies for
foreground API requests.
§  On a client GET request for a de-staged object, we can “promote” it
back into Swift (higher tier) backend. Subsequently as the object ages,
tiering process will eventually move it back.
© 2015 NetApp, Inc. All rights reserved.16

Contenu connexe

Tendances

Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...
Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...
Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...Spark Summit
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKShu-Jeng Hsieh
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastDataWorks Summit
 
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesApache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesDataWorks Summit
 
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftSF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftChester Chen
 
Leveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioningLeveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioningEvans Ye
 
Dynamic Object Routing
Dynamic Object RoutingDynamic Object Routing
Dynamic Object RoutingCloudian
 
Stsg17 speaker yousunjeong
Stsg17 speaker yousunjeongStsg17 speaker yousunjeong
Stsg17 speaker yousunjeongYousun Jeong
 
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedis Labs
 
Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Cloudian
 
Webinar : Nouveautés de MongoDB 3.2
Webinar : Nouveautés de MongoDB 3.2Webinar : Nouveautés de MongoDB 3.2
Webinar : Nouveautés de MongoDB 3.2MongoDB
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Аліна Шепшелей
 
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWSAWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWSAmazon Web Services
 
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra Migration
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra MigrationInfosys Ltd: Performance Tuning - A Key to Successful Cassandra Migration
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra MigrationDataStax Academy
 
Lambda Architecture with Spark
Lambda Architecture with SparkLambda Architecture with Spark
Lambda Architecture with SparkKnoldus Inc.
 
20150314 sahara intro and the future plan for open stack meetup
20150314 sahara intro and the future plan for open stack meetup20150314 sahara intro and the future plan for open stack meetup
20150314 sahara intro and the future plan for open stack meetupWei Ting Chen
 
Introducing log analysis to your organization
Introducing log analysis to your organization Introducing log analysis to your organization
Introducing log analysis to your organization Sematext Group, Inc.
 
Apache Spark e AWS Glue
Apache Spark e AWS GlueApache Spark e AWS Glue
Apache Spark e AWS GlueLaercio Serra
 

Tendances (20)

Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...
Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...
Secured (Kerberos-based) Spark Notebook for Data Science: Spark Summit East t...
 
Kafka Security
Kafka SecurityKafka Security
Kafka Security
 
A New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDKA New Chapter of Data Processing with CDK
A New Chapter of Data Processing with CDK
 
Troubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the BeastTroubleshooting Kerberos in Hadoop: Taming the Beast
Troubleshooting Kerberos in Hadoop: Taming the Beast
 
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on KubernetesApache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
Apache Druid Auto Scale-out/in for Streaming Data Ingestion on Kubernetes
 
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at LyftSF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
SF Big Analytics_20190612: Scaling Apache Spark on Kubernetes at Lyft
 
Leveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioningLeveraging docker for hadoop build automation and big data stack provisioning
Leveraging docker for hadoop build automation and big data stack provisioning
 
ebay
ebayebay
ebay
 
Dynamic Object Routing
Dynamic Object RoutingDynamic Object Routing
Dynamic Object Routing
 
Stsg17 speaker yousunjeong
Stsg17 speaker yousunjeongStsg17 speaker yousunjeong
Stsg17 speaker yousunjeong
 
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific InstrumentsRedisConf18 - Remote Monitoring & Controlling Scienific Instruments
RedisConf18 - Remote Monitoring & Controlling Scienific Instruments
 
Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0
 
Webinar : Nouveautés de MongoDB 3.2
Webinar : Nouveautés de MongoDB 3.2Webinar : Nouveautés de MongoDB 3.2
Webinar : Nouveautés de MongoDB 3.2
 
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
Vitalii Bondarenko HDinsight: spark. advanced in memory big-data analytics wi...
 
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWSAWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
 
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra Migration
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra MigrationInfosys Ltd: Performance Tuning - A Key to Successful Cassandra Migration
Infosys Ltd: Performance Tuning - A Key to Successful Cassandra Migration
 
Lambda Architecture with Spark
Lambda Architecture with SparkLambda Architecture with Spark
Lambda Architecture with Spark
 
20150314 sahara intro and the future plan for open stack meetup
20150314 sahara intro and the future plan for open stack meetup20150314 sahara intro and the future plan for open stack meetup
20150314 sahara intro and the future plan for open stack meetup
 
Introducing log analysis to your organization
Introducing log analysis to your organization Introducing log analysis to your organization
Introducing log analysis to your organization
 
Apache Spark e AWS Glue
Apache Spark e AWS GlueApache Spark e AWS Glue
Apache Spark e AWS Glue
 

Similaire à OpenStack Swift tiering proposal and prototype details

Hybrid Container for OpenStack Swift
Hybrid Container for OpenStack SwiftHybrid Container for OpenStack Swift
Hybrid Container for OpenStack SwiftSaeed Ghanbari
 
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EUBuilding Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EUYaron Haviv
 
Spark and scala reference architecture
Spark and scala reference architectureSpark and scala reference architecture
Spark and scala reference architectureAdrian Tanase
 
Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?gvernik
 
Hadoop and object stores can we do it better
Hadoop and object stores  can we do it betterHadoop and object stores  can we do it better
Hadoop and object stores can we do it bettergvernik
 
Se training storage grid webscale technical overview
Se training   storage grid webscale technical overviewSe training   storage grid webscale technical overview
Se training storage grid webscale technical overviewsolarisyougood
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesYugabyte
 
How the Development Bank of Singapore solves on-prem compute capacity challen...
How the Development Bank of Singapore solves on-prem compute capacity challen...How the Development Bank of Singapore solves on-prem compute capacity challen...
How the Development Bank of Singapore solves on-prem compute capacity challen...Alluxio, Inc.
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...Josef Adersberger
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...QAware GmbH
 
NetApp Se training storage grid webscale technical overview
NetApp Se training   storage grid webscale technical overviewNetApp Se training   storage grid webscale technical overview
NetApp Se training storage grid webscale technical overviewsolarisyougood
 
20150704 benchmark and user experience in sahara weiting
20150704 benchmark and user experience in sahara weiting20150704 benchmark and user experience in sahara weiting
20150704 benchmark and user experience in sahara weitingWei Ting Chen
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAccelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAlluxio, Inc.
 
Kafka streams decoupling with stores
Kafka streams decoupling with storesKafka streams decoupling with stores
Kafka streams decoupling with storesYoni Farin
 
Swift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangSwift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangHui Cheng
 
Accelerating Analytics with EMR on your S3 Data Lake
Accelerating Analytics with EMR on your S3 Data LakeAccelerating Analytics with EMR on your S3 Data Lake
Accelerating Analytics with EMR on your S3 Data LakeAlluxio, Inc.
 

Similaire à OpenStack Swift tiering proposal and prototype details (20)

Hybrid Container for OpenStack Swift
Hybrid Container for OpenStack SwiftHybrid Container for OpenStack Swift
Hybrid Container for OpenStack Swift
 
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EUBuilding Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
Building Super Fast Cloud-Native Data Platforms - Yaron Haviv, KubeCon 2017 EU
 
Spark and scala reference architecture
Spark and scala reference architectureSpark and scala reference architecture
Spark and scala reference architecture
 
Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?Hadoop and object stores: Can we do it better?
Hadoop and object stores: Can we do it better?
 
Hadoop and object stores can we do it better
Hadoop and object stores  can we do it betterHadoop and object stores  can we do it better
Hadoop and object stores can we do it better
 
Se training storage grid webscale technical overview
Se training   storage grid webscale technical overviewSe training   storage grid webscale technical overview
Se training storage grid webscale technical overview
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on Kubernetes
 
How the Development Bank of Singapore solves on-prem compute capacity challen...
How the Development Bank of Singapore solves on-prem compute capacity challen...How the Development Bank of Singapore solves on-prem compute capacity challen...
How the Development Bank of Singapore solves on-prem compute capacity challen...
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
 
NetApp Se training storage grid webscale technical overview
NetApp Se training   storage grid webscale technical overviewNetApp Se training   storage grid webscale technical overview
NetApp Se training storage grid webscale technical overview
 
20150704 benchmark and user experience in sahara weiting
20150704 benchmark and user experience in sahara weiting20150704 benchmark and user experience in sahara weiting
20150704 benchmark and user experience in sahara weiting
 
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
Maginatics @ SDC 2013: Architecting An Enterprise Storage Platform Using Obje...
 
Using Data Lakes
Using Data Lakes Using Data Lakes
Using Data Lakes
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stackAccelerating analytics in the cloud with the Starburst Presto + Alluxio stack
Accelerating analytics in the cloud with the Starburst Presto + Alluxio stack
 
Kafka streams decoupling with stores
Kafka streams decoupling with storesKafka streams decoupling with stores
Kafka streams decoupling with stores
 
Open stackapac swift_alexyang
Open stackapac swift_alexyangOpen stackapac swift_alexyang
Open stackapac swift_alexyang
 
Swift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex YangSwift Architecture and Practice, by Alex Yang
Swift Architecture and Practice, by Alex Yang
 
Accelerating Analytics with EMR on your S3 Data Lake
Accelerating Analytics with EMR on your S3 Data LakeAccelerating Analytics with EMR on your S3 Data Lake
Accelerating Analytics with EMR on your S3 Data Lake
 

Dernier

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 

Dernier (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 

OpenStack Swift tiering proposal and prototype details

  • 1. OpenStack Swift Tiering Proposal © 2015 NetApp, Inc. All rights reserved.1 Shiva Chaitanya Saeed Ghanbari Barry Benight Deepak Kenchammana
  • 2. Problem Statement §  Data hosted by capacity storage solutions such as Swift go through a long information lifecycle. §  As data ages, it becomes more and more unlikely to be accessed by the user. §  Slow but cheap, specialized archival-class products lower in $/GB than Swift are better suited to store cold data in order to meet business TCO needs. §  Examples of such archival-class products include tape-based systems, public cloud offerings such as Amazon Glacier. © 2015 NetApp, Inc. All rights reserved.2
  • 3. Application vs Swift – who should implement tiering ? §  Applications can potentially include the appropriate segregation in their logic and periodically move data between storage tiers in Swift. §  Such use cases are well served by existing Storage Policy feature which provides the necessary API support for compartmentalizing data. §  This proposal addresses use cases where Swift operators manage multiple tiers of storage devices transparent to the application. §  Operator’s key objective for cold data is to achieve best TCO across archival devices spanning multiple hardware generations and media types (SMR drives, tape, optical). §  This proposal §  Caters to applications that will find it harder to adapt to changes in workload & underlying infrastructure over time. Selection of candidate cold data for tiering and movement mechanisms are best deferred to Swift in such instances. §  Aims to complement the Storage Policy feature by including data tiering as a native feature (ala Ceph) in Swift. © 2015 NetApp, Inc. All rights reserved.3
  • 4. Proposal §  Native tiering functionality in Swift. §  Swift can leverage the gradual change in data properties to periodically move cold data to lower cost storage tiers. §  We propose to add a new background process in Swift to perform data movement between storage tiers. §  Data movement will be seamless to the client – no change in object access API or namespace. §  Potential applications of tiering feature: §  Move cold data from a swift backend to an external tape device §  Move cold data from a higher-cost swift backend (e.g SSD-based) to a lower-cost swift backend (e.g HDD-based) §  Move cold data from a lower-density swift backend (e.g replication policy) to a higher- density swift backend (e.g erasure-coding policy) © 2015 NetApp, Inc. All rights reserved.4
  • 5. © 2015 NetApp, Inc. All rights reserved.5 Stub ObjA E ObjA meta-data Swift DAS backend Overview of Tiering Prototype Object Server Tiering-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Swift DAS backend Container Server Container-migrator BackendAPI E Swift Tape … Background process Add-on/pluggable background process Patches to existing code Container DB ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 6. Code changes §  Code changes primarily in the form of (i) a new background process container-migrator and (ii) object server middleware §  Container-migrator: §  Runs on each container server §  Scans each tiering-enabled container’s DB to identify objects that need to be de-staged to external backend §  Currently, we implement a simple age-threshold policy to determine candidates for movement §  Candidate objects are moved to the lower tier backend by invoking a standard multi-backend compatible API §  Moved objects from Swift are replaced by “Stub objects” §  By default, there are three copies of container DB for each container. We ensure that only one container-migrator process operates on a container DB at any given time. © 2015 NetApp, Inc. All rights reserved.6
  • 7. Code changes (cont’d) §  Object server middleware: §  Interprets stub object when a client happen to access a de-staged object and reconstructs the original object §  Fetches lower tier backend directly via a standard multi-backend compatible API §  Handles requests from background processes. E.g GETs from container-sync, DELETEs from account-reaper §  Change to object server function: §  Pass on (size, etag) of full object to container update operation – instead of the stub object’s. © 2015 NetApp, Inc. All rights reserved.7
  • 8. Stub object §  Stub is a zero-sized sparse reference object that points to an object stored in a different backend §  Object metadata are attached to the stub §  All the ‘pointer’ information are attached to the stub as system metadata §  E.g §  X-Object-Sysmeta-Eb-Dest-Path §  X-Object-Sysmeta-Eb-Dest-Size §  X-Object-Sysmeta-Eb-Dest-Etag © 2015 NetApp, Inc. All rights reserved.8
  • 9. Stub object (cont’d) §  X-Object-Sysmeta-Eb-Dest-Path header helps locate the main object on a GET request §  X-Object-Sysmeta-Eb-Dest-Size/Etag headers help service HEAD operations without accessing main object §  A stub object is treated as just another regular swift object by background processes. E.g, §  Subject to 3-way replication by object-replicator to ensure reliability §  Processed by object-auditor to ensure integrity © 2015 NetApp, Inc. All rights reserved.9
  • 10. Backend API §  Currently using a simple four-function abstract class that can be extended for custom implementations for Tape, Glacier, Swift etc. §  __init__(args) §  ‘args’ is an opaque list of params that can encapsulate arbitrary backend- specific configuration info to enable setup, authentication, etc. §  PUT(content_iter, path) §  GET(path) §  DELETE(path) §  We have API implementation for a Swift container backend. This can be used to tier objects between two Swift backends with different policies (e.g SSD <-> HDD, Replication <-> Erasure-coding) © 2015 NetApp, Inc. All rights reserved.10
  • 11. © 2015 NetApp, Inc. All rights reserved.11 Stub ObjA E ObjA meta-data Swift DAS backend Tiering process flow (object de-staging) Object Server Tiering-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Swift DAS backend Container Server Container-migrator BackendAPI E Swift Tape … Background process Add-on/pluggable background process Patches to existing code Container DB 1 2 3 4 Scan container DB to find next candidate object for de-staging Retrieve object from object server Replace object with stub in the object server Write object to the lower tier 1 2 3 4‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 12. © 2015 NetApp, Inc. All rights reserved.12 Stub ObjA E ObjA meta-data Swift DAS backend Object Server Tiering-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Add-on/pluggable background process Patches to existing code 3 4 Incoming client GET request Proxy server relays request to an object server Retrieve object and check if it’s a stub If stub, fetch object from lower tier backend 1 2 3 4‘E’ stands for a generic external device that can be accessed through BackendAPI Proxy Server 21 Client GET flow for a de-staged object
  • 13. © 2015 NetApp, Inc. All rights reserved.13 Stub ObjA E ObjA meta-data Swift DAS backend Client DELETE flow for a de-staged object Object Server Tiering-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Add-on/pluggable background process Patches to existing code 3 4 Incoming client DELETE request Proxy server relays request to an object server Check via an internal ‘HEAD’ if object is a stub If stub, delete object in lower tier backend Remove the stub object 1 2 3 4 ‘E’ stands for a generic external device that can be accessed through BackendAPI Proxy Server 21 5 5
  • 14. © 2015 NetApp, Inc. All rights reserved.14 Container server Stub ObjA E ObjA meta-data Swift DAS backend Internal requests – e.g from container-sync Container-sync Object Server Tiering-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Patches to existing code 2 3 GET request from container-sync to object server Fetch object from DAS backend If stub, fetch the object contents from lower tier backend 1 2 3 1 ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 15. Object batching §  Minimize number of requests to the lower tier. This requirement becomes important when communicating across WAN to remote DCs. §  Maximize size of objects de-staged to lower tiers such as tape that are more suited for large I/O. §  To cater to above two requirements, the tiering process can coalesce multiple candidate objects into a compound object before de-staging §  Reference counts need to be maintained for compound objects to do effective garbage collection when objects are deleted. §  Our prototype implements the above batching mechanism and stores reference counts for compound objects in a separate table in the container DB. © 2015 NetApp, Inc. All rights reserved.15
  • 16. Other optimizations §  Client DELETE requests for de-staged objects can be completed asynchronously by background process to avoid increased latencies for foreground API requests. §  On a client GET request for a de-staged object, we can “promote” it back into Swift (higher tier) backend. Subsequently as the object ages, tiering process will eventually move it back. © 2015 NetApp, Inc. All rights reserved.16