In A Nutshell
First class block storage
Independent lifespan
Integrates enterprise storage platforms
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 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