Ceph Storage 5 Operations Guide
Ceph Storage 5 Operations Guide
Operations Guide
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons
Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is
available at
http://creativecommons.org/licenses/by-sa/3.0/
. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must
provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift,
Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States
and other countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the
official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other
countries and are used with the OpenStack Foundation's permission. We are not affiliated with,
endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
Abstract
This document describes how to do operational tasks for Red Hat Ceph Storage. Red Hat is
committed to replacing problematic language in our code, documentation, and web properties. We
are beginning with these four terms: master, slave, blacklist, and whitelist. Because of the enormity
of this endeavor, these changes will be implemented gradually over several upcoming releases. For
more details, see our CTO Chris Wright's message
Table of Contents
Table of Contents
.CHAPTER
. . . . . . . . . . 1.. .INTRODUCTION
. . . . . . . . . . . . . . . . . TO
. . . .THE
. . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5. . . . . . . . . . . . .
1.1. USE OF THE CEPH ORCHESTRATOR 5
.CHAPTER
. . . . . . . . . . 2.
. . MANAGEMENT
. . . . . . . . . . . . . . . . .OF
. . . SERVICES
. . . . . . . . . . . USING
. . . . . . . .THE
. . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7. . . . . . . . . . . . .
2.1. CHECKING SERVICE STATUS 7
2.2. CHECKING DAEMON STATUS 8
2.3. PLACEMENT SPECIFICATION OF THE CEPH ORCHESTRATOR 9
2.4. DEPLOYING THE CEPH DAEMONS USING THE COMMAND LINE INTERFACE 9
2.5. DEPLOYING THE CEPH DAEMONS ON A SUBSET OF HOSTS USING THE COMMAND LINE INTERFACE
11
2.6. SERVICE SPECIFICATION OF THE CEPH ORCHESTRATOR 12
2.7. DEPLOYING THE CEPH DAEMONS USING THE SERVICE SPECIFICATION 13
.CHAPTER
. . . . . . . . . . 3.
. . MANAGEMENT
. . . . . . . . . . . . . . . . .OF
. . . HOSTS
. . . . . . . . USING
. . . . . . . .THE
. . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
..............
3.1. PREREQUISITES 16
3.2. ADDING HOSTS USING THE CEPH ORCHESTRATOR 16
3.3. SETTING THE INITIAL CRUSH LOCATION OF HOST 18
3.4. ADDING MULTIPLE HOSTS USING THE CEPH ORCHESTRATOR 19
3.5. LISTING HOSTS USING THE CEPH ORCHESTRATOR 21
3.6. ADDING LABELS TO HOSTS USING THE CEPH ORCHESTRATOR 22
3.7. REMOVING HOSTS USING THE CEPH ORCHESTRATOR 23
3.8. PLACING HOSTS IN THE MAINTENANCE MODE USING THE CEPH ORCHESTRATOR 24
.CHAPTER
. . . . . . . . . . 4.
. . .MANAGEMENT
. . . . . . . . . . . . . . . .OF
. . . MONITORS
. . . . . . . . . . . . .USING
. . . . . . .THE
. . . . .CEPH
. . . . . . ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26
..............
4.1. CEPH MONITORS 26
4.2. CONFIGURING MONITOR ELECTION STRATEGY 27
4.3. DEPLOYING THE CEPH MONITOR DAEMONS USING THE COMMAND LINE INTERFACE 27
4.4. DEPLOYING THE CEPH MONITOR DAEMONS USING THE SERVICE SPECIFICATION 30
4.5. DEPLOYING THE MONITOR DAEMONS ON SPECIFIC NETWORK USING THE CEPH ORCHESTRATOR
32
4.6. REMOVING THE MONITOR DAEMONS USING THE CEPH ORCHESTRATOR 33
4.7. REMOVING A CEPH MONITOR FROM AN UNHEALTHY STORAGE CLUSTER 34
. . . . . . . . . . . 5.
CHAPTER . . MANAGEMENT
. . . . . . . . . . . . . . . . .OF
. . . MANAGERS
. . . . . . . . . . . . . USING
. . . . . . . THE
. . . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
..............
5.1. PREREQUISITES 37
5.2. DEPLOYING THE MANAGER DAEMONS USING THE CEPH ORCHESTRATOR 37
5.3. REMOVING THE MANAGER DAEMONS USING THE CEPH ORCHESTRATOR 38
5.4. USING THE CEPH MANAGER BALANCER MODULE 39
5.5. USING THE CEPH MANAGER ALERTS MODULE 44
5.6. USING THE CEPH MANAGER CRASH MODULE 47
.CHAPTER
. . . . . . . . . . 6.
. . .MANAGEMENT
. . . . . . . . . . . . . . . .OF
. . . OSDS
. . . . . . .USING
. . . . . . . THE
. . . . .CEPH
. . . . . . ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
..............
6.1. CEPH OSDS 52
6.2. CEPH OSD NODE CONFIGURATION 52
6.3. AUTOMATICALLY TUNING OSD MEMORY 52
6.4. LISTING DEVICES FOR CEPH OSD DEPLOYMENT 54
6.5. ZAPPING DEVICES FOR CEPH OSD DEPLOYMENT 56
6.6. DEPLOYING CEPH OSDS ON ALL AVAILABLE DEVICES 57
6.7. DEPLOYING CEPH OSDS ON SPECIFIC DEVICES AND HOSTS 59
6.8. ADVANCED SERVICE SPECIFICATIONS AND FILTERS FOR DEPLOYING OSDS 61
6.9. DEPLOYING CEPH OSDS USING ADVANCED SERVICE SPECIFICATIONS 63
6.10. REMOVING THE OSD DAEMONS USING THE CEPH ORCHESTRATOR 69
6.11. REPLACING THE OSDS USING THE CEPH ORCHESTRATOR 71
1
Red Hat Ceph Storage 5 Operations Guide
.CHAPTER
. . . . . . . . . . 7.
. . MANAGEMENT
. . . . . . . . . . . . . . . . .OF
. . . MONITORING
. . . . . . . . . . . . . . .STACK
. . . . . . . .USING
. . . . . . .THE
. . . . .CEPH
. . . . . . ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
..............
7.1. DEPLOYING THE MONITORING STACK USING THE CEPH ORCHESTRATOR 87
7.2. REMOVING THE MONITORING STACK USING THE CEPH ORCHESTRATOR 90
. . . . . . . . . . . 8.
CHAPTER . . .BASIC
. . . . . . RED
. . . . . HAT
. . . . . CEPH
. . . . . . .STORAGE
. . . . . . . . . . .CLIENT
. . . . . . . .SETUP
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
..............
8.1. CONFIGURING FILE SETUP ON CLIENT MACHINES 92
8.2. SETTING-UP KEYRING ON CLIENT MACHINES 92
.CHAPTER
. . . . . . . . . . 9.
. . .MANAGEMENT
. . . . . . . . . . . . . . . .OF
. . . MDS
. . . . . .SERVICE
. . . . . . . . . USING
. . . . . . . .THE
. . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
..............
9.1. PREREQUISITES 94
9.2. DEPLOYING THE MDS SERVICE USING THE COMMAND LINE INTERFACE 94
9.3. DEPLOYING THE MDS SERVICE USING THE SERVICE SPECIFICATION 97
9.4. REMOVING THE MDS SERVICE USING THE CEPH ORCHESTRATOR 99
. . . . . . . . . . . 10.
CHAPTER . . . MANAGEMENT
. . . . . . . . . . . . . . . . .OF
. . . CEPH
. . . . . . .OBJECT
. . . . . . . . .GATEWAY
. . . . . . . . . . . USING
. . . . . . . .THE
. . . . CEPH
. . . . . . .ORCHESTRATOR
. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
...............
10.1. PREREQUISITES 101
10.2. DEPLOYING THE CEPH OBJECT GATEWAY USING THE COMMAND LINE INTERFACE 101
10.3. DEPLOYING THE CEPH OBJECT GATEWAY USING THE SERVICE SPECIFICATION 104
10.4. DEPLOYING A MULTI-SITE CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR 107
10.5. REMOVING THE CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR 112
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
AVAILABILITY) ..............
11.1. PREREQUISITES 114
11.2. CREATING THE NFS-GANESHA CLUSTER USING THE CEPH ORCHESTRATOR 114
11.3. DEPLOYING THE NFS-GANESHA GATEWAY USING THE COMMAND LINE INTERFACE 116
11.4. DEPLOYING THE NFS-GANESHA GATEWAY USING THE SERVICE SPECIFICATION 118
11.5. IMPLEMENTING HA FOR CEPHFS/NFS SERVICE (TECHNOLOGY PREVIEW) 120
11.6. UPGRADING A STANDALONE CEPHFS/NFS CLUSTER FOR HA 123
11.7. DEPLOYING HA FOR CEPHFS/NFS USING A SPECIFICATION FILE 126
11.8. UPDATING THE NFS-GANESHA CLUSTER USING THE CEPH ORCHESTRATOR 131
11.9. VIEWING THE NFS-GANESHA CLUSTER INFORMATION USING THE CEPH ORCHESTRATOR 133
11.10. FETCHING THE NFS-GANESHA CLUSTER LOGS USING THE CEPH ORCHESTRATOR 134
11.11. SETTING CUSTOM NFS-GANESHA CONFIGURATION USING THE CEPH ORCHESTRATOR 134
11.12. RESETTING CUSTOM NFS-GANESHA CONFIGURATION USING THE CEPH ORCHESTRATOR 138
11.13. DELETING THE NFS-GANESHA CLUSTER USING THE CEPH ORCHESTRATOR 140
11.14. REMOVING THE NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR 141
CHAPTER 12. MANAGEMENT OF ISCSI GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143
AVAILABILITY) ...............
12.1. PREREQUISITES 143
12.2. DEPLOYING THE ISCSI GATEWAY USING THE COMMAND LINE INTERFACE 143
12.3. DEPLOYING THE ISCSI GATEWAY USING THE SERVICE SPECIFICATION 144
12.4. REMOVING THE ISCSI GATEWAY USING THE CEPH ORCHESTRATOR 146
. . . . . . . . . . . 13.
CHAPTER . . . CONFIGURATION
. . . . . . . . . . . . . . . . . . .OF
. . . .SNMP
. . . . . . TRAPS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148
...............
13.1. SIMPLE NETWORK MANAGEMENT PROTOCOL 148
13.2. CONFIGURING SNMPTRAPD 149
2
Table of Contents
. . . . . . . . . . . 14.
CHAPTER . . . HANDLING
. . . . . . . . . . . .A
. . NODE
. . . . . . .FAILURE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
...............
14.1. PREREQUISITES 158
14.2. CONSIDERATIONS BEFORE ADDING OR REMOVING A NODE 158
14.3. PERFORMANCE CONSIDERATIONS 158
14.4. RECOMMENDATIONS FOR ADDING OR REMOVING NODES 159
14.5. ADDING A CEPH OSD NODE 160
14.6. REMOVING A CEPH OSD NODE 162
14.7. SIMULATING A NODE FAILURE 163
.CHAPTER
. . . . . . . . . . 15.
. . . HANDLING
. . . . . . . . . . . .A
. . DATA
. . . . . . .CENTER
. . . . . . . . .FAILURE
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
...............
15.1. PREREQUISITES 165
15.2. AVOIDING A DATA CENTER FAILURE 165
15.3. HANDLING A DATA CENTER FAILURE 165
3
Red Hat Ceph Storage 5 Operations Guide
4
CHAPTER 1. INTRODUCTION TO THE CEPH ORCHESTRATOR
Orchestrator CLI : These are common APIs used in Orchestrators and include a set of
commands that can be implemented. These APIs also provide a common command line
interface (CLI) to orchestrate ceph-mgr modules with external orchestration services. The
following are the nomenclature used with the Ceph Orchestrator:
Host : This is the host name of the physical host and not the pod name, DNS name,
container name, or host name inside the container.
Service type : This is the type of the service, such as nfs, mds, osd, mon, rgw, mgr, and iscsi.
Service : A functional service provided by a Ceph storage cluster such as monitors service,
managers service, OSD services, Ceph Object Gateway service, and NFS service.
Daemon : A specific instance of a service deployed by one or more hosts such as Ceph
Object Gateway services can have different Ceph Object Gateway daemons running in
three different hosts.
5
Red Hat Ceph Storage 5 Operations Guide
Cephadm Orchestrator - This is a Ceph Orchestrator module that does not rely on an external
tool such as Rook or Ansible, but rather manages nodes in a cluster by establishing an SSH
connection and issuing explicit management commands. This module is intended for day-one
and day-two operations.
Using the Cephadm Orchestrator is the recommended way of installing a Ceph storage cluster
without leveraging any deployment frameworks like Ansible. The idea is to provide the manager
daemon with access to an SSH configuration and key that is able to connect to all nodes in a
cluster to perform any management operations, like creating an inventory of storage devices,
deploying and replacing OSDs, or starting and stopping Ceph daemons. In addition, the
Cephadm Orchestrator will deploy container images managed by systemd in order to allow
independent upgrades of co-located services.
This orchestrator will also likely highlight a tool that encapsulates all necessary operations to
manage the deployment of container image based services on the current host, including a
command that bootstraps a minimal cluster running a Ceph Monitor and a Ceph Manager.
Rook Orchestrator - Rook is an orchestration tool that uses the Kubernetes Rook operator to
manage a Ceph storage cluster running inside a Kubernetes cluster. The rook module provides
integration between Ceph’s Orchestrator framework and Rook. Rook is an open source cloud-
native storage operator for Kubernetes.
Rook follows the “operator” model, in which a custom resource definition (CRD) object is
defined in Kubernetes to describe a Ceph storage cluster and its desired state, and a rook
operator daemon is running in a control loop that compares the current cluster state to desired
state and takes steps to make them converge. The main object describing Ceph’s desired state
is the Ceph storage cluster CRD, which includes information about which devices should be
consumed by OSDs, how many monitors should be running, and what version of Ceph should be
used. Rook defines several other CRDs to describe RBD pools, CephFS file systems, and so on.
The Rook Orchestrator module is the glue that runs in the ceph-mgr daemon and implements
the Ceph orchestration API by making changes to the Ceph storage cluster in Kubernetes that
describe desired cluster state. A Rook cluster’s ceph-mgr daemon is running as a Kubernetes
pod, and hence, the rook module can connect to the Kubernetes API without any explicit
configuration.
6
CHAPTER 2. MANAGEMENT OF SERVICES USING THE CEPH ORCHESTRATOR
Deploying the Ceph daemons on a subset of hosts using the command line interface .
NOTE
If the services are applied with the ceph orch apply command while bootstrapping,
changing the service specification file is complicated. Instead, you can use the --export
option with the ceph orch ls command to export the running specification, update the
yaml file, and re-apply the service.
Prerequisites
Procedure
Syntax
7
Red Hat Ceph Storage 5 Operations Guide
Example
Syntax
Example
Example
[ceph: root@host01 /]# ceph orch ls --service-type mgr --export > mgr.yaml
[ceph: root@host01 /]# ceph orch ls --export > cluster.yaml
This exports the file in the .yaml file format. This file can be used with the ceph orch apply -i
command for retrieving the service specification of a single service.
You can check the following status of the daemons of the Red Hat Ceph Storage cluster using the ceph
orch ps command:
Prerequisites
Procedure
Syntax
8
CHAPTER 2. MANAGEMENT OF SERVICES USING THE CEPH ORCHESTRATOR
Example
Syntax
Example
There are two ways of deploying the services using the placement specification:
Using the placement specification directly in the command line interface. For example, if you
want to deploy three monitors on the hosts, running the following command deploys three
monitors on host01, host02, and host03.
Example
[ceph: root@host01 /]# ceph orch apply mon --placement="3 host01 host02 host03"
Using the placement specification in the YAML file. For example, if you want to deploy node-
exporter on all the hosts, then you can specify the following in the yaml file.
Example
service_type: node-exporter
placement:
host_pattern: '*'
Prerequisites
9
Red Hat Ceph Storage 5 Operations Guide
Prerequisites
Procedure
Example
2. Use one of the following methods to deploy the daemons on the hosts:
Syntax
Example
[ceph: root@host01 /]# ceph orch apply mon --placement="3 host01 host02 host03"
Method 2: Add the labels to the hosts and then deploy the daemons using the labels:
Syntax
Example
[ceph: root@host01 /]# ceph orch host label add host01 mon
Syntax
Example
Method 3: Add the labels to the hosts and deploy using the --placement argument:
10
CHAPTER 2. MANAGEMENT OF SERVICES USING THE CEPH ORCHESTRATOR
Syntax
Example
[ceph: root@host01 /]# ceph orch host label add host01 mon
Syntax
Example
Verification
Example
Syntax
Example
Additional Resources
See the Adding hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
Prerequisites
11
Red Hat Ceph Storage 5 Operations Guide
Procedure
Example
2. List the hosts on which you want to deploy the Ceph daemons:
Example
Syntax
Example
In this example, the mgr daemons are deployed only on two hosts.
Verification
Example
Additional Resources
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
Example
12
CHAPTER 2. MANAGEMENT OF SERVICES USING THE CEPH ORCHESTRATOR
service_type: mon
placement:
host_pattern: "mon*"
---
service_type: mgr
placement:
host_pattern: "mgr*"
---
service_type: osd
service_id: default_drive_group
placement:
host_pattern: "osd*"
data_devices:
all: true
The following list are the parameters where the properties of a service specification are defined as
follows:
Ceph services like mon, crash, mds, mgr, osd, rbd, or rbd-mirror.
placement: This is used to define where and how to deploy the daemons.
unmanaged: If set to true, the Orchestrator will neither deploy nor remove any daemon
associated with this service.
Prerequisites
Procedure
13
Red Hat Ceph Storage 5 Operations Guide
Example
Syntax
service_type: SERVICE_NAME
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
Example
service_type: mon
placement:
hosts:
- host01
- host02
- host03
Syntax
service_type: SERVICE_NAME
placement:
label: "LABEL_1"
Example
service_type: mon
placement:
label: "mon"
3. Optional: You can also use extra container arguments in the service specification files such as
CPUs, CA certificates, and other files while deploying services:
Example
extra_container_args:
- "-v"
- "/etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro"
- "--security-opt"
- "label=disable"
- "cpus=2"
14
CHAPTER 2. MANAGEMENT OF SERVICES USING THE CEPH ORCHESTRATOR
Example
Example
Syntax
Example
Verification
Example
Syntax
Example
Additional Resources
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
15
Red Hat Ceph Storage 5 Operations Guide
You can also add labels to hosts. Labels are free-form and have no specific meanings. Each host can
have multiple labels. For example, apply the mon label to all hosts that have monitor daemons deployed,
mgr for all hosts with manager daemons deployed, rgw for Ceph object gateways, and so on.
Labeling all the hosts in the storage cluster helps to simplify system management tasks by allowing you
to quickly identify the daemons running on each host. In addition, you can use the Ceph Orchestrator or
a YAML file to deploy or remove daemons on hosts that have specific host labels.
3.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
Prerequisites
Ansible user with sudo and passwordless ssh access to all nodes in the storage cluster.
Procedure
1. From the Ceph administration node, log into the Cephadm shell:
16
CHAPTER 3. MANAGEMENT OF HOSTS USING THE CEPH ORCHESTRATOR
Example
Syntax
Example
3. Copy Ceph cluster’s public SSH keys to the root user’s authorized_keys file on the new host:
Syntax
Example
4. From the Ansible administration node, add the new host to the Ansible inventory file. The
default location for the file is /usr/share/cephadm-ansible/hosts. The following example shows
the structure of a typical inventory file:
Example
host01
host02
host03
[admin]
host00
NOTE
If you have previously added the new host to the Ansible inventory file and run
the preflight playbook on the host, skip to step 6.
Syntax
Example
17
Red Hat Ceph Storage 5 Operations Guide
The preflight playbook installs podman, lvm2, chronyd, and cephadm on the new host. After
installation is complete, cephadm resides in the /usr/sbin/ directory.
6. From the Ceph administration node, log into the Cephadm shell:
Example
Syntax
The --label option is optional and this adds the labels when adding the hosts. You can add
multiple labels to the host.
Example
[ceph: root@host01 /]# ceph orch host add host02 10.10.128.70 --labels=mon,mgr
Verification
Example
Additional Resources
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
For more information about the cephadm-preflight playbook, see Running the preflight
playbook section in the Red Hat Ceph Storage Installation Guide.
See the Registering Red Hat Ceph Storage nodes to the CDN and attaching subscriptions
section in the Red Hat Ceph Storage Installation Guide.
See the Creating an Ansible user with sudo access section in the Red Hat Ceph Storage
Installation Guide.
18
CHAPTER 3. MANAGEMENT OF HOSTS USING THE CEPH ORCHESTRATOR
NOTE
The location attribute only affects the initial CRUSH location. Subsequent changes of
the location property is ignored. Also, removing a host does not remove any CRUSH
buckets.
Prerequisites
Procedure
Example
service_type: host
hostname: host01
addr: 192.168.0.11
location:
rack: rack1
Example
Example
Syntax
Example
Additional Resources
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
You can use the Ceph Orchestrator to add multiple hosts to a Red Hat Ceph Storage cluster at the
19
Red Hat Ceph Storage 5 Operations Guide
You can use the Ceph Orchestrator to add multiple hosts to a Red Hat Ceph Storage cluster at the
same time using the service specification in YAML file format.
Prerequisites
Procedure
Example
Example
service_type: host
addr: host01
hostname: host01
labels:
- mon
- osd
- mgr
---
service_type: host
addr: host02
hostname: host02
labels:
- mon
- osd
- mgr
---
service_type: host
addr: host03
hostname: host03
labels:
- mon
- osd
Example
Example
20
CHAPTER 3. MANAGEMENT OF HOSTS USING THE CEPH ORCHESTRATOR
Syntax
Example
Verification
Example
Additional Resources
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide.
NOTE
The STATUS of the hosts is blank, in the output of the ceph orch host ls command.
Prerequisites
Procedure
Example
Example
21
Red Hat Ceph Storage 5 Operations Guide
You will see that the STATUS of the hosts is blank which is expected.
You can also add the following host labels that have special meaning to cephadm and they begin with _:
_no_schedule: This label prevents cephadm from scheduling or deploying daemons on the
host. If it is added to an existing host that already contains Ceph daemons, it causes cephadm
to move those daemons elsewhere, except OSDs which are not removed automatically. When a
host is added with the _no_schedule label, no daemons are deployed on it. When the daemons
are drained before the host is removed, the _no_schedule label is set on that host.
_no_autotune_memory: This label does not autotune memory on the host. It prevents the
daemon memory from being tuned even when the osd_memory_target_autotune option or
other similar options are enabled for one or more daemons on that host.
_admin: By default, the _admin label is applied to the bootstrapped host in the storage cluster
and the client.admin key is set to be distributed to that host with the ceph orch client-keyring
{ls|set|rm} function. Adding this label to additional hosts normally causes cephadm to deploy
configuration and keyring files in /etc/ceph directory.
Prerequisites
Procedure
Example
Syntax
Example
[ceph: root@host01 /]# ceph orch host label add host02 mon
Verification
Example
22
CHAPTER 3. MANAGEMENT OF HOSTS USING THE CEPH ORCHESTRATOR
IMPORTANT
If you are removing the bootstrap host, be sure to copy the admin keyring and the
configuration file to another host in the storage cluster before you remove the host.
Prerequisites
Procedure
Example
Example
Syntax
Example
The _no_schedule label is automatically applied to the host which blocks deployment.
Example
23
Red Hat Ceph Storage 5 Operations Guide
Example
When no placement groups (PG) are left on the OSD, the OSD is decommissioned and removed
from the storage cluster.
5. Check if all the daemons are removed from the storage cluster:
Syntax
Example
Syntax
Example
Additional Resources
See the Adding hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide for more information.
See the Listing hosts using the Ceph Orchestrator section in the Red Hat Ceph Storage
Operations Guide for more information.
The orchestrator adopts the following workflow when the host is placed in maintenance:
1. Confirms the removal of hosts does not impact data availability by running the orch host ok-to-
stop command.
2. If the host has Ceph OSD daemons, it applies noout to the host subtree to prevent data
migration from triggering during the planned maintenance slot.
24
CHAPTER 3. MANAGEMENT OF HOSTS USING THE CEPH ORCHESTRATOR
4. Disables the ceph target on the host, to prevent a reboot from automatically starting Ceph
services.
Prerequisites
Procedure
Example
2. You can either place the host in maintenance mode or place it out of the maintenance mode:
Syntax
Example
[ceph: root@host01 /]# ceph orch host maintenance enter host02 --force
The --force flag allows the user to bypass warnings, but not alerts.
Syntax
Example
Verification
Example
25
Red Hat Ceph Storage 5 Operations Guide
By default, a typical Red Hat Ceph Storage cluster has three or five monitor daemons deployed on
different hosts.
Red Hat recommends deploying five monitors if there are five or more nodes in a cluster.
Ceph deploys monitor daemons automatically as the cluster grows, and scales back monitor daemons
automatically as the cluster shrinks. The smooth execution of this automatic growing and shrinking
depends upon proper subnet configuration.
If your monitor nodes or your entire cluster are located on a single subnet, then Cephadm automatically
adds up to five monitor daemons as you add new hosts to the cluster. Cephadm automatically
configures the monitor daemons on the new hosts. The new hosts reside on the same subnet as the
bootstrapped host in the storage cluster.
Cephadm can also deploy and scale monitors to correspond to changes in the size of the storage
cluster.
Ceph Monitors use a variation of the Paxos protocol to establish consensus about maps and other
critical information across the storage cluster. Due to the nature of Paxos, Ceph requires a majority of
monitors running to establish a quorum, thus establishing consensus.
IMPORTANT
Red Hat requires at least three monitors on separate hosts to receive support for a
production cluster.
Red Hat recommends deploying an odd number of monitors. An odd number of Ceph Monitors has a
higher resiliency to failures than an even number of monitors. For example, to maintain a quorum on a
two-monitor deployment, Ceph cannot tolerate any failures; with three monitors, one failure; with four
monitors, one failure; with five monitors, two failures. This is why an odd number is advisable.
Summarizing, Ceph needs a majority of monitors to be running and to be able to communicate with each
other, two out of three, three out of four, and so on.
For an initial deployment of a multi-node Ceph storage cluster, Red Hat requires three monitors,
increasing the number two at a time if a valid need for more than three monitors exists.
Since Ceph Monitors are lightweight, it is possible to run them on the same host as OpenStack nodes.
However, Red Hat recommends running monitors on separate hosts.
IMPORTANT
26
CHAPTER 4. MANAGEMENT OF MONITORS USING THE CEPH ORCHESTRATOR
IMPORTANT
When you remove monitors from a storage cluster, consider that Ceph Monitors use the Paxos protocol
to establish a consensus about the master storage cluster map. You must have a sufficient number of
Ceph Monitors to establish a quorum.
Additional Resources
See the Red Hat Ceph Storage Supported configurations Knowledgebase article for all the
supported Ceph configurations.
1. classic - This is the default mode in which the lowest ranked monitor is voted based on the
elector module between the two sites.
2. disallow - This mode lets you mark monitors as disallowed, in which case they will participate in
the quorum and serve clients, but cannot be an elected leader. This lets you add monitors to a
list of disallowed leaders. If a monitor is in the disallowed list, it will always defer to another
monitor.
Red Hat recommends you to stay in the classic mode unless you require features in the other modes.
Before constructing the cluster, change the election_strategy to classic, disallow, or connectivity in
the following command:
Syntax
NOTE
27
Red Hat Ceph Storage 5 Operations Guide
NOTE
If you are using a cluster in stretched mode, before adding the Ceph Monitor, add the
crush_location to the monitor manually:
Syntax
Example
Prerequisites
Procedure
Example
Method 1
NOTE
Red Hat recommends that you use the --placement option to deploy on specific
hosts.
Syntax
Example
[ceph: root@host01 /]# ceph orch apply mon --placement="host01 host02 host03"
NOTE
28
CHAPTER 4. MANAGEMENT OF MONITORS USING THE CEPH ORCHESTRATOR
NOTE
Be sure to include the bootstrap node as the first node in the command.
IMPORTANT
Do not add the monitors individually as ceph orch apply mon supersedes and
will not add the monitors to all the hosts. For example, if you run the following
commands, then the first command creates a monitor on host01. Then the
second command supersedes the monitor on host1 and creates a monitor on
host02. Then the third command supersedes the monitor on host02 and creates
a monitor on host03. Eventually. there is a monitor only on the third host.
Method 2
Use placement specification to deploy specific number of monitors on specific hosts with labels:
Syntax
Example
[ceph: root@host01 /]# ceph orch host label add host01 mon
Syntax
Example
Method 3
Syntax
29
Red Hat Ceph Storage 5 Operations Guide
Example
[ceph: root@host01 /]# ceph orch apply mon --placement="3 host01 host02 host03"
Method 4
Syntax
Example
Verification
Example
Syntax
Example
Prerequisites
Procedure
Example
30
CHAPTER 4. MANAGEMENT OF MONITORS USING THE CEPH ORCHESTRATOR
Syntax
service_type: mon
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
Example
service_type: mon
placement:
hosts:
- host01
- host02
Example
Example
Syntax
Example
Verification
Example
31
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Prerequisites
Procedure
Example
Example
Syntax
Example
Verification
Example
32
CHAPTER 4. MANAGEMENT OF MONITORS USING THE CEPH ORCHESTRATOR
Syntax
Example
Prerequisites
Procedure
Example
2. Run the ceph orch apply command to deploy the required monitor daemons:
Syntax
If you want to remove monitor daemons from host02, then you can redeploy the monitors on
other hosts.
Example
Verification
Syntax
33
Red Hat Ceph Storage 5 Operations Guide
Example
Additional Resources
See Deploying the Ceph monitor daemons using the command line interface section in the
Red Hat Ceph Storage Operations Guide for more information.
See Deploying the Ceph monitor daemons using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Procedure
Syntax
ssh root@MONITOR_ID
Example
2. Log in to each Ceph Monitor host and stop all the Ceph Monitors:
Syntax
Example
3. Set up the environment suitable for extended daemon maintenance and to run the daemon
34
CHAPTER 4. MANAGEMENT OF MONITORS USING THE CEPH ORCHESTRATOR
3. Set up the environment suitable for extended daemon maintenance and to run the daemon
interactively:
Syntax
Example
Syntax
Example
Syntax
Example
6. Inject the surviving monitor map with the removed monitor(s) into the surviving Ceph Monitor:
Syntax
Example
Syntax
Example
35
Red Hat Ceph Storage 5 Operations Guide
Example
36
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
5.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
NOTE
Ensure your deployment has at least three Ceph Managers in each deployment.
Prerequisites
Procedure
Example
Method 1
37
Red Hat Ceph Storage 5 Operations Guide
NOTE
Red Hat recommends that you use the --placement option to deploy on specific
hosts.
Syntax
Example
[ceph: root@host01 /]# ceph orch apply mgr --placement="host01 host02 host03"
Method 2
Syntax
Example
Verification
Example
Syntax
Example
Prerequisites
38
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
Procedure
Example
2. Run the ceph orch apply command to redeploy the required manager daemons:
Syntax
If you want to remove manager daemons from host02, then you can redeploy the manager
daemons on other hosts.
Example
[ceph: root@host01 /]# ceph orch apply mgr "2 host01 host03"
Verification
Syntax
Example
Additional Resources
See Deploying the manager daemons using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
Currently the balancer module cannot be disabled. It can only be turned off to customize the
39
Red Hat Ceph Storage 5 Operations Guide
Currently the balancer module cannot be disabled. It can only be turned off to customize the
configuration.
Modes
There are currently two supported balancer modes:
crush-compat: The CRUSH compat mode uses the compat weight-set feature, introduced in
Ceph Luminous, to manage an alternative set of weights for devices in the CRUSH hierarchy.
The normal weights should remain set to the size of the device to reflect the target amount of
data that you want to store on the device. The balancer then optimizes the weight-set values,
adjusting them up or down in small increments in order to achieve a distribution that matches
the target distribution as closely as possible. Because PG placement is a pseudorandom
process, there is a natural amount of variation in the placement; by optimizing the weights, the
balancer counter-acts that natural variation.
This mode is fully backwards compatible with older clients. When an OSDMap and CRUSH map
are shared with older clients, the balancer presents the optimized weights as the real weights.
The primary restriction of this mode is that the balancer cannot handle multiple CRUSH
hierarchies with different placement rules if the subtrees of the hierarchy share any OSDs.
Because this configuration makes managing space utilization on the shared OSDs difficult, it is
generally not recommended. As such, this restriction is normally not an issue.
upmap: Starting with Luminous, the OSDMap can store explicit mappings for individual OSDs as
exceptions to the normal CRUSH placement calculation. These upmap entries provide fine-
grained control over the PG mapping. This CRUSH mode will optimize the placement of
individual PGs in order to achieve a balanced distribution. In most cases, this distribution is
"perfect", with an equal number of PGs on each OSD +/-1 PG, as they might not divide evenly.
IMPORTANT
To allow use of this feature, you must tell the cluster that it only needs to support
luminous or later clients with the following command:
This command fails if any pre-luminous clients or daemons are connected to the
monitors.
Due to a known issue, kernel CephFS clients report themselves as jewel clients.
To work around this issue, use the --yes-i-really-mean-it flag:
Prerequisites
Procedure
40
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
Example
Example
Example
or
Example
Status
The current status of the balancer can be checked at any time with:
Example
Automatic balancing
By default, when turning on the balancer module, automatic balancing is used:
Example
Example
This will use the crush-compat mode, which is backward compatible with older clients and will make
small changes to the data distribution over time to ensure that OSDs are equally utilized.
Throttling
No adjustments will be made to the PG distribution if the cluster is degraded, for example, if an OSD has
failed and the system has not yet healed itself.
41
Red Hat Ceph Storage 5 Operations Guide
When the cluster is healthy, the balancer throttles its changes such that the percentage of PGs that are
misplaced, or need to be moved, is below a threshold of 5% by default. This percentage can be adjusted
using the target_max_misplaced_ratio setting. For example, to increase the threshold to 7%:
Example
Set the number of seconds to sleep in between runs of the automatic balancer:
Example
Example
Example
Restrict automatic balancing to this day of the week or later. Uses the same conventions as
crontab, 0 is Sunday, 1 is Monday, and so on:
Example
Restrict automatic balancing to this day of the week or earlier. This uses the same conventions
as crontab, 0 is Sunday, 1 is Monday, and so on:
Example
Define the pool IDs to which the automatic balancing is limited. The default for this is an empty
string, meaning all pools are balanced. The numeric pool IDs can be gotten with the ceph osd
pool ls detail command:
Example
Supervised optimization
The balancer operation is broken into a few distinct phases:
42
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
1. Building a plan.
2. Evaluating the quality of the data distribution, either for the current PG distribution, or the PG
distribution that would result after executing a plan.
Example
Syntax
Example
Example
Syntax
Example
Syntax
Example
43
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
To calculate the quality of the distribution that would result after executing a plan:
Syntax
Example
Syntax
Example
NOTE
NOTE
This module is not intended to be a robust monitoring solution. The fact that it is run as
part of the Ceph cluster itself is fundamentally limiting in that a failure of the ceph-mgr
daemon prevents alerts from being sent. This module can, however, be useful for
standalone clusters that exist in environments where existing monitoring infrastructure
does not exist.
44
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
Prerequisites
Procedure
Example
Example
Example
Syntax
45
Red Hat Ceph Storage 5 Operations Guide
Example
Syntax
Example
IMPORTANT
SSL is not supported in Red Hat Ceph Storage 5 cluster. Do not set the
smtp_ssl parameter while configuring alerts.
Syntax
Example
7. Optional: By default, SMTP From name is Ceph. To change that, set the smtp_from_name
parameter:
Syntax
Example
[ceph: root@host01 /]# ceph config set mgr mgr/alerts/smtp_from_name 'Ceph Cluster Test'
46
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
8. Optional: By default, the alerts module checks the storage cluster’s health every minute, and
sends a message when there is a change in the cluster health status. To change the frequency,
set the interval parameter:
Syntax
Example
Example
Additional Resources
See the Health messages of a Ceph cluster section in the Red Hat Ceph Storage
Troubleshooting Guide for more information on Ceph health messages.
By default, daemon crashdumps are dumped in /var/lib/ceph/crash. You can configure with the option
crash dir. Crash directories are named by time, date, and a randomly-generated UUID, and contain a
metadata file meta and a recent log file, with a crash_id that is the same.
You can use ceph-crash.service to submit these crash automatically and persist in the Ceph Monitors.
The ceph-crash.service watches watches the crashdump directory and uploads them with ceph crash
post.
The RECENT_CRASH heath message is one of the most common health messages in a Ceph cluster.
This health message means that one or more Ceph daemons has crashed recently, and the crash has not
yet been archived or acknowledged by the administrator. This might indicate a software bug, a hardware
problem like a failing disk, or some other problem. The option mgr/crash/warn_recent_interval controls
the time period of what recent means, which is two weeks by default. You can disable the warnings by
running the following command:
Example
The option mgr/crash/retain_interval controls the period for which you want to retain the crash reports
before they are automatically purged. The default for this option is one year.
Prerequisites
47
Red Hat Ceph Storage 5 Operations Guide
Procedure
Example
2. Save a crash dump: The metadata file is a JSON blob stored in the crash dir as meta. You can
invoke the ceph command -i - option, which reads from stdin.
Example
3. List the timestamp or the UUID crash IDs for all the new and archived crash info:
Example
4. List the timestamp or the UUID crash IDs for all the new crash information:
Example
5. List the timestamp or the UUID crash IDs for all the new crash information:
Example
48
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
Example
Syntax
Example
49
Red Hat Ceph Storage 5 Operations Guide
"process_name": "ceph-mon",
"stack_sig":
"957c21d558d0cba4cee9e8aaf9227b3b1b09738b8a4d2c9f4dc26d9233b0d511",
"timestamp": "2022-07-06T19:58:42.549073Z",
"utsname_hostname": "host02",
"utsname_machine": "x86_64",
"utsname_release": "4.18.0-240.15.1.el8_3.x86_64",
"utsname_sysname": "Linux",
"utsname_version": "#1 SMP Wed Jul 06 03:12:15 EDT 2022"
}
8. Remove saved crashes older than KEEP days: Here, KEEP must be an integer.
Syntax
Example
9. Archive a crash report so that it is no longer considered for the RECENT_CRASH health check
and does not appear in the crash ls-new output. It appears in the crash ls.
Syntax
Example
Example
Syntax
Example
Additional Resources
50
CHAPTER 5. MANAGEMENT OF MANAGERS USING THE CEPH ORCHESTRATOR
See the Health messages of a Ceph cluster section in the Red Hat Ceph Storage
Troubleshooting Guide for more information on Ceph health messages.
51
Red Hat Ceph Storage 5 Operations Guide
A Ceph OSD generally consists of one ceph-osd daemon for one storage drive and its associated
journal within a node. If a node has multiple storage drives, then map one ceph-osd daemon for each
drive.
Red Hat recommends checking the capacity of a cluster regularly to see if it is reaching the upper end of
its storage capacity. As a storage cluster reaches its near full ratio, add one or more OSDs to expand
the storage cluster’s capacity.
When you want to reduce the size of a Red Hat Ceph Storage cluster or replace the hardware, you can
also remove an OSD at runtime. If the node has multiple storage drives, you might also need to remove
one of the ceph-osd daemon for that drive. Generally, it’s a good idea to check the capacity of the
storage cluster to see if you are reaching the upper end of its capacity. Ensure that when you remove an
OSD that the storage cluster is not at its near full ratio.
IMPORTANT
Do not let a storage cluster reach the full ratio before adding an OSD. OSD failures that
occur after the storage cluster reaches the near full ratio can cause the storage cluster
to exceed the full ratio. Ceph blocks write access to protect the data until you resolve
the storage capacity issues. Do not remove OSDs without considering the impact on the
full ratio first.
If you add drives of dissimilar size, adjust their weights accordingly. When you add the OSD to the
CRUSH map, consider the weight for the new OSD. Hard drive capacity grows approximately 40% per
year, so newer OSD nodes might have larger hard drives than older nodes in the storage cluster, that is,
they might have a greater weight.
Before doing a new installation, review the Requirements for Installing Red Hat Ceph Storage chapter in
the Installation Guide.
If Red Hat Ceph Storage is deployed on dedicated nodes that do not share memory with other services,
52
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
If Red Hat Ceph Storage is deployed on dedicated nodes that do not share memory with other services,
cephadm automatically adjusts the per-OSD consumption based on the total amount of RAM and the
number of deployed OSDs.
IMPORTANT
Syntax
Once the storage cluster is upgraded to Red Hat Ceph Storage 5.0, for cluster maintenance such as
addition of OSDs or replacement of OSDs, Red Hat recommends setting
osd_memory_target_autotune parameter to true to autotune osd memory as per system memory.
By default, autotune_memory_target_ratio is 0.2 for hyper-converged infrastructure and 0.7 for other
environments.
Syntax
Alertmanager: 1 GB
Grafana: 1 GB
Ceph Manager: 4 GB
Ceph Monitor: 2 GB
Node-exporter: 1 GB
Prometheus: 1 GB
For example, if a node has 24 OSDs and has 251 GB RAM space, then osd_memory_target is
7860684936.
The final targets are reflected in the configuration database with options. You can view the limits and the
current memory consumed by each daemon from the ceph orch ps output under MEM LIMIT column.
NOTE
53
Red Hat Ceph Storage 5 Operations Guide
NOTE
In Red Hat Ceph Storage 5.1, the default setting of osd_memory_target_autotune true
is unsuitable for hyperconverged infrastructures where compute and Ceph storage
services are colocated. In a hyperconverged infrastructure, the
autotune_memory_target_ratio can be set to 0.2 to reduce the memory consumption of
Ceph.
Example
You can manually set a specific memory target for an OSD in the storage cluster.
Example
You can manually set a specific memory target for an OSD host in the storage cluster.
Syntax
Example
NOTE
Syntax
You can exclude an OSD from memory autotuning by disabling the autotune option and setting a
specific memory target.
Example
You can check the list of available devices before deploying OSDs using the Ceph Orchestrator. The
54
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
You can check the list of available devices before deploying OSDs using the Ceph Orchestrator. The
commands are used to print a list of devices discoverable by Cephadm. A storage device is considered
available if all of the following conditions are met:
NOTE
Prerequisites
Procedure
Example
Syntax
Example
Using the --wide option provides all details relating to the device, including any reasons that the
device might not be eligible for use as an OSD. This option does not support NVMe devices.
3. Optional: To enable Health, Ident, and Fault fields in the output of ceph orch device ls, run the
following commands:
NOTE
55
Red Hat Ceph Storage 5 Operations Guide
NOTE
a. As root user outside the Cephadm shell, check your hardware’s compatibility with
libstoragemgmt library to avoid unplanned interruption to services:
Example
In the output, you see the Health Status as Good with the respective SCSI VPD 0x83 ID.
NOTE
If you do not get this information, then enabling the fields might cause erratic
behavior of devices.
b. Log back into the Cephadm shell and enable libstoragemgmt support:
Example
Once this is enabled, ceph orch device ls gives the output of Health field as Good.
Verification
Example
Prerequisites
Procedure
Example
56
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Example
Syntax
Example
Syntax
Example
[ceph: root@host01 /]# ceph orch device zap host02 /dev/sdb --force
Verification
Example
Additional Resources
See the Listing devices for Ceph OSD deployment section in the Red Hat Ceph Storage
Operations Guide for more information.
NOTE
57
Red Hat Ceph Storage 5 Operations Guide
Prerequisites
Procedure
Example
Syntax
Example
Example
The effect of ceph orch apply is persistent which means that the Orchestrator automatically
finds the device, adds it to the cluster, and creates new OSDs. This occurs under the following
conditions:
Example
Setting the parameter --unmanaged to true disables the creation of OSDs and also there is
no change if you apply a new OSD service.
NOTE
58
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
NOTE
The command ceph orch daemon add creates new OSDs, but does not add
an OSD service.
Verification
Example
Example
Additional Resources
See the Listing devices for Ceph OSD deployment section in the Red Hat Ceph Storage
Operations Guide.
Prerequisites
Procedure
Example
Syntax
Example
59
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
To deploy ODSs on a raw physical device, without an LVM layer, use the --method raw option.
Syntax
Example
[ceph: root@host01 /]# ceph orch daemon add osd --method raw host02:/dev/sdb
NOTE
If you have separate DB or WAL devices, the ratio of block to DB or WAL devices
MUST be 1:1.
Verification
Example
Example
Syntax
Example
Additional Resources
60
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Additional Resources
See the Listing devices for Ceph OSD deployment section in the Red Hat Ceph Storage
Operations Guide.
service_id: Use the service name or identification you prefer. A set of OSDs is created using the
specification file. This name is used to manage all the OSDs together and represent an
Orchestrator service.
placement: This is used to define the hosts on which the OSDs needs to be deployed.
You can use on the following options:
label: 'osd_host' - A label used in the hosts where OSD needs to be deployed.
hosts: 'host01', 'host02' - An explicit list of host names where OSDs needs to be deployed.
selection of devices: The devices where OSDs are created. This allows to separate an OSD
from different devices. You can create only BlueStore OSDs which have three components:
data_devices: Define the devices to deploy OSD. In this case, OSDs are created in a collocated
schema. You can use filters to select devices and folders.
wal_devices: Define the devices used for WAL OSDs. You can use filters to select devices and
folders.
db_devices: Define the devices for DB OSDs. You can use the filters to select devices and
folders.
encrypted: An optional parameter to encrypt information on the OSD which can set to either
True or False
unmanaged: An optional parameter, set to False by default. You can set it to True if you do not
want the Orchestrator to manage the OSD service.
61
Red Hat Ceph Storage 5 Operations Guide
osds_per_device: User-defined value for deploying more than one OSD per device.
method: An optional parameter to specify if an OSD is created with an LVM layer or not. Set to
raw if you want to create OSDs on raw physical devices that do not include an LVM layer. If you
have separate DB or WAL devices, the ratio of block to DB or WAL devices MUST be 1:1.
Size Specification Includes disks less than size: :HIGH size: ':10G'
or equal to in size
62
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
NOTE
To create an OSD with non-collocated components in the same host, you have to specify
the different type of devices used and the devices should be on the same host.
NOTE
Additional Resources
See the Deploying Ceph OSDs using the advanced specifications section in the Red Hat
Ceph Storage Operations Guide.
For more information on libstoragemgmt, see the Listing devices for Ceph OSD deployment
section in the Red Hat Ceph Storage Operations Guide.
You can deploy the OSD for each device and each host by defining a yaml file or a json file.
Prerequisites
Procedure
Example
Syntax
service_type: osd
service_id: SERVICE_ID
placement:
host_pattern: '*' # optional
data_devices: # optional
model: DISK_MODEL_NAME # optional
paths:
- /DEVICE_PATH
osds_per_device: NUMBER_OF_DEVICES # optional
db_devices: # optional
size: # optional
all: true # optional
paths:
- /DEVICE_PATH
encrypted: true
a. Simple scenarios: In these cases, all the nodes have the same set-up.
Example
service_type: osd
service_id: osd_spec_default
placement:
host_pattern: '*'
data_devices:
all: true
paths:
- /dev/sdb
encrypted: true
Example
service_type: osd
service_id: osd_spec_default
placement:
host_pattern: '*'
data_devices:
size: '80G'
db_devices:
size: '40G:'
paths:
- /dev/sdc
b. Simple scenario: In this case, all the nodes have the same setup with OSD devices created in
raw mode, without an LVM layer.
Example
service_type: osd
service_id: all-available-devices
encrypted: "true"
method: raw
64
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
placement:
host_pattern: "*"
data_devices:
all: "true"
c. Advanced scenario: This would create the desired layout by using all HDDs as data_devices
with two SSD assigned as dedicated DB or WAL devices. The remaining SSDs are
data_devices that have the NVMEs vendors assigned as dedicated DB or WAL devices.
Example
service_type: osd
service_id: osd_spec_hdd
placement:
host_pattern: '*'
data_devices:
rotational: 0
db_devices:
model: Model-name
limit: 2
---
service_type: osd
service_id: osd_spec_ssd
placement:
host_pattern: '*'
data_devices:
model: Model-name
db_devices:
vendor: Vendor-name
d. Advanced scenario with non-uniform nodes: This applies different OSD specs to different
hosts depending on the host_pattern key.
Example
service_type: osd
service_id: osd_spec_node_one_to_five
placement:
host_pattern: 'node[1-5]'
data_devices:
rotational: 1
db_devices:
rotational: 0
---
service_type: osd
service_id: osd_spec_six_to_ten
placement:
host_pattern: 'node[6-10]'
data_devices:
model: Model-name
db_devices:
model: Model-name
65
Red Hat Ceph Storage 5 Operations Guide
Example
service_type: osd
service_id: osd_using_paths
placement:
hosts:
- host01
- host02
data_devices:
paths:
- /dev/sdb
db_devices:
paths:
- /dev/sdc
wal_devices:
paths:
- /dev/sdd
Example
service_type: osd
service_id: multiple_osds
placement:
hosts:
- host01
- host02
osds_per_device: 4
data_devices:
paths:
- /dev/sdb
g. For pre-created volumes, edit the osd_spec.yaml file to include the following details:
Syntax
service_type: osd
service_id: SERVICE_ID
placement:
hosts:
- HOSTNAME
data_devices: # optional
model: DISK_MODEL_NAME # optional
paths:
- /DEVICE_PATH
db_devices: # optional
size: # optional
all: true # optional
paths:
- /DEVICE_PATH
Example
66
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
service_type: osd
service_id: osd_spec
placement:
hosts:
- machine1
data_devices:
paths:
- /dev/vg_hdd/lv_hdd
db_devices:
paths:
- /dev/vg_nvme/lv_nvme
h. For OSDs by ID, edit the osd_spec.yaml file to include the following details:
NOTE
This configuration is applicable for Red Hat Ceph Storage 5.3z1 and later
releases. For earlier releases, use pre-created lvm.
Syntax
service_type: osd
service_id: OSD_BY_ID_HOSTNAME
placement:
hosts:
- HOSTNAME
data_devices: # optional
model: DISK_MODEL_NAME # optional
paths:
- /DEVICE_PATH
db_devices: # optional
size: # optional
all: true # optional
paths:
- /DEVICE_PATH
Example
service_type: osd
service_id: osd_by_id_host01
placement:
hosts:
- host01
data_devices:
paths:
- /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-0-0-5
db_devices:
paths:
- /dev/disk/by-id/nvme-nvme.1b36-31323334-51454d55204e564d65204374726c-
00000001
i. For OSDs by path, edit the osd_spec.yaml file to include the following details:
NOTE
67
Red Hat Ceph Storage 5 Operations Guide
NOTE
This configuration is applicable for Red Hat Ceph Storage 5.3z1 and later
releases. For earlier releases, use pre-created lvm.
Syntax
service_type: osd
service_id: OSD_BY_PATH_HOSTNAME
placement:
hosts:
- HOSTNAME
data_devices: # optional
model: DISK_MODEL_NAME # optional
paths:
- /DEVICE_PATH
db_devices: # optional
size: # optional
all: true # optional
paths:
- /DEVICE_PATH
Example
service_type: osd
service_id: osd_by_path_host01
placement:
hosts:
- host01
data_devices:
paths:
- /dev/disk/by-path/pci-0000:0d:00.0-scsi-0:0:0:4
db_devices:
paths:
- /dev/disk/by-path/pci-0000:00:02.0-nvme-1
Example
Example
NOTE
This step gives a preview of the deployment, without deploying the daemons.
68
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Example
Syntax
Example
Verification
Example
Example
Additional Resources
See the Advanced service specifications and filters for deploying OSDs section in the Red Hat
Ceph Storage Operations Guide.
The --zap option removed the volume groups, logical volumes, and the LVM metadata.
NOTE
69
Red Hat Ceph Storage 5 Operations Guide
NOTE
After removing OSDs, if the drives the OSDs were deployed on once again become
available, cephadm` might automatically try to deploy more OSDs on these drives if they
match an existing drivegroup specification. If you deployed the OSDs you are removing
with a spec and do not want any new OSDs deployed on the drives after removal, modify
the drivegroup specification before removal. While deploying OSDs, if you have used --
all-available-devices option, set unmanaged: true to stop it from picking up new drives
at all. For other deployments, modify the specification. See the Deploying Ceph OSDs
using advanced service specifications for more details.
Prerequisites
Ceph Monitor, Ceph Manager and Ceph OSD daemons are deployed on the storage cluster.
Procedure
Example
2. Check the device and the node from which the OSD has to be removed:
Example
Syntax
Example
NOTE
If you remove the OSD from the storage cluster without an option, such as --
replace, the device is removed from the storage cluster completely. If you want
to use the same device for deploying OSDs, you have to first zap the device
before adding it to the storage cluster.
4. Optional: To remove multiple OSDs from a specific node, run the following command:
Syntax
70
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Example
Example
When no PGs are left on the OSD, it is decommissioned and removed from the cluster.
Verification
Verify the details of the devices and the nodes from which the Ceph OSDs are removed:
Example
Additional Resources
See the Deploying Ceph OSDs on all available devices section in the Red Hat Ceph Storage
Operations Guide for more information.
See the Deploying Ceph OSDs on specific devices and hosts section in the Red Hat
Ceph Storage Operations Guide for more information.
See the Zapping devices for Ceph OSD deployment section in the Red Hat Ceph Storage
Operations Guide for more information on clearing space on devices.
You can replace the OSDs from the cluster using the --replace option.
NOTE
If you want to replace a single OSD, see Deploying Ceph OSDs on specific devices and
hosts. If you want to deploy OSDs on all available devices, see Deploying Ceph OSDs on
all available devices.
This option preserves the OSD ID using the ceph orch rm command. The OSD is not permanently
71
Red Hat Ceph Storage 5 Operations Guide
removed from the CRUSH hierarchy, but is assigned the destroyed flag. This flag is used to determine
the OSD IDs that can be reused in the next OSD deployment. The destroyed flag is used to determine
which OSD id is reused in the next OSD deployment.
If you use OSD specification for deployment, the OSD ID of the disk being replaced is automatically
assigned to the newly added disk as soon as it is inserted.
NOTE
After removing OSDs, if the drives the OSDs were deployed on once again become
available, cephadm` might automatically try to deploy more OSDs on these drives if they
match an existing drivegroup specification. If you deployed the OSDs you are removing
with a spec and do not want any new OSDs deployed on the drives after removal, modify
the drivegroup specification before removal. While deploying OSDs, if you have used --
all-available-devices option, set unmanaged: true to stop it from picking up new drives
at all. For other deployments, modify the specification. See the Deploying Ceph OSDs
using advanced service specifications for more details.
Prerequisites
Monitor, Manager, and OSD daemons are deployed on the storage cluster.
A new OSD that replaces the removed OSD must be created on the same host from which the
OSD was removed.
Procedure
Example
2. Ensure to dump and save a mapping of your OSD configurations for future references:
Example
72
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
path/pci-0000:03:00.0-scsi-0:1:0:2",
"device_paths": "sdd=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:2,sdk=/dev/disk/by-
path/pci-0000:03:00.0-scsi-0:1:0:2",
"device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdl=/dev/disk/by-
path/pci-0000:03:00.0-scsi-0:1:0:3",
"device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdj=/dev/disk/by-
path/pci-0000:03:00.0-scsi-0:1:0:3",
"device_paths": "sdc=/dev/disk/by-path/pci-0000:03:00.0-scsi-0:0:0:3,sdm=/dev/disk/by-
path/pci-0000:03:00.0-scsi-0:1:0:3",
[.. output omitted ..]
3. Check the device and the node from which the OSD has to be replaced:
Example
Syntax
The --force option can be used when there are ongoing operations on the storage cluster.
Example
Example
service_type: osd
service_id: osd
placement:
hosts:
- myhost
data_devices:
paths:
- /path/to/the/device
Example
Example
73
Red Hat Ceph Storage 5 Operations Guide
Example
[ceph: root@node /]# ceph orch device zap node.example.com /dev/sdi --force
zap successful for /dev/sdi on node.example.com
[ceph: root@node /]# ceph orch device zap node.example.com /dev/sdf --force
zap successful for /dev/sdf on node.example.com
Example
Example
Verification
Verify the details of the devices and the nodes from which the Ceph OSDs are replaced:
Example
You can see an OSD with the same id as the one you replaced running on the same host.
Verify that the db_device for the new deployed OSDs is the replaced db_device:
Example
74
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Additional Resources
See the Deploying Ceph OSDs on all available devices section in the Red Hat Ceph Storage
Operations Guide for more information.
See the Deploying Ceph OSDs on specific devices and hosts section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Failed OSD
Procedure
Example
Syntax
Example
Example
75
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Zapping: /dev/vg1/data-lv2
Closing encrypted path /dev/mapper/l4D6ql-Prji-IzH4-dfhF-xzuf-5ETl-jNRcXC
Running command: /usr/sbin/cryptsetup remove /dev/mapper/l4D6ql-Prji-IzH4-dfhF-xzuf-
5ETl-jNRcXC
Running command: /usr/bin/dd if=/dev/zero of=/dev/vg1/data-lv2 bs=1M count=10
conv=fsync
stderr: 10+0 records in
10+0 records out
stderr: 10485760 bytes (10 MB, 10 MiB) copied, 0.034742 s, 302 MB/s
Zapping successful for OSD: 8
76
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
Example
6. Recreate the OSD with a specification file corresponding to that specific OSD topology:
Example
Example
Example
Prerequisites
Failed OSD
Procedure
77
Red Hat Ceph Storage 5 Operations Guide
Example
Example
Example
[db] /dev/ceph-d7064874-66cb-4a77-a7c2-8aa0b0125c3c/osd-db-0dfe6eca-ba58-
438a-9510-d96e6814d853
78
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
[db] /dev/ceph-d7064874-66cb-4a77-a7c2-8aa0b0125c3c/osd-db-26b70c30-8817-
45de-8843-4c0932ad2429
4. In the osds.yaml file, set unmanaged parameter to true, else cephadm redeploys the OSDs:
Example
79
Red Hat Ceph Storage 5 Operations Guide
- /dev/sdf
- /dev/sdg
db_devices:
paths:
- /dev/sdd
- /dev/sdh
Example
Example
7. Remove the OSDs. Ensure to use the --zap option to remove hte backend services and the --
replace option to retain the OSD IDs:
Example
Example
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL
%USE VAR PGS STATUS TYPE NAME
-5 0.04877 - 55 GiB 15 GiB 4.1 MiB 0 B 60 MiB 40 GiB 27.27 1.17 -
host02
2 hdd 0.01219 1.00000 15 GiB 5.0 GiB 996 KiB 0 B 15 MiB 10 GiB 33.33 1.43 0
destroyed osd.2
5 hdd 0.01219 1.00000 15 GiB 5.0 GiB 1.0 MiB 0 B 15 MiB 10 GiB 33.33 1.43 0
destroyed osd.5
80
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
9. Edit the osds.yaml specification file to change unmanaged parameter to false and replace
the path to the DB device if it has changed after the device got physically replaced:
Example
IMPORTANT
If you use the same host specification file to replace the faulty DB device on a
single OSD node, modify the host_pattern option to specify only the OSD node,
else the deployment fails and you cannot find the new DB device on other hosts.
10. Reapply the specification file with the --dry-run option to ensure the OSDs shall be deployed
with the new DB device:
Example
81
Red Hat Ceph Storage 5 Operations Guide
Example
Example
ID CLASS WEIGHT REWEIGHT SIZE RAW USE DATA OMAP META AVAIL
%USE VAR PGS STATUS TYPE NAME
-5 0.04877 - 55 GiB 15 GiB 4.5 MiB 0 B 60 MiB 40 GiB 27.27 1.17 -
host host02
2 hdd 0.01219 1.00000 15 GiB 5.0 GiB 1.1 MiB 0 B 15 MiB 10 GiB 33.33 1.43 0
up osd.2
5 hdd 0.01219 1.00000 15 GiB 5.0 GiB 1.1 MiB 0 B 15 MiB 10 GiB 33.33 1.43 0
up osd.5
Verification
1. From the OSD host where the OSDS are redeployed, verify if they are on the new DB device:
Example
[db] /dev/ceph-15ce813a-8a4c-46d9-ad99-7e0845baf15e/osd-db-1998a02e-5e67-
42a9-b057-e02c22bbf461
82
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
vdo 0
devices /dev/sde
[db] /dev/ceph-15ce813a-8a4c-46d9-ad99-7e0845baf15e/osd-db-6c154191-846d-
4e63-8c57-fc4b99e182bd
If the OSD is in the process of removal, then you cannot stop the process.
Prerequisites
Procedure
Example
2. Check the device and the node from which the OSD was initiated to be removed:
83
Red Hat Ceph Storage 5 Operations Guide
Example
Syntax
Example
Example
Verification
Verify the details of the devices and the nodes from which the Ceph OSDs were queued for
removal:
Example
Additional Resources
See Removing the OSD daemons using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Monitor, Manager and OSD daemons are deployed on the storage cluster.
Procedure
Example
84
CHAPTER 6. MANAGEMENT OF OSDS USING THE CEPH ORCHESTRATOR
2. After the operating system of the host is reinstalled, activate the OSDs:
Syntax
Example
Verification
Example
Syntax
Example
Prerequisites
Procedure
Example
2. Watch as the placement group states change from active+clean to active, some degraded
85
Red Hat Ceph Storage 5 Operations Guide
2. Watch as the placement group states change from active+clean to active, some degraded
objects, and finally active+clean when migration completes.
When defining a pool the number of placement groups defines the grade of granularity the data is
spread with across all available OSDs. The higher the number the better the equalization of capacity
load can be. However, since handling the placement groups is also important in case of reconstruction
of data, the number is significant to be carefully chosen upfront. To support calculation a tool is available
to produce agile environments.
During lifetime of a storage cluster a pool may grow above the initially anticipated limits. With the
growing number of drives a recalculation is recommended. The number of placement groups per OSD
should be around 100. When adding more OSDs to the storage cluster the number of PGs per OSD will
lower over time. Starting with 120 drives initially in the storage cluster and setting the pg_num of the
pool to 4000 will end up in 100 PGs per OSD, given with the replication factor of three. Over time, when
growing to ten times the number of OSDs, the number of PGs per OSD will go down to ten only.
Because small number of PGs per OSD will tend to an unevenly distributed capacity, consider adjusting
the PGs per pool.
Adjusting the number of placement groups can be done online. Recalculating is not only a recalculation
of the PG numbers, but will involve data relocation, which will be a lengthy process. However, the data
availability will be maintained at any time.
Very high numbers of PGs per OSD should be avoided, because reconstruction of all PGs on a failed
OSD will start at once. A high number of IOPS is required to perform reconstruction in a timely manner,
which might not be available. This would lead to deep I/O queues and high latency rendering the storage
cluster unusable or will result in long healing times.
Additional Resources
See the PG calculator for calculating the values by a given use case.
See the Erasure Code Pools chapter in the Red Hat Ceph Storage Strategies Guide for more
information.
86
CHAPTER 7. MANAGEMENT OF MONITORING STACK USING THE CEPH ORCHESTRATOR
NOTE
Red Hat Ceph Storage 5.0 does not support custom images for deploying monitoring
services such as Prometheus, Grafana, Alertmanager, and node-exporter.
Prometheus is the monitoring and alerting toolkit. It collects the data provided by Prometheus
exporters and fires preconfigured alerts if predefined thresholds have been reached. The
Prometheus manager module provides a Prometheus exporter to pass on Ceph performance
counters from the collection point in ceph-mgr.
The Prometheus configuration, including scrape targets, such as metrics providing daemons, is
set up automatically by Cephadm. Cephadm also deploys a list of default alerts, for example,
health error, 10% OSDs down, or pgs inactive.
Alertmanager handles alerts sent by the Prometheus server. It deduplicates, groups, and routes
the alerts to the correct receiver. By default, the Ceph dashboard is automatically configured as
the receiver. The Alertmanager handles alerts sent by the Prometheus server. Alerts can be
silenced using the Alertmanager, but silences can also be managed using the Ceph Dashboard.
Grafana is the visualization and alerting software. The alerting functionality of Grafana is not
used by this monitoring stack. For alerting, the Alertmanager is used.
By default, traffic to Grafana is encrypted with TLS. You can either supply your own TLS
certificate or use a self-signed one. If no custom certificate has been configured before Grafana
has been deployed, then a self-signed certificate is automatically created and configured for
Grafana. Custom certificates for Grafana can be configured using the following commands:
Syntax
Node exporter is an exporter for Prometheus which provides data about the node on which it is installed.
It is recommended to install the node exporter on all nodes. This can be done using the monitoring.yml
file with the node-exporter service type.
The monitoring stack consists of Prometheus, Prometheus exporters, Prometheus Alertmanager, and
87
Red Hat Ceph Storage 5 Operations Guide
The monitoring stack consists of Prometheus, Prometheus exporters, Prometheus Alertmanager, and
Grafana. Ceph Dashboard makes use of these components to store and visualize detailed metrics on
cluster usage and performance.
You can deploy the monitoring stack using the service specification in YAML file format. All the
monitoring services can have the network and port they bind to configured in the yml file.
Prerequisites
Procedure
1. Enable the prometheus module in the Ceph Manager daemon. This exposes the internal Ceph
metrics so that Prometheus can read them:
Example
IMPORTANT
Ensure this command is run before Prometheus is deployed. If the command was
not run before the deployment, you must redeploy Prometheus to update the
configuration:
Syntax
cd /var/lib/ceph/DAEMON_PATH/
Example
NOTE
Example
4. Edit the specification file with a content similar to the following example:
Example
88
CHAPTER 7. MANAGEMENT OF MONITORING STACK USING THE CEPH ORCHESTRATOR
Example
service_type: prometheus
service_name: prometheus
placement:
hosts:
- host01
networks:
- 192.169.142.0/24
---
service_type: node-exporter
---
service_type: alertmanager
service_name: alertmanager
placement:
hosts:
- host01
networks:
- 192.169.142.0/24
---
service_type: grafana
service_name: grafana
placement:
hosts:
- host01
networks:
- 192.169.142.0/24
NOTE
Example
Verification
Example
Syntax
89
Red Hat Ceph Storage 5 Operations Guide
Example
IMPORTANT
Prometheus, Grafana, and the Ceph dashboard are all automatically configured to talk to
each other, resulting in a fully functional Grafana integration in the Ceph dashboard.
Prerequisites
Procedure
Example
Syntax
Example
Example
Verification
Example
90
CHAPTER 7. MANAGEMENT OF MONITORING STACK USING THE CEPH ORCHESTRATOR
Syntax
ceph orch ps
Example
Additional Resources
See Deploying the monitoring stack using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
91
Red Hat Ceph Storage 5 Operations Guide
Prerequisites
Procedure
1. On the node where you want to set up the files, create a directory ceph in the /etc folder:
Example
Example
Example
The contents of this file should be installed in /etc/ceph/ceph.conf path. You can use this
configuration file to reach the Ceph monitors.
92
CHAPTER 8. BASIC RED HAT CEPH STORAGE CLIENT SETUP
Prerequisites
Procedure
1. On the node where you want to set up the keyring, create a directory ceph in the /etc folder:
Example
Example
Syntax
Example
Example
[client.fs]
key = AQAvoH5gkUCsExAATz3xCBLd4n6B6jRv+Z7CVQ==
The resulting output should be put into a keyring file, for example /etc/ceph/ceph.keyring.
93
Red Hat Ceph Storage 5 Operations Guide
9.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
NOTE
Ensure you have at least two pools, one for Ceph file system (CephFS) data and one for
CephFS metadata.
Prerequisites
Procedure
Example
2. There are two ways of deploying MDS daemons using placement specification:
94
CHAPTER 9. MANAGEMENT OF MDS SERVICE USING THE CEPH ORCHESTRATOR
Method 1
Use ceph fs volume to create the MDS daemons. This creates the CephFS volume and pools
associated with the CephFS, and also starts the MDS service on the hosts.
Syntax
NOTE
Example
[ceph: root@host01 /]# ceph fs volume create test --placement="2 host01 host02"
Method 2
Create the pools, CephFS, and then deploy MDS service using placement specification:
Syntax
Example
Typically, the metadata pool can start with a conservative number of Placement Groups
(PGs) as it generally has far fewer objects than the data pool. It is possible to increase the
number of PGs if needed. The pool sizes range from 64 PGs to 512 PGs. Size the data pool
is proportional to the number and sizes of files you expect in the file system.
IMPORTANT
A higher replication level because any data loss to this pool can make the
whole file system inaccessible.
b. Create the file system for the data pools and metadata pools:
95
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Syntax
Example
[ceph: root@host01 /]# ceph orch apply mds test --placement="2 host01 host02"
Verification
Example
Example
Syntax
Example
Additional Resources
See the Red Hat Ceph Storage File System Guide for more information about creating the Ceph
File System (CephFS).
96
CHAPTER 9. MANAGEMENT OF MDS SERVICE USING THE CEPH ORCHESTRATOR
NOTE
Ensure you have at least two pools, one for the Ceph File System (CephFS) data and one
for the CephFS metadata.
Prerequisites
Procedure
Example
Syntax
service_type: mds
service_id: FILESYSTEM_NAME
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
- HOST_NAME_3
Example
service_type: mds
service_id: fs_name
placement:
hosts:
- host01
- host02
Example
97
Red Hat Ceph Storage 5 Operations Guide
Example
Example
Example
Syntax
Example
8. Once the MDS services is deployed and functional, create the CephFS:
Syntax
Example
Verification
Example
Syntax
98
CHAPTER 9. MANAGEMENT OF MDS SERVICE USING THE CEPH ORCHESTRATOR
Example
Additional Resources
See the Red Hat Ceph Storage File System Guide for more information about creating the Ceph
File System (CephFS).
Prerequisites
Procedure
There are two ways of removing MDS daemons from the cluster:
Method 1
Example
Example
Syntax
Example
99
Red Hat Ceph Storage 5 Operations Guide
This command will remove the file system, its data, and metadata pools. It also tries to
remove the MDS using the enabled ceph-mgr Orchestrator module.
Method 2
Use the ceph orch rm command to remove the MDS service from the entire cluster:
Example
Syntax
Example
Verification
Syntax
ceph orch ps
Example
Additional Resources
See Deploying the MDS service using the command line interface section in the Red Hat
Ceph Storage Operations Guide for more information.
See Deploying the MDS service using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
100
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
You can also configure multisite object gateways, and remove the Ceph object gateway using the Ceph
Orchestrator.
Cephadm deploys Ceph object gateway as a collection of daemons that manages a single-cluster
deployment or a particular realm and zone in a multisite deployment.
NOTE
With Cephadm, the object gateway daemons are configured using the monitor
configuration database instead of a ceph.conf or the command line. If that configuration
is not already in the client.rgw section, then the object gateway daemons will start up
with default settings and binds to the port 80.
NOTE
The .default.rgw.buckets.index pool is created only after the bucket is created in Ceph
Object Gateway, while the .default.rgw.buckets.data pool is created after the data is
uploaded to the bucket.
Deploying the Ceph object gateway using the command line interface .
10.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
All the managers, monitors, and OSDs are deployed in the storage cluster.
Prerequisites
101
Red Hat Ceph Storage 5 Operations Guide
Procedure
Example
2. You can deploy the Ceph object gateway daemons in three different ways:
Method 1
Create realm, zone group, zone, and then use the placement specification with the host name:
a. Create a realm:
Syntax
Example
Syntax
Example
c. Create a zone:
Syntax
Example
102
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
Syntax
Example
Syntax
Example
[ceph: root@host01 /]# ceph orch apply rgw test --realm=test_realm --zone=test_zone --
placement="2 host01 host02"
Method 2
Use an arbitrary service name to deploy two Ceph Object Gateway daemons for a single cluster
deployment:
Syntax
Example
Method 3
Syntax
NOTE
103
Red Hat Ceph Storage 5 Operations Guide
NOTE
Example
[ceph: root@host01 /]# ceph orch host label add host01 rgw # the 'rgw' label can be anything
[ceph: root@host01 /]# ceph orch host label add host02 rgw
[ceph: root@host01 /]# ceph orch apply rgw foo --placement="2 label:rgw" --port=8000
Verification
Example
Syntax
Example
Prerequisites
Procedure
Example
104
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
2. Edit the radosgw.yml file to include the following details for the default realm, zone, and zone
group:
Syntax
service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
count_per_host: NUMBER_OF_DAEMONS
spec:
rgw_realm: REALM_NAME
rgw_zone: ZONE_NAME
rgw_frontend_port: FRONT_END_PORT
networks:
- NETWORK_CIDR # Ceph Object Gateway service binds to a specific network
NOTE
Example
service_type: rgw
service_id: default
placement:
hosts:
- host01
- host02
- host03
count_per_host: 2
spec:
rgw_realm: default
rgw_zone: default
rgw_frontend_port: 1234
networks:
- 192.169.142.0/24
3. Optional: For custom realm, zone, and zone group, create the resources and then create the
radosgw.yml file:
Example
105
Red Hat Ceph Storage 5 Operations Guide
default
[root@host01 ~]# radosgw-admin zone create --rgw-zonegroup=test_zonegroup --rgw-
zone=test_zone --default
[root@host01 ~]# radosgw-admin period update --rgw-realm=test_realm --commit
Example
service_type: rgw
service_id: test_realm.test_zone
placement:
hosts:
- host01
- host02
- host03
count_per_host: 2
spec:
rgw_realm: test_realm
rgw_zone: test_zone
rgw_frontend_port: 1234
networks:
- 192.169.142.0/24
Example
NOTE
Every time you exit the shell, you have to mount the file in the container before
deploying the daemon.
Syntax
Example
Verification
Example
106
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
Syntax
Example
You can configure each object gateway to work in an active-active zone configuration allowing writes to
a non-primary zone. The multi-site configuration is stored within a container called a realm.
The realm stores zone groups, zones, and a time period. The rgw daemons handle the synchronization
eliminating the need for a separate synchronization agent, thereby operating with an active-active
configuration.
You can also deploy multi-site zones using the command line interface (CLI).
NOTE
The following configuration assumes at least two Red Hat Ceph Storage clusters are in
geographically separate locations. However, the configuration also works on the same
site.
Prerequisites
At least two Ceph Object Gateway instances, one for each Red Hat Ceph Storage cluster.
Procedure
a. Create a realm:
Syntax
Example
107
Red Hat Ceph Storage 5 Operations Guide
If the storage cluster has a single realm, then specify the --default flag.
Syntax
Example
Syntax
Example
d. Optional: Delete the default zone, zone group, and the associated pools.
IMPORTANT
Do not delete the default zone and its pools if you are using the default zone
and zone group to store data. Also, removing the default zone group deletes
the system user.
To access old data in the default zone and zonegroup, use --rgw-zone
default and --rgw-zonegroup default in radosgw-admin commands.
Example
108
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
Syntax
Example
f. Add the access key and system key to the primary zone:
Syntax
Example
Syntax
Example
h. Outside the cephadm shell, fetch the FSID of the storage cluster and the processes:
Example
Syntax
109
Red Hat Ceph Storage 5 Operations Guide
Example
Syntax
Example
Syntax
Example
Syntax
Example
110
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
IMPORTANT
Do not delete the default zone and its pools if you are using the default zone
and zone group to store data.
To access old data in the default zone and zonegroup, use --rgw-zone
default and --rgw-zonegroup default in radosgw-admin commands.
Example
Syntax
Example
Syntax
Example
g. Outside the Cephadm shell, fetch the FSID of the storage cluster and the processes:
Example
111
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
3. Optional: Deploy multi-site Ceph Object Gateways using the placement specification:
Syntax
Example
[ceph: root@host04 /]# ceph orch apply rgw east --realm=test_realm --zone=us-east-1 --
placement="2 host01 host02"
Verification
Example
Prerequisites
112
CHAPTER 10. MANAGEMENT OF CEPH OBJECT GATEWAY USING THE CEPH ORCHESTRATOR
Procedure
Example
Example
Syntax
Example
Verification
Syntax
ceph orch ps
Example
Additional Resources
See Deploying the Ceph object gateway using the command line interface section in the Red Hat
Ceph Storage Operations Guide for more information.
See Deploying the Ceph object gateway using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
113
Red Hat Ceph Storage 5 Operations Guide
NOTE
This technology is Limited Availability. See the Deprecated functionality chapter for
additional information.
NOTE
Red Hat supports CephFS exports only over the NFS v4.0+ protocol.
11.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
You can create an NFS-Ganesha cluster using the mgr/nfs module of the Ceph Orchestrator. This
114
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
You can create an NFS-Ganesha cluster using the mgr/nfs module of the Ceph Orchestrator. This
module deploys the NFS cluster using Cephadm in the backend.
This creates a common recovery pool for all NFS-Ganesha daemons, new user based on clusterid, and a
common NFS-Ganesha config RADOS object.
For each daemon, a new user and a common configuration is created in the pool. Although all the
clusters have different namespaces with respect the cluster names, they use the same recovery pool.
Prerequisites
Procedure
Example
Example
Syntax
The CLUSTER_NAME is an arbitrary string and HOST_NAME_1 is an optional string signifying the
hosts to deploy NFS-Ganesha daemons.
Example
[ceph: root@host01 /]# ceph nfs cluster create nfsganesha "host01 host02"
NFS Cluster Created Successful
This creates an NFS_Ganesha cluster nfsganesha with one daemon on host01 and host02.
Verification
Example
115
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Additional Resources
See Exporting Ceph File System namespaces over the NFS protocol section in the Red Hat
Ceph Storage File System Guide for more information.
See Deploying the Ceph daemons using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
NOTE
Red Hat supports CephFS exports only over the NFS v4.0+ protocol.
Prerequisites
Procedure
Example
2. Create the RADOS pool namespace, and enable the application. For RBD pools, enable RBD.
Syntax
116
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Example
3. Deploy NFS-Ganesha gateway using placement specification in the command line interface:
Syntax
Example
[ceph: root@host01 /]# ceph orch apply nfs foo --placement="2 host01 host02"
This deploys an NFS-Ganesha cluster nfsganesha with one daemon on host01 and host02.
Verification
Example
Syntax
Example
Additional Resources
See Deploying the Ceph daemons using the command line interface section in the Red Hat
Ceph Storage Operations Guide for more information.
See the Creating a block device pool section in the Red Hat Ceph Storage Block Device Guide
for more information.
Prerequisites
Procedure
Example
Syntax
service_type: nfs
service_id: SERVICE_ID
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
Example
service_type: nfs
service_id: foo
placement:
hosts:
- host01
- host02
Example
Syntax
118
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Example
Example
Syntax
Example
Verification
Example
Syntax
Example
Additional Resources
See the Creating a block device pool section in the Red Hat Ceph Storage Block Device Guide
for more information.
When a cluster is created with --ingress flag, an ingress service is additionally deployed to provide load
balancing and high-availability for the NFS servers. A virtual IP is used to provide a known, stable NFS
endpoint that all NFS clients can use to mount. Ceph handles the details of redirecting NFS traffic on
the virtual IP to the appropriate backend NFS servers and redeploys NFS servers when they fail.
IMPORTANT
IMPORTANT
When an ingress service is deployed in front of the NFS cluster, the backend NFS-
ganesha servers will see the haproxy’s IP address and not the client’s IP address. As a
result, if you are restricting client access based on IP address, access restrictions for NFS
exports will not work as expected.
NOTE
If the active NFS server serving a client goes down, the client’s I/Os are interrupted until
the replacement for the active NFS server is online and the NFS cluster is active again.
Prerequisites
Procedure
Example
120
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Example
Syntax
Replace CLUSTER_ID with a unique string to name the NFS Ganesha cluster.
Replace PLACEMENT with the number of NFS servers to deploy and the host or hosts that
you want to deploy the NFS Ganesha daemon containers on.
Use the --port PORT_NUMBER flag to deploy NFS on a port other than the default port of
2049.
The --ingress flag combined with the --virtual-ip flag, deploys NFS with a high-availability
front-end (virtual IP and load balancer).
NOTE
The number of hosts you allocate for the NFS service must be greater than
the number of active NFS servers you request to deploy, specified by the
placement: count parameter. In the below example, one active NFS server is
requested and two hosts are allocated.
Example
[ceph: root@host01 /]# ceph nfs cluster create mycephnfs "1 host02 host03" --ingress --
virtual-ip 10.10.128.75/22
NOTE
Syntax
Example
121
Red Hat Ceph Storage 5 Operations Guide
Verification
View the IP endpoints, IPs for the individual NFS daemons, and the virtual IP for the ingress
service:
Syntax
Example
{
"mycephnfs": {
"virtual_ip": "10.10.128.75",
"backend": [
{
"hostname": "host02",
"ip": "10.10.128.69",
"port": 12049
},
{
"hostname": "host03",
"ip": "10.10.128.70",
"port": 12049
}
],
"port": 2049,
"monitor_port": 9049
}
}
Example
122
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Additional resources
For information about mounting NFS exports on client hosts, see the Exporting Ceph File
System namespaces over the NFS protocol section in the Red Hat Ceph Storage File System
Guide.
Prerequisites
A running Red Hat Ceph Storage cluster with an existing NFS service.
Procedure
Example
Example
mynfs
NOTE
123
Red Hat Ceph Storage 5 Operations Guide
NOTE
If a standalone NFS cluster is created on one node, you need to increase it to two
or more nodes for HA. To increase the NFS service, edit the nfs.yaml file and
increase the placements with the same port number.
The number of hosts you allocate for the NFS service must be greater than the
number of active NFS servers you request to deploy, specified by the placement:
count parameter.
Syntax
service_type: nfs
service_id: SERVICE_ID
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
count: COUNT
spec:
port: PORT_NUMBER
Example
service_type: nfs
service_id: mynfs
placement:
hosts:
- host02
- host03
count: 1
spec:
port: 12345
In this example, the existing NFS service is running on port 12345 and an
additional node is added to the NFS cluster with the same port.
Apply the nfs.yaml service specification changes to upgrade to a two node NFS
service:
Example
3. Edit the ingress.yaml specification file with the existing NFS cluster ID:
Syntax
service_type: SERVICE_TYPE
service_id: SERVICE_ID
placement:
count: PLACEMENT
spec:
backend_service: SERVICE_ID_BACKEND 1
124
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
frontend_port: FRONTEND_PORT
monitor_port: MONITOR_PORT 2
virtual_ip: VIRTUAL_IP_WITH_CIDR
Example
service_type: ingress
service_id: nfs.mynfs
placement:
count: 2
spec:
backend_service: nfs.mynfs
frontend_port: 2049
monitor_port: 9000
virtual_ip: 10.10.128.75/22
Example
NOTE
Deployment of NFS daemons and the ingress service is asynchronous and the
command might return before the services have completely started.
Syntax
Example
Verification
View the IP endpoints, IPs for the individual NFS daemons, and the virtual IP for the ingress
service:
Syntax
125
Red Hat Ceph Storage 5 Operations Guide
Example
{
"mynfs": {
"virtual_ip": "10.10.128.75",
"backend": [
{
"hostname": "host02",
"ip": "10.10.128.69",
"port": 12049
},
{
"hostname": "host03",
"ip": "10.10.128.70",
"port": 12049
}
],
"port": 2049,
"monitor_port": 9049
}
}
Example
Additional resources
For information about mounting NFS exports on client hosts, see the Exporting Ceph File
System namespaces over the NFS protocol section in the Red Hat Ceph Storage File System
Guide.
You can deploy HA for CephFS/NFS using a specification file by first deploying an NFS service and then
126
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
You can deploy HA for CephFS/NFS using a specification file by first deploying an NFS service and then
deploying ingress to the same NFS service.
Prerequisites
Procedure
Example
Example
3. Exit out of the Cephadm shell and create the nfs.yaml file:
Example
Syntax
service_type: nfs
service_id: SERVICE_ID
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
count: COUNT
spec:
port: PORT_NUMBER
NOTE
The number of hosts you allocate for the NFS service must be greater than the
number of active NFS servers you request to deploy, specified by the placement:
count parameter.
127
Red Hat Ceph Storage 5 Operations Guide
Example
service_type: nfs
service_id: cephfsnfs
placement:
hosts:
- host02
- host03
count: 1
spec:
port: 12345
In this example, the server is run on the non-default port of 12345, instead of the default port of
2049, on host02 and host03.
Example
Example
Syntax
Example
NOTE
Deployment of the NFS service is asynchronous and the command might return
before the services have completely started.
Syntax
Example
128
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
9. Exit out of the Cephadm shell and create the ingress.yaml file:
Example
Syntax
service_type: SERVICE_TYPE
service_id: SERVICE_ID
placement:
count: PLACEMENT
spec:
backend_service: SERVICE_ID_BACKEND
frontend_port: FRONTEND_PORT
monitor_port: MONITOR_PORT
virtual_ip: VIRTUAL_IP_WITH_CIDR
Example
service_type: ingress
service_id: nfs.cephfsnfs
placement:
count: 2
spec:
backend_service: nfs.cephfsnfs
frontend_port: 2049
monitor_port: 9000
virtual_ip: 10.10.128.75/22
NOTE
Example
service_type: ingress
service_id: nfs.cephfsnfs
placement:
hosts:
- host02
- host03
129
Red Hat Ceph Storage 5 Operations Guide
Example
12. Log into the Cephadm shell and navigate to the directory:
Example
Syntax
Example
Syntax
Example
Verification
View the IP endpoints, IPs for the individual NFS daemons, and the virtual IP for the ingress
service:
Syntax
Example
{
"cephfsnfs": {
"virtual_ip": "10.10.128.75",
"backend": [
{
130
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
"hostname": "host02",
"ip": "10.10.128.69",
"port": 12345
},
{
"hostname": "host03",
"ip": "10.10.128.70",
"port": 12345
}
],
"port": 2049,
"monitor_port": 9049
}
}
Example
Additional resources
For information about mounting NFS exports on client hosts, see the Exporting Ceph File
System namespaces over the NFS protocol section in the Red Hat Ceph Storage File System
Guide.
Prerequisites
131
Red Hat Ceph Storage 5 Operations Guide
Procedure
Example
Syntax
Example
Verification
Example
Syntax
Example
Syntax
Example
132
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Additional Resources
See Creating the NFS-Ganesha cluster using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Procedure
Example
Syntax
Example
{
"nfsganesha": [
{
"hostname": "host02",
"ip": [
"10.10.128.70"
],
"port": 2049
}
]
}
133
Red Hat Ceph Storage 5 Operations Guide
Additional Resources
See Creating the NFS-Ganesha cluster using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Procedure
Example
Syntax
Example
Additional Resources
See Deploying the Ceph daemons using the placement specification section in the Red Hat
Ceph Storage Operations Guide for more information.
134
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
The NFS-Ganesha cluster is defined in default configuration blocks. Using Ceph Orchestrator you can
customize the configuration and that will have precedence over the default configuration blocks.
Prerequisites
Procedure
Example
Example
# {{ cephadm_managed }}
NFS_CORE_PARAM {
Enable_NLM = false;
Enable_RQUOTA = false;
Protocols = 4;
}
MDCACHE {
Dir_Chunk = 0;
}
EXPORT_DEFAULTS {
Attr_Expiration_Time = 0;
}
NFSv4 {
Delegations = false;
RecoveryBackend = 'rados_cluster';
Minor_Versions = 1, 2;
}
RADOS_KV {
UserId = "{{ user }}";
nodeid = "{{ nodeid}}";
pool = "{{ pool }}";
namespace = "{{ namespace }}";
}
RADOS_URLS {
UserId = "{{ user }}";
135
Red Hat Ceph Storage 5 Operations Guide
RGW {
cluster = "ceph";
name = "client.{{ rgw_user }}";
}
%url {{ url }}
3. Customize the NFS-Ganesha cluster configuration. The following are two examples for
customizing the configuration:
Example
LOG {
COMPONENTS {
ALL = FULL_DEBUG;
}
}
NOTE
User specified in FSAL blocks should have proper caps for NFS-Ganesha
daemons to access the Ceph cluster.
Syntax
ceph auth get-or-create client.USER_ID mon 'allow r' osd 'allow rw pool=.nfs
namespace=NFS_CLUSTER_NAME, allow rw tag cephfs data=FS_NAME' mds
'allow rw path=EXPORT_PATH'
Example
Syntax
cd /var/lib/ceph/DAEMON_PATH/
Example
136
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
If the nfs directory does not exist, create a directory in the path.
Syntax
touch PATH_TO_CONFIG_FILE
Example
d. Edit the configuration file by adding the custom export block. It creates a single export
and that is managed by the Ceph NFS export interface.
Syntax
EXPORT {
Export_Id = NUMERICAL_ID;
Transports = TCP;
Path = PATH_WITHIN_CEPHFS;
Pseudo = BINDING;
Protocols = 4;
Access_Type = PERMISSIONS;
Attr_Expiration_Time = 0;
Squash = None;
FSAL {
Name = CEPH;
Filesystem = "FILE_SYSTEM_NAME";
User_Id = "USER_NAME";
Secret_Access_Key = "USER_SECRET_KEY";
}
}
Example
EXPORT {
Export_Id = 100;
Transports = TCP;
Path = /;
Pseudo = /ceph/;
Protocols = 4;
Access_Type = RW;
Attr_Expiration_Time = 0;
Squash = None;
FSAL {
Name = CEPH;
Filesystem = "filesystem name";
User_Id = "user id";
Secret_Access_Key = "secret key";
}
}
137
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
[ceph: root@host01 nfs]# ceph nfs cluster config set nfs-ganesha -i /var/lib/ceph/nfs/nfs-
ganesha.conf
Verification
Example
Syntax
Example
Syntax
Example
Additional Resources
See the Resetting custom NFS-Ganesha configuration using the Ceph Orchestrator section in
the Red Hat Ceph Storage Operations Guide for more information.
138
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Using the Ceph Orchestrator, you can reset the user-defined configuration to the default configuration.
Prerequisites
Procedure
Example
Syntax
Example
Verification
Example
Syntax
Example
139
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Additional Resources
See Creating the NFS-Ganesha cluster using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
See the Setting custom NFS-Ganesha configuration using the Ceph Orchestrator section in the
Red Hat Ceph Storage Operations Guide for more information..
Prerequisites
Procedure
Example
Syntax
Example
140
CHAPTER 11. MANAGEMENT OF NFS-GANESHA GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Verification
Example
Additional Resources
See Exporting Ceph File System namespaces over the NFS protocol section in the Red Hat
Ceph Storage File System guide for more information.
See Creating the NFS-Ganesha cluster using the Ceph Orchestrator section in the Red Hat
Ceph Storage Operations Guide for more information.
Prerequisites
Procedure
Example
Example
Syntax
Example
141
Red Hat Ceph Storage 5 Operations Guide
Verification
Syntax
ceph orch ps
Example
Additional Resources
See Deploying the Ceph daemons using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
See Deploying the NFS-Ganesha gateway using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
142
CHAPTER 12. MANAGEMENT OF ISCSI GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
You can deploy an iSCSI gateway by either using the placement specification or the service
specification, like an YAML file.
NOTE
This technology is Limited Availability. See the Deprecated functionality chapter for
additional information.
12.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
Prerequisites
Procedure
Example
143
Red Hat Ceph Storage 5 Operations Guide
Syntax
Example
Syntax
Example
[ceph: root@host01 /]# ceph orch apply iscsi mypool admin admin --placement="1 host01"
Verification
Example
Syntax
Example
Prerequisites
144
CHAPTER 12. MANAGEMENT OF ISCSI GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Procedure
Example
Syntax
service_type: iscsi
service_id: iscsi
placement:
hosts:
- HOST_NAME_1
- HOST_NAME_2
spec:
pool: POOL_NAME # RADOS pool where ceph-iscsi config data is stored.
trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2" # optional
api_port: ... # optional
api_user: API_USERNAME # optional
api_password: API_PASSWORD # optional
api_secure: true/false # optional
ssl_cert: | # optional
...
ssl_key: | # optional
...
Example
service_type: iscsi
service_id: iscsi
placement:
hosts:
- host01
spec:
pool: mypool
Example
Syntax
145
Red Hat Ceph Storage 5 Operations Guide
cd /var/lib/ceph/DAEMON_PATH/
Example
Syntax
Example
Verification
Example
Syntax
Example
Prerequisites
Procedure
146
CHAPTER 12. MANAGEMENT OF ISCSI GATEWAY USING THE CEPH ORCHESTRATOR (LIMITED AVAILABILITY)
Example
Example
Syntax
Example
Verification
Syntax
ceph orch ps
Example
Additional Resources
See Deploying the iSCSI gateway using the command line interface section in the Red Hat
Ceph Storage Operations Guide for more information.
See Deploying the iSCSI gateway using the service specification section in the Red Hat
Ceph Storage Operations Guide for more information.
147
Red Hat Ceph Storage 5 Operations Guide
The Red Hat Ceph Storage SNMP gateway service deploys one instance of the gateway by default. You
can increase this by providing placement information. However, if you enable multiple SNMP gateway
daemons, your SNMP management platform receives multiple notifications for the same event.
The SNMP traps are alert messages and the Prometheus Alertmanager sends these alerts to the SNMP
notifier which then looks for object identifier (OID) in the given alerts’ labels. Each SNMP trap has a
unique ID which allows it to send additional traps with updated status to a given SNMP poller. SNMP
hooks into the Ceph health checks so that every health warning generates a specific SNMP trap.
In order to work correctly and transfer information on device status to the user to monitor, SNMP relies
on several components. There are four main components that makeup SNMP:
SNMP Manager- The SNMP manager, also called a management station, is a computer that
runs network monitoring platforms. A platform that has the job of polling SNMP-enabled
devices and retrieving data from them. An SNMP Manager queries agents, receives responses
from agents and acknowledges asynchronous events from agents.
SNMP Agent - An SNMP agent is a program that runs on a system to be managed and contains
the MIB database for the system. These collect data like bandwidth and disk space, aggregates
it, and sends it to the management information base (MIB).
Management information base (MIB) - These are components contained within the SNMP
agents. The SNMP manager uses this as a database and asks the agent for access to particular
information. This information is needed for the network management systems (NMS). The NMS
polls the agent to take information from these files and then proceeds to translate it into graphs
and displays that can be viewed by the user. MIBs contain statistical and control values that are
determined by the network device.
SNMP Devices
The following versions of SNMP are compatible and supported for gateway implementation:
V2c - Uses an community string without any authentication and is vulnerable to outside attacks.
V3 authPriv - Uses the username and password authentication with encryption to the SNMP
management platform.
IMPORTANT
148
CHAPTER 13. CONFIGURATION OF SNMP TRAPS
IMPORTANT
When using SNMP traps, ensure that you have the correct security configuration for your
version number to minimize the vulnerabilities that are inherent to SNMP and keep your
network protected from unauthorized users.
The SNMP gateway feature provides a means of exposing the alerts that are generated in the
Prometheus stack to an SNMP management platform. You can configure the SNMP traps to the
destination based on the snmptrapd tool. This tool allows you to establish one or more SNMP trap
listeners.
The engine-id is a unique identifier for the device, in hex, and required for SNMPV3 gateway.
Red Hat recommends to use `8000C53F_CLUSTER_FSID_WITHOUT_DASHES_`for this
parameter.
The auth-protocol which is the AUTH_PROTOCOL, is mandatory for SNMPV3 gateway and is
SHA by default.
The SNMP_V3_AUTH_USER_NAME is the user name and is mandatory for SNMPV3 gateway.
Prerequisites
Procedure
Example
149
Red Hat Ceph Storage 5 Operations Guide
Example
3. Implement the management information base (MIB) to make sense of the SNMP notification
and enhance SNMP support on the destination host. Copy the raw file from the main repository:
https://github.com/ceph/ceph/blob/master/monitoring/snmp/CEPH-MIB.txt
Example
Example
5. Create the configuration files in snmptrapd directory for each protocol based on the SNMP
version:
Syntax
Example
The public setting here must match the snmp_community setting used when deploying
the snmp-gateway service.
For SNMPV3 with authentication only, create the snmptrapd_auth.conf file as follows:
Example
150
CHAPTER 13. CONFIGURATION OF SNMP TRAPS
Example
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword
For SNMPV3 with authentication and encryption, create the snmptrapd_authpriv.conf file
as follows:
Example
Example
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword
snmp_v3_priv_password: mysecret
Syntax
Example
151
Red Hat Ceph Storage 5 Operations Guide
7. If any alert is triggered on the storage cluster, you can monitor the output on the SNMP
management host. Verify the SNMP traps and also the traps decoded by MIB.
Example
In the above example, an alert is generated after the Prometheus module is disabled.
Additional Resources
See the Deploying the SNMP gateway section in the Red Hat Ceph Storage Operations Guide.
2. By creating one service configuration yaml file with all the details.
152
CHAPTER 13. CONFIGURATION OF SNMP TRAPS
You can use the following parameters to deploy the SNMP gateway based on the versions:
The engine-id is a unique identifier for the device, in hex, and required for SNMPV3 gateway.
Red Hat recommends to use `8000C53F_CLUSTER_FSID_WITHOUT_DASHES_`for this
parameter.
The privacy-protocol is mandatory for SNMPV3 gateway with authentication and encryption.
You must provide a -i FILENAME to pass the secrets and passwords to the orchestrator.
Once the SNMP gateway service is deployed or updated, the Prometheus Alertmanager configuration is
automatically updated to forward any alert that has an objectidentifier to the SNMP gateway daemon
for further processing.
Prerequisites
Configuring snmptrapd on the destination host, which is the SNMP management host.
Procedure
Example
2. Create a label for the host on which SNMP gateway needs to be deployed:
Syntax
Example
[ceph: root@host01 /]# ceph orch host label add host02 snmp-gateway
3. Create a credentials file or a service configuration file based on the SNMP version:
153
Red Hat Ceph Storage 5 Operations Guide
Example
snmp_community: public
OR
Example
service_type: snmp-gateway
service_name: snmp-gateway
placement:
count: 1
spec:
credentials:
snmp_community: public
port: 9464
snmp_destination: 192.168.122.73:162
snmp_version: V2c
Example
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword
OR
Example
service_type: snmp-gateway
service_name: snmp-gateway
placement:
count: 1
spec:
credentials:
snmp_v3_auth_password: mypassword
snmp_v3_auth_username: myuser
engine_id: 8000C53Ff64f341c655d11eb8778fa163e914bcc
port: 9464
snmp_destination: 192.168.122.1:162
snmp_version: V3
For SNMPV3 with authentication and encryption, create the file as follows:
154
CHAPTER 13. CONFIGURATION OF SNMP TRAPS
Example
snmp_v3_auth_username: myuser
snmp_v3_auth_password: mypassword
snmp_v3_priv_password: mysecret
OR
Example
service_type: snmp-gateway
service_name: snmp-gateway
placement:
count: 1
spec:
credentials:
snmp_v3_auth_password: mypassword
snmp_v3_auth_username: myuser
snmp_v3_priv_password: mysecret
engine_id: 8000C53Ff64f341c655d11eb8778fa163e914bcc
port: 9464
snmp_destination: 192.168.122.1:162
snmp_version: V3
Syntax
OR
Syntax
For SNMPV2c, with the snmp_creds file, run the ceph orch command with the snmp-
version as V2c:
Example
For SNMPV3 with authentication only, with the snmp_creds file, run the ceph orch
command with the snmp-version as V3 and engine-id:
155
Red Hat Ceph Storage 5 Operations Guide
Example
For SNMPV3 with authentication and encryption, with the snmp_creds file, run the ceph
orch command with the snmp-version as V3, privacy-protocol, and engine-id:
Example
OR
For all the SNMP versions, with the snmp-gateway file, run the following command:
Example
Additional Resources
See the Configuring `snmptrapd` section in the Red Hat Ceph Storage Operations Guide.
156
CHAPTER 14. HANDLING A NODE FAILURE
There are three node failure scenarios. Here is the high-level workflow for each scenario when replacing
a node:
Replacing the node, but using the root and Ceph OSD disks from the failed node.
1. Disable backfilling.
2. Replace the node, taking the disks from old node, and adding them to the new node.
3. Enable backfilling.
Replacing the node, reinstalling the operating system, and using the Ceph OSD disks from the
failed node.
1. Disable backfilling.
3. Replace the node and add the Ceph OSD disks from failed node.
7. Add the new node to the storage cluster using the Ceph Orchestrator commands and Ceph
daemons are placed automatically on the respective node.
8. Enable backfilling.
Replacing the node, reinstalling the operating system, and using all new Ceph OSDs disks.
1. Disable backfilling.
2. Remove all OSDs on the failed node from the storage cluster.
4. Replace the node and add the Ceph OSD disks from failed node.
6. Add the new node to the storage cluster using the Ceph Orchestrator commands and Ceph
daemons are placed automatically on the respective node.
7. Enable backfilling.
157
Red Hat Ceph Storage 5 Operations Guide
14.1. PREREQUISITES
A running Red Hat Ceph Storage cluster.
A failed node.
The ability to serve Ceph clients while the storage cluster is in a degraded state also has operational
benefits. For example, you can add or remove or replace hardware during regular business hours, rather
than working overtime or on weekends. However, adding and removing Ceph OSD nodes can have a
significant impact on performance.
Before you add or remove Ceph OSD nodes, consider the effects on storage cluster performance:
Whether you are expanding or reducing the storage cluster capacity, adding or removing Ceph
OSD nodes induces backfilling as the storage cluster rebalances. During that rebalancing time
period, Ceph uses additional resources, which can impact storage cluster performance.
In a production Ceph storage cluster, a Ceph OSD node has a particular hardware configuration
that facilitates a particular type of storage strategy.
Since a Ceph OSD node is part of a CRUSH hierarchy, the performance impact of adding or
removing a node typically affects the performance of pools that use the CRUSH ruleset.
Additional Resources
See the Red Hat Ceph Storage Storage Strategies Guide for more details.
Ceph clients place load on the I/O interface to Ceph; that is, the clients place load on a pool. A
pool maps to a CRUSH ruleset. The underlying CRUSH hierarchy allows Ceph to place data
across failure domains. If the underlying Ceph OSD node involves a pool that is experiencing
high client load, the client load could significantly affect recovery time and reduce performance.
Because write operations require data replication for durability, write-intensive client loads in
particular can increase the time for the storage cluster to recover.
Generally, the capacity you are adding or removing affects the storage cluster’s time to recover.
In addition, the storage density of the node you add or remove might also affect recovery times.
For example, a node with 36 OSDs typically takes longer to recover than a node with 12 OSDs.
When removing nodes, you MUST ensure that you have sufficient spare capacity so that you will
not reach full ratio or near full ratio. If the storage cluster reaches full ratio, Ceph will suspend
write operations to prevent data loss.
A Ceph OSD node maps to at least one Ceph CRUSH hierarchy, and the hierarchy maps to at
158
CHAPTER 14. HANDLING A NODE FAILURE
A Ceph OSD node maps to at least one Ceph CRUSH hierarchy, and the hierarchy maps to at
least one pool. Each pool that uses a CRUSH ruleset experiences a performance impact when
Ceph OSD nodes are added or removed.
Replication pools tend to use more network bandwidth to replicate deep copies of the data,
whereas erasure coded pools tend to use more CPU to calculate k+m coding chunks. The more
copies that exist of the data, the longer it takes for the storage cluster to recover. For example,
a larger pool or one that has a greater number of k+m chunks will take longer to recover than a
replication pool with fewer copies of the same data.
Drives, controllers and network interface cards all have throughput characteristics that might
impact the recovery time. Generally, nodes with higher throughput characteristics, such as 10
Gbps and SSDs, recover more quickly than nodes with lower throughput characteristics, such as
1 Gbps and SATA drives.
To remove an OSD:
To add an OSD:
When adding or removing Ceph OSD nodes, consider that other ongoing processes also affect storage
cluster performance. To reduce the impact on client I/O, Red Hat recommends the following:
Calculate capacity
Before removing a Ceph OSD node, ensure that the storage cluster can backfill the contents of all its
OSDs without reaching the full ratio. Reaching the full ratio will cause the storage cluster to refuse
write operations.
Once you have added or removed a Ceph OSD node and the storage cluster has returned to an
active+clean state, unset the noscrub and nodeep-scrub settings.
159
Red Hat Ceph Storage 5 Operations Guide
osd_max_backfills = 1
osd_recovery_max_active = 1
osd_recovery_op_priority = 1
You can also consider setting the sleep and delay parameters such as, osd_recovery_sleep.
Prerequisites
Procedure
1. Verify that other nodes in the storage cluster can reach the new node by its short host name.
Example
Syntax
Example
160
CHAPTER 14. HANDLING A NODE FAILURE
Syntax
Example
5. Copy ceph cluster’s public SSH keys to the root user’s authorized_keys file on the new host:
Syntax
Example
Syntax
Example
7. Add an OSD for each disk on the node to the storage cluster.
IMPORTANT
When adding an OSD node to a Red Hat Ceph Storage cluster, Red Hat recommends
adding one OSD daemon at a time and allowing the cluster to recover to an active+clean
state before proceeding to the next OSD.
Additional Resources
See the Setting a Specific Configuration Setting at Runtime section in the Red Hat Ceph Storage
Configuration Guide for more details.
161
Red Hat Ceph Storage 5 Operations Guide
See Adding a Bucket and Moving a Bucket sections in the Red Hat Ceph Storage Storage
Strategies Guide for details on placing the node at an appropriate location in the CRUSH
hierarchy,.
WARNING
Before removing a Ceph OSD node, ensure that the storage cluster can backfill the
contents of all OSDs without reaching the full ratio. Reaching the full ratio will
cause the storage cluster to refuse write operations.
Prerequisites
Procedure
Syntax
ceph df
rados df
ceph osd df
Syntax
Syntax
Example
162
CHAPTER 14. HANDLING A NODE FAILURE
IMPORTANT
When removing an OSD node from the storage cluster, Red Hat
recommends removing one OSD at a time within the node and allowing the
cluster to recover to an active+clean state before proceeding to remove the
next OSD.
a. After you remove an OSD, check to verify that the storage cluster is not getting to the
near-full ratio:
Syntax
ceph -s
ceph df
b. Repeat this step until all OSDs on the node are removed from the storage cluster.
Additional Resources
See the Setting a specific configuration at runtime section in the Red Hat Ceph Storage
Configuration Guide for more details.
Prerequisites
Procedure
1. Check the storage cluster’s capacity to understand the impact of removing the node:
Example
Example
163
Red Hat Ceph Storage 5 Operations Guide
4. If you are changing the host name, remove the node from CRUSH map:
Example
Example
Example
Example
Additional Resources
See the Red Hat Ceph Storage Installation Guide for more details.
164
CHAPTER 15. HANDLING A DATA CENTER FAILURE
15.1. PREREQUISITES
A healthy running Red Hat Ceph Storage cluster.
Each data center within a stretch cluster can have a different storage cluster configuration to reflect
local capabilities and dependencies. Set up replication between the data centers to help preserve the
data. If one data center fails, the other data centers in the storage cluster contain copies of the data.
By default, the CRUSH map lists all nodes in a storage cluster within a flat hierarchy. However, for best
results, create a logical hierarchical structure within the CRUSH map. The hierarchy designates the
domains to which each node belongs and the relationships among those domains within the storage
cluster, including the failure domains. Defining the failure domains for each domain within the hierarchy
improves the reliability of the storage cluster.
When planning a storage cluster that contains multiple data centers, place the nodes within the CRUSH
map hierarchy so that if one data center goes down, the rest of the storage cluster stays up and running.
Live with only one copy for the duration of the outage.
With the standard settings, and because of the randomness of data placement across the nodes, not all
the data will be affected, but some data can have only one copy and the storage cluster would revert to
read-only mode. However, if some data exist in only one copy, the storage cluster reverts to read-only
mode.
165
Red Hat Ceph Storage 5 Operations Guide
Red Hat Ceph Storage can withstand catastrophic failures to the infrastructure, such as losing one of
the data centers in a stretch cluster. For the standard object store use case, configuring all three data
centers can be done independently with replication set up between them. In this scenario, the storage
cluster configuration in each of the data centers might be different, reflecting the local capabilities and
dependencies.
A logical structure of the placement hierarchy should be considered. A proper CRUSH map can be used,
reflecting the hierarchical structure of the failure domains within the infrastructure. Using logical
hierarchical definitions improves the reliability of the storage cluster, versus using the standard
hierarchical definitions. Failure domains are defined in the CRUSH map. The default CRUSH map
contains all nodes in a flat hierarchy. In a three data center environment, such as a stretch cluster, the
placement of nodes should be managed in a way that one data center can go down, but the storage
cluster stays up and running. Consider which failure domain a node resides in when using 3-way
replication for the data.
In the example below, the resulting map is derived from the initial setup of the storage cluster with 6
OSD nodes. In this example, all nodes have only one disk and hence one OSD. All of the nodes are
arranged under the default root, that is the standard root of the hierarchy tree. Because there is a
weight assigned to two of the OSDs, these OSDs receive fewer chunks of data than the other OSDs.
These nodes were introduced later with bigger disks than the initial OSD disks. This does not affect the
data placement to withstand a failure of a group of nodes.
Example
Using logical hierarchical definitions to group the nodes into same data center can achieve data
placement maturity. Possible definition types of root, datacenter, rack, row and host allow the reflection
of the failure domains for the three data center stretch cluster:
Since all OSDs in a host belong to the host definition there is no change needed. All the other
assignments can be adjusted during runtime of the storage cluster by:
166
CHAPTER 15. HANDLING A DATA CENTER FAILURE
Moving the nodes into the appropriate place within this structure by modifying the CRUSH map:
Within this structure any new hosts can be added too, as well as new disks. By placing the OSDs at the
right place in the hierarchy the CRUSH algorithm is changed to place redundant pieces into different
failure domains within the structure.
Example
The listing from above shows the resulting CRUSH map by displaying the osd tree. Easy to see is now
how the hosts belong to a data center and all data centers belong to the same top level structure but
clearly distinguishing between locations.
NOTE
167
Red Hat Ceph Storage 5 Operations Guide
NOTE
Placing the data in the proper locations according to the map works only properly within
the healthy cluster. Misplacement might happen under circumstances, when some OSDs
are not available. Those misplacements will be corrected automatically once it is possible
to do so.
Additional Resources
See the CRUSH administration chapter in the Red Hat Ceph Storage Storage Strategies Guide
for more information.
168