SlideShare a Scribd company logo
1 of 26
1
Cinder On-Boarding Education
Jay Bryant (Lenovo)
November 13, 2018 - Berlin
3
● Cinder’s Repos
● Brief overview of Cinder architecture/organization
● Cinder’s team
● Pointers to Upstream Institute education
● Applying OpenStack Process
● Cinder’s code
● Testing changes to Cinder
Agenda
4
Cinder Repos
● Main Cinder repository:
○ https://github.com/openstack/cinder
● Cinderclient:
○ https://github.com/openstack/python-cinderclient
● os-brick shared library:
○ https://github.com/openstack/os-brick
● Brick Cinderclient for Standalone Cinder
○ https://github.com/openstack/python-brick-cinderclient-ext
● Cinder Specs:
○ https://github.com/openstack/cinder-specs
5
● Provides persistent
block storage
resources for an
OpenStack cloud.
● Supports multiple back-
ends. Approximately 70
volume drivers in tree.
Cinder Overview
6
Vendor Backends
● Drivers from many different vendors
● Different protocols used depending on the driver
○ iSCSI
○ Fibre Channel
○ RBD
○ RemoteFS
○ Etc.
7
●CoprHD (FC, iSCSI, scaleio)
●Datacore (FC, iSCSI)
●Datera (iSCSI)
●Dell/EMC PS Series (iSCSI)
●Dell/EMC ScaleIO (scaleio)
●Dell/EMC UnityDriver (FC, iSCSI)
●Dell/EMC VMAX (FC, iSCSI)
●Dell/EMC VNX (iSCSI/FC)
●Dell/EMC XtremIO (iSCSI/FC)
●Disco (disco)
●DRBD (DRBD/iSCSI)
●Fujitsu ETERNUS (iSCSI/FC)
●HGST (NFS)
●HPE 3PAR (iSCSI/FC)
●HPE LeftHand (iSCSI)
●HPE MSA (iSCSI/FC)
●Huawei (iSCSI/FC)
●Huawei FusionStorage DSWare (iSCSI)
●IBM Flashsystem (iSCSI/FC)
●IBM GPFS (GPFS/NFS)
●IBM Storage (iSCSI/FC)
●IBM Storwize SVC (iSCSI/FC)
●Infinidat Infinibox (FC)
●Inspur (iSCSI)
●Kaminario (iSCSI)
●Lenovo (iSCSI/FC)
●LVM (iSCSI) – Reference*
●NEC M-Series (FC/iSCSI)
●NetApp C-Mode (iSCSI/FC/NFS)
●NetApp ONTAP (iSCSI/NFS/FC)
●Nexenta (iSCSI/NFS)
●Nexenta Edge (iSCSI/NBD)
●NFS – Reference
●Nimble Storage (iSCSI/FC)
●ProphetStor (iSCSI/FC)
●Pure Storage (iSCSI/FC)
●Qnap (iSCSI)
●Quobyte (quobyte)
●RBD (Ceph) - Reference
●Sheepdog (sheepdog)
●SolidFire (iSCSI)
●Storpool (storpool)
●Synology (iSCSI)
●Tintri (NFS)
●Veritas CNFS (NFS)
●Veritas HyperScale
●Virtuozzo Storage (NFS)
●VMWare (VMDK)
●Windows (SMB)
●Zadara (iSCSI)
●ZFS (iSCSI/NFS)
Backend Drivers
Note: Supported drivers list. Full list may be seen here: https://docs.openstack.org/developer/cinder/drivers.html
8
Volume Attachment
LVM
Nova
VM instance
/dev/vda
KVM
iSCSI
initiator
Cinder
iSCSI
target
Note that iSCSI is just
an example – several
additional protocols are
supported
(e.g., FC, NFS)
Legend
Persistent volume control
Persistent volume data
9
Cinder’s Team
● PTL
○ Jay Bryant (jungleboyj)
● Core Team
○ Sean McGinnis (smcginnis)
○ Walt Boring (hemna)
○ TommyLike Hu
○ Gorka Eguileor (geguileo)
○ John Griffith (jgriffith)
○ Eric Harney (eharney)
○ Ivan Kolodyazhny (e0ne)
○ Xing Yang (Xyang)
10
Upstream Institute
● https://docs.openstack.org/upstream-training/
● Day and a half education session to help people new to
OpenStack
● Lead by OpenStack Foundation members and
volunteers
● Miss the Berlin session … No problem, join us in Denver!
11
Upstream Institute - Key Info
● VM image to get your development started
● OpenStack account setup
○ https://docs.openstack.org/upstream-training/workflow-reg-and-
accounts.html
● Launchpad/Storyboard introduction
○ https://docs.openstack.org/upstream-training/workflow-task-
tracking.html
● Workflow introduction
○ https://docs.openstack.org/upstream-training/workflow-training-
contribution-process.html
● Introduction to gerrit and code reviews
○ https://docs.openstack.org/upstream-training/workflow-gerrit.html
○ https://docs.openstack.org/upstream-training/workflow-reviewing.html
12
Cinder in OpenStack’s Processes
13
Cinder Bugs and Blueprints
● Still currently using Launchpad
● https://launchpad.net/cinder
14
Bug Tags
● low-hanging-fruit
● doc
● i18n
● security
● ops
● <SERIES>-rc-potential
● <SERIES>-backport-potential
● driver/drivers
● gate-failure
● ceph
● cinder
● backup-service
● create-volume-from-snapshot
15
Cinder Specs
● https://github.com/openstack/cinder-specs
● We request specs for more complicated changes
● Organized by release (specs/<release>)
● Template from which to start: specs/template.rst
● Before pushing your spec run ‘tox -e docs,py27,pep8’
○ Look for any errors and please correct before pushing
for review
16
IRC and Cinder Meetings
● #openstack-cinder
○ Please join us for all things Cinder
○ Try @? for some (╯°□°)╯︵ ┻━┻ fun
● Weekly Meeting
○ Wednesdays at 16:00 UTC
○ #openstack-meeting
○ https://wiki.openstack.org/wiki/CinderMeetings
○ Add agenda items with your IRC nickname to the
meeting agenda/notes etherpad
17
Typical Development Cycle
● Stein release schedule
○ https://releases.openstack.org/stein/schedule.html
● Milestone 2
○ Spec freeze
○ New driver merge deadline
● Milestone 3
○ New feature freeze
○ Move focus to testing and bug fixes
○ Need 3rd party CI’s functional to avoid addition of unsupported flag
● RC
○ Bug fixes only
● Some flexibility around dates allowed with core team and PTL’s discretion
18
3rd Party CI
● 3rd Party CI is required for all Cinder drivers
○ https://wiki.openstack.org/wiki/Cinder/tested-3rdParty-drivers
● Purpose
○ To ensure that a vendor’s driver functions properly as changes merge to
the Cinder tree
○ To show that patches against a vendor’s driver work
● Policy (Proposed)
○ 3rd Party CI must run successfully against a weekly job executed to test
that CI’s are reporting
○ 3rd Party CI must fail a job submitted that should fail all 3rd Party CI
testing.
○ A vendor CI that doesn’t meet these requirements during a release
cycle is marked ‘Unsupported’ and consumers have to update their
configs to indicate they wish to run an unsupported driver
○ Continued non-compliance results in driver removal in the next release.
19
3rd Party CI - Review Implications
● If a patch fails all CI’s, something is
wrong
● Patches against a driver must pass
the vendor’s CI before being
merged
20
About Reviews
● We need your help!
● Good way to get involved with Cinder
○ Learn the code and the project organization
○ Don’t need to know how Cinder works to catch logic errors and typos
● Gets you visibility to the Cinder team
● Review inboxes:
○ Cinder review inbox
○ os-brick review inbox
○ python-brick-cinderclient-ex review inbox
● Track how we are doing:
○ http://cinderstats.ivehearditbothways.com/
21
Cinder Code Layout - Top Level
● api-ref -- Source documentation for v1,2 and 3 Cinder API
● cinder -- Cinder’s source directory with high level implementations at the top
level (i.e. exceptions, i18n, policy, utils, etc.)
● doc -- Developer documentation that is published to the OpenStack website
● etc -- Config files that are not automatically generated
● rally-jobs -- Rally tasks and plugins to be run by OpenStack CI
● releasenotes -- Contains release notes for patches
● tools -- Config generation script, driver list generation, etc.
22
Cinder Code Layout - /cinder
● api -- v1, 2, 3 and API extension implementation
● backup -- Backup driver API and implementations
● brick -- Legacy brick directory, mostly migrated to os-brick library
● cmd -- Starter scripts for Cinder’s processes (api, scheduler, volume, etc.)
● common -- Shared files for config, sqlalchemy, etc.
● compute -- Source for interfacing with Nova
● config -- Source files for config file generator
● consistencygroup -- Consistency Group API implementation
● db -- sqlalchemy migration scripts and DB API implementation
23
Cinder Code Layout - /cinder (cont.)
● group -- Generic Group API implementation
● hacking -- Hacking check implementation
● image -- Source for interfacing with Glance
● interface -- Base interface definition for driver validation and reference
● keymgr -- Simple security key implementation
● locale -- Translation files for log messages
● message -- User message API implementation
● objects -- Implementation of Cinder’s Oslo Versioned Objects
● scheduler -- Scheduling option implementations
● tests -- Compliance, functional, tempest and unit test implementation
● transfer -- API implementation of volume transfer
● volume -- Implementation of API and drivers for volumes
● wsgi -- Cinder Web Server Gateway Interface implementation
● zonemanager -- Fibre Channel Zonemanager implementation
24
Release Notes
● Developer’s way to communicate to the end user
● Most important for changes that impact Cinder’s functionality
● Documents:
○ Security issue fixes,
○ New features
○ Upgrade notes
○ Known issues
○ Deprecation notes
● Not required for every change, but important for anything that directly
impacts packagers or users
25
Tox Tests
● Tox is a test runner used by most OpenStack projects
● Many of the same test targets, but a few specific to Cinder
● Before submitting a patch, best to at least run py27 and pep8 targets
(tox -e py27,fast8)
py27, py35 Runs unit tests using either Python 2.7 or 3.5
genopts Must be run when adding any new config options to regenerate opts.py file
used to create the sample config
pep8, fast8 Runs code checks to make sure it conforms to coding style and hacking
checks to look for specific conditions
releasenotes Validates new release notes (must commit first!)
compliance Useful for driver developers, will validate all required driver interfaces are
implemented
Q & A
Twitter & IRC: JungleboyJ
E-mail: jsbryant@electronicjungle.net

