SlideShare a Scribd company logo
1 of 25
Download to read offline
Using OpenStack Swift for 
extreme data durability 
Florent Flament, Cloudwatt 
Christian Schwede, eNovance 
OpenStack Summit Paris, November 2014
Intro - Cloudwatt 
● Florent Flament 
● Dev & Fireman @ Cloudwatt 
● Fixing & tuning of OpenStack (Cinder, Keystone, Nova, Swift) 
● Email: florent.flament@cloudwatt.com 
● IRC: florentflament on #openstack-dev (Freenode) 
● Twitter: @florentflament_ 
● Blogs: http://dev.cloudwatt.com / http://www.florentflament.com
Intro - eNovance 
● Christian Schwede 
● Developer @ eNovance / Red Hat 
● Mostly working on Swift, testing, automation and developer tools 
● Swift Core 
● IRC: cschwede in #openstack-swift 
● christian@enovance.com / cschwede@redhat.com 
● Twitter: @cschwede_de
Architecture
Proxy 
Node 
Proxy 
Node 
Network 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk
Proxy 
Node 
Proxy 
Node 
Network 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Zone 0 Zone 1 Zone 2
Proxy 
Node 
Proxy 
Node 
Network 
Zone 0 Zone 1 
Region 0 (⅔ of the data) 
Zone 2 
Region 1 (⅓ of the data) 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Zone 0 
Disk 
Disk 
Disk
The Ring
Ring : the Map of data 
● One file per type of data. Ring files map each copy of a 
data to a physical device through partitions. 
● An object’s partition number is computed from the hash 
of the object’s name. 
● A Ring file is: a (replica, partition) to device ID table, a 
devices table and a number of hash bits. 
● Visualize a Ring: https://github.com/victorlin/swiftsense
Concrete example of Ring 
Replica & Partition to Device ID table Devices table 
0 1 2 3 0 1 2 3 
1 2 3 0 1 2 3 0 
2 3 0 1 2 3 0 1 
Partition number 
0 
1 
2 
Replica number 
0 1 2 3 4 5 6 7 
ID Host Port Device 
0 192.168.0.10 6000 sdb1 
1 192.168.0.10 6000 sdc1 
2 192.168.0.11 6000 sdb1 
3 192.168.0.11 6000 sdc1 
Bit count (partition power) = 3 
→ 23 = 8 partitions
Storage policies 
● Included in the Juno release (Swift > 2.0.0) 
● Applied on a per-container basis 
● Flexibility to use multiple rings, for example: 
○ Basic: 2 replicas on spinning disks, single datacenter 
○ Strong: 3 replicas in three different datacenters around the globe 
○ Fast: 3 replicas on SSDs and much more powerful proxies
Availability & Durability
Object durability 
● Disk failures: pd ~ 2-5% per year 
● Unrecoverable bit read errors: pb = 10-15 ⋅ 8 ⋅ objectsize 
Failure Failure Failure 
3 replicas 2 replicas 1 replica Data loss 
Replication Replication Replication 
● Durability in the range of 10-11 nines with 3 replicas (99.99999999%) 
● http://enovance.github.io/swift-durability-calculator/
Recover from a disk failure 
Set failed device weight to 0, rebalance, push new ring 
Failed
Object availability & durability 
Zone 0 Zone 1 
Region 0 (⅔ of the data) 
Zone 2 
Region 1 (⅓ of the data) 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Disk 
Zone 0 
Disk 
Disk 
Disk
Maintenance
Maintainability by Simplicity 
● Standalone `swift-ring-builder` tool to manipulate the Ring 
○ Uses `builders` files to keep architectural information on the cluster 
○ Smartly assigns partitions to devices 
○ Generates Ring files easily checked 
● Processes on Swift nodes focus on ensuring that files are stored 
uncorrupted at the appropriate location
Splitting a running Swift Cluster 
● Ensuring no data is lost 
○ Move only 1 replica at a time 
○ Small steps to limit the impact 
○ Check for data corruption 
○ Check data location 
○ Rollback in case of failure 
● Limiting the impact on performance 
○ Availability of cluster resources 
○ Load incurred by cluster being split 
○ Small steps to limit the impact 
○ Control nodes accessed by users 
Natively available in Swift
Splitting a running Swift Cluster 
● Ensuring no data is lost 
○ Move only 1 replica at a time 
○ Small steps to limit the impact 
○ Check for data corruption 
○ Check data location 
○ Rollback in case of failure 
● Limiting the impact on performance 
○ Availability of cluster resources 
○ Load incurred by cluster being split 
○ Small steps to limit the impact 
○ Control nodes accessed by users 
Small steps 
New in Swift 2.2 !!
Adding a new region 
Add a new region smoothly by limiting the amount of data moved 
● really possible since Swift 2.2 
● Final weight in new region should be at least ⅓ of the total cluster weight 
Example of process: 
1. Add devices to new region with a very low weight 
2. Increase devices’ weights to store 5% of data in the new region 
3. Progressively increase by steps of 5% the amount of data in the new region 
More details: http://www.florentflament.com/blog/splitting-swift-cluster.html
Outlook & Summary
Erasure coding 
● Coming real soon now 
● Instead of N copies of each object: 
○ apply EC to object, split into multiple fragments, for example 14 
○ store them on different disks/nodes 
○ objects can be rebuild from 10 fragments 
■ Tolerates loss of 4 fragments 
● higher durability 
■ Only ~ 40% overhead (compared to 200%) 
● much cheaper
Durability calculation 
● More detailed calculation 
○ Number of disks, servers, partitions 
● Add erasure coding 
● Include in Swift documentation? 
● Community effort 
○ Discussion started last Swift hackathon 
■ NTT, Swiftstack, IBM, Seagate, Red Hat / eNovance 
○ Ad-Hoc session on Thursday/Friday - join us!
Summary 
● High availability, even if large parts of the cluster are not accessible 
● Automatic failure correction ensures high durability, and depending on 
your cluster configuration excels known industry standards 
● Swift 2.2 (Juno release) 
○ Even smoother and predictable cluster upgrades 
○ Storage Policies allow fine grained data placement control 
● Erasure Coding increase durability even more while lowering costs
 Using OpenStack Swift for Extreme Data Durability

