SlideShare a Scribd company logo
PERFORMANCE AND SCALABILITY
OF CNS 3.6 IN OCP WITH BRICK-
MULTIPLEX ENABLED
ELVIR KURIC, SHEKHAR BERRY
Gluster Summit, 28th October 2017
CONTENTS
Introduction/Motivation
What is Brick Multiplexing
Performance Analysis
Scalability Analysis
Next Steps
Conclusion
INTRODUCTION
OpenShift Container Platform (OCP) is an application platform ( aka
PaaS ) by Red Hat.
This is essentially Kubernetes + add ons which is used for automating
deployment, management and orchestration of containerized application
CNS ( Container Native Storage ) is way to run gluster inside Openshift
pods
MOTIVATION
OBJECTIVES OF THIS TESTING:
Brick Multiplexing is a salient feature of Gluster 3.10
To find out effect of brick multiplexing on IO performance.
Compare performance between brick multiplex enabled and
disabled environment
To observe how brick multiplex helps in scaling of
persistent volume
To find out resource consumption at highest scale and
compare with brick multiplex disabled environment
BRICK MULTIPLEXING
All storage in Gluster is managed as bricks, which are just directories
on servers
The consistency of volumes across all its bricks is handled by the
glusterfsd process, which is what consumes the memory.
In older releases of Glusterfs , there was one such process per brick on
each host.
With brick-multiplexing, only one glusterfsd process is governing the
bricks, such that the amount of memory consumption of GlusterFS pods is
drastically reduced and the scalability is significantly improved.
BRICK MULTIPLEXING
RESOURCE CONSTRAINTS SEEN PRIOR TO BRICK MULTIPLEXING:
Ports
Memory
CPU
Brick multiplexing puts multiple bricks into one process.
Thus, many bricks can consume *one* port, *one* set of global
data structures, and *one* pool of global threads reducing
resource consumption and contention.
PERFORMANCE ANALYSIS
TEST ENVIRONMENT
8 Nodes (3 Dedicated CNS nodes, 5 App nodes including
master)
48 GB RAM, 2 CPU sockets with 6 cores each, 12 processors
in total on all 8 servers
3 CNS nodes comprised 12 7200 RPMs Hard Drives of 930GB
capacity. Total capacity of ~11TB
10GbE Ethernet link was used for IO and 1GbE was used for
management
OCP v3.6 , kubernetes 1.6
glusterfs-3.8.44, heketi-5.0.0-1
docker images: rhgs3/rhgs-server-rhel7:3.3.0-24,:
rhgs3/rhgs-volmanager-rhel7:3.3.0-27
PERFORMANCE ANALYSIS
TEST PROCEDURE
Persistent Volumes were scaled from 100,200,300,500 to 1000 in
brick-multiplexed environment and mounted inside application
pod
pbench-fio was used to run concurrent sequential and random
workload on the persistent volumes mounted inside pod
Tests were repeated to get reproducible numbers
Performance comparison between brick multiplex enabled and
disabled was done for a particular number of persistent volumes
PERFORMANCE ANALYSIS
TEST RESULTS
Performs better at higher scale. Best performance is seen at 1000
PV where all drives are utilized
Read performance is close to line speed
Write performance is impacted by limited use of backend hard
drives
PERFORMANCE ANALYSIS
TEST RESULTS
No performance drop is seen between brick-multiplex enabled
environment and brick-multiplex disabled environment
SCALABILITY ANALYSIS
Gluster volumes ( Storage ) were "static" - not many changes related
to Gluster volumes happened ( Change Request was necessary to do
anything with gluster volume)
Before : volume was in use for days/months
Now : most of volumes are in use for minutes/hours
Storage administrator vs Openshift administrator vs User
Control over creating gluster volumes is moved to Openshift user
Gluster In Pre-Kubernetes/OpenShift Era
SCALABILITY ANALYSIS
10 nodes ( 1x master, 2 infra nodes, 3 dedicated cns nodes, 5
app nodes )
OCP/CNS nodes had more than 50 GB of memory per node
24 CPUs per node
OCP v3.7 , kubernetes 1.7
glusterfs-3.8.44, heketi-5.0.0-15
docker images : rhgs3/rhgs-server-rhel7:3.3.0-360 / rhgs3/rhgs-
volmanager-rhel7:3.3.0-360
TEST ENVIRONMENT
SCALABILITY ANALYSIS
WHAT/HOW WAS TESTED?
Scalability of PVC creation on top of CNS
Different number of PVC were tested (100,300,500,1000)
We wanted to know memory footprint for different number of PVC/CNS
volumes ( with / without Brick Multiplexing )
Bonus - how fast PVC are created
Clusterloader
https://github.com/openshift/svt/tree/master/openshift_scalability
Pbench https://github.com/distributed-system-analysis/pbench
heketivolumemonitor -
https://github.com/ekuric/openshift/blob/master/cns/heketivolumemonitor
.py
TOOLS USED
SCALABILITY ANALYSIS
MEMORY USAGE - WHEN 1000 CNS VOLUMES PRESENT IN CNS CLUSTER
SCALABILITY ANALYSIS
TIME TO CREATE - BMUX ON / BMUX OFF
SCALABILITY ANALYSIS
TIME TO CREATE - BMUX ON / BMUX OFF / BMUX ON + MOUNT
SCALABILITY ANALYSIS
LVS
# heketi-cli volume list |wc -l
1000
# On every OCP node hosting CNS pods
#the number of LVSs will be 2x$(number_of_heketi_volumes)
# lvs | wc -l
2000
BEST PRACTICES
Monitor OCP nodes hosting CNS pods ( memory / cpu )
If possible give CNS pods dedicated nodes
Stay inside supported boundaries for specific OCP/CNS release
regarding number of volumes
CNS pods are important pods
NEXT STEPS
Random performance is captured but its skewed in CNS environment.
Smallfile workload performance will be captured as well.
CNS block device feature - scale test / IO test
OCP infra apps using CNS ( file/block ) OCP metrics/logging
Cassandra/MariaDB/MongoDB ( CNS block )
CONCLUSIONS
No Performance degradation is seen with brick multiplexing enabled
for large file workload
Brick Multiplexing brings improvements from memory usage point of
view
Brick Multiplex helps to scale faster
Possible to "pack" more CNS volumes on same HW with smaller memory
footprint
Brick Multiplexing is enabled by default - it is recommended not to
disable it
QUESTIONS ??
twitter.com/RedHatNews
youtube.com/redhat
facebook.com/redhatinc
THANK YOU!
plus.google.com/+RedHat
linkedin.com/company/red-hat