More Related Content

What's hot

Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European ParliamentJean-Pol Landrain
 
BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience Linaro
 
RDO and Ceph meetup BCN - Testing in RDO
RDO and Ceph meetup BCN - Testing in RDORDO and Ceph meetup BCN - Testing in RDO
RDO and Ceph meetup BCN - Testing in RDOAlfredo Moralejo
 
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Anne Nicolas
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...NETWAYS
 
Manage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approachManage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approachinovex GmbH
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development KitLalatendu Mohanty
 
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingLinaro
 
R, Git, Github, and CI
R, Git, Github, and CIR, Git, Github, and CI
R, Git, Github, and CIWush Wu
 
Crash course in git and github
Crash course in git and githubCrash course in git and github
Crash course in git and githubMithun Shanbhag
 
Sprint 134
Sprint 134Sprint 134
Sprint 134ManageIQ
 
QtDD13 - Qt Creator plugins - Tobias Hunger
QtDD13 - Qt Creator plugins - Tobias Hunger QtDD13 - Qt Creator plugins - Tobias Hunger
QtDD13 - Qt Creator plugins - Tobias Hunger Robert-Emmanuel Mayssat
 
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsRajith Bhanuka Mahanama
 
Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02Linaro
 
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)Igalia
 

What's hot (20)

Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European Parliament
 
BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience
 
RDO and Ceph meetup BCN - Testing in RDO
RDO and Ceph meetup BCN - Testing in RDORDO and Ceph meetup BCN - Testing in RDO
RDO and Ceph meetup BCN - Testing in RDO
 
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
Embedded recipes 2018 - End-to-end software production for embedded - Guy Lun...
 
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
OSDC 2016 - rkt and Kubernentes what's new with Container Runtimes and Orches...
 
Manage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approachManage your bare-metal infrastructure with a CI/CD-driven approach
Manage your bare-metal infrastructure with a CI/CD-driven approach
 
Introduction to IoT.JS
Introduction to IoT.JSIntroduction to IoT.JS
Introduction to IoT.JS
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development Kit
 
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
CodiLime Tech Talk - Dawid Trzebiatowski i Wojciech Urbański: Opening the Flo...
 
BKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testingBKK16-215 kernelci.org: beyond boot testing
BKK16-215 kernelci.org: beyond boot testing
 
Paris.py
Paris.pyParis.py
Paris.py
 
R, Git, Github, and CI
R, Git, Github, and CIR, Git, Github, and CI
R, Git, Github, and CI
 
Crash course in git and github
Crash course in git and githubCrash course in git and github
Crash course in git and github
 
kpatch.kgraft
kpatch.kgraftkpatch.kgraft
kpatch.kgraft
 
