SlideShare a Scribd company logo
1 of 13
Download to read offline
Hybrid Container Proposal
© 2015 NetApp, Inc. All rights reserved.1
Saeed Ghanbari
Shiva Chaitanya
Deepak Kenchammana
Barry Benight
Problem Statement
§  Swift currently allows one storage policy for a container .
§  A swift container is assigned to a single ring (single storage policy) at
creation time.
§  As a result, all objects of that container are stored in one set of backend
devices – which are typically uniform in performance but might vary in
capacity.
§  This conflation of logical namespace with physical resources puts the
burden of placing objects based on service level objectives on the client
- by namespace partitioning
© 2015 NetApp, Inc. All rights reserved.2
Proposal
§  In a hybrid container, object placement will be based on QoS (Quality of
Service) requirement.
§  Client specifies QoS, Swift enforces it.
§  QoS requirement supplied through a special header: x-qos.
§  This header could either directly specify the physical back-end or
§  Alternatively, the operator may declare some rules based on which Swift will infer the
appropriate backend, e.g., objects larger than a threshold to be stored on SMR drives.
§  Enforcement mechanism seamless to the swift client:
§  No changes to the externally-visible namespace
§  Minimal changes to client software (just needs to add x-qos header)
© 2015 NetApp, Inc. All rights reserved.3
Why not storage policy?
§  Applications can choose the right back-end for a particular QoS through
Storage Policy. Why Hybrid Container?
§  This proposal addresses use cases where Swift operators manage
multiple storage devices transparent to the application.
§  Operator’s key objective 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 the right backend for placing the data
and movement mechanisms are best deferred to Swift in such instances.
© 2015 NetApp, Inc. All rights reserved.4
© 2015 NetApp, Inc. All rights reserved.5
Proxy Server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Overview of Hybrid Container Prototype
HB-proxy
BackendAPI
E Swift Tape …
WSGI middleware
Object Server
HB-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Patches to
existing code
‘E’ stands for a generic external device that
can be accessed through BackendAPI
Code changes
§  Code changes primarily in the form of WSGI middleware at proxy &
object servers
§  Middleware at proxy server:
§  Constructs stub objects for PUTs destined to external backend
§  Talks to external backend directly via a standard multi-backend compatible
API
§  Middleware at object server:
§  Handles requests from background processes. E.g GETs from container-sync,
DELETEs from account-reaper
§  Latency optimization: Offloads internal HEADs from proxy server to determine
presence of stubs
§  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.6
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 is attached to the stub as system
metadata
§  Example:
§  X-Object-Sysmeta-Eb-Dest-Path
§  X-Object-Sysmeta-Eb-Dest-Size
§  X-Object-Sysmeta-Eb-Dest-Etag
© 2015 NetApp, Inc. All rights reserved.7
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, i.e.,
§  Subject to 3-way replication by object-replicator to ensure reliability
§  Processed by object-auditor to ensure integrity
© 2015 NetApp, Inc. All rights reserved.8
Backend API
§  Currently using a simple four-function abstract class that can be
extended for custom implementations for Swift, Tape, Glacier, 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 combine two types of Swift backends (e.g SSD + HDD) to
present one (hybrid) container to user .
© 2015 NetApp, Inc. All rights reserved.9
© 2015 NetApp, Inc. All rights reserved.10
Proxy Server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Hybrid Container Prototype – PUT flow
HB-proxy
BackendAPI
E Swift Tape …
…
WSGI middleware
Proxy
App
Object Server
HB-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Patches to
existing code
31
6
4
5
2
Incoming Obj with user
metadata
Write Obj to external
backend
Construct & Write Stub
with system metadata to
point to external object.
Check via an internal
HEAD if PUT is
overwriting an existing
stub
If yes, delete older object
in external backend
Write stub + user
metadata to swift
backend
Update container DB with
(size, etag) of real object
1
2
3
4
5
6
7
7
3
‘E’ stands for a generic external device that
can be accessed through BackendAPI
© 2015 NetApp, Inc. All rights reserved.11
Proxy Server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Hybrid Container Prototype – GET flow
HB-proxy
BackendAPI
E Swift Tape …
…
WSGI middleware
Proxy
App
Object Server
HB-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Patches to
existing code
21
34
Incoming GET request
Retrieve object from
object server
Retrieve object from DAS
backend
If object received is a
stub, read the object
contents from backend
1
2
3
4
2
‘E’ stands for a generic external device that
can be accessed through BackendAPI
© 2015 NetApp, Inc. All rights reserved.12
Proxy Server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Hybrid Container Prototype – DELETE flow
HB-proxy
BackendAPI
E Swift Tape …
…
WSGI middleware
Proxy
App
Object Server
HB-obj
BackendAPI
E Swift Tape …
WSGI middleware
Obj
App
Add-on/pluggable
middleware
Patches to
existing code
21
5
3
4
Incoming DELETE
request
Send DELETE request to
object server
Check via an internal
HEAD if DELETE is
removing an existing stub
If yes, delete object in
external backend
Delete Stub object in
DAS backend
Remove object entry from
container DB
1
2
3
4
5
6
6
2
‘E’ stands for a generic external device that
can be accessed through BackendAPI
© 2015 NetApp, Inc. All rights reserved.13
Container server
Stub ObjA
E
ObjA
meta-data
Swift DAS backend
Internal requests – e.g from container-sync
Container-sync
Object Server
HB-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 external
backend
1
2
3
1
‘E’ stands for a generic external device that
can be accessed through BackendAPI