More Related Content

What's hot

Deploying swift on a scale out file system
Deploying swift on a scale out file systemDeploying swift on a scale out file system
Deploying swift on a scale out file systemDean Hildebrand
 
Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftJakub Krajcovic
 
Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Joe Arnold
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformOpenStack_Online
 
Monitoring Swift - OpenStack Summit May 2015, Vancouver
Monitoring Swift - OpenStack Summit May 2015, VancouverMonitoring Swift - OpenStack Summit May 2015, Vancouver
Monitoring Swift - OpenStack Summit May 2015, VancouverChristian Schwede
 
Openstack – An introduction
Openstack – An introductionOpenstack – An introduction
Openstack – An introductionMuddassir Nazir
 
Cloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackCloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackMicrosoft
 
Openstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - IsraelOpenstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - IsraelArthur Berezin
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introductionopenstackindia
 
Tokyo azure meetup #9 azure update, october
Tokyo azure meetup #9   azure update, octoberTokyo azure meetup #9   azure update, october
Tokyo azure meetup #9 azure update, octoberTokyo Azure Meetup
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis
 
Introducing OpenStack for Beginners
Introducing OpenStack for Beginners Introducing OpenStack for Beginners
Introducing OpenStack for Beginners openstackindia
 
DevOps and OpenStack December 2012
DevOps and OpenStack December 2012DevOps and OpenStack December 2012
DevOps and OpenStack December 2012Matt Ray
 
Introduction to OpenStack : Barcamp Bangkhen 2016
Introduction to OpenStack : Barcamp Bangkhen 2016Introduction to OpenStack : Barcamp Bangkhen 2016
Introduction to OpenStack : Barcamp Bangkhen 2016Opsta
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016aspyker
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstackShivaling Sannalli
 
QCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryQCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryAysylu Greenberg
 
What's new in OpenStack Liberty
What's new in OpenStack LibertyWhat's new in OpenStack Liberty
What's new in OpenStack LibertyStephen Gordon
 
