Direct usage of Cinder Block Storage drivers without the services
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Go to file
OpenStack Release Bot b66c34fb55 Update master for stable/2023.1
Add file to the reno documentation build to show release notes for
stable/2023.1.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.

Sem-Ver: feature
Change-Id: I4b98ac85b5d5dbb5c4d0eb38909eb2dc53824f65
1 month ago
cinderlib Don't use deprecated config opt name in unit test 2 months ago
devstack OpenDev Migration Patch 4 years ago
doc Merge "Remove unnecessary #egg= URL fragment" 5 months ago
playbooks Don't use yum to install ceph 11 months ago
releasenotes Update master for stable/2023.1 1 month ago
roles/run-cinderlib-tests Fix privsep issues inside virtual env 12 months ago
tools Add local upper constraints support 12 months ago
.gitignore Add local upper constraints support 12 months ago
.gitreview OpenDev Migration Patch 4 years ago
.stestr.conf Add zuul jobs 4 years ago
.zuul.yaml Continue 2023.1 (Antelope) development 2 months ago
CONTRIBUTING.rst Ussuri contrib docs community goal 3 years ago
DESCRIPTION.rst Fix cinderlib Python package 4 years ago
HACKING.rst Format as a Cinder-related OpenStack project 4 years ago
LICENSE Format as a Cinder-related OpenStack project 4 years ago
README.rst Fix cinderlib Python package 4 years ago
babel.cfg Format as a Cinder-related OpenStack project 4 years ago
bindep.txt Use Python 3 by default and drop Python 2 3 years ago
requirements.txt Continue 2023.1 (Antelope) development 2 months ago
setup.cfg Open cinderlib for 2023.1 (Antelope) development 6 months ago
setup.py Cleanup py27 support 3 years ago
test-requirements.txt Move cinderlib to new hacking 4.0.0 2 years ago
tox.ini Continue 2023.1 (Antelope) development 2 months ago

README.rst

Cinder Library

image

image

image

Introduction

The Cinder Library, also known as cinderlib, is a Python library that leverages the Cinder project to provide an object oriented abstraction around Cinder's storage drivers to allow their usage directly without running any of the Cinder services or surrounding services, such as KeyStone, MySQL or RabbitMQ.

The library is intended for developers who only need the basic CRUD functionality of the drivers and don't care for all the additional features Cinder provides such as quotas, replication, multi-tenancy, migrations, retyping, scheduling, backups, authorization, authentication, REST API, etc.

The library was originally created as an external project, so it didn't have the broad range of backend testing Cinder does, and only a limited number of drivers were validated at the time. Drivers should work out of the box, and we'll keep a list of drivers that have added the cinderlib functional tests to the driver gates confirming they work and ensuring they will keep working.

Features

  • Use a Cinder driver without running a DBMS, Message broker, or Cinder service.
  • Using multiple simultaneous drivers on the same application.
  • Basic operations support:
    • Create volume
    • Delete volume
    • Extend volume
    • Clone volume
    • Create snapshot
    • Delete snapshot
    • Create volume from snapshot
    • Connect volume
    • Disconnect volume
    • Local attach
    • Local detach
    • Validate connector
    • Extra Specs for specific backend functionality.
    • Backend QoS
    • Multi-pool support
  • Metadata persistence plugins:
    • Stateless: Caller stores JSON serialization.
    • Database: Metadata is stored in a database: MySQL, PostgreSQL, SQLite...
    • Custom plugin: Caller provides module to store Metadata and cinderlib calls it when necessary.

Demo