Sprint 134
Sprint 134Sprint 134
Sprint 134
 
QtDD13 - Qt Creator plugins - Tobias Hunger
QtDD13 - Qt Creator plugins - Tobias Hunger QtDD13 - Qt Creator plugins - Tobias Hunger
QtDD13 - Qt Creator plugins - Tobias Hunger
 
Introduction to IoT.JS
Introduction to IoT.JSIntroduction to IoT.JS
Introduction to IoT.JS
 
Default GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOpsDefault GitLab CI Pipeline - Auto DevOps
Default GitLab CI Pipeline - Auto DevOps
 
Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02
 
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)
ARB_gl_spirv: bringing SPIR-V to Mesa OpenGL (FOSDEM 2018)
 

Similar to Cinder On-boarding Room - Berlin (11-13-2018)

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
 
OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020Brian Rosmaita
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fastDenis Karpenko
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Giovanni Toraldo
 
Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Docker, Inc.
 
Cinder project update denver summit 2019
Cinder project update   denver summit 2019Cinder project update   denver summit 2019
Cinder project update denver summit 2019Jay Bryant
 
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
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205Linaro
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Programaspyker
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixAll Things Open
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For OperatorsKevin Brockhoff
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentationDrew Hannay
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsLuca Mazzaferro
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers WorkshopJody Garnett
 
Using Docker Platform to Provide Services
Using Docker Platform to Provide ServicesUsing Docker Platform to Provide Services
Using Docker Platform to Provide ServicesGLC Networks
 
OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019Brian Rosmaita
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development PipelineGlobalLogic Ukraine
 
Monitoring hybrid container environments
Monitoring hybrid container environments Monitoring hybrid container environments
Monitoring hybrid container environments Samuel Vandamme
 
Python Linters at Scale.pdf
Python Linters at Scale.pdfPython Linters at Scale.pdf
Python Linters at Scale.pdfJimmy Lai
 

Similar to Cinder On-boarding Room - Berlin (11-13-2018) (20)

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
 
OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)Continuous Delivery: 5 years later (Incontro DevOps 2018)
Continuous Delivery: 5 years later (Incontro DevOps 2018)
 
Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)Kubernetes CRI containerd integration by Lantao Liu (Google)
Kubernetes CRI containerd integration by Lantao Liu (Google)
 
Cinder project update denver summit 2019
Cinder project update   denver summit 2019Cinder project update   denver summit 2019
Cinder project update denver summit 2019
 
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
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
Netflix Open Source: Building a Distributed and Automated Open Source Program
Netflix Open Source:  Building a Distributed and Automated Open Source ProgramNetflix Open Source:  Building a Distributed and Automated Open Source Program
Netflix Open Source: Building a Distributed and Automated Open Source Program
 
