Merge "Add specification for Ceph BlueStore Compression"
This commit is contained in:
commit
5fcc343438
154
specs/victoria/approved/ceph-bluestore-compression.rst
Normal file
154
specs/victoria/approved/ceph-bluestore-compression.rst
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
..
|
||||||
|
Copyright 2020 Canonical Ltd.
|
||||||
|
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0
|
||||||
|
Unported License.
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
..
|
||||||
|
This template should be in ReSTructured text. Please do not delete
|
||||||
|
any of the sections in this template. If you have nothing to say
|
||||||
|
for a whole section, just write: "None". For help with syntax, see
|
||||||
|
http://sphinx-doc.org/rest.html To test out your formatting, see
|
||||||
|
http://www.tele3.cz/jbar/rest/rest.html
|
||||||
|
|
||||||
|
==========================
|
||||||
|
Ceph BlueStore Compression
|
||||||
|
==========================
|
||||||
|
|
||||||
|
The Ceph BlueStore storage backend has support for inline compression.
|
||||||
|
|
||||||
|
Problem Description
|
||||||
|
===================
|
||||||
|
|
||||||
|
The Ceph charms currently do not provide documentation, validation or support
|
||||||
|
for enabling BlueStore inline compression.
|
||||||
|
|
||||||
|
Proposed Change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Ceph supports configuring compression through per-pool properties and global
|
||||||
|
configuration options. What configuration to use depends on the type of data
|
||||||
|
and the characteristics of the underlying storage devices in use.
|
||||||
|
|
||||||
|
To accomodate this we should allow Ceph consuming charms to configure
|
||||||
|
compression on a per-pool basis and have centrally managed defaults for any
|
||||||
|
options not provided.
|
||||||
|
|
||||||
|
The following configuration options will be added:
|
||||||
|
|
||||||
|
* bluestore-compression-algorithm
|
||||||
|
|
||||||
|
* bluestore-compression-mode
|
||||||
|
|
||||||
|
* bluestore-compression-required-ratio
|
||||||
|
|
||||||
|
* bluestore-compression-min-blob-size
|
||||||
|
|
||||||
|
* bluestore-compression-min-blob-size-hdd
|
||||||
|
|
||||||
|
* bluestore-compression-min-blob-size-ssd
|
||||||
|
|
||||||
|
* bluestore-compression-max-blob-size
|
||||||
|
|
||||||
|
* bluestore-compression-max-blob-size-hdd
|
||||||
|
|
||||||
|
* bluestore-compression-max-blob-size-ssd
|
||||||
|
|
||||||
|
Support will be provided for Ceph Mimic and onwards on Ubuntu 18.04 LTS and
|
||||||
|
onwards.
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
fnordahl
|
||||||
|
|
||||||
|
Gerrit Topic
|
||||||
|
------------
|
||||||
|
|
||||||
|
Use Gerrit topic "ceph-bluestore-compression" for all patches related to this
|
||||||
|
spec.
|
||||||
|
|
||||||
|
.. code-block:: bash
|
||||||
|
|
||||||
|
git-review -t ceph-bluestore-compression
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Extend the Ceph broker API to support providing compression options on pool
|
||||||
|
requests.
|
||||||
|
|
||||||
|
* Add context that can be used by both consuming and providing charms to map
|
||||||
|
charm configuration options into CephBrokerRq op properties as well as Jinja2
|
||||||
|
template context data.
|
||||||
|
|
||||||
|
* Extend the ``ceph-client`` and ``ceph-rbd-mirror`` reactive interfaces to
|
||||||
|
support relaying compression options for pool creation.
|
||||||
|
|
||||||
|
* Add charm configuration options to control global compression defaults to the
|
||||||
|
ceph-osd charm.
|
||||||
|
|
||||||
|
* Add charm configuration options to control compression on pool creation to
|
||||||
|
the following charms:
|
||||||
|
|
||||||
|
* glance
|
||||||
|
|
||||||
|
* cinder-ceph
|
||||||
|
|
||||||
|
* nova-compute
|
||||||
|
|
||||||
|
* gnocchi
|
||||||
|
|
||||||
|
* ceph-iscsi
|
||||||
|
|
||||||
|
* ceph-radosgw
|
||||||
|
|
||||||
|
* Add support for copying compression properties on pool mirroring to the
|
||||||
|
ceph-rbd-mirror charm.
|
||||||
|
|
||||||
|
* Establish a performance baseline and perform benchmark for use in a
|
||||||
|
hyper-converged deployment topology and document results and recommendations.
|
||||||
|
|
||||||
|
Repositories
|
||||||
|
------------
|
||||||
|
|
||||||
|
No new repositories are required to implement this spec.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
The individual configuration options will get a description that explains basic
|
||||||
|
usage.
|
||||||
|
|
||||||
|
A new appendix or section should be added to the deployment-guide to document
|
||||||
|
results of benchmark and recommendations for deployment of Ceph with BlueStore
|
||||||
|
Compression.
|
||||||
|
|
||||||
|
Security
|
||||||
|
--------
|
||||||
|
|
||||||
|
Apart from enabling code paths in Ceph that was previously not exposed in the
|
||||||
|
charms, there are no security specific considerations for this feature work.
|
||||||
|
|
||||||
|
Testing
|
||||||
|
-------
|
||||||
|
|
||||||
|
Existing charm gates should be extended to validate the operation of the new
|
||||||
|
charm configuration options.
|
||||||
|
|
||||||
|
No special hardware is required to validate the feature.
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None.
|
Loading…
Reference in New Issue
Block a user