vBACD July 2012 - Scaling Storage with Ceph

  • 1,523 views
Uploaded on

"Scaling Storage with Ceph", Ross Turk, VP of Community, Inktank …

"Scaling Storage with Ceph", Ross Turk, VP of Community, Inktank
Ceph is an open source distributed object store, network block device, and file system designed for reliability, performance, and scalability. It runs on commodity hardware, has no single point of failure, and is supported by the Linux kernel. This talk will describe the Ceph architecture, share its design principles, and discuss how it can be part of a cost-effective, reliable cloud stack.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,523
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
92
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. S C A L I N G   S T O R A G E   W I T H   C E P H Ross  Turk,  Inktank  
  • 2. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 3. I N   T H E   B E G I N N I N GMagic Madzik, Flickr / CC BY 2.0
  • 4. E A R L Y   I N F O R M A T I O N   S T O R A G EChico.Ferreira, Flickr / CC BY 2.0
  • 5. W R I T I N G   >   C A V E   P A I N T I N G Skevingessner, Flickr / CC BY-SA 2.0
  • 6. ==x1000 x1
  • 7. P E O P L E   B E G I N   W R I T I N G   A   L O TMoyan_Brenn, Flickr / CC BY-ND 2.0
  • 8. W R I T I N G   I S   T I M E -­‐ C O N S U M I N Gtrekkyandy, Flickr / CC BY 2.0
  • 9. T H E   I N D U S T R I A L I Z A T I O N   O F   W R I T I N GFateDenied, Flickr / CC BY 2.0
  • 10. magnet + tape = magnetic tape == x1000 x1
  • 11. S T O R A G E   B E C O M E S   M E C H A N I C A LErik Pitti, Wikipedia / CC BY-ND 2.0
  • 12. HUMAN ROCK INKHUMAN PAPERHUMAN COMPUTER TAPE
  • 13. C O M P U T E R S   N E E D   P E O P L E   T O   W O R KUSDAgov, Flickr / CC BY 2.0
  • 14. HUMAN COMPUTER TAPE
  • 15. 11101011 10110110 10110101 10101001 00100100 01001001 10100100 10100101== 01011010 01101010 10101010 10101010 01010110 01010011
  • 16. T H R O U G H P U T   B E C O M E S   I M P O R T A N TZane Luke, Flickr / CC BY-ND 2.0
  • 17. L A Z 0 R   B 3 A M S   C H A N G E   E V E R Y T H I N G ! !Jeff Kubina, Flickr / CC-BY-SA 2.0
  • 18. H A R D   D R I V E S   A R E   T O T A L L Y   B E T T E R amazing spinny hard drives sucky stupid tape slow
  • 19. E V E R Y T H I N G   G E T S   M E S S YRob!, Flickr / CC BY 2.0
  • 20. aa ab 111010 ac101 ba bb bc 111 010da 110 db 011 010 000 dc000 110 001
  • 21. file owner: rturk created: aug12 last viewed: aug17 size: 4202511101011 10110110 10110101 perms: 64410101001 00100100 0100100110100100 10100101 0101101001101010 10101010 10101010
  • 22. aa ab 111010 ac101 ba bb bc 111 010da 110 db 01 010 000 dc 10000 110 001
  • 23. W E   O U T G R O W   T H E   H A R D   D R I V EMr. T in DC, Flickr / CC BY 2.0
  • 24. DISK DISK DISKHUMAN COMPUTER DISK DISK DISK DISK
  • 25. P E O P L E   N E E D   S I M U L T A N E O U S   A C C E S SwFourier, Flickr / CC BY 2.0
  • 26. DISK DISKHUMAN DISKHUMAN COMPUTER DISK DISKHUMAN DISK DISK
  • 27. HUMAN HUMAN HUMAN HUMAN DISK HUMANHUMAN DISK HUMAN HUMAN DISK DISK HUMAN DISK HUMANHUMAN DISK (COMPUTER) HUMAN DISK HUMAN HUMAN DISK HUMAN HUMAN DISK HUMAN DISK HUMAN DISK HUMAN HUMAN DISK HUMAN HUMAN (actually more like this…)
  • 28. COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISK
  • 29. X aa ab 111010 ac101 ba bb bc 111 010da 110 db 011 010 000 dc000 110 001
  • 30. object pace: quick driver: frog license: expired expression: agog11101011 10110110 1011010110101001 00100100 0100100110100100 10100101 0101101001101010 10101010 10101010
  • 31. COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISKAPP COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK
  • 32. COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISKCOMPUTER COMPUTER DISK DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK
  • 33. COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISKVM COMPUTER DISK COMPUTER DISKVM COMPUTER DISK COMPUTER DISKVM COMPUTER DISK COMPUTER DISK COMPUTER DISK COMPUTER DISK
  • 34. Ceph Cloud computing Distributed storage Shared storage Computers Writing PaintingS T O R A G E   T H R O U G H O U T   H I S T O R YTime-scale: Roughly logarithmic. Content: Whatever the opposite of “scientific” is.
  • 35. COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISKHUMAN COMPUTER DISK COMPUTER DISK COMPUTER DISK
  • 36. COMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISKCOMPUTER DISK
  • 37. C DC DC DC DC DC DC DC DC DC DC DC D
  • 38. C D C D C DHUMAN C D C D C DHUMAN C D C D C DHUMAN C D C D C D
  • 39. S T O R A G E   A P P L I A N C E SMichael Moll, Wikipedia / CC BY-SA 2.0
  • 40. 6 . 4   M I L L I O N   S Q F T   O F   F A C T O R I E SDude94111, Flickr / CC BY 2.0
  • 41. S T O R A G E   V E N D O R S   H A V E   B I G   B I L L SCarbonNYC, Flickr / CC BY 2.0
  • 42. S T O R A G E   A P P L I A N C E S   A R E   E X P E N S I V E401K 2012, Flickr / CC BY-SA 2.0
  • 43. T E C H N O L O G Y   I S   A   C O M M O D I T YRaeAllen, Flickr / CC-BY 2.0
  • 44. C O M M O D I T Y   P R I C E S   F L U C T U A T EMay-07 May-08 May-09 May-10 May-11 May-12
  • 45. G R O W I N G   W I T H   H A R D W A R E   A P P L I A N C E S C D §  First PB C D §  Second PB C D §  Proprietary C D §  Proprietary C D storage C D storage C D hardware C D hardware C D §  Well-known C D §  Same storage C D storage C D vendor C D vendor C D C D C D C D C D §  Another $14 C D §  $14 b’zillion C D b’zillion C D C D C D C D
  • 46. A P P L I A N C E S   A R E   O L D   T E C H N O L O G YPaul Keller, Flickr / CC BY 2.0
  • 47. Source: http://www.cpubenchmark.net/high_end_cpus.html
  • 48. FLAGSHIPHARDWAREAPPLIANCE
  • 49. Hardware Appliances are Mysterious Black BoxesAbode of Chaos, Flickr / CC BY 2.0
  • 50. C D C D C C D C D D C D C DC++ C D C D C D C D C D
  • 51. X C D C D C C D C D D C D C DC++ C D C D C D C D C D
  • 52. C D C D C D C D C DHUMAN !! C D[DEVELOPER] C D C D C D C D C D C D
  • 53. THE WORLD NEEDSA STORAGE TECHNOLOGY THAT SCALES INFINITELY
  • 54. THE WORLD NEEDSA STORAGE TECHNOLOGY THAT DOESN’T REQUIRE AN INDUSTRIAL MANUFACTURING PROCESS
  • 55. S A G E   W E I L§  Co-founder of DreamHost§  Inventor of Ceph§  CEO of Inktank
  • 56. philosophy designOPEN SOURCE
  • 57. O P E N   S O U R C E   S P R E A D S   I D E A Sorchidgalore, Flickr / CC BY 2.0
  • 58. philosophy design OPEN SOURCECOMMUNITY-FOCUSED
  • 59. W E   A R E   S M A R T E R   T O G E T H E Rrturk, Linkedin Inmap
  • 60. C E P H   B E L O N G S   T O   A L L   O F   U Swackybadger, Flickr / CC BY 2.0
  • 61. philosophy design OPEN SOURCE SCALABLECOMMUNITY-FOCUSED
  • 62. Ceph Too much for a room Too much for a computer Too much for a drive Too much for a book Too much for a caveC E P H   I S   B U I L T   T O   S C A L E
  • 63. philosophy design OPEN SOURCE SCALABLECOMMUNITY-FOCUSED NO SINGLE POINT OF FAILURE
  • 64. A R I L O M A X   C A L I F O R N I C U Saroid, Flickr / CC BY 2.0
  • 65. single point of failure highly-availablereplicatedT H E   O C T O P U S   ( A   M E T A P H O R )I love speaking in metaphors.
  • 66. T H E   B E E H I V E   ( A N O T H E R   M E T A P H O R )blumenbiene, Flickr / CC BY 2.0
  • 67. philosophy design OPEN SOURCE SCALABLECOMMUNITY-FOCUSED NO SINGLE POINT OF FAILURE SOFTWARE BASED
  • 68. C D C D C C D C D D C D C DC++ C D C D C D C D C D
  • 69. C D C D✔ C C D C D D C D C DC++ C D C D C D C D C D
  • 70. philosophy design OPEN SOURCE SCALABLECOMMUNITY-FOCUSED NO SINGLE POINT OF FAILURE SOFTWARE BASED SELF-MANAGING
  • 71. D I S K S   =   J U S T   T I N Y   R E C O R D   P L A Y E R Sjon_a_ross, Flickr / CC BY 2.0
  • 72. D D D D D D = D Dx 1 MILLION 55 times / day
  • 73. I T   A L L   S T A R T E D   W I T H   A   D R E A M
  • 74. +
  • 75. N E W   M O N T H L Y   C O D E   C O M M I T S700600500400300200100 0 2004-06 2005-07 2006-07 2007-07 2008-07 2009-07 2010-07 2011-07
  • 76. C E P H   S T A R T S   P O P P I N G   U P ! (sorry about all the logo tampering)
  • 77. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 78. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 79. OSD OSD OSD OSD OSD btrfsFS FS FS FS FS xfs ext4DISK DISK DISK DISK DISK M M M
  • 80. HUMAN MM M
  • 81. M Monitors: §  Maintain cluster map §  Provide consensus for distributed decision- making §  Must have an odd number §  These do not serve stored objects to clients OSDs: §  One per disk (recommended) §  At least three in a cluster §  Serve stored objects to clients §  Intelligently peer to perform replication tasks §  Supports object classes
  • 82. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 83. APP LIBRADOS native MM M
  • 84. L LIBRADOS §  Provides direct access to RADOS for applications §  C, C++, Python, PHP, Java §  No HTTP overhead
  • 85. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 86. APP APP RESTRADOSGW RADOSGW LIBRADOS LIBRADOS native M M M
  • 87. RADOS Gateway:§  REST-based interface to RADOS§  Supports buckets, accounting§  Compatible with S3 and Swift applications
  • 88. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 89. VMVIRTUALIZATION CONTAINER LIBRBD LIBRADOS M M M
  • 90. CONTAINER VM CONTAINER LIBRBD LIBRBD LIBRADOS LIBRADOS M M M
  • 91. HOST KRBD (KERNEL MODULE) LIBRADOS MM M
  • 92. RADOS Block Device:§  Storage of virtual disks in RADOS§  Allows decoupling of VMs and containers §  Live migration!§  Images are striped across the cluster§  Boot support in QEMU, KVM, and OpenStack Nova§  Mount support in the Linux kernel
  • 93. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHPRADOSA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 94. CLIENTmetadata 01 data 10 M M M
  • 95. Metadata Server§  Manages metadata for a POSIX-compliant shared filesystem §  Directory hierarchy §  File metadata (owner, timestamps, mode, etc.)§  Stores metadata in RADOS§  Does not serve file data to clients§  Only required for shared filesystem
  • 96. WHAT MAKES CEPH UNIQUE?
  • 97. H O W   D O   Y O U   F I N D   Y O U R   K E Y S ?azmeen, Flickr / CC BY 2.0
  • 98. C D C D C D C D C D ??APP C D C D C D C D C D C D C D
  • 99. C D C D A-G C D C D C D H-NAPP F* C D C D C D O-T C D C D C D U-Z C D
  • 100. I   A L W A Y S   P U T   M Y   K E Y S   O N   T H E   H O O Kvitamindave, Flickr / CC BY 2.0
  • 101. C D C D C D C D C DAPP C D C D C D C D C D C D C D
  • 102. D E A R   D I A R Y :   K E Y S   =   I N   T H E   K I T C H E NBarnaby, Flickr / CC BY 2.0
  • 103. HOW DO YOU FIND YOUR KEYSWHEN YOUR HOUSE IS INFINITELY BIG ANDALWAYS CHANGING?
  • 104. T H E   A N S W E R :   C R U S H ! !pasukaru76, Flickr / CC SA 2.0
  • 105. 10 10 01 01 10 10 01 11 01 10 hash(object name) % num pg10 10 01 01 10 10 01 11 01 10 CRUSH(pg, cluster state, rule set)
  • 106. 10 10 01 01 10 10 01 11 01 1010 10 01 01 10 10 01 11 01 10
  • 107. CRUSH§  Pseudo-random placement algorithm§  Ensures even distribution§  Repeatable, deterministic§  Rule-based configuration §  Replica count §  Infrastructure topology §  Weighting
  • 108. CLIENT ??
  • 109. CLIENT ??
  • 110. VMVIRTUALIZATION CONTAINER LIBRBD LIBRADOS M M M
  • 111. HOW DO YOU SPIN UPTHOUSANDS OF VMs INSTANTLY AND EFFICIENTLY?
  • 112. instant copy144 0 0 0 0 = 144
  • 113. write CLIENT write write write144 4 = 148
  • 114. read read CLIENT read144 4 = 148
  • 115. HOW DO YOU MANAGE DIRECTORY HEIRARCHY WITHOUT ASINGLE POINT OF FAILURE?
  • 116. F I L E S Y S T E M S   R E Q U I R E   M E T A D A T ABarnaby, Flickr / CC BY 2.0
  • 117. CLIENT 01 10 MM M
  • 118. MM M
  • 119. one treethree metadata servers ??
  • 120. DYNAMIC SUBTREE PARTITIONING
  • 121. AND NOWBACKPEDALING
  • 122. ALMOSTEVERYTHING WORKS
  • 123. APP APP HOST/VM CLIENT RADOSGW RBD CEPH FS LIBRADOS A bucket-based REST A reliable and fully- A POSIX-compliant A library allowing gateway, compatible distributed block distributed file apps to directly with S3 and Swift device, with a Linux system, with a Linux access RADOS, kernel client and a kernel client and with support for QEMU/KVM driver support for FUSE C, C++, Java, Python, Ruby, and PHP AWESOME AWESOME NEARLY AWESOME AWESOMERADOS AWESOMEA reliable, autonomous, distributed object store comprised of self-healing, self-managing,intelligent storage nodes
  • 124. *LAN SCALE!!* OR REALLY REALLY SCARY FAST WAN
  • 125. C E P H   A N D   C L O U D S T A C Ktableatny, Flickr / CC BY 2.0
  • 126. R B D   S U P P O R T   I N   C L O U D S T A C K§  Just announced two weeks ago!§  Allows storage of virtual disks inside RADOS §  Works with KVM only right now §  No volume snapshots yet§  Requires the latest version of, um, everything§  More information can be found on the mailing list: §  ceph-devel / incubator-cloudstack-dev: http://article.gmane.org/gmane.comp.file-systems.ceph.devel/7505
  • 127. QUESTIONS?Ross TurkVP Community, Inktank§  ross@inktank.com§  @rossturkinktank.com | ceph.com