Introduction to the Ceph Orchestrator
IBM Storage Ceph Orchestrators are manager modules that
primarily act as a bridge between an IBM Storage Ceph cluster and deployment tools like Rook and
cephadm for a unified experience. They also integrate with the Ceph command line interface and Ceph
Dashboard.
As a storage administrator, you can use the Ceph Orchestrator with cephadm utility that provides
the ability to discover devices and create services in an IBM Storage Ceph cluster.
Figure 1 is a workflow diagram of Ceph Orchestrator.
Types of IBM Storage Ceph
- 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-mgrmodules with external orchestration services. The following are the nomenclature that is 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
mds,osd,mon,rgw, andmgr. -
Service: A functional service that is provided by a Ceph storage cluster such as monitors service, managers service, OSD services, and Ceph Object Gateway service.
-
Daemon: A specific instance of a service that is deployed by one or more hosts such as Ceph Object Gateway services can have different Ceph Object Gateway daemons running in three different hosts.
-
cephadmOrchestrator-
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
cephadmOrchestrator is the recommended way of installing a Ceph storage cluster without using 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, thecephadmOrchestrator will deploy container images that are managed bysystemdin order to allow independent upgrades of colocated services.This orchestrator also highlights 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 that runs 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 must 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-mgrdaemon and implements the Ceph orchestration API by making changes to the Ceph storage cluster in Kubernetes that describe desired cluster state. A Rook cluster’sceph-mgrdaemon is running as a Kubernetes pod, and hence, the rook module can connect to the Kubernetes API without any explicit configuration.