Mirantis Container Cloud (MCC) becomes part of Mirantis OpenStack for Kubernetes (MOSK)!
Starting with MOSK 25.2, the MOSK documentation set covers all product layers, including MOSK management (formerly MCC). This means everything you need is in one place. The separate MCC documentation site will be retired, so please update your bookmarks for continued easy access to the latest content.
Ceph advanced configuration¶
Warning
This procedure is valid for MOSK clusters that use the MiraCeph
custom
resource (CR), which is available since MOSK 25.2 to replace the deprecated
KaaSCephCluster
. For the equivalent procedure with the KaaSCephCluster
CR, refer to the following section:
This section describes how to configure a Ceph cluster using the MiraCeph
(miracephs.lcm.mirantis.com
) custom resource (CR) during or after
MOSK deployment.
The MiraCeph
CR spec specifies the nodes to deploy as Ceph components.
Based on the roles definitions in the MiraCeph
CR, Ceph Controller
automatically labels nodes for Ceph Monitors and Managers. Ceph OSDs are
deployed based on the devices
parameter defined for each Ceph node.
For the default MiraCeph
CR, see the following example:
Example configuration of Ceph specification
apiVersion: lcm.mirantis.com/v1alpha1
kind: MiraCeph
metadata:
name: rook-ceph
namespace: ceph-lcm-mirantis
spec:
nodes:
- name: cz812-managed-cluster-storage-worker-noefi-58spl
roles:
- mgr
- mon
# All disk configurations must be reflected in ``baremetalhostprofile``
devices:
- config:
deviceClass: ssd
fullPath: /dev/disk/by-id/scsi-1ATA_WDC_WDS100T2B0A-00SM50_200231434939
- name: cz813-managed-cluster-storage-worker-noefi-lr4k4:
roles:
- mgr
- mon
devices:
- config:
deviceClass: ssd
fullPath: /dev/disk/by-id/scsi-1ATA_WDC_WDS100T2B0A-00SM50_200231440912
- name: cz814-managed-cluster-storage-worker-noefi-z2m67:
roles:
- mgr
- mon
devices:
- config:
deviceClass: ssd
fullPath: /dev/disk/by-id/scsi-1ATA_WDC_WDS100T2B0A-00SM50_200231443409
pools:
- default: true
deviceClass: hdd
name: kubernetes
replicated:
size: 3
role: kubernetes
- default: false
deviceClass: hdd
name: volumes
replicated:
size: 3
role: volumes
- default: false
deviceClass: hdd
name: vms
replicated:
size: 3
role: vms
- default: false
deviceClass: hdd
name: backup
replicated:
size: 3
role: backup
- default: false
deviceClass: hdd
name: images
replicated:
size: 3
role: images
objectStorage:
rgw:
name: rgw-store
dataPool:
deviceClass: hdd
erasureCoded:
codingChunks: 1
dataChunks: 2
failureDomain: host
metadataPool:
deviceClass: hdd
failureDomain: host
replicated:
size: 3
gateway:
allNodes: false
instances: 3
port: 80
securePort: 8443
preservePoolsOnDelete: false
Configure a Ceph cluster¶
Select from the following options:
If you do not have a MOSK cluster yet, open
miraceph.yaml.template
for editing.If the MOSK cluster is already deployed, open the
MiraCeph
CR for editing:kubectl -n ceph-lcm-mirantis edit miraceph
Using the tables below, configure the Ceph cluster as required.
Select from the following options:
If you are creating a MOSK cluster, save the updated
MiraCeph
template to the corresponding file and proceed with the MOSK cluster creation.If you are configuring
MiraCeph
of an existing MOSK cluster, exit the text editor to apply the change.
Ceph configuration options¶
The following subsections contain description of Ceph parameters for an advanced configuration.
General parameters¶
Parameter |
Description |
---|---|
|
Specifies networks for the Ceph cluster:
|
|
Specifies the list of Ceph nodes. For details, see
Node parameters. The nodes:
- name: node-0
<node spec>
- name: node-1
<node spec>
...
- name: group-1
nodeGroup: [node-2, node-3]
<node spec>
- name: group-2
nodeGroup: [node-4, node-5]
<node spec>
...
- name: group-3
nodesByLabel: <nodeLabelExpression-1>
<node spec>
- name: group-4
nodesByLabel: <nodeLabelExpression-2>
<node spec>
The |
|
Specifies the list of Ceph pools. For details, see Pool parameters. |
|
Specifies the parameters for Object Storage, such as RADOS Gateway, the Ceph Object Storage. Also specifies the RADOS Gateway Multisite configuration. For details, see RADOS Gateway parameters and Multisite parameters. objectStorage:
rgw:
<rgw-spec>
multisite:
<rgw-multisite-spec>
|
|
String key-value parameter that allows overriding Ceph configuration options. Use the The use of this option enables restart of only specific daemons related
to the corresponding section. If you do not specify the section,
a parameter is set in the For example: rookConfig:
"osd_max_backfills": "64"
"mon|mon_health_to_clog": "true"
"osd|osd_journal_size": "8192"
"osd.14|osd_journal_size": "6250"
|
|
Enables specification of extra options for a setup, includes the
|
|
Enables a custom ingress rule for public access on Ceph services, for example, Ceph RADOS Gateway. For details, see Configure Ceph Object Gateway TLS. |
|
Enables pools mirroring between two interconnected clusters. For details, see Enable Ceph RBD mirroring. |
|
List of Ceph clients. For details, see Clients parameters. |
|
Disables autogeneration of shared Ceph values for OpenStack
deployments. Set to |
|
Contains the
For example: mgr:
mgrModules:
- name: balancer
enabled: true
- name: pg_autoscaler
enabled: true
The Note Most Ceph Manager modules require additional configuration
that you can perform through the |
|
Configures health checks and liveness probe settings for Ceph daemons. For details, see HealthCheck parameters. |
Example configuration
spec:
network:
clusterNet: 10.10.10.0/24
publicNet: 10.10.11.0/24
nodes:
- name: node-0
<node spec>
...
pools:
- <pool spec>
...
rookConfig:
"mon max pg per osd": "600"
...
Node parameters¶
Parameter |
Description |
---|---|
|
Mandatory. Specifies the following:
|
|
Optional. Specifies the list of nodes and used for specifying Ceph node specification for a group of nodes from the list. For example: nodes:
- name: group-1
nodeGroup: [node-X, node-Y]
|
|
Optional. Specifies label expression and used for specifying Ceph node specification for a group of nodes found by label. For example: nodes:
- name: group-1
nodesByLabel: "ceph-storage-node=true,!ceph-control-node"
|
|
Optional. Specifies the
If a Ceph node contains a If a Ceph node contains a If you assign the |
|
Optional. If defined, specifies a custom IP address for monitor which should be placed on the node. If not set, monitor on the node will use default LCM network IP address of a node. Mirantis recommends using IP address from Ceph public network address range. Note To update |
|
Mandatory. Specifies a map of device configurations that must contain a
mandatory For details, see Rook documentation. |
|
Optional. Specifies the list of devices to use for Ceph OSD deployment. Includes the following parameters: Note Mirantis recommends migrating all For details, refer to Addressing storage devices since MOSK 25.2.
|
|
Optional. Specifies regexp by names of devices to use for Ceph OSD
deployment. Mutually exclusive with deviceFilter: "^sd[def]$"
config:
deviceClass: hdd
For more details, see Rook documentation. |
|
Optional. Specifies regexp by paths of devices to use for Ceph OSD
deployment. Mutually exclusive with devicePathFilter: "^/dev/disk/by-id/scsi-SATA.+$"
config:
deviceClass: hdd
For more details, see Rook documentation. |
|
Optional. Specifies the explicit key-value CRUSH topology for a node. For details, see Ceph official documentation: CRUSH maps. Includes the following parameters:
Example configuration: crush:
datacenter: dc1
room: room1
pdu: pdu1
row: row1
rack: rack1
chassis: ch1
region: region1
zone: zone1
|
Pool parameters¶
Parameter |
Description |
---|---|
|
Mandatory. Specifies the pool name as a prefix for each Ceph block pool.
The resulting Ceph block pool name will be |
|
Optional. Enables Ceph block pool to use only the |
|
Mandatory. Specifies the pool role and is used mostly for MOSK pools. |
|
Optional. Defines whether the pool and dependent StorageClass must be set
as default. Must be enabled only for one pool. Defaults to |
|
Mandatory. Specifies the device class for the defined pool. Common possible
values are |
|
The
|
|
Enables the erasure-coded pool. For details, see Rook documentation:
Erasure coded
and Ceph documentation: Erasure coded pool. The
|
|
Optional. The failure domain across which the replicas or chunks
of data will be spread. Set to Caution Mirantis does not recommend using the following
intermediate topology keys: |
|
Optional. Enables the mirroring feature for the defined pool.
Includes the |
|
Optional. Not updatable as it applies only once. Enables expansion of
persistent volumes based on Note A Kubernetes cluster only supports increase of storage size. |
|
Optional. Not updatable as it applies only once. Specifies custom
|
|
Optional. Specifies the key-value map for the parameters of the Ceph pool. For details, see Ceph documentation: Set Pool values. |
|
Optional. Specifies reclaim policy for the underlying |
|
Optional.Enables skipping Ceph pool delete on |
Example configuration
pools:
- name: kubernetes
role: kubernetes
deviceClass: hdd
replicated:
size: 3
parameters:
target_size_ratio: "10.0"
default: true
preserveOnDelete: true
To configure additional required pools for MOSK, see Add a Ceph cluster since MOSK 25.2.
Caution
Since Ceph Pacific, Ceph CSI driver does not propagate the 777
permission on the mount point of persistent volumes based on any
StorageClass
of the Ceph pool.
Clients parameters¶
Parameter |
Description |
---|---|
|
Ceph client name. |
|
Key-value parameter with Ceph client capabilities. For details about
|
Example configuration
clients:
- name: glance
caps:
mon: allow r, allow command "osd blacklist"
osd: profile rbd pool=images
RADOS Gateway parameters¶
Parameter |
Description |
---|---|
|
Required. Ceph Object Storage instance name. |
|
Required if Object storage data pool spec that must only contain rgw:
dataPool:
deviceClass: hdd
failureDomain: host
erasureCoded:
codingChunks: 1
dataChunks: 2
|
|
Required if rgw:
metadataPool:
deviceClass: hdd
failureDomain: host
replicated:
size: 3
where Warning When using the non-recommended Ceph pools For example, if |
|
Required. The gateway settings corresponding to the
For example: rgw:
gateway:
allNodes: false
instances: 3
port: 80
securePort: 8443
|
|
Optional. Defines whether to delete the data and metadata pools in
the |
|
Optional. To create new Ceph RGW resources, such as buckets or users, specify the following keys. Ceph Controller will automatically create the specified object storage users and buckets in the Ceph cluster.
|
|
Required if For example: objectStorage:
multisite:
zones:
- name: master-zone
...
rgw:
zone:
name: master-zone
|
|
Optional. Custom TLS certificate parameters used to access the Ceph RGW endpoint. If not specified, a self-signed certificate will be generated. For example: objectStorage:
rgw:
SSLCert:
cacert: |
-----BEGIN CERTIFICATE-----
ca-certificate here
-----END CERTIFICATE-----
tlsCert: |
-----BEGIN CERTIFICATE-----
private TLS certificate here
-----END CERTIFICATE-----
tlsKey: |
-----BEGIN RSA PRIVATE KEY-----
private TLS key here
-----END RSA PRIVATE KEY-----
|
|
Optional. Available since MOSK 25.1. Flag to determine that a TLS
certificate for accessing the Ceph RGW endpoint is used but not exposed
in objectStorage:
rgw:
SSLCertInRef: true
The operator must manually provide TLS configuration using the
data:
cacert: <base64encodedCaCertificate>
cert: <base64encodedCertificate>
When removing an already existing When adding a new secret directly without exposing it in
|
Example configuration
rgw:
name: rgw-store
dataPool:
deviceClass: hdd
erasureCoded:
codingChunks: 1
dataChunks: 2
failureDomain: host
metadataPool:
deviceClass: hdd
failureDomain: host
replicated:
size: 3
gateway:
allNodes: false
instances: 3
port: 80
securePort: 8443
preservePoolsOnDelete: false
ExtraOpts parameters¶
Parameter |
Description |
---|---|
|
Optional. A key-value setting used to assign a specification label to any
available device on a specific node. These labels can then be used for the
Usage: extraOpts:
deviceLabels:
<node-name>:
<dev-label>: /dev/disk/by-id/<unique_ID>
...
<dev-label-n>: /dev/disk/by-id/<unique_ID>
...
<node-name-n>:
<dev-label>: /dev/disk/by-id/<unique_ID>
...
<dev-label-n>: /dev/disk/by-id/<unique_ID>
nodes:
- name: <group-name>:
devices:
- name: <dev_label>
- name: <dev_label_n>
nodes:
- <node_name>
- <node_name_n>
|
|
Optional. TechPreview. A list of custom device class names to use in the
specification. Enables you to specify the custom names different from
the default ones, which include Usage: extraOpts:
customDeviceClasses:
- <custom_class_name>
nodes:
- name: kaas-node-5bgk6
devices:
- config: # existing item
deviceClass: <custom_class_name>
fullPath: /dev/disk/by-id/<unique_ID>
pools:
- default: false
deviceClass: <custom_class_name>
erasureCoded:
codingChunks: 1
dataChunks: 2
failureDomain: host
|
Multisite parameters¶
TechPreview
Parameter |
Description |
---|---|
|
Required. List of realms to use, represents the realm namespaces. Includes the following parameters:
|
|
Required. The list of zone groups for realms. Includes the following parameters:
|
|
Required. The list of zones used within one zone group. Includes the following parameters:
|
For configuration example, see Enable multisite for Ceph RGW Object Storage.
HealthCheck parameters¶
Parameter |
Description |
---|---|
|
Optional. Specifies health check settings for Ceph daemons. Contains the following parameters:
Each parameter allows defining the following settings:
|
|
Optional. Key-value parameter with liveness probe settings for
the defined daemon types. Can be one of the following:
Note Ceph Controller specifies the following
|
|
Optional. Key-value parameter with startup probe settings for
the defined daemon types. Can be one of the following:
|
Example configuration
healthCheck:
daemonHealth:
mon:
disabled: false
interval: 45s
timeout: 600s
osd:
disabled: false
interval: 60s
status:
disabled: true
livenessProbe:
mon:
disabled: false
probe:
timeoutSeconds: 10
periodSeconds: 3
successThreshold: 3
mgr:
disabled: false
probe:
timeoutSeconds: 5
failureThreshold: 5
osd:
probe:
initialDelaySeconds: 5
timeoutSeconds: 10
failureThreshold: 7
startupProbe:
mon:
disabled: true
mgr:
probe:
successThreshold: 3