More Related Content

What's hot

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSEDB
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentCloudOps2005
 
Building Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFireBuilding Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFireJohn Blum
 
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
 
Scaling DataStax in Docker
Scaling DataStax in DockerScaling DataStax in Docker
Scaling DataStax in DockerDataStax
 
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...MongoDB
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJoseph Kuo
 
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...Michael Stack
 
Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Juan José Martínez
 
Large Table Partitioning with PostgreSQL and Django
 Large Table Partitioning with PostgreSQL and Django Large Table Partitioning with PostgreSQL and Django
Large Table Partitioning with PostgreSQL and DjangoEDB
 
Exploring Alluxio for Daily Tasks at Robinhood
Exploring Alluxio for Daily Tasks at RobinhoodExploring Alluxio for Daily Tasks at Robinhood
Exploring Alluxio for Daily Tasks at RobinhoodAlluxio, Inc.
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP SystemMongoDB
 
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControl
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControlAutomating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControl
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControlSeveralnines
 
Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Cloudian
 
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
"#Microfrontends #LowConnectivity #AsianMarket", Maxim DemidenkoFwdays
 
Event driven architectures with Kinesis
Event driven architectures with KinesisEvent driven architectures with Kinesis
Event driven architectures with KinesisMark Harrison
 
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)Elasticsearch
 
Opa gatekeeper
Opa gatekeeperOpa gatekeeper
Opa gatekeeperRita Zhang
 

What's hot (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
Kubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy AgentKubernetes Security with Calico and Open Policy Agent
Kubernetes Security with Calico and Open Policy Agent
 
Building Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFireBuilding Effective Apache Geode Applications with Spring Data GemFire
Building Effective Apache Geode Applications with Spring Data GemFire
 
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
 
Zabbix at scale with Elasticsearch
Zabbix at scale with ElasticsearchZabbix at scale with Elasticsearch
Zabbix at scale with Elasticsearch
 
Scaling DataStax in Docker
Scaling DataStax in DockerScaling DataStax in Docker
Scaling DataStax in Docker
 
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...
MongoDB .local Bengaluru 2019: The Journey of Migration from Oracle to MongoD...
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
 
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and IgniteJCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
JCConf 2016 - Cloud Computing Applications - Hazelcast, Spark and Ignite
 
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...
HBaseConAsia2018 Track2-3: Bringing MySQL Compatibility to HBase using Databa...
 
Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)Deploying OpenStack Object Storage (Swift)
Deploying OpenStack Object Storage (Swift)
 
Large Table Partitioning with PostgreSQL and Django
 Large Table Partitioning with PostgreSQL and Django Large Table Partitioning with PostgreSQL and Django
Large Table Partitioning with PostgreSQL and Django
 
Exploring Alluxio for Daily Tasks at Robinhood
Exploring Alluxio for Daily Tasks at RobinhoodExploring Alluxio for Daily Tasks at Robinhood
Exploring Alluxio for Daily Tasks at Robinhood
 
Building a Microservices-based ERP System
Building a Microservices-based ERP SystemBuilding a Microservices-based ERP System
Building a Microservices-based ERP System
 
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControl
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControlAutomating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControl
Automating and Managing MongoDB: An Analysis of Ops Manager vs. ClusterControl
 
Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0Introducing Cloudian HyperStore 6.0
Introducing Cloudian HyperStore 6.0
 
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
"#Microfrontends #LowConnectivity #AsianMarket", Maxim Demidenko
 
Event driven architectures with Kinesis
Event driven architectures with KinesisEvent driven architectures with Kinesis
Event driven architectures with Kinesis
 
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)
Replicate Elasticsearch Data with Cross-Cluster Replication (CCR)
 