Case Study: Utilizing Mirantis Fuel to install OpenStack Ansible
Case Study: Utilizing Mirantis Fuel to install OpenStack AnsibleCase Study: Utilizing Mirantis Fuel to install OpenStack Ansible
Case Study: Utilizing Mirantis Fuel to install OpenStack AnsibleTeK Charnsilp Chinprasert
 

What's hot (20)

Deploying swift on a scale out file system
Deploying swift on a scale out file systemDeploying swift on a scale out file system
Deploying swift on a scale out file system
 
Changing the world with ZeroVM and Swift
Changing the world with ZeroVM and SwiftChanging the world with ZeroVM and Swift
Changing the world with ZeroVM and Swift
 
Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012Swift Install Workshop - OpenStack Conference Spring 2012
Swift Install Workshop - OpenStack Conference Spring 2012
 
Turning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platformTurning OpenStack Swift into a VM storage platform
Turning OpenStack Swift into a VM storage platform
 
Monitoring Swift - OpenStack Summit May 2015, Vancouver
Monitoring Swift - OpenStack Summit May 2015, VancouverMonitoring Swift - OpenStack Summit May 2015, Vancouver
Monitoring Swift - OpenStack Summit May 2015, Vancouver
 
Openstack – An introduction
Openstack – An introductionOpenstack – An introduction
Openstack – An introduction
 
Cloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: OpenstackCloud Architect Alliance #15: Openstack
Cloud Architect Alliance #15: Openstack
 
Openstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - IsraelOpenstack platform -Red Hat Pizza and technology event - Israel
Openstack platform -Red Hat Pizza and technology event - Israel
 
OpenStack Introduction
OpenStack IntroductionOpenStack Introduction
OpenStack Introduction
 
Tokyo azure meetup #9 azure update, october
Tokyo azure meetup #9   azure update, octoberTokyo azure meetup #9   azure update, october
Tokyo azure meetup #9 azure update, october
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014
 
Introducing OpenStack for Beginners
Introducing OpenStack for Beginners Introducing OpenStack for Beginners
Introducing OpenStack for Beginners
 
DevOps and OpenStack December 2012
DevOps and OpenStack December 2012DevOps and OpenStack December 2012
DevOps and OpenStack December 2012
 
SFScon16 - Michele Baldessari: "OpenStack – An introduction"
SFScon16 - Michele Baldessari: "OpenStack – An introduction"SFScon16 - Michele Baldessari: "OpenStack – An introduction"
SFScon16 - Michele Baldessari: "OpenStack – An introduction"
 
Introduction to OpenStack : Barcamp Bangkhen 2016
Introduction to OpenStack : Barcamp Bangkhen 2016Introduction to OpenStack : Barcamp Bangkhen 2016
Introduction to OpenStack : Barcamp Bangkhen 2016
 
Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016Netflix Container Scheduling and Execution - QCon New York 2016
Netflix Container Scheduling and Execution - QCon New York 2016
 
Introduction to cloud and openstack
Introduction to cloud and openstackIntroduction to cloud and openstack
Introduction to cloud and openstack
 
QCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theoryQCon NYC: Distributed systems in practice, in theory
QCon NYC: Distributed systems in practice, in theory
 
What's new in OpenStack Liberty
What's new in OpenStack LibertyWhat's new in OpenStack Liberty
What's new in OpenStack Liberty
 
Case Study: Utilizing Mirantis Fuel to install OpenStack Ansible
Case Study: Utilizing Mirantis Fuel to install OpenStack AnsibleCase Study: Utilizing Mirantis Fuel to install OpenStack Ansible
Case Study: Utilizing Mirantis Fuel to install OpenStack Ansible
 

Similar to Using OpenStack Swift for Extreme Data Durability

Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2aspyker
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpStacy Véronneau
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205Linaro
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Chandan Kumar
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoChandan Kumar
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoKota Tsuyuzaki
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xrkr10
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpAaron Delp
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixC4Media
 
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraBackup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraCeph Community
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introductionkanedafromparis
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...VirtualTech Japan Inc.
 
Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Jeremy Eder
 
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...OpenStack
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapRuslan Meshenberg
 
