mirror of
https://github.com/ceph/ceph
synced 2025-01-08 20:21:33 +00:00
ee44db4a51
Signed-off-by: John Wilkins <john.wilkins@dreamhost.com> Signed-off-by: Tommi Virtanen <tommi.virtanen@dreamhost.com>
173 lines
9.0 KiB
ReStructuredText
173 lines
9.0 KiB
ReStructuredText
========================
|
|
Ceph Configuration Files
|
|
========================
|
|
When you start the Ceph service, the initialization process activates a series of daemons that run in the background.
|
|
The hosts in a typical RADOS cluster run at least one of three processes or daemons:
|
|
|
|
- RADOS (``ceph-osd``)
|
|
- Monitor (``ceph-mon``)
|
|
- Metadata Server (``ceph-mds``)
|
|
|
|
Each process or daemon looks for a ``ceph.conf`` file that provides their configuration settings.
|
|
The default ``ceph.conf`` locations in sequential order include:
|
|
|
|
1. ``$CEPH_CONF`` (*i.e.,* the path following the ``$CEPH_CONF`` environment variable)
|
|
2. ``-c path/path`` (*i.e.,* the ``-c`` command line argument)
|
|
3. /etc/ceph/ceph.conf
|
|
4. ``~/.ceph/config``
|
|
5. ``./ceph.conf`` (*i.e.,* in the current working directory)
|
|
|
|
The ``ceph.conf`` file provides the settings for each Ceph daemon. Once you have installed the Ceph packages on the OSD Cluster hosts, you need to create
|
|
a ``ceph.conf`` file to configure your OSD cluster.
|
|
|
|
Creating ``ceph.conf``
|
|
----------------------
|
|
The ``ceph.conf`` file defines:
|
|
|
|
- Cluster Membership
|
|
- Host Names
|
|
- Paths to Hosts
|
|
- Runtime Options
|
|
|
|
You can add comments to the ``ceph.conf`` file by preceding comments with a semi-colon (;). For example::
|
|
|
|
; <--A semi-colon precedes a comment
|
|
; A comment may be anything, and always follows a semi-colon on each line.
|
|
; We recommend that you provide comments in your configuration file(s).
|
|
|
|
Configuration File Basics
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
The ``ceph.conf`` file configures each instance of the three common processes
|
|
in a RADOS cluster.
|
|
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
| Setting Scope | Process | Setting | Instance Naming | Description |
|
|
+=================+==============+==============+=================+=================================================+
|
|
| All Modules | All | ``[global]`` | N/A | Settings affect all instances of all daemons. |
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
| Groups | Group | ``[group]`` | Alphanumeric | Settings affect all instances within the group |
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
| RADOS | ``ceph-osd`` | ``[osd]`` | Numeric | Settings affect RADOS instances only. |
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
| Monitor | ``ceph-mon`` | ``[mon]`` | Alphanumeric | Settings affect monitor instances only. |
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
| Metadata Server | ``ceph-mds`` | ``[mds]`` | Alphanumeric | Settings affect MDS instances only. |
|
|
+-----------------+--------------+--------------+-----------------+-------------------------------------------------+
|
|
|
|
Metavariables
|
|
~~~~~~~~~~~~~
|
|
The configuration system supports certain 'metavariables,' which are typically used in ``[global]`` or process/daemon settings.
|
|
If metavariables occur inside a configuration value, Ceph expands them into a concrete value--similar to how Bash shell expansion works.
|
|
|
|
There are a few different metavariables:
|
|
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
| Metavariable | Description |
|
|
+==============+==========================================================================================================+
|
|
| ``$host`` | Expands to the host name of the current daemon. |
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
| ``$type`` | Expands to one of ``mds``, ``osd``, or ``mon``, depending on the type of the current daemon. |
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
| ``$id`` | Expands to the daemon identifier. For ``osd.0``, this would be ``0``; for ``mds.a``, it would be ``a``. |
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
| ``$num`` | Same as ``$id``. |
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
| ``$name`` | Expands to ``$type.$id``. |
|
|
+--------------+----------------------------------------------------------------------------------------------------------+
|
|
|
|
Global Settings
|
|
~~~~~~~~~~~~~~~
|
|
The Ceph configuration file supports a hierarchy of settings, where child settings inherit the settings of the parent.
|
|
Global settings affect all instances of all processes in the cluster. Use the ``[global]`` setting for values that
|
|
are common for all hosts in the cluster. You can override each ``[global]`` setting by:
|
|
|
|
1. Changing the setting in a particular ``[group]``.
|
|
2. Changing the setting in a particular process type (*e.g.,* ``[osd]``, ``[mon]``, ``[mds]`` ).
|
|
3. Changing the setting in a particular process (*e.g.,* ``[osd.1]`` )
|
|
|
|
Overriding a global setting affects all child processes, except those that you specifically override.
|
|
|
|
For example::
|
|
|
|
[global]
|
|
; Enable authentication between hosts within the cluster.
|
|
auth supported = cephx
|
|
|
|
Group Settings
|
|
~~~~~~~~~~~~~~
|
|
Group settings affect all instances of all processes in a group. Use the ``[group]`` setting for values that
|
|
are common for all hosts in a group within the cluster. Each group must have a name. For example::
|
|
|
|
[group primary]
|
|
addr = 10.9.8.7
|
|
|
|
[group secondary]
|
|
addr = 6.5.4.3
|
|
|
|
|
|
Process/Daemon Settings
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
You can specify settings that apply to a particular type of process. When you specify settings under ``[osd]``, ``[mon]`` or ``[mds]`` without specifying a particular instance,
|
|
the setting will apply to all OSDs, monitors or metadata daemons respectively.
|
|
|
|
Instance Settings
|
|
~~~~~~~~~~~~~~~~~
|
|
You may specify settings for particular instances of an daemon. You may specify an instance by entering its type, delimited by a period (.) and
|
|
by the instance ID. The instance ID for an OSD is always numeric, but it may be alphanumeric for monitors and metadata servers. ::
|
|
|
|
[osd.1]
|
|
; settings affect osd.1 only.
|
|
[mon.a1]
|
|
; settings affect mon.a1 only.
|
|
[mds.b2]
|
|
; settings affect mds.b2 only.
|
|
|
|
``host`` and ``addr`` Settings
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
The `Hardware Recommendations <../install/hardware_recommendations>`_ section provides some hardware guidelines for configuring the cluster.
|
|
It is possible for a single host to run multiple daemons. For example, a single host with multiple disks or RAIDs may run one ``ceph-osd``
|
|
for each disk or RAID. Additionally, a host may run both a ``ceph-mon`` and an ``ceph-osd`` daemon on the same host. Ideally, you will have
|
|
a host for a particular type of process. For example, one host may run ``ceph-osd`` daemons, another host may run a ``ceph-mds`` daemon,
|
|
and other hosts may run ``ceph-mon`` daemons.
|
|
|
|
Each host has a name identified by the ``host`` setting, and a network location (i.e., domain name or IP address) identified by the ``addr`` setting.
|
|
For example::
|
|
|
|
[osd.1]
|
|
host = hostNumber1
|
|
addr = 150.140.130.120:1100
|
|
[osd.2]
|
|
host = hostNumber1
|
|
addr = 150.140.130.120:1102
|
|
|
|
|
|
Monitor Configuration
|
|
~~~~~~~~~~~~~~~~~~~~~
|
|
Ceph typically deploys with 3 monitors to ensure high availability should a monitor instance crash. An odd number of monitors (3) ensures
|
|
that the Paxos algorithm can determine which version of the cluster map is the most accurate.
|
|
|
|
.. note:: You may deploy Ceph with a single monitor, but if the instance fails, the lack of a monitor may interrupt data service availability.
|
|
|
|
Ceph monitors typically listen on port ``6789``.
|
|
|
|
Example Configuration File
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
.. literalinclude:: demo-ceph.conf
|
|
:language: ini
|
|
|
|
|
|
Configuration File Deployment Options
|
|
-------------------------------------
|
|
The most common way to deploy the ``ceph.conf`` file in a cluster is to have all hosts share the same configuration file.
|
|
|
|
You may create a ``ceph.conf`` file for each host if you wish, or specify a particular ``ceph.conf`` file for a subset of hosts within the cluster. However, using per-host ``ceph.conf``
|
|
configuration files imposes a maintenance burden as the cluster grows. In a typical deployment, an administrator creates a ``ceph.conf`` file on the Administration host and then copies that
|
|
file to each OSD Cluster host.
|
|
|
|
The current cluster deployment script, ``mkcephfs``, does not make copies of the ``ceph.conf``. You must copy the file manually.
|
|
|
|
|
|
|
|
|