More Related Content

PDF
Gluster as Native Storage for Containers - past, present and future
PDF
Heketi Functionality into Glusterd2
PDF
Gluster and Kubernetes
PDF
Gluster: a SWOT Analysis
PDF
Data Reduction for Gluster with VDO
PDF
Arbiter volumes in gluster
PDF
Hands On Gluster with Jeff Darcy
ODP
Gluster containers!
Gluster as Native Storage for Containers - past, present and future
Heketi Functionality into Glusterd2
Gluster and Kubernetes
Gluster: a SWOT Analysis
Data Reduction for Gluster with VDO
Arbiter volumes in gluster
Hands On Gluster with Jeff Darcy
Gluster containers!

What's hot (20)

PDF
Container (Docker) Orchestration Tools
PDF
CoreOS @ summer meetup in Utrecht
ODP
GlusterFS Containers
PDF
Gluster Containerized Storage for Cloud Applications
PDF
Gluster as Block Store in Containers
PPTX
Kubernetes Introduction
PDF
CRI Runtimes Deep-Dive: Who's Running My Pod!?
PDF
Kubernetes Webinar - Using ConfigMaps & Secrets
ODP
Accessing gluster ufo_-_eco_willson
PDF
Container-relevant Upstream Kernel Developments
PDF
Up and Running with Glusto & Glusto-Tests in 5 Minutes (or less)
PDF
reInvent 2021 Recap and k9s review
ODP
Gluster d thread_synchronization_using_urcu_lca2016
PDF
Kubernetes Workshop
PPTX
Containerd internals: building a core container runtime
PPTX
Practical Glusto Example
ODP
CRIU: Time and Space Travel for Linux Containers
PDF
Containarized Gluster Storage in Kubernetes
PDF
Docker Athens: Docker Engine Evolution & Containerd Use Cases
PDF
It's 2018. Are My Containers Secure Yet!?
Container (Docker) Orchestration Tools
CoreOS @ summer meetup in Utrecht
GlusterFS Containers
Gluster Containerized Storage for Cloud Applications
Gluster as Block Store in Containers
Kubernetes Introduction
CRI Runtimes Deep-Dive: Who's Running My Pod!?
Kubernetes Webinar - Using ConfigMaps & Secrets
Accessing gluster ufo_-_eco_willson
Container-relevant Upstream Kernel Developments
Up and Running with Glusto & Glusto-Tests in 5 Minutes (or less)
reInvent 2021 Recap and k9s review
Gluster d thread_synchronization_using_urcu_lca2016
Kubernetes Workshop
Containerd internals: building a core container runtime
Practical Glusto Example
CRIU: Time and Space Travel for Linux Containers
Containarized Gluster Storage in Kubernetes
Docker Athens: Docker Engine Evolution & Containerd Use Cases
It's 2018. Are My Containers Secure Yet!?
Ad