Opa gatekeeper
Opa gatekeeperOpa gatekeeper
Opa gatekeeper
 

Viewers also liked

Making Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 VancouverMaking Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 VancouverBrian Rosmaita
 
Aptira presents OpenStack swift architecture and monitoring
Aptira presents   OpenStack swift architecture and monitoringAptira presents   OpenStack swift architecture and monitoring
Aptira presents OpenStack swift architecture and monitoringOpenStack
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualboxAtul Jha
 
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015Cloud Native Day Tel Aviv
 
Invoice Traffic Manager
Invoice Traffic ManagerInvoice Traffic Manager
Invoice Traffic ManagerMark Teichmann
 
Aleutia's Solar Container Classroom
Aleutia's Solar Container ClassroomAleutia's Solar Container Classroom
Aleutia's Solar Container ClassroomMike Rosenberg
 
MEGAMAX energiespeicher
MEGAMAX energiespeicherMEGAMAX energiespeicher
MEGAMAX energiespeicherfaktorgmbh
 
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...Clinic In A Can
 
What is a Clinic In A Can?
What is a Clinic In A Can?What is a Clinic In A Can?
What is a Clinic In A Can?Clinic In A Can
 
Aleutia solar container classroom presentation
Aleutia solar container classroom presentationAleutia solar container classroom presentation
Aleutia solar container classroom presentationoliviergarcia
 
regenerative und erneuerbare Energien
regenerative und erneuerbare Energienregenerative und erneuerbare Energien
regenerative und erneuerbare Energienhochhuth
 
Organisation von Selbstorganisation
Organisation von SelbstorganisationOrganisation von Selbstorganisation
Organisation von SelbstorganisationKonstantin Obenland
 
Sybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpSybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpPrabhakar Manthena
 

Viewers also liked (20)

Making Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 VancouverMaking Glance tasks work for you - OpenStack Summit May 2015 Vancouver
Making Glance tasks work for you - OpenStack Summit May 2015 Vancouver
 
Couch to open_stack_keystone
Couch to open_stack_keystoneCouch to open_stack_keystone
Couch to open_stack_keystone
 
Aptira presents OpenStack swift architecture and monitoring
Aptira presents   OpenStack swift architecture and monitoringAptira presents   OpenStack swift architecture and monitoring
Aptira presents OpenStack swift architecture and monitoring
 
Vagrant
VagrantVagrant
Vagrant
 
OpenStack Swift on virtualbox
OpenStack Swift on virtualboxOpenStack Swift on virtualbox
OpenStack Swift on virtualbox
 
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015
Eran Rom, IBM - Bringing Compute to Openstack Swift, OpenStack Israel 2015
 
V12
V12V12
V12
 
Invoice Traffic Manager
Invoice Traffic ManagerInvoice Traffic Manager
Invoice Traffic Manager
 
Aleutia's Solar Container Classroom
Aleutia's Solar Container ClassroomAleutia's Solar Container Classroom
Aleutia's Solar Container Classroom
 
MEGAMAX energiespeicher
MEGAMAX energiespeicherMEGAMAX energiespeicher
MEGAMAX energiespeicher
 
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...
From Shipping Container to Medical Clinic: The First Solar Powered Clinic In ...
 
What is a Clinic In A Can?
What is a Clinic In A Can?What is a Clinic In A Can?
What is a Clinic In A Can?
 
Aleutia solar container classroom presentation
Aleutia solar container classroom presentationAleutia solar container classroom presentation
Aleutia solar container classroom presentation
 
Teoria de contro moderno
Teoria de contro modernoTeoria de contro moderno
Teoria de contro moderno
 
regenerative und erneuerbare Energien
regenerative und erneuerbare Energienregenerative und erneuerbare Energien
regenerative und erneuerbare Energien
 
Bezugsrahmen Container
Bezugsrahmen ContainerBezugsrahmen Container
Bezugsrahmen Container
 
Organisation von Selbstorganisation
Organisation von SelbstorganisationOrganisation von Selbstorganisation
Organisation von Selbstorganisation
 
Linkedin
LinkedinLinkedin
Linkedin
 
Linked 4
Linked 4Linked 4
Linked 4
 
Sybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wpSybase sup hybrid_web_container_article_wp
Sybase sup hybrid_web_container_article_wp
 

Similar to Hybrid Container for OpenStack Swift

OpenStack Swift tiering proposal and prototype details
OpenStack Swift tiering proposal and prototype detailsOpenStack Swift tiering proposal and prototype details
OpenStack Swift tiering proposal and prototype detailsShiva Chaitanya
 
