]> git.proxmox.com Git - ceph.git/blobdiff - ceph/doc/cephadm/mon.rst
import ceph 16.2.6
[ceph.git] / ceph / doc / cephadm / mon.rst
index 38ae493f5ff2e726fe9cf7d25232aa59f95497f9..e66df6171269d2f86f4d4a2f2cc1f8b5ce1da16c 100644 (file)
@@ -26,7 +26,11 @@ default to that subnet unless cephadm is instructed to do otherwise.
 If all of the ceph monitor daemons in your cluster are in the same subnet,
 manual administration of the ceph monitor daemons is not necessary.
 ``cephadm`` will automatically add up to five monitors to the subnet, as
-needed, as new hosts are added to the cluster. 
+needed, as new hosts are added to the cluster.
+
+By default, cephadm will deploy 5 daemons on arbitrary hosts. See
+:ref:`orchestrator-cli-placement-spec` for details of specifying
+the placement of daemons.
 
 Designating a Particular Subnet for Monitors
 --------------------------------------------
@@ -48,88 +52,84 @@ format (e.g., ``10.1.2.0/24``):
 Cephadm deploys new monitor daemons only on hosts that have IP addresses in
 the designated subnet.
 
-Changing the number of monitors from the default
-------------------------------------------------
-
-If you want to adjust the default of 5 monitors, run this command:
+You can also specify two public networks by using a list of networks:
 
   .. prompt:: bash #
 
-     ceph orch apply mon *<number-of-monitors>*
+     ceph config set mon public_network *<mon-cidr-network1>,<mon-cidr-network2>*
 
-Deploying monitors only to specific hosts
------------------------------------------
-
-To deploy monitors on a specific set of hosts, run this command:
+  For example:
 
   .. prompt:: bash #
 
-    ceph orch apply mon *<host1,host2,host3,...>*
+     ceph config set mon public_network 10.1.2.0/24,192.168.0.1/24
 
-  Be sure to include the first (bootstrap) host in this list.
 
-Using Host Labels
------------------
+Deploying Monitors on a Particular Network 
+------------------------------------------
+
+You can explicitly specify the IP address or CIDR network for each monitor and
+control where each monitor is placed.  To disable automated monitor deployment,
+run this command:
 
-You can control which hosts the monitors run on by making use of host labels.
-To set the ``mon`` label to the appropriate hosts, run this command:
-  
   .. prompt:: bash #
 
-    ceph orch host label add *<hostname>* mon
+    ceph orch apply mon --unmanaged
 
-  To view the current hosts and labels, run this command:
+  To deploy each additional monitor:
 
   .. prompt:: bash #
 
-    ceph orch host ls
+    ceph orch daemon add mon *<host1:ip-or-network1>
 
-  For example:
+  For example, to deploy a second monitor on ``newhost1`` using an IP
+  address ``10.1.2.123`` and a third monitor on ``newhost2`` in
+  network ``10.1.2.0/24``, run the following commands:
 
   .. prompt:: bash #
 
-    ceph orch host label add host1 mon
-    ceph orch host label add host2 mon
-    ceph orch host label add host3 mon
-    ceph orch host ls
+    ceph orch apply mon --unmanaged
+    ceph orch daemon add mon newhost1:10.1.2.123
+    ceph orch daemon add mon newhost2:10.1.2.0/24
+
+  Now, enable automatic placement of Daemons
+
+  .. prompt:: bash #
 
-  .. code-block:: bash
+    ceph orch apply mon --placement="newhost1,newhost2,newhost3" --dry-run
 
-    HOST   ADDR   LABELS  STATUS
-    host1         mon
-    host2         mon
-    host3         mon
-    host4
-    host5
+  See :ref:`orchestrator-cli-placement-spec` for details of specifying
+  the placement of daemons.
 
-  Tell cephadm to deploy monitors based on the label by running this command:
+  Finally apply this new placement by dropping ``--dry-run``
 
   .. prompt:: bash #
 
-    ceph orch apply mon label:mon
+    ceph orch apply mon --placement="newhost1,newhost2,newhost3"
 
