Project

General

Profile

Rbd - cloud management platform features

Summary

This blueprint is a placeholder for updating various cloud management platforms (OpenStack, Cloudstack, etc.) for better ceph integration.

Owners

  • Name (Affiliation)
  • Name (Affiliation)
  • Name

Interested Parties

  • Daniele Stroppa (ZHAW)
  • Sébastien Han (eNovance)
  • Josh Durgin
  • Name

Current Status

There has been a large amount of work integrating ceph (and rbd in particular) with various cloud management platforms. What features are in some but not others? What features are missing from all of them, or need better documentation or ease of use?

Detailed Description

All

  • flatten automatically when clone chains are too long
  • flatten children automatically when deleting a parent snapshot with fewer than N children (otherwise flatten and delete the parent snapshot (and image if it's supposedly deleted) when fewer than N children remain).
  • taking advantage of new ceph features
    • namespace support (see rbd - namespace support)
      • create rados client for each tenant and put new volumes in namespace named after tenant
      • pass tenant id and key to compute node
      • maybe store tenant's keys in separate service (Barbican for OpenStack?)
    • configuring localized or balanced reads
    • configuring local shared cache per compute node (maybe this is just running a daemon, with configuration for guests to use it)
    • adjusting write-back cache parameters (size etc.)
    • configuring copy-on-read

OpenStack

  • once auto-flattening is in place, clone_volume in cinder can be implemented with an rbd clone instead of the plain copy it's currently using

CloudStack

  • snapshot and create_from_snapshot (clone) support
  • backing up to rbd (using diffs between snapshots as a bonus)
  • configuring rbd caching

Work items

Coding tasks

  1. OpenStack: implement direct url for RBD in nova while booting (ie: https://review.openstack.org/#/c/37817/) (leseb)
  2. OpenStack: implement RBD stripe_unit, stripe_count and rbd_chunk_size with Cinder (I already coded this, I just need some tests then I'll push it) (leseb)
  3. OpenStack: Ability to store snapshots and images to different places (ie: https://blueprints.launchpad.net/glance/+spec/ability-to-separate-snapshots-and-images); Glance's folks where quite entousiastic about this, but weren't sure if it should be either in Glance or Nova. (leseb) It seems like Glance is missing a level of indirection between users and backend stores (joshd)
  4. OpenStack: Join the LFS initiative to build a transparent fronted API for Object Stores (leseb) => rgw see http://www.mail-archive.com/ceph-devel@vger.kernel.org/msg15479.html
  5. OpenStack: hopefully this code https://review.openstack.org/#/c/36042/ will land into Havana, then as soon as it's implement. The depreciation work must start by joining the 'brick' implementation. (leseb)
  6. OpenStack: enhance user experience by allowing to set the body of the RBD image. Not sure if makes sense right now, we better discuss that. It's definitely end-user oriented (ex: cinder create --metadata stripe_count=16 stripe_unit=65536 --display-name=tiny-ios 10).(leseb)

Build / release tasks

  1. Task 1
  2. Task 2
  3. Task 3

Documentation tasks

  1. OpenStack: the Havana cycle brought some changes and made configuration easier, this has to be documented. (leseb)
  2. Task 2
  3. Task 3

Deprecation tasks

  1. Task 1
  2. Task 2
  3. Task 3