cinder-overview



cinder-overview

1 0


cinder-overview

OpenStack Cinder Overview (slides)

On Github jbernard / cinder-overview

OpenStack Cinder

An Overview

Created by Jon Bernard

In A Nutshell

First class block storage

Independent lifespan

Integrates enterprise storage platforms

Architecture

Interactions

  • Nova
  • Glance
  • Keystone

Requirements

  • AMQP
  • MySQL
  • Python (+ libraries)
  • Storage Backend

Functionality

  • Volume
  • Snapshot
  • Backup
  • Transfer
  • Migrate
  • Type
  • Quota
  • QOS

Configuration

/etc/cinder/cinder.conf

Debugging

[DEFAULT]
verbose = True  # useful information
debug = True    # something like a firehose
  • Logs are found in /var/log/cinder
  • Look for words like "ERROR" and "Exception"
  • If you see a stacktrace in the logs, that's bad
  • The cinder client accepts --debug

Previous Features

  • Disk Encryption
  • Volume Migration
  • Volume Rate Limiting
  • Volume Extension
  • Transfer Volume Ownership
  • Scheduler Hints

Disk Encryption

  • Handled by Nova, Cinder remains unchanged
  • Reference implementation uses dm-crypt
  • Other volume encryptors can be substituted
  • See the wiki page for more details.

Volume Migration

  • Migrate a volume from one backend to another
  • Live, not visible by the instance
    $ cinder migrate <volume> <target>

Volume Rate Limiting

  • Allows I/O rate limiting per volume
  • Separate read and write limits
  • Enforced in Nova or Cinder driver

Volume Extension

  • Increase size of an existing volume
  • iSCSI target is not updated (bug)

Transfer Ownership

Transfer a volume from one tenant to another

cinder transfer-create <volume>                 # tenant A
cinder transfer-accept <transfer_id> <auth_key> # tenant B

Scheduler Hints

  • User can pass hints to volume create
  • Scheduler uses hints at volume-create time
  • API v2 only
  • Blueprint is here

New Features

  • Volume import/export
  • Complete i18n enablement *
  • Limit volume copy bandwith
  • Include image-creation proprties *
  • Volume number scheduler
  • Consistency groups
  • Pool-Aware scheduling
  • Backup quotas *
  • Volume replication *

Volume Import/Export

  • Import volumes from other environments
  • Export is a bit unintuitive
  • Export releases a volume from cinder
  • Similiar to delete operation
  • Data on underlying volume untouched

Limit Volume Copy Bandwith

  • New volume from image
  • Volume backup
  • Volume deletion (scrub)
  • ionice doesn't always work
  • uses blkio cgroup for throttling
  • falls short when volume isn't a file on disk

Consistency Groups

  • Volume Container
  • Assign volume at creation time
  • Perform operations on the group (snapshot, backup, etc)
  • Cinder quiesces volumes through nova

Pool-Aware Scheduling

  • Finer granularity than backend, sub-pools
  • Volume or snapshot that is larger than pool fails
  • Capacity reporting that makes sense

Upcoming Features

  • Many driver-specific improvements
  • Cinder objects *
  • Backup encrypted volumes
  • Incremental backup
  • Modify existing consistency group
  • Volume migration for Ceph/RBD
  • Private volumes
  • Over subscription in thin backends

Cinder Objects

  • Bundle data with methods that can operate on them
  • service, volume, type, snapshot, quota, backup, and CG
  • Isolates the code from the DB schema
  • Eaiser rolling upgrades
  • Objects can passed over RPC and data lazy-loaded from DB

Questions?

0