Running stateful applications in containers with k8 s persistent volumes and ...
Running stateful applications in containers with k8 s persistent volumes and ...Running stateful applications in containers with k8 s persistent volumes and ...
Running stateful applications in containers with k8 s persistent volumes and ...Kapil Arora
 
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
 
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
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easyKarthik Babu Sekar
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !! Karthik Babu Sekar
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesYugabyte
 
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
 
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
 
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
 
Turning object storage into vm storage
Turning object storage into vm storageTurning object storage into vm storage
Turning object storage into vm storagewim_provoost
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018harvraja
 
Hive 3 a new horizon
Hive 3  a new horizonHive 3  a new horizon
Hive 3 a new horizonArtem Ervits
 
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
 
Edge Side APIs: Fast and Reliable Hypermedia APIs
Edge Side APIs: Fast and Reliable Hypermedia APIsEdge Side APIs: Fast and Reliable Hypermedia APIs
Edge Side APIs: Fast and Reliable Hypermedia APIsNordic APIs
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation ServerPavel Vlasov
 
Better Deployments with Sub Environments Using Spring Cloud and Netflix Ribbon
Better Deployments with Sub Environments Using Spring Cloud and Netflix RibbonBetter Deployments with Sub Environments Using Spring Cloud and Netflix Ribbon
Better Deployments with Sub Environments Using Spring Cloud and Netflix RibbonVMware Tanzu
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...Shaun Murakami
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshSion Smith
 

Similar to Hybrid Container for OpenStack Swift (20)

OpenStack Swift tiering proposal and prototype details
OpenStack Swift tiering proposal and prototype detailsOpenStack Swift tiering proposal and prototype details
OpenStack Swift tiering proposal and prototype details
 
Running stateful applications in containers with k8 s persistent volumes and ...
Running stateful applications in containers with k8 s persistent volumes and ...Running stateful applications in containers with k8 s persistent volumes and ...
Running stateful applications in containers with k8 s persistent volumes and ...
 
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
 
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
 
Couchbase Chennai Meetup: Developing with Couchbase- made easy
Couchbase Chennai Meetup:  Developing with Couchbase- made easyCouchbase Chennai Meetup:  Developing with Couchbase- made easy
Couchbase Chennai Meetup: Developing with Couchbase- made easy
 
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !! Couchbase Singapore Meetup #2:  Why Developing with Couchbase is easy !!
Couchbase Singapore Meetup #2: Why Developing with Couchbase is easy !!
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on Kubernetes
 
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
 
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?
 
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
 
Turning object storage into vm storage
Turning object storage into vm storageTurning object storage into vm storage
Turning object storage into vm storage
 
Coherence RoadMap 2018
Coherence RoadMap 2018Coherence RoadMap 2018
Coherence RoadMap 2018
 
Hive 3 a new horizon
Hive 3  a new horizonHive 3  a new horizon
Hive 3 a new horizon
 
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
 
Edge Side APIs: Fast and Reliable Hypermedia APIs
Edge Side APIs: Fast and Reliable Hypermedia APIsEdge Side APIs: Fast and Reliable Hypermedia APIs
Edge Side APIs: Fast and Reliable Hypermedia APIs
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Better Deployments with Sub Environments Using Spring Cloud and Netflix Ribbon
Better Deployments with Sub Environments Using Spring Cloud and Netflix RibbonBetter Deployments with Sub Environments Using Spring Cloud and Netflix Ribbon
Better Deployments with Sub Environments Using Spring Cloud and Netflix Ribbon
 
