From ffae0585f84c19128fc370679ed19d38f759f2f6 Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Tue, 28 Jul 2020 13:09:21 +0200 Subject: [PATCH] Add specification for Ceph BlueStore Compression Change-Id: I308d40d4ad5d6f8e907700e22471db334fa1845e --- doc/source/specs/victoria/index.rst | 2 +- .../approved/ceph-bluestore-compression.rst | 154 ++++++++++++++++++ 2 files changed, 155 insertions(+), 1 deletion(-) create mode 100644 specs/victoria/approved/ceph-bluestore-compression.rst diff --git a/doc/source/specs/victoria/index.rst b/doc/source/specs/victoria/index.rst index 65b9957..8f6b9a3 100644 --- a/doc/source/specs/victoria/index.rst +++ b/doc/source/specs/victoria/index.rst @@ -19,7 +19,7 @@ Victoria implemented specs: Victoria approved (but not implemented) specs: -.. .. toctree:: +.. toctree:: :glob: :maxdepth: 1 diff --git a/specs/victoria/approved/ceph-bluestore-compression.rst b/specs/victoria/approved/ceph-bluestore-compression.rst new file mode 100644 index 0000000..65531fe --- /dev/null +++ b/specs/victoria/approved/ceph-bluestore-compression.rst @@ -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.