SlideShare a Scribd company logo
1 of 22
Download to read offline
MY WORK THUS FARMY WORK THUS FAR
A SUMMER INTERNSHIP STORYA SUMMER INTERNSHIP STORY
Alex Campbell
AGENDAAGENDA
THE PATH I'VE TAKENTHE PATH I'VE TAKEN
SWIF T ON FILESWIF T ON FILE
LIBGFAPI VS FUSELIBGFAPI VS FUSE
LESSONS LEARNEDLESSONS LEARNED
WRAPPING UPWRAPPING UP
THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
Automation and Dev Ops
SWIFT ON FILESWIFT ON FILE
LIBGFAPILIBGFAPI
THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
Automation and Dev Ops
REVISITED!
THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
Blogging to learn
THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
++
"Making your node.js app robust using nginx"
SWIFT ON FILESWIFT ON FILE
LIBGFAPILIBGFAPI
A L R I G H T, L E T ' S G E T I N TO T H EA L R I G H T, L E T ' S G E T I N TO T H E
ENGIN EERING..ENGIN EERING..
SWIFT-ON-FILESWIFT-ON-FILE
Object-server implementation that allows data to
be accessed as both an object (REST) and a file.
SWIFT-ON-FILESWIFT-ON-FILE
H D F S P L U G I NH D F S P L U G I N S W I F TS W I F T
DATADATAPROCESSINGPROCESSING
Implemented as storage policy!
SWIFT-ON-FILESWIFT-ON-FILE
H D F S P L U G I NH D F S P L U G I N S W I F TS W I F T
DATADATAPROCESSINGPROCESSING
Decreased run time
MapReduce directly on Files
No waiting for data
Less copying of data
SOF BENEFITSSOF BENEFITS
-----------------------------------------------------------------------------------------
IT COULD BE BETTER...IT COULD BE BETTER...
FUSEFUSE LIBGFAPILIBGFAPI
User-space
Kernel-space
APP APP
LIBGFAPI
Network
Kernel VFS /dev/fuse
GlusterFS
FUSE library
Network
CLIENT NODECLIENT NODE
WHAT IS LIBGFAPI?WHAT IS LIBGFAPI?
LIBGFAPI VS FUSE:LIBGFAPI VS FUSE:
THE BENEFITSTHE BENEFITS
Less copying (buffer passing)
-----------------------------------------------------------------------------------------
User-space
Kernel-space
APP APP
LIBGFAPI
Network
Kernel VFS /dev/fuse
GlusterFS
FUSE library
Network
CLIENT NODECLIENT NODE 1 Buffer Throughout
LIBGFAPILIBGFAPIFUSEFUSE
> 1 Buffer Throughout
-----------------------------------------------------------------------------------------
User-space
Kernel-space
APP APP
LIBGFAPI
Network
Kernel VFS /dev/fuse
GlusterFS
FUSE library
Network
CLIENT NODECLIENT NODE
LIBGFAPI VS FUSE:LIBGFAPI VS FUSE:
THE BENEFITS CONT.THE BENEFITS CONT.
Four less context switches
1
2
3
4
LIBGFAPILIBGFAPIFUSEFUSE
---------------------------------------------------------------------
User-space
Kernel-space
APP 2
LIBGFAPI
Network
CLIENT NODECLIENT NODE
LIBGFAPI VS FUSE:LIBGFAPI VS FUSE:
THE BENEFITS CONT.THE BENEFITS CONT.
Asynchronous reads and writes
Parallelization?
APP 3
LIBGFAPI
APP 1
LIBGFAPI
Network Network
LIBGFAPI VS FUSE:LIBGFAPI VS FUSE:
THE DRAWBACKSTHE DRAWBACKS
---------------------------------------------------------------------
User-space
Kernel-space
APP 2
LIBGFAPI
Network
APP 3
LIBGFAPI
APP 1
LIBGFAPI
Network Network
Memory for inodes needed for every app (duplicate
information). ​
May make bulk writes perform worse?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
APPS DO NOT SHARE CONTEXT
Cannot share cache or inodes..
Could create security holes
Encryption as a remedy?
Networking magic?
LIBGFAPI VS FUSE:LIBGFAPI VS FUSE:
THE DRAWBACKS CONTTHE DRAWBACKS CONT
$ gluster volume set <VOL_NAME> allow-insecure on
volume management
type mgmt/glusterd
option working-directory /var/lib/glusterd
option transport-type socket,rdma
option transport.socket.keepalive-time 10
option transport.socket.keepalive-interval 2
option transport.socket.read-fail-log off
option rpc-auth-allow-insecure on
end-volume
Allow client connections from
unprivileged ports (below 1024)
Set gluster volume to allow insecure ports
I S I T W O R T H I T ?I S I T W O R T H I T ?
I think so, but I don't know yet...
Performance testing
How much faster?
Probably...
To gluster, swift is just
another app
We'll just have to try it and
find out.
W I L L L I B G FA P I P L AY N I C E LYW I L L L I B G FA P I P L AY N I C E LY
W I T H S W I F T/ S O F ?W I T H S W I F T/ S O F ?
L E S S O N S L E A R N E D :L E S S O N S L E A R N E D :
CONTRIBUTIONCONTRIBUTION
$ JOURNALCTL -R$ JOURNALCTL -R
A N D I ' V E L E A R N E D . . .A N D I ' V E L E A R N E D . . .
Finding bugs is contributing
I've been doing a whole lot of this:
L E S S O N S L E A R N E D :L E S S O N S L E A R N E D :
KNOWLEDGEKNOWLEDGE
TO LOOK BEFORE YOU LEAP.TO LOOK BEFORE YOU LEAP.
I've spent too many hours breaking things
A N D I ' V E L E A R N E D . . .A N D I ' V E L E A R N E D . . .
SO I'VE BEEN JUMPING AROUNDSO I'VE BEEN JUMPING AROUND
LIBGFAPI Python Bindings Integrating SoF with LIBGFAPI
11 22
33
Learning new
tools and ideas
THANKS!THANKS!

