diff --git a/Documentation/ceph-cluster-crd.md b/Documentation/ceph-cluster-crd.md index 1b736bffb..0c4cc4e84 100755 --- a/Documentation/ceph-cluster-crd.md +++ b/Documentation/ceph-cluster-crd.md @@ -537,9 +537,8 @@ This allows to keep Rook components running when for example a node runs out of You can set resource requests/limits for Rook components through the [Resource Requirements/Limits](#resource-requirementslimits) structure in the following keys: * `mon`: Set resource requests/limits for mons -* `osd`: Set resource requests/limits for OSDs - This key applies for all OSDs regardless of their device classes. In case of need to apply resource requests/limits for OSDs with - particular device class use specific osd keys below. +* `osd`: Set resource requests/limits for OSDs. + This key applies for all OSDs regardless of their device classes. In case of need to apply resource requests/limits for OSDs with particular device class use specific osd keys below. If the memory resource is declared Rook will automatically set the OSD configuration `osd_memory_target` to the same value. This aims to ensure that the actual OSD memory consumption is consistent with the OSD pods' resource declaration. * `osd-`: Set resource requests/limits for OSDs on a specific device class. Rook will automatically detect `hdd`, `ssd`, or `nvme` device classes. Custom device classes can also be set. * `mgr`: Set resource requests/limits for MGRs @@ -559,11 +558,12 @@ If a user configures a limit or request value that is too low, Rook will still r * `mon`: 1024MB * `mgr`: 512MB * `osd`: 2048MB -* `mds`: 4096MB * `prepareosd`: 50MB * `crashcollector`: 60MB * `mgr-sidecar`: 100MB limit, 40MB requests +> **HINT** The resources for MDS daemons are not configured in the Cluster. Refer to the [Ceph Filesystem CRD](ceph-filesystem-crd.md) instead. + ### Resource Requirements/Limits For more information on resource requests/limits see the official Kubernetes documentation: [Kubernetes - Managing Compute Resources for Containers](https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#resource-requests-and-limits-of-pod-and-container) diff --git a/Documentation/ceph-filesystem-crd.md b/Documentation/ceph-filesystem-crd.md index 80763fb16..6b0abb81a 100644 --- a/Documentation/ceph-filesystem-crd.md +++ b/Documentation/ceph-filesystem-crd.md @@ -127,5 +127,14 @@ The metadata server settings correspond to the MDS daemon settings. * `annotations`: Key value pair list of annotations to add. * `labels`: Key value pair list of labels to add. * `placement`: The mds pods can be given standard Kubernetes placement restrictions with `nodeAffinity`, `tolerations`, `podAffinity`, and `podAntiAffinity` similar to placement defined for daemons configured by the [cluster CRD](https://github.com/rook/rook/blob/{{ branchName }}/cluster/examples/kubernetes/ceph/cluster.yaml). -* `resources`: Set resource requests/limits for the Filesystem MDS Pod(s), see [Resource Requirements/Limits](ceph-cluster-crd.md#resource-requirementslimits). +* `resources`: Set resource requests/limits for the Filesystem MDS Pod(s), see [MDS Resources Configuration Settings](#mds-resources-configuration-settings) * `priorityClassName`: Set priority class name for the Filesystem MDS Pod(s) + +### MDS Resources Configuration Settings + +The format of the resource requests/limits structure is the same as described in the [Ceph Cluster CRD documentation](ceph-cluster-crd.md#resource-requirementslimits). + +If the memory resource limit is declared Rook will automatically set the MDS configuration `mds_cache_memory_limit`. The configuration value is calculated with the aim that the actual MDS memory consumption remains consistent with the MDS pods' resource declaration. + +In order to provide the best possible experience running Ceph in containers, Rook internally recommends the memory for MDS daemons to be at least 4096MB. +If a user configures a limit or request value that is too low, Rook will still run the pod(s) and print a warning to the operator log.