-See also :ref:`host labels <orchestrator-host-labels>`.
 
-Deploying Monitors on a Particular Network 
-------------------------------------------
+Moving Monitors to a Different Network
+--------------------------------------
 
-You can explicitly specify the IP address or CIDR network for each monitor and
-control where each monitor is placed.  To disable automated monitor deployment,
-run this command:
+To move Monitors to a new network, deploy new monitors on the new network and
+subsequently remove monitors from the old network. It is not advised to
+modify and inject the ``monmap`` manually.
+
+First, disable the automated placement of daemons:
 
   .. prompt:: bash #
 
     ceph orch apply mon --unmanaged
 
-  To deploy each additional monitor:
+To deploy each additional monitor:
 
   .. prompt:: bash #
 
-    ceph orch daemon add mon *<host1:ip-or-network1> [<host1:ip-or-network-2>...]*
+    ceph orch daemon add mon *<newhost1:ip-or-network1>*
 
-  For example, to deploy a second monitor on ``newhost1`` using an IP
-  address ``10.1.2.123`` and a third monitor on ``newhost2`` in
-  network ``10.1.2.0/24``, run the following commands:
+For example, to deploy a second monitor on ``newhost1`` using an IP
+address ``10.1.2.123`` and a third monitor on ``newhost2`` in
+network ``10.1.2.0/24``, run the following commands:
 
   .. prompt:: bash #
 
@@ -137,52 +137,35 @@ run this command:
     ceph orch daemon add mon newhost1:10.1.2.123
     ceph orch daemon add mon newhost2:10.1.2.0/24
 
-  .. note::
-     The **apply** command can be confusing. For this reason, we recommend using
-     YAML specifications. 
-
-     Each ``ceph orch apply mon`` command supersedes the one before it. 
-     This means that you must use the proper comma-separated list-based 
-     syntax when you want to apply monitors to more than one host. 
-     If you do not use the proper syntax, you will clobber your work 
-     as you go.
-
-     For example:
-
-     .. prompt:: bash #
-        
-          ceph orch apply mon host1
-          ceph orch apply mon host2
-          ceph orch apply mon host3
-
-     This results in only one host having a monitor applied to it: host 3.
-
-     (The first command creates a monitor on host1. Then the second command
-     clobbers the monitor on host1 and creates a monitor on host2. Then the
-     third command clobbers the monitor on host2 and creates a monitor on 
-     host3. In this scenario, at this point, there is a monitor ONLY on
-     host3.)
-
-     To make certain that a monitor is applied to each of these three hosts,
-     run a command like this:
-     
-     .. prompt:: bash #
-       
-       ceph orch apply mon "host1,host2,host3"
-
-     There is another way to apply monitors to multiple hosts: a ``yaml`` file
-     can be used. Instead of using the "ceph orch apply mon" commands, run a
-     command of this form:
-     
-     .. prompt:: bash #
-
-        ceph orch apply -i file.yaml
-
-     Here is a sample **file.yaml** file::
-
-          service_type: mon
-          placement:
-            hosts:
-             - host1
-             - host2
-             - host3
+  Subsequently remove monitors from the old network:
+
+  .. prompt:: bash #
+
+    ceph orch daemon rm *mon.<oldhost1>*
+
+  Update the ``public_network``:
+
+  .. prompt:: bash #
+
+     ceph config set mon public_network *<mon-cidr-network>*
+
+  For example:
+
+  .. prompt:: bash #
+
+     ceph config set mon public_network 10.1.2.0/24
+
+  Now, enable automatic placement of Daemons
+
+  .. prompt:: bash #
+
+    ceph orch apply mon --placement="newhost1,newhost2,newhost3" --dry-run
+
+  See :ref:`orchestrator-cli-placement-spec` for details of specifying
+  the placement of daemons.
+
+  Finally apply this new placement by dropping ``--dry-run``
+
+  .. prompt:: bash #
+
+    ceph orch apply mon --placement="newhost1,newhost2,newhost3"