From: Sebastian Wagner Date: Tue, 19 May 2020 16:18:55 +0000 (+0200) Subject: doc/cephadm: add Cephadm scheduler section X-Git-Tag: v15.2.5~173^2~9 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fb71af7924be6be2e9c48a6040ea8bded75d8595;p=ceph.git doc/cephadm: add Cephadm scheduler section Signed-off-by: Sebastian Wagner (cherry picked from commit b30702136ba90b7da05675099c79139cf2dd2955) --- diff --git a/doc/cephadm/concepts.rst b/doc/cephadm/concepts.rst new file mode 100644 index 00000000000..8dd9b4a6b50 --- /dev/null +++ b/doc/cephadm/concepts.rst @@ -0,0 +1,48 @@ +Cephadm Scheduler +================= + +Cephadm uses a declarative state to define the layout of the cluster. This +state consists of a list of service specificatins containing placement +specifications (See :ref:`orchestrator-cli-service-spec` ). + +Cephadm constantly compares list of actually running daemons in the cluster +with the desired service specifications and will either add or remove new +daemons. + +First, cephadm will select a list of candidate hosts. It first looks for +explicit host names and will select those. In case there are no explicit hosts +defined, cephadm looks for a label specification. If there is no label defined +in the specification, cephadm will select hosts based on a host pattern. If +there is no pattern defined, cepham will finally select all known hosts as +candidates. + +Then, cephadm will consider existing daemons of this servics and will try to +avoid moving any daemons. + +Cephadm supports the deployment of a specific amount of services. Let's +consider a service specification like so: + +.. code-block:: yaml + + service_type: mds + service_name: myfs + placement: + count: 3 + label: myfs + +This instructs cephadm to deploy three daemons on hosts labeld with +``myfs`` across the cluster. + +Then, in case there are less than three daemons deployed on the candidate +hosts, cephadm will then then randomly choose hosts for deploying new daemons. + +In case there are more than three daemons deployed, cephadm will remove +existing daemons. + +Finally, cephadm will remove daemons on hosts that are outside of the list of +candidate hosts. + +However, there is a special cases that cephadm needs to consider. + +In case the are fewer hosts selected by the placement specification than +demanded by ``count``, cephadm will only deploy on selected hosts. diff --git a/doc/cephadm/index.rst b/doc/cephadm/index.rst index 4ffcab80abd..3156721df8f 100644 --- a/doc/cephadm/index.rst +++ b/doc/cephadm/index.rst @@ -37,3 +37,4 @@ versions of Ceph. Client Setup DriveGroups troubleshooting + concepts \ No newline at end of file