Similar to Scalability and Performance of CNS 3.6 (20)

PPTX
Jaspreet webinar-cns
PDF
Scaling Up Logging and Metrics
PDF
Red Hat Summit 2017: Wicked Fast PaaS: Performance Tuning of OpenShift and D...
PDF
Ippevent : openshift Introduction
PDF
Red Hat Storage Server Administration Deep Dive
PPTX
Kubernetes and OpenStack at Scale
PDF
Ceph scale testing with 10 Billion Objects
PPTX
Architecting Ceph Solutions
PDF
Testing kubernetes and_open_shift_at_scale_20170209
PDF
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
PDF
Red Hat Storage Day New York - Persistent Storage for Containers
PDF
Red Hat OpenShift on Bare Metal and Containerized Storage
PDF
Red Hat Enterprise Linux: Open, hyperconverged infrastructure
PDF
Red Hat Storage Day Dallas - Storage for OpenShift Containers
PDF
OpenCms Days 2013 - OpenCms Cloud eXtensions
PDF
Selecting the right persistent storage options for apps in containers Open So...
PDF
Gluster Contenarized Storage for Cloud Applications
PDF
Quick-and-Easy Deployment of a Ceph Storage Cluster
PDF
Red hat, inc. open storage in the enterprise 0
PDF
Using Ceph in OStack.de - Ceph Day Frankfurt
Jaspreet webinar-cns
Scaling Up Logging and Metrics
Red Hat Summit 2017: Wicked Fast PaaS: Performance Tuning of OpenShift and D...
Ippevent : openshift Introduction
Red Hat Storage Server Administration Deep Dive
Kubernetes and OpenStack at Scale
Ceph scale testing with 10 Billion Objects
Architecting Ceph Solutions
Testing kubernetes and_open_shift_at_scale_20170209
Build an High-Performance and High-Durable Block Storage Service Based on Ceph
Red Hat Storage Day New York - Persistent Storage for Containers
Red Hat OpenShift on Bare Metal and Containerized Storage
Red Hat Enterprise Linux: Open, hyperconverged infrastructure
Red Hat Storage Day Dallas - Storage for OpenShift Containers
OpenCms Days 2013 - OpenCms Cloud eXtensions
Selecting the right persistent storage options for apps in containers Open So...
Gluster Contenarized Storage for Cloud Applications
Quick-and-Easy Deployment of a Ceph Storage Cluster
Red hat, inc. open storage in the enterprise 0
Using Ceph in OStack.de - Ceph Day Frankfurt
Ad

More from Gluster.org (20)