Building a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at NetflixBuilding a Distributed & Automated Open Source Program at Netflix
Building a Distributed & Automated Open Source Program at Netflix
 
Promise of DevOps
Promise of DevOpsPromise of DevOps
Promise of DevOps
 
OpenTelemetry For Operators
OpenTelemetry For OperatorsOpenTelemetry For Operators
OpenTelemetry For Operators
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
Integrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperationsIntegrating Puppet and Gitolite for sysadmins cooperations
Integrating Puppet and Gitolite for sysadmins cooperations
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
Using Docker Platform to Provide Services
Using Docker Platform to Provide ServicesUsing Docker Platform to Provide Services
Using Docker Platform to Provide Services
 
OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019
 
Modern Web-site Development Pipeline
Modern Web-site Development PipelineModern Web-site Development Pipeline
Modern Web-site Development Pipeline
 
Monitoring hybrid container environments
Monitoring hybrid container environments Monitoring hybrid container environments
Monitoring hybrid container environments
 
Python Linters at Scale.pdf
Python Linters at Scale.pdfPython Linters at Scale.pdf
Python Linters at Scale.pdf
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
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 pragmaticscarlostorres15106
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
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
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
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
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

Cinder On-boarding Room - Berlin (11-13-2018)

  • 1. 1
  • 2. Cinder On-Boarding Education Jay Bryant (Lenovo) November 13, 2018 - Berlin
  • 3. 3 ● Cinder’s Repos ● Brief overview of Cinder architecture/organization ● Cinder’s team ● Pointers to Upstream Institute education ● Applying OpenStack Process ● Cinder’s code ● Testing changes to Cinder Agenda
  • 4. 4 Cinder Repos ● Main Cinder repository: ○ https://github.com/openstack/cinder ● Cinderclient: ○ https://github.com/openstack/python-cinderclient ● os-brick shared library: ○ https://github.com/openstack/os-brick ● Brick Cinderclient for Standalone Cinder ○ https://github.com/openstack/python-brick-cinderclient-ext ● Cinder Specs: ○ https://github.com/openstack/cinder-specs
  • 5. 5 ● Provides persistent block storage resources for an OpenStack cloud. ● Supports multiple back- ends. Approximately 70 volume drivers in tree. Cinder Overview
  • 6. 6 Vendor Backends ● Drivers from many different vendors ● Different protocols used depending on the driver ○ iSCSI ○ Fibre Channel ○ RBD ○ RemoteFS ○ Etc.
  • 7. 7 ●CoprHD (FC, iSCSI, scaleio) ●Datacore (FC, iSCSI) ●Datera (iSCSI) ●Dell/EMC PS Series (iSCSI) ●Dell/EMC ScaleIO (scaleio) ●Dell/EMC UnityDriver (FC, iSCSI) ●Dell/EMC VMAX (FC, iSCSI) ●Dell/EMC VNX (iSCSI/FC) ●Dell/EMC XtremIO (iSCSI/FC) ●Disco (disco) ●DRBD (DRBD/iSCSI) ●Fujitsu ETERNUS (iSCSI/FC) ●HGST (NFS) ●HPE 3PAR (iSCSI/FC) ●HPE LeftHand (iSCSI) ●HPE MSA (iSCSI/FC) ●Huawei (iSCSI/FC) ●Huawei FusionStorage DSWare (iSCSI) ●IBM Flashsystem (iSCSI/FC) ●IBM GPFS (GPFS/NFS) ●IBM Storage (iSCSI/FC) ●IBM Storwize SVC (iSCSI/FC) ●Infinidat Infinibox (FC) ●Inspur (iSCSI) ●Kaminario (iSCSI) ●Lenovo (iSCSI/FC) ●LVM (iSCSI) – Reference* ●NEC M-Series (FC/iSCSI) ●NetApp C-Mode (iSCSI/FC/NFS) ●NetApp ONTAP (iSCSI/NFS/FC) ●Nexenta (iSCSI/NFS) ●Nexenta Edge (iSCSI/NBD) ●NFS – Reference ●Nimble Storage (iSCSI/FC) ●ProphetStor (iSCSI/FC) ●Pure Storage (iSCSI/FC) ●Qnap (iSCSI) ●Quobyte (quobyte) ●RBD (Ceph) - Reference ●Sheepdog (sheepdog) ●SolidFire (iSCSI) ●Storpool (storpool) ●Synology (iSCSI) ●Tintri (NFS) ●Veritas CNFS (NFS) ●Veritas HyperScale ●Virtuozzo Storage (NFS) ●VMWare (VMDK) ●Windows (SMB) ●Zadara (iSCSI) ●ZFS (iSCSI/NFS) Backend Drivers Note: Supported drivers list. Full list may be seen here: https://docs.openstack.org/developer/cinder/drivers.html
  • 8. 8 Volume Attachment LVM Nova VM instance /dev/vda KVM iSCSI initiator Cinder iSCSI target Note that iSCSI is just an example – several additional protocols are supported (e.g., FC, NFS) Legend Persistent volume control Persistent volume data
  • 9. 9 Cinder’s Team ● PTL ○ Jay Bryant (jungleboyj) ● Core Team ○ Sean McGinnis (smcginnis) ○ Walt Boring (hemna) ○ TommyLike Hu ○ Gorka Eguileor (geguileo) ○ John Griffith (jgriffith) ○ Eric Harney (eharney) ○ Ivan Kolodyazhny (e0ne) ○ Xing Yang (Xyang)
  • 10. 10 Upstream Institute ● https://docs.openstack.org/upstream-training/ ● Day and a half education session to help people new to OpenStack ● Lead by OpenStack Foundation members and volunteers ● Miss the Berlin session … No problem, join us in Denver!
  • 11. 11 Upstream Institute - Key Info ● VM image to get your development started ● OpenStack account setup ○ https://docs.openstack.org/upstream-training/workflow-reg-and- accounts.html ● Launchpad/Storyboard introduction ○ https://docs.openstack.org/upstream-training/workflow-task- tracking.html ● Workflow introduction ○ https://docs.openstack.org/upstream-training/workflow-training- contribution-process.html ● Introduction to gerrit and code reviews ○ https://docs.openstack.org/upstream-training/workflow-gerrit.html ○ https://docs.openstack.org/upstream-training/workflow-reviewing.html
  • 13. 13 Cinder Bugs and Blueprints ● Still currently using Launchpad ● https://launchpad.net/cinder
  • 14. 14 Bug Tags ● low-hanging-fruit ● doc ● i18n ● security ● ops ● <SERIES>-rc-potential ● <SERIES>-backport-potential ● driver/drivers ● gate-failure ● ceph ● cinder ● backup-service ● create-volume-from-snapshot
  • 15. 15 Cinder Specs ● https://github.com/openstack/cinder-specs ● We request specs for more complicated changes ● Organized by release (specs/<release>) ● Template from which to start: specs/template.rst ● Before pushing your spec run ‘tox -e docs,py27,pep8’ ○ Look for any errors and please correct before pushing for review
  • 16. 16 IRC and Cinder Meetings ● #openstack-cinder ○ Please join us for all things Cinder ○ Try @? for some (╯°□°)╯︵ ┻━┻ fun ● Weekly Meeting ○ Wednesdays at 16:00 UTC ○ #openstack-meeting ○ https://wiki.openstack.org/wiki/CinderMeetings ○ Add agenda items with your IRC nickname to the meeting agenda/notes etherpad
  • 17. 17 Typical Development Cycle ● Stein release schedule ○ https://releases.openstack.org/stein/schedule.html ● Milestone 2 ○ Spec freeze ○ New driver merge deadline ● Milestone 3 ○ New feature freeze ○ Move focus to testing and bug fixes ○ Need 3rd party CI’s functional to avoid addition of unsupported flag ● RC ○ Bug fixes only ● Some flexibility around dates allowed with core team and PTL’s discretion
  • 18. 18 3rd Party CI ● 3rd Party CI is required for all Cinder drivers ○ https://wiki.openstack.org/wiki/Cinder/tested-3rdParty-drivers ● Purpose ○ To ensure that a vendor’s driver functions properly as changes merge to the Cinder tree ○ To show that patches against a vendor’s driver work ● Policy (Proposed) ○ 3rd Party CI must run successfully against a weekly job executed to test that CI’s are reporting ○ 3rd Party CI must fail a job submitted that should fail all 3rd Party CI testing. ○ A vendor CI that doesn’t meet these requirements during a release cycle is marked ‘Unsupported’ and consumers have to update their configs to indicate they wish to run an unsupported driver ○ Continued non-compliance results in driver removal in the next release.
  • 19. 19 3rd Party CI - Review Implications ● If a patch fails all CI’s, something is wrong ● Patches against a driver must pass the vendor’s CI before being merged
  • 20. 20 About Reviews ● We need your help! ● Good way to get involved with Cinder ○ Learn the code and the project organization ○ Don’t need to know how Cinder works to catch logic errors and typos ● Gets you visibility to the Cinder team ● Review inboxes: ○ Cinder review inbox ○ os-brick review inbox ○ python-brick-cinderclient-ex review inbox ● Track how we are doing: ○ http://cinderstats.ivehearditbothways.com/
  • 21. 21 Cinder Code Layout - Top Level ● api-ref -- Source documentation for v1,2 and 3 Cinder API ● cinder -- Cinder’s source directory with high level implementations at the top level (i.e. exceptions, i18n, policy, utils, etc.) ● doc -- Developer documentation that is published to the OpenStack website ● etc -- Config files that are not automatically generated ● rally-jobs -- Rally tasks and plugins to be run by OpenStack CI ● releasenotes -- Contains release notes for patches ● tools -- Config generation script, driver list generation, etc.
  • 22. 22 Cinder Code Layout - /cinder ● api -- v1, 2, 3 and API extension implementation ● backup -- Backup driver API and implementations ● brick -- Legacy brick directory, mostly migrated to os-brick library ● cmd -- Starter scripts for Cinder’s processes (api, scheduler, volume, etc.) ● common -- Shared files for config, sqlalchemy, etc. ● compute -- Source for interfacing with Nova ● config -- Source files for config file generator ● consistencygroup -- Consistency Group API implementation ● db -- sqlalchemy migration scripts and DB API implementation
  • 23. 23 Cinder Code Layout - /cinder (cont.) ● group -- Generic Group API implementation ● hacking -- Hacking check implementation ● image -- Source for interfacing with Glance ● interface -- Base interface definition for driver validation and reference ● keymgr -- Simple security key implementation ● locale -- Translation files for log messages ● message -- User message API implementation ● objects -- Implementation of Cinder’s Oslo Versioned Objects ● scheduler -- Scheduling option implementations ● tests -- Compliance, functional, tempest and unit test implementation ● transfer -- API implementation of volume transfer ● volume -- Implementation of API and drivers for volumes ● wsgi -- Cinder Web Server Gateway Interface implementation ● zonemanager -- Fibre Channel Zonemanager implementation
  • 24. 24 Release Notes ● Developer’s way to communicate to the end user ● Most important for changes that impact Cinder’s functionality ● Documents: ○ Security issue fixes, ○ New features ○ Upgrade notes ○ Known issues ○ Deprecation notes ● Not required for every change, but important for anything that directly impacts packagers or users
  • 25. 25 Tox Tests ● Tox is a test runner used by most OpenStack projects ● Many of the same test targets, but a few specific to Cinder ● Before submitting a patch, best to at least run py27 and pep8 targets (tox -e py27,fast8) py27, py35 Runs unit tests using either Python 2.7 or 3.5 genopts Must be run when adding any new config options to regenerate opts.py file used to create the sample config pep8, fast8 Runs code checks to make sure it conforms to coding style and hacking checks to look for specific conditions releasenotes Validates new release notes (must commit first!) compliance Useful for driver developers, will validate all required driver interfaces are implemented
  • 26. Q & A Twitter & IRC: JungleboyJ E-mail: jsbryant@electronicjungle.net