More Related Content

Viewers also liked

आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पता
आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पताआईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पता
आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पताAshish Gupta
 
2010 za con_simeon_miteff
2010 za con_simeon_miteff2010 za con_simeon_miteff
2010 za con_simeon_miteffJohan Klerk
 
Internship Report - Rao Saim Zafar
Internship Report - Rao Saim ZafarInternship Report - Rao Saim Zafar
Internship Report - Rao Saim ZafarRao Saim Zafar
 
Distribution Transformers
Distribution TransformersDistribution Transformers
Distribution TransformersRao Saim Zafar
 

Viewers also liked (10)

RESUME.wps
RESUME.wpsRESUME.wps
RESUME.wps
 
आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पता
आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पताआईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पता
आईसीसी क्रिकेट विश्व कप के कुछ आश्चर्यजनक तथ्य जो आपको शायद नही पता
 
2010 za con_simeon_miteff
2010 za con_simeon_miteff2010 za con_simeon_miteff
2010 za con_simeon_miteff
 
CV T.R.Michael 2015
CV T.R.Michael 2015CV T.R.Michael 2015
CV T.R.Michael 2015
 
CV Febri
CV FebriCV Febri
CV Febri
 
ZT Safety Systems 2015
ZT Safety Systems 2015ZT Safety Systems 2015
ZT Safety Systems 2015
 
Internship Report - Rao Saim Zafar
Internship Report - Rao Saim ZafarInternship Report - Rao Saim Zafar
Internship Report - Rao Saim Zafar
 
Shubham small
Shubham smallShubham small
Shubham small
 
Energy Meters
Energy MetersEnergy Meters
Energy Meters
 
Distribution Transformers
Distribution TransformersDistribution Transformers
Distribution Transformers
 

Similar to redhat_intern

Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroGetting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroFilip Tepper
 
Is persistency on serverless even possible?!
Is persistency on serverless even possible?!Is persistency on serverless even possible?!
Is persistency on serverless even possible?!SecuRing
 
SFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcementSFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcementSouth Tyrol Free Software Conference
 
Testing Adhearsion Applications
Testing Adhearsion ApplicationsTesting Adhearsion Applications
Testing Adhearsion ApplicationsLuca Pradovera
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionJoshua Thijssen
 
Life without CPAN
Life without CPANLife without CPAN
Life without CPANBob Ernst
 
Install openstack
Install openstackInstall openstack
Install openstack어형 이
 
Sinatra Rack And Middleware
Sinatra Rack And MiddlewareSinatra Rack And Middleware
Sinatra Rack And MiddlewareBen Schwarz
 
Tastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierTastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierHarvard Web Working Group
 
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)Ontico
 
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...Codemotion
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolscharsbar
 
Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way
Beyond FTP:  What I’ve Learned from Years of Deploying WordPress the Wrong WayBeyond FTP:  What I’ve Learned from Years of Deploying WordPress the Wrong Way
Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong WayEli Silverman
 