Software defined storage
Software defined storageSoftware defined storage
Software defined storageGluster.org
 
Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!All Things Open
 
Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Anthony Wong
 

Similar to Using OpenStack Swift for Extreme Data Durability (20)

Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2Netflix Open Source Meetup Season 4 Episode 2
Netflix Open Source Meetup Season 4 Episode 2
 
Montreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUpMontreal OpenStack Q3-2017 MeetUp
Montreal OpenStack Q3-2017 MeetUp
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO Delivering a bleeding edge community-led openstack distribution: RDO
Delivering a bleeding edge community-led openstack distribution: RDO
 
Delivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdoDelivering a bleeding edge community led open stack distribution- rdo
Delivering a bleeding edge community led open stack distribution- rdo
 
DEVIEW 2013
DEVIEW 2013DEVIEW 2013
DEVIEW 2013
 
More Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit JunoMore Efficient Object Replication in OpenStack Summit Juno
More Efficient Object Replication in OpenStack Summit Juno
 
Containers > VMs
Containers > VMsContainers > VMs
Containers > VMs
 
Docker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12xDocker and-containers-for-development-and-deployment-scale12x
Docker and-containers-for-development-and-deployment-scale12x
 
OpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet UpOpenStack Cinder Best Practices - Meet Up
OpenStack Cinder Best Practices - Meet Up
 
Data Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFixData Science in the Cloud @StitchFix
Data Science in the Cloud @StitchFix
 
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix BarbeiraBackup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
Backup management with Ceph Storage - Camilo Echevarne, Félix Barbeira
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
 
Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...Best practices for optimizing Red Hat platforms for large scale datacenter de...
Best practices for optimizing Red Hat platforms for large scale datacenter de...
 
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...
How to deliver High Performance OpenStack Cloud: Christoph Dwertmann, Vault S...
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
 
Software defined storage
Software defined storageSoftware defined storage
Software defined storage
 
Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!Intro to Kernel Debugging - Just make the crashing stop!
Intro to Kernel Debugging - Just make the crashing stop!
 
Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势Linux 开源操作系统发展新趋势
Linux 开源操作系统发展新趋势
 

Recently uploaded

GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 

Recently uploaded (20)

GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 

