SlideShare une entreprise Scribd logo
1  sur  27
1
Cinder On-Boarding Education
Jay Bryant (Lenovo)
April 30, 2019 - Denver
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
● cinderlib
○ https://github.com/openstack/cinderlib
● Cinder Specs:
○ https://github.com/openstack/cinder-specs
5
● Provides persistent
block storage
resources for an
OpenStack cloud.
● Supports multiple back-
ends. Approximately 60
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
●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)
●DRBD (DRBD/iSCSI)
●Fujitsu ETERNUS (iSCSI/FC)
●Hedvig (iSCSI)
●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)
●Inspur AS13000 (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)
●Storage Performance Developer Kit
(SPDK) (NVMe-oF)
●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/cinder/latest/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 (tommylikehu)
○ Gorka Eguileor (geguileo)
○ John Griffith (jgriffith)
○ Eric Harney (eharney)
○ Ivan Kolodyazhny (e0ne)
○ Xing Yang (Xyang)
○ Brian Rosmaita (rosmaita)
○ Yikun Jiang (yikunkero)
○ Rajat Dhasmana (whoami-rajat)
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 Denver session … No problem, join us in
Shanghai!
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
○ (not working on Cinder but in openstack-meeting 
● 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
Upgrade Checks
● Helps operators to ensure that their cloud is compatible with the upgrade
● Changes that may impact an upgrade should include a check
○ Option removal
○ Driver removal
○ Database changes
○ Etc.
● Not required for every change, but good for catching those cases where one
might worry ‘what if the environment were set up this way?’
26
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

Contenu connexe

Tendances

Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)
Fred Lin
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overview
Linaro
 

Tendances (20)

LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
LCE13: Test and Validation Summit: Evolution of Testing in Linaro (I)
 
OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020OpenStack Cinder - Victoria Release Update - 2020
OpenStack Cinder - Victoria Release Update - 2020
 
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
Kernel Recipes 2018 - A year of fixing Coverity issues all over the Linux ker...
 
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...
 
Crash course in git and github
Crash course in git and githubCrash course in git and github
Crash course in git and github
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02Upstreaming 101 - SFO17-TR02
Upstreaming 101 - SFO17-TR02
 
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usageSFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
SFO15-203: Linaro CI - git driven workflow & Jenkins advanced usage
 
BKK16-307 LHG OE Initiative
BKK16-307 LHG OE InitiativeBKK16-307 LHG OE Initiative
BKK16-307 LHG OE Initiative
 
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
 
Kernel Recipes 2016 - Control Group Status Update
Kernel Recipes 2016 -  Control Group Status UpdateKernel Recipes 2016 -  Control Group Status Update
Kernel Recipes 2016 - Control Group Status Update
 
Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)Introduction of Distributed version control system (mainly Mercurial)
Introduction of Distributed version control system (mainly Mercurial)
 
oSSN19 - openSUSE on ARM
oSSN19 - openSUSE on ARMoSSN19 - openSUSE on ARM
oSSN19 - openSUSE on ARM
 
Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
 
OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019OpenStack Cinder Project Update - Shanghai 2019
OpenStack Cinder Project Update - Shanghai 2019
 
HKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overviewHKG15-300: Art's Quick Compiler: An unofficial overview
HKG15-300: Art's Quick Compiler: An unofficial overview
 
Sprint 134
Sprint 134Sprint 134
Sprint 134
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
Qt 5 - C++ and Widgets
Qt 5 - C++ and WidgetsQt 5 - C++ and Widgets
Qt 5 - C++ and Widgets
 

Similaire à Cinder Project On-Boarding - OpenInfra Summit Denver 2019

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
 

Similaire à Cinder Project On-Boarding - OpenInfra Summit Denver 2019 (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
 
Cinder project update denver summit 2019
Cinder project update   denver summit 2019Cinder project update   denver summit 2019
Cinder project update denver summit 2019
 
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)
 
LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205LMG Lightning Talks - SFO17-205
LMG Lightning Talks - SFO17-205
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
GeoServer Developers Workshop
GeoServer Developers WorkshopGeoServer Developers Workshop
GeoServer Developers Workshop
 
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
 
Devoxx : being productive with JHipster
Devoxx : being productive with JHipsterDevoxx : being productive with JHipster
Devoxx : being productive with JHipster
 
Paris.py
Paris.pyParis.py
Paris.py
 
Expedia 3x3 presentation
Expedia 3x3 presentationExpedia 3x3 presentation
Expedia 3x3 presentation
 
LCU14 303- Toolchain Collaboration
LCU14 303- Toolchain CollaborationLCU14 303- Toolchain Collaboration
LCU14 303- Toolchain Collaboration
 
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)
 
Using Docker Platform to Provide Services
Using Docker Platform to Provide ServicesUsing Docker Platform to Provide Services
Using Docker Platform to Provide Services
 
Releaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy processReleaseflow: a healthy build and deploy process
Releaseflow: a healthy build and deploy process
 
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
 
The 10 Commandments of Release Engineering
The 10 Commandments of Release EngineeringThe 10 Commandments of Release Engineering
The 10 Commandments of Release Engineering
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
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
 
Intro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps WorkshopIntro to Kubernetes & GitOps Workshop
Intro to Kubernetes & GitOps Workshop
 

Dernier

Dernier (20)

Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 

Cinder Project On-Boarding - OpenInfra Summit Denver 2019

  • 1. 1
  • 2. Cinder On-Boarding Education Jay Bryant (Lenovo) April 30, 2019 - Denver
  • 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 ● cinderlib ○ https://github.com/openstack/cinderlib ● Cinder Specs: ○ https://github.com/openstack/cinder-specs
  • 5. 5 ● Provides persistent block storage resources for an OpenStack cloud. ● Supports multiple back- ends. Approximately 60 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 ●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) ●DRBD (DRBD/iSCSI) ●Fujitsu ETERNUS (iSCSI/FC) ●Hedvig (iSCSI) ●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) ●Inspur AS13000 (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) ●Storage Performance Developer Kit (SPDK) (NVMe-oF) ●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/cinder/latest/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 (tommylikehu) ○ Gorka Eguileor (geguileo) ○ John Griffith (jgriffith) ○ Eric Harney (eharney) ○ Ivan Kolodyazhny (e0ne) ○ Xing Yang (Xyang) ○ Brian Rosmaita (rosmaita) ○ Yikun Jiang (yikunkero) ○ Rajat Dhasmana (whoami-rajat)
  • 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 Denver session … No problem, join us in Shanghai!
  • 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 ○ (not working on Cinder but in openstack-meeting  ● 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 Upgrade Checks ● Helps operators to ensure that their cloud is compatible with the upgrade ● Changes that may impact an upgrade should include a check ○ Option removal ○ Driver removal ○ Database changes ○ Etc. ● Not required for every change, but good for catching those cases where one might worry ‘what if the environment were set up this way?’
  • 26. 26 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
  • 27. Q & A Twitter & IRC: JungleboyJ E-mail: jsbryant@electronicjungle.net