A quick overview of why to use and how to set up iPython notebooks for research
A quick overview of why to use and how to set up iPython notebooks for researchA quick overview of why to use and how to set up iPython notebooks for research
A quick overview of why to use and how to set up iPython notebooks for researchAdam Pah
 
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...Puppet
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsJarek Ratajski
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceQuinlan Jung
 

Similar to redhat_intern (20)

Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroGetting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to hero
 
Is persistency on serverless even possible?!
Is persistency on serverless even possible?!Is persistency on serverless even possible?!
Is persistency on serverless even possible?!
 
SFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcementSFSCON23 - Denver Gingerich - How do you really do GPL enforcement
SFSCON23 - Denver Gingerich - How do you really do GPL enforcement
 
Testing Adhearsion Applications
Testing Adhearsion ApplicationsTesting Adhearsion Applications
Testing Adhearsion Applications
 
Puppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 EditionPuppet for dummies - ZendCon 2011 Edition
Puppet for dummies - ZendCon 2011 Edition
 
Life without CPAN
Life without CPANLife without CPAN
Life without CPAN
 
Install openstack
Install openstackInstall openstack
Install openstack
 
Sinatra Rack And Middleware
Sinatra Rack And MiddlewareSinatra Rack And Middleware
Sinatra Rack And Middleware
 
Tastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work EasierTastypie: Easy APIs to Make Your Work Easier
Tastypie: Easy APIs to Make Your Work Easier
 
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)
Climbing out from the digital mud with unikernels / Ian Eyberg (DeferPanic)
 
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...
José Antonio Ruiz Santiago | JModern processes and workflows orchestration in...
 
CPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its toolsCPANTS: Kwalitative website and its tools
CPANTS: Kwalitative website and its tools
 
Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way
Beyond FTP:  What I’ve Learned from Years of Deploying WordPress the Wrong WayBeyond FTP:  What I’ve Learned from Years of Deploying WordPress the Wrong Way
Beyond FTP: What I’ve Learned from Years of Deploying WordPress the Wrong Way
 
A quick overview of why to use and how to set up iPython notebooks for research
A quick overview of why to use and how to set up iPython notebooks for researchA quick overview of why to use and how to set up iPython notebooks for research
A quick overview of why to use and how to set up iPython notebooks for research
 
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...
ManagingPuppetConf 2017: Multiple Configuration Management Tools- Sally Lehma...
 
Spring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good partsSpring, CDI, Jakarta EE good parts
Spring, CDI, Jakarta EE good parts
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
 
Pimp my Plone
Pimp my PlonePimp my Plone
Pimp my Plone
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
Automate Yo' Self
Automate Yo' SelfAutomate Yo' Self
Automate Yo' Self
 