PDF
Automating Gluster @ Facebook - Shreyas Siravara
PDF
nfusr: a new userspace NFS client based on libnfs - Shreyas Siravara
PDF
Facebook’s upstream approach to GlusterFS - David Hasson
PDF
Throttling Traffic at Facebook Scale
PDF
GlusterFS w/ Tiered XFS
PDF
Gluster Metrics: why they are crucial for running stable deployments of all s...
PDF
Releases: What are contributors responsible for
PDF
RIO Distribution: Reconstructing the onion - Shyamsundar Ranganathan
PDF
Native Clients, more the merrier with GFProxy!
PDF
GlusterD-2.0: What's Happening? - Kaushal Madappa
PDF
What Makes Us Fail
PDF
Architecture of the High Availability Solution for Ganesha and Samba with Kal...
PDF
Challenges with Gluster and Persistent Memory with Dan Lambright
PDF
Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...
PDF
Sharding: Past, Present and Future with Krutika Dhananjay
PDF
State of Gluster Performance
PDF
Integration of Glusterfs in to commvault simpana
PDF
GFProxy: Scaling the GlusterFS FUSE Client
PDF
Object Storage with Gluster
PPTX
Welcome to Gluster Developer Summit 2016
Automating Gluster @ Facebook - Shreyas Siravara
nfusr: a new userspace NFS client based on libnfs - Shreyas Siravara
Facebook’s upstream approach to GlusterFS - David Hasson
Throttling Traffic at Facebook Scale
GlusterFS w/ Tiered XFS
Gluster Metrics: why they are crucial for running stable deployments of all s...
Releases: What are contributors responsible for
RIO Distribution: Reconstructing the onion - Shyamsundar Ranganathan
Native Clients, more the merrier with GFProxy!
GlusterD-2.0: What's Happening? - Kaushal Madappa
What Makes Us Fail
Architecture of the High Availability Solution for Ganesha and Samba with Kal...
Challenges with Gluster and Persistent Memory with Dan Lambright
Deploying pNFS over Distributed File Storage w/ Jiffin Tony Thottan and Niels...
Sharding: Past, Present and Future with Krutika Dhananjay
State of Gluster Performance
Integration of Glusterfs in to commvault simpana
GFProxy: Scaling the GlusterFS FUSE Client
Object Storage with Gluster
Welcome to Gluster Developer Summit 2016

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Cloud computing and distributed systems.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Modernizing your data center with Dell and AMD
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
A Presentation on Artificial Intelligence
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
Big Data Technologies - Introduction.pptx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Encapsulation theory and applications.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
Encapsulation_ Review paper, used for researhc scholars
Reach Out and Touch Someone: Haptics and Empathic Computing
Cloud computing and distributed systems.
Diabetes mellitus diagnosis method based random forest with bat algorithm
Modernizing your data center with Dell and AMD
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The AUB Centre for AI in Media Proposal.docx
A Presentation on Artificial Intelligence
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Big Data Technologies - Introduction.pptx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation theory and applications.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Mobile App Security Testing_ A Comprehensive Guide.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Scalability and Performance of CNS 3.6

  • 1. PERFORMANCE AND SCALABILITY OF CNS 3.6 IN OCP WITH BRICK- MULTIPLEX ENABLED ELVIR KURIC, SHEKHAR BERRY Gluster Summit, 28th October 2017
  • 2. CONTENTS Introduction/Motivation What is Brick Multiplexing Performance Analysis Scalability Analysis Next Steps Conclusion
  • 3. INTRODUCTION OpenShift Container Platform (OCP) is an application platform ( aka PaaS ) by Red Hat. This is essentially Kubernetes + add ons which is used for automating deployment, management and orchestration of containerized application CNS ( Container Native Storage ) is way to run gluster inside Openshift pods
  • 4. MOTIVATION OBJECTIVES OF THIS TESTING: Brick Multiplexing is a salient feature of Gluster 3.10 To find out effect of brick multiplexing on IO performance. Compare performance between brick multiplex enabled and disabled environment To observe how brick multiplex helps in scaling of persistent volume To find out resource consumption at highest scale and compare with brick multiplex disabled environment
  • 5. BRICK MULTIPLEXING All storage in Gluster is managed as bricks, which are just directories on servers The consistency of volumes across all its bricks is handled by the glusterfsd process, which is what consumes the memory. In older releases of Glusterfs , there was one such process per brick on each host. With brick-multiplexing, only one glusterfsd process is governing the bricks, such that the amount of memory consumption of GlusterFS pods is drastically reduced and the scalability is significantly improved.
  • 6. BRICK MULTIPLEXING RESOURCE CONSTRAINTS SEEN PRIOR TO BRICK MULTIPLEXING: Ports Memory CPU Brick multiplexing puts multiple bricks into one process. Thus, many bricks can consume *one* port, *one* set of global data structures, and *one* pool of global threads reducing resource consumption and contention.
  • 7. PERFORMANCE ANALYSIS TEST ENVIRONMENT 8 Nodes (3 Dedicated CNS nodes, 5 App nodes including master) 48 GB RAM, 2 CPU sockets with 6 cores each, 12 processors in total on all 8 servers 3 CNS nodes comprised 12 7200 RPMs Hard Drives of 930GB capacity. Total capacity of ~11TB 10GbE Ethernet link was used for IO and 1GbE was used for management OCP v3.6 , kubernetes 1.6 glusterfs-3.8.44, heketi-5.0.0-1 docker images: rhgs3/rhgs-server-rhel7:3.3.0-24,: rhgs3/rhgs-volmanager-rhel7:3.3.0-27
  • 8. PERFORMANCE ANALYSIS TEST PROCEDURE Persistent Volumes were scaled from 100,200,300,500 to 1000 in brick-multiplexed environment and mounted inside application pod pbench-fio was used to run concurrent sequential and random workload on the persistent volumes mounted inside pod Tests were repeated to get reproducible numbers Performance comparison between brick multiplex enabled and disabled was done for a particular number of persistent volumes
  • 9. PERFORMANCE ANALYSIS TEST RESULTS Performs better at higher scale. Best performance is seen at 1000 PV where all drives are utilized Read performance is close to line speed Write performance is impacted by limited use of backend hard drives
  • 10. PERFORMANCE ANALYSIS TEST RESULTS No performance drop is seen between brick-multiplex enabled environment and brick-multiplex disabled environment
  • 11. SCALABILITY ANALYSIS Gluster volumes ( Storage ) were "static" - not many changes related to Gluster volumes happened ( Change Request was necessary to do anything with gluster volume) Before : volume was in use for days/months Now : most of volumes are in use for minutes/hours Storage administrator vs Openshift administrator vs User Control over creating gluster volumes is moved to Openshift user Gluster In Pre-Kubernetes/OpenShift Era
  • 12. SCALABILITY ANALYSIS 10 nodes ( 1x master, 2 infra nodes, 3 dedicated cns nodes, 5 app nodes ) OCP/CNS nodes had more than 50 GB of memory per node 24 CPUs per node OCP v3.7 , kubernetes 1.7 glusterfs-3.8.44, heketi-5.0.0-15 docker images : rhgs3/rhgs-server-rhel7:3.3.0-360 / rhgs3/rhgs- volmanager-rhel7:3.3.0-360 TEST ENVIRONMENT
  • 13. SCALABILITY ANALYSIS WHAT/HOW WAS TESTED? Scalability of PVC creation on top of CNS Different number of PVC were tested (100,300,500,1000) We wanted to know memory footprint for different number of PVC/CNS volumes ( with / without Brick Multiplexing ) Bonus - how fast PVC are created Clusterloader https://github.com/openshift/svt/tree/master/openshift_scalability Pbench https://github.com/distributed-system-analysis/pbench heketivolumemonitor - https://github.com/ekuric/openshift/blob/master/cns/heketivolumemonitor .py TOOLS USED
  • 14. SCALABILITY ANALYSIS MEMORY USAGE - WHEN 1000 CNS VOLUMES PRESENT IN CNS CLUSTER
  • 15. SCALABILITY ANALYSIS TIME TO CREATE - BMUX ON / BMUX OFF
  • 16. SCALABILITY ANALYSIS TIME TO CREATE - BMUX ON / BMUX OFF / BMUX ON + MOUNT
  • 17. SCALABILITY ANALYSIS LVS # heketi-cli volume list |wc -l 1000 # On every OCP node hosting CNS pods #the number of LVSs will be 2x$(number_of_heketi_volumes) # lvs | wc -l 2000
  • 18. BEST PRACTICES Monitor OCP nodes hosting CNS pods ( memory / cpu ) If possible give CNS pods dedicated nodes Stay inside supported boundaries for specific OCP/CNS release regarding number of volumes CNS pods are important pods
  • 19. NEXT STEPS Random performance is captured but its skewed in CNS environment. Smallfile workload performance will be captured as well. CNS block device feature - scale test / IO test OCP infra apps using CNS ( file/block ) OCP metrics/logging Cassandra/MariaDB/MongoDB ( CNS block )
  • 20. CONCLUSIONS No Performance degradation is seen with brick multiplexing enabled for large file workload Brick Multiplexing brings improvements from memory usage point of view Brick Multiplex helps to scale faster Possible to "pack" more CNS volumes on same HW with smaller memory footprint Brick Multiplexing is enabled by default - it is recommended not to disable it