Open stack ocata summit enabling aws lambda-like functionality with openstac...
Open stack ocata summit  enabling aws lambda-like functionality with openstac...Open stack ocata summit  enabling aws lambda-like functionality with openstac...
Open stack ocata summit enabling aws lambda-like functionality with openstac...
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data Mesh
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Hybrid Container for OpenStack Swift

  • 1. Hybrid Container Proposal © 2015 NetApp, Inc. All rights reserved.1 Saeed Ghanbari Shiva Chaitanya Deepak Kenchammana Barry Benight
  • 2. Problem Statement §  Swift currently allows one storage policy for a container . §  A swift container is assigned to a single ring (single storage policy) at creation time. §  As a result, all objects of that container are stored in one set of backend devices – which are typically uniform in performance but might vary in capacity. §  This conflation of logical namespace with physical resources puts the burden of placing objects based on service level objectives on the client - by namespace partitioning © 2015 NetApp, Inc. All rights reserved.2
  • 3. Proposal §  In a hybrid container, object placement will be based on QoS (Quality of Service) requirement. §  Client specifies QoS, Swift enforces it. §  QoS requirement supplied through a special header: x-qos. §  This header could either directly specify the physical back-end or §  Alternatively, the operator may declare some rules based on which Swift will infer the appropriate backend, e.g., objects larger than a threshold to be stored on SMR drives. §  Enforcement mechanism seamless to the swift client: §  No changes to the externally-visible namespace §  Minimal changes to client software (just needs to add x-qos header) © 2015 NetApp, Inc. All rights reserved.3
  • 4. Why not storage policy? §  Applications can choose the right back-end for a particular QoS through Storage Policy. Why Hybrid Container? §  This proposal addresses use cases where Swift operators manage multiple storage devices transparent to the application. §  Operator’s key objective 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 the right backend for placing the data and movement mechanisms are best deferred to Swift in such instances. © 2015 NetApp, Inc. All rights reserved.4
  • 5. © 2015 NetApp, Inc. All rights reserved.5 Proxy Server Stub ObjA E ObjA meta-data Swift DAS backend Overview of Hybrid Container Prototype HB-proxy BackendAPI E Swift Tape … WSGI middleware Object Server HB-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Patches to existing code ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 6. Code changes §  Code changes primarily in the form of WSGI middleware at proxy & object servers §  Middleware at proxy server: §  Constructs stub objects for PUTs destined to external backend §  Talks to external backend directly via a standard multi-backend compatible API §  Middleware at object server: §  Handles requests from background processes. E.g GETs from container-sync, DELETEs from account-reaper §  Latency optimization: Offloads internal HEADs from proxy server to determine presence of stubs §  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.6
  • 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 is attached to the stub as system metadata §  Example: §  X-Object-Sysmeta-Eb-Dest-Path §  X-Object-Sysmeta-Eb-Dest-Size §  X-Object-Sysmeta-Eb-Dest-Etag © 2015 NetApp, Inc. All rights reserved.7
  • 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, i.e., §  Subject to 3-way replication by object-replicator to ensure reliability §  Processed by object-auditor to ensure integrity © 2015 NetApp, Inc. All rights reserved.8
  • 9. Backend API §  Currently using a simple four-function abstract class that can be extended for custom implementations for Swift, Tape, Glacier, 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 combine two types of Swift backends (e.g SSD + HDD) to present one (hybrid) container to user . © 2015 NetApp, Inc. All rights reserved.9
  • 10. © 2015 NetApp, Inc. All rights reserved.10 Proxy Server Stub ObjA E ObjA meta-data Swift DAS backend Hybrid Container Prototype – PUT flow HB-proxy BackendAPI E Swift Tape … … WSGI middleware Proxy App Object Server HB-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Patches to existing code 31 6 4 5 2 Incoming Obj with user metadata Write Obj to external backend Construct & Write Stub with system metadata to point to external object. Check via an internal HEAD if PUT is overwriting an existing stub If yes, delete older object in external backend Write stub + user metadata to swift backend Update container DB with (size, etag) of real object 1 2 3 4 5 6 7 7 3 ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 11. © 2015 NetApp, Inc. All rights reserved.11 Proxy Server Stub ObjA E ObjA meta-data Swift DAS backend Hybrid Container Prototype – GET flow HB-proxy BackendAPI E Swift Tape … … WSGI middleware Proxy App Object Server HB-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Patches to existing code 21 34 Incoming GET request Retrieve object from object server Retrieve object from DAS backend If object received is a stub, read the object contents from backend 1 2 3 4 2 ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 12. © 2015 NetApp, Inc. All rights reserved.12 Proxy Server Stub ObjA E ObjA meta-data Swift DAS backend Hybrid Container Prototype – DELETE flow HB-proxy BackendAPI E Swift Tape … … WSGI middleware Proxy App Object Server HB-obj BackendAPI E Swift Tape … WSGI middleware Obj App Add-on/pluggable middleware Patches to existing code 21 5 3 4 Incoming DELETE request Send DELETE request to object server Check via an internal HEAD if DELETE is removing an existing stub If yes, delete object in external backend Delete Stub object in DAS backend Remove object entry from container DB 1 2 3 4 5 6 6 2 ‘E’ stands for a generic external device that can be accessed through BackendAPI
  • 13. © 2015 NetApp, Inc. All rights reserved.13 Container server Stub ObjA E ObjA meta-data Swift DAS backend Internal requests – e.g from container-sync Container-sync Object Server HB-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 external backend 1 2 3 1 ‘E’ stands for a generic external device that can be accessed through BackendAPI