redhat_intern

  • 1. MY WORK THUS FARMY WORK THUS FAR A SUMMER INTERNSHIP STORYA SUMMER INTERNSHIP STORY Alex Campbell
  • 2. AGENDAAGENDA THE PATH I'VE TAKENTHE PATH I'VE TAKEN SWIF T ON FILESWIF T ON FILE LIBGFAPI VS FUSELIBGFAPI VS FUSE LESSONS LEARNEDLESSONS LEARNED WRAPPING UPWRAPPING UP
  • 3. THE PATH I'VE TAKEN..THE PATH I'VE TAKEN.. Automation and Dev Ops
  • 4. SWIFT ON FILESWIFT ON FILE LIBGFAPILIBGFAPI THE PATH I'VE TAKEN..THE PATH I'VE TAKEN..
  • 5. THE PATH I'VE TAKEN..THE PATH I'VE TAKEN.. Automation and Dev Ops REVISITED!
  • 6. THE PATH I'VE TAKEN..THE PATH I'VE TAKEN.. Blogging to learn
  • 7. THE PATH I'VE TAKEN..THE PATH I'VE TAKEN.. ++ "Making your node.js app robust using nginx"
  • 8. SWIFT ON FILESWIFT ON FILE LIBGFAPILIBGFAPI A L R I G H T, L E T ' S G E T I N TO T H EA L R I G H T, L E T ' S G E T I N TO T H E ENGIN EERING..ENGIN EERING..
  • 9. SWIFT-ON-FILESWIFT-ON-FILE Object-server implementation that allows data to be accessed as both an object (REST) and a file. SWIFT-ON-FILESWIFT-ON-FILE H D F S P L U G I NH D F S P L U G I N S W I F TS W I F T DATADATAPROCESSINGPROCESSING Implemented as storage policy!
  • 10. SWIFT-ON-FILESWIFT-ON-FILE H D F S P L U G I NH D F S P L U G I N S W I F TS W I F T DATADATAPROCESSINGPROCESSING Decreased run time MapReduce directly on Files No waiting for data Less copying of data SOF BENEFITSSOF BENEFITS
  • 11. ----------------------------------------------------------------------------------------- IT COULD BE BETTER...IT COULD BE BETTER... FUSEFUSE LIBGFAPILIBGFAPI User-space Kernel-space APP APP LIBGFAPI Network Kernel VFS /dev/fuse GlusterFS FUSE library Network CLIENT NODECLIENT NODE WHAT IS LIBGFAPI?WHAT IS LIBGFAPI?
  • 12. LIBGFAPI VS FUSE:LIBGFAPI VS FUSE: THE BENEFITSTHE BENEFITS Less copying (buffer passing) ----------------------------------------------------------------------------------------- User-space Kernel-space APP APP LIBGFAPI Network Kernel VFS /dev/fuse GlusterFS FUSE library Network CLIENT NODECLIENT NODE 1 Buffer Throughout LIBGFAPILIBGFAPIFUSEFUSE > 1 Buffer Throughout
  • 13. ----------------------------------------------------------------------------------------- User-space Kernel-space APP APP LIBGFAPI Network Kernel VFS /dev/fuse GlusterFS FUSE library Network CLIENT NODECLIENT NODE LIBGFAPI VS FUSE:LIBGFAPI VS FUSE: THE BENEFITS CONT.THE BENEFITS CONT. Four less context switches 1 2 3 4 LIBGFAPILIBGFAPIFUSEFUSE
  • 14. --------------------------------------------------------------------- User-space Kernel-space APP 2 LIBGFAPI Network CLIENT NODECLIENT NODE LIBGFAPI VS FUSE:LIBGFAPI VS FUSE: THE BENEFITS CONT.THE BENEFITS CONT. Asynchronous reads and writes Parallelization? APP 3 LIBGFAPI APP 1 LIBGFAPI Network Network
  • 15. LIBGFAPI VS FUSE:LIBGFAPI VS FUSE: THE DRAWBACKSTHE DRAWBACKS --------------------------------------------------------------------- User-space Kernel-space APP 2 LIBGFAPI Network APP 3 LIBGFAPI APP 1 LIBGFAPI Network Network Memory for inodes needed for every app (duplicate information). ​ May make bulk writes perform worse? | | | | | | | | | | | | | | APPS DO NOT SHARE CONTEXT Cannot share cache or inodes..
  • 16. Could create security holes Encryption as a remedy? Networking magic? LIBGFAPI VS FUSE:LIBGFAPI VS FUSE: THE DRAWBACKS CONTTHE DRAWBACKS CONT $ gluster volume set <VOL_NAME> allow-insecure on volume management type mgmt/glusterd option working-directory /var/lib/glusterd option transport-type socket,rdma option transport.socket.keepalive-time 10 option transport.socket.keepalive-interval 2 option transport.socket.read-fail-log off option rpc-auth-allow-insecure on end-volume Allow client connections from unprivileged ports (below 1024) Set gluster volume to allow insecure ports
  • 17. I S I T W O R T H I T ?I S I T W O R T H I T ? I think so, but I don't know yet... Performance testing How much faster?
  • 18. Probably... To gluster, swift is just another app We'll just have to try it and find out. W I L L L I B G FA P I P L AY N I C E LYW I L L L I B G FA P I P L AY N I C E LY W I T H S W I F T/ S O F ?W I T H S W I F T/ S O F ?
  • 19. L E S S O N S L E A R N E D :L E S S O N S L E A R N E D : CONTRIBUTIONCONTRIBUTION $ JOURNALCTL -R$ JOURNALCTL -R A N D I ' V E L E A R N E D . . .A N D I ' V E L E A R N E D . . . Finding bugs is contributing I've been doing a whole lot of this:
  • 20. L E S S O N S L E A R N E D :L E S S O N S L E A R N E D : KNOWLEDGEKNOWLEDGE TO LOOK BEFORE YOU LEAP.TO LOOK BEFORE YOU LEAP. I've spent too many hours breaking things A N D I ' V E L E A R N E D . . .A N D I ' V E L E A R N E D . . .
  • 21. SO I'VE BEEN JUMPING AROUNDSO I'VE BEEN JUMPING AROUND LIBGFAPI Python Bindings Integrating SoF with LIBGFAPI 11 22 33 Learning new tools and ideas