Using OpenStack Swift for Extreme Data Durability

  • 1. Using OpenStack Swift for extreme data durability Florent Flament, Cloudwatt Christian Schwede, eNovance OpenStack Summit Paris, November 2014
  • 2. Intro - Cloudwatt ● Florent Flament ● Dev & Fireman @ Cloudwatt ● Fixing & tuning of OpenStack (Cinder, Keystone, Nova, Swift) ● Email: florent.flament@cloudwatt.com ● IRC: florentflament on #openstack-dev (Freenode) ● Twitter: @florentflament_ ● Blogs: http://dev.cloudwatt.com / http://www.florentflament.com
  • 3. Intro - eNovance ● Christian Schwede ● Developer @ eNovance / Red Hat ● Mostly working on Swift, testing, automation and developer tools ● Swift Core ● IRC: cschwede in #openstack-swift ● christian@enovance.com / cschwede@redhat.com ● Twitter: @cschwede_de
  • 5. Proxy Node Proxy Node Network Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk
  • 6. Proxy Node Proxy Node Network Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Zone 0 Zone 1 Zone 2
  • 7. Proxy Node Proxy Node Network Zone 0 Zone 1 Region 0 (⅔ of the data) Zone 2 Region 1 (⅓ of the data) Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Zone 0 Disk Disk Disk
  • 9. Ring : the Map of data ● One file per type of data. Ring files map each copy of a data to a physical device through partitions. ● An object’s partition number is computed from the hash of the object’s name. ● A Ring file is: a (replica, partition) to device ID table, a devices table and a number of hash bits. ● Visualize a Ring: https://github.com/victorlin/swiftsense
  • 10. Concrete example of Ring Replica & Partition to Device ID table Devices table 0 1 2 3 0 1 2 3 1 2 3 0 1 2 3 0 2 3 0 1 2 3 0 1 Partition number 0 1 2 Replica number 0 1 2 3 4 5 6 7 ID Host Port Device 0 192.168.0.10 6000 sdb1 1 192.168.0.10 6000 sdc1 2 192.168.0.11 6000 sdb1 3 192.168.0.11 6000 sdc1 Bit count (partition power) = 3 → 23 = 8 partitions
  • 11. Storage policies ● Included in the Juno release (Swift > 2.0.0) ● Applied on a per-container basis ● Flexibility to use multiple rings, for example: ○ Basic: 2 replicas on spinning disks, single datacenter ○ Strong: 3 replicas in three different datacenters around the globe ○ Fast: 3 replicas on SSDs and much more powerful proxies
  • 13. Object durability ● Disk failures: pd ~ 2-5% per year ● Unrecoverable bit read errors: pb = 10-15 ⋅ 8 ⋅ objectsize Failure Failure Failure 3 replicas 2 replicas 1 replica Data loss Replication Replication Replication ● Durability in the range of 10-11 nines with 3 replicas (99.99999999%) ● http://enovance.github.io/swift-durability-calculator/
  • 14. Recover from a disk failure Set failed device weight to 0, rebalance, push new ring Failed
  • 15. Object availability & durability Zone 0 Zone 1 Region 0 (⅔ of the data) Zone 2 Region 1 (⅓ of the data) Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Disk Zone 0 Disk Disk Disk
  • 17. Maintainability by Simplicity ● Standalone `swift-ring-builder` tool to manipulate the Ring ○ Uses `builders` files to keep architectural information on the cluster ○ Smartly assigns partitions to devices ○ Generates Ring files easily checked ● Processes on Swift nodes focus on ensuring that files are stored uncorrupted at the appropriate location
  • 18. Splitting a running Swift Cluster ● Ensuring no data is lost ○ Move only 1 replica at a time ○ Small steps to limit the impact ○ Check for data corruption ○ Check data location ○ Rollback in case of failure ● Limiting the impact on performance ○ Availability of cluster resources ○ Load incurred by cluster being split ○ Small steps to limit the impact ○ Control nodes accessed by users Natively available in Swift
  • 19. Splitting a running Swift Cluster ● Ensuring no data is lost ○ Move only 1 replica at a time ○ Small steps to limit the impact ○ Check for data corruption ○ Check data location ○ Rollback in case of failure ● Limiting the impact on performance ○ Availability of cluster resources ○ Load incurred by cluster being split ○ Small steps to limit the impact ○ Control nodes accessed by users Small steps New in Swift 2.2 !!
  • 20. Adding a new region Add a new region smoothly by limiting the amount of data moved ● really possible since Swift 2.2 ● Final weight in new region should be at least ⅓ of the total cluster weight Example of process: 1. Add devices to new region with a very low weight 2. Increase devices’ weights to store 5% of data in the new region 3. Progressively increase by steps of 5% the amount of data in the new region More details: http://www.florentflament.com/blog/splitting-swift-cluster.html
  • 22. Erasure coding ● Coming real soon now ● Instead of N copies of each object: ○ apply EC to object, split into multiple fragments, for example 14 ○ store them on different disks/nodes ○ objects can be rebuild from 10 fragments ■ Tolerates loss of 4 fragments ● higher durability ■ Only ~ 40% overhead (compared to 200%) ● much cheaper
  • 23. Durability calculation ● More detailed calculation ○ Number of disks, servers, partitions ● Add erasure coding ● Include in Swift documentation? ● Community effort ○ Discussion started last Swift hackathon ■ NTT, Swiftstack, IBM, Seagate, Red Hat / eNovance ○ Ad-Hoc session on Thursday/Friday - join us!
  • 24. Summary ● High availability, even if large parts of the cluster are not accessible ● Automatic failure correction ensures high durability, and depending on your cluster configuration excels known industry standards ● Swift 2.2 (Juno release) ○ Even smoother and predictable cluster upgrades ○ Storage Policies allow fine grained data placement control ● Erasure Coding increase durability even more while lowering costs