mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-09 16:00:22 +00:00
doc: add documentation for read affinity
This commit adds documentation about read affinity supported for CephFS subvolumes. Signed-off-by: Praveen M <m.praveen@ibm.com>
This commit is contained in:
parent
7e26beb51e
commit
00c12b396f
@ -165,7 +165,7 @@ charts and their default values.
|
|||||||
| `provisionerSocketFile` | The filename of the provisioner socket | `csi-provisioner.sock` |
|
| `provisionerSocketFile` | The filename of the provisioner socket | `csi-provisioner.sock` |
|
||||||
| `pluginSocketFile` | The filename of the plugin socket | `csi.sock` |
|
| `pluginSocketFile` | The filename of the plugin socket | `csi.sock` |
|
||||||
| `readAffinity.enabled` | Enable read affinity for CephFS subvolumes. Recommended to set to true if running kernel 5.8 or newer. | `false` |
|
| `readAffinity.enabled` | Enable read affinity for CephFS subvolumes. Recommended to set to true if running kernel 5.8 or newer. | `false` |
|
||||||
| `readAffinity.crushLocationLabels` | Define which node labels to use as CRUSH location. This should correspond to the values set in the CRUSH map. For more information, click [here](https://github.com/ceph/ceph-csi/blob/v3.9.0/docs/deploy-rbd.md#read-affinity-using-crush-locations-for-rbd-volumes)| `[]` |
|
| `readAffinity.crushLocationLabels` | Define which node labels to use as CRUSH location. This should correspond to the values set in the CRUSH map. For more information, click [here](https://github.com/ceph/ceph-csi/blob/v3.9.0/docs/deploy-cephfs.md#read-affinity-using-crush-locations-for-cephfs-subvolumes)| `[]` |
|
||||||
| `kubeletDir` | Kubelet working directory | `/var/lib/kubelet` |
|
| `kubeletDir` | Kubelet working directory | `/var/lib/kubelet` |
|
||||||
| `driverName` | Name of the csi-driver | `cephfs.csi.ceph.com` |
|
| `driverName` | Name of the csi-driver | `cephfs.csi.ceph.com` |
|
||||||
| `configMapName` | Name of the configmap which contains cluster configuration | `ceph-csi-config` |
|
| `configMapName` | Name of the configmap which contains cluster configuration | `ceph-csi-config` |
|
||||||
|
@ -47,6 +47,8 @@ make image-cephcsi
|
|||||||
| `--kernelmountoptions` | _empty_ | Comma separated string of mount options accepted by cephfs kernel mounter.<br>`Note: These options will be replaced if kernelMountOptions are defined in the ceph-csi-config ConfigMap for the specific cluster.` |
|
| `--kernelmountoptions` | _empty_ | Comma separated string of mount options accepted by cephfs kernel mounter.<br>`Note: These options will be replaced if kernelMountOptions are defined in the ceph-csi-config ConfigMap for the specific cluster.` |
|
||||||
| `--fusemountoptions` | _empty_ | Comma separated string of mount options accepted by ceph-fuse mounter.<br>`Note: These options will be replaced if fuseMountOptions are defined in the ceph-csi-config ConfigMap for the specific cluster.` |
|
| `--fusemountoptions` | _empty_ | Comma separated string of mount options accepted by ceph-fuse mounter.<br>`Note: These options will be replaced if fuseMountOptions are defined in the ceph-csi-config ConfigMap for the specific cluster.` |
|
||||||
| `--domainlabels` | _empty_ | Kubernetes node labels to use as CSI domain labels for topology aware provisioning, should be a comma separated value (ex:= "failure-domain/region,failure-domain/zone") |
|
| `--domainlabels` | _empty_ | Kubernetes node labels to use as CSI domain labels for topology aware provisioning, should be a comma separated value (ex:= "failure-domain/region,failure-domain/zone") |
|
||||||
|
| `--enable-read-affinity` | `false` | enable read affinity |
|
||||||
|
| `--crush-location-labels`| _empty_ | Kubernetes node labels that determine the CRUSH location the node belongs to, separated by ','.<br>`Note: These labels will be replaced if crush location labels are defined in the ceph-csi-config ConfigMap for the specific cluster.` |
|
||||||
|
|
||||||
**NOTE:** The parameter `-forcecephkernelclient` enables the Kernel
|
**NOTE:** The parameter `-forcecephkernelclient` enables the Kernel
|
||||||
CephFS mounter on kernels < 4.17.
|
CephFS mounter on kernels < 4.17.
|
||||||
@ -223,6 +225,27 @@ The Helm chart is located in `charts/ceph-csi-cephfs`.
|
|||||||
|
|
||||||
[See the Helm chart readme for installation instructions.](../charts/ceph-csi-cephfs/README.md)
|
[See the Helm chart readme for installation instructions.](../charts/ceph-csi-cephfs/README.md)
|
||||||
|
|
||||||
|
## Read Affinity using crush locations for CephFS subvolumes
|
||||||
|
|
||||||
|
Ceph CSI supports mounting CephFS subvolumes with kernel mount options
|
||||||
|
`"read_from_replica=localize,crush_location=type1:value1|type2:value2"` to
|
||||||
|
allow serving reads from the most local OSD (according to OSD locations as
|
||||||
|
defined in the CRUSH map).
|
||||||
|
|
||||||
|
This can be enabled by adding labels to Kubernetes nodes like
|
||||||
|
`"topology.io/region=east"` and `"topology.io/zone=east-zone1"` and
|
||||||
|
passing command line arguments `"--enable-read-affinity=true"` and
|
||||||
|
`"--crush-location-labels=topology.io/zone,topology.io/region"` to Ceph CSI
|
||||||
|
CephFS daemonset pod "csi-cephfsplugin" container, resulting in Ceph CSI adding
|
||||||
|
`"--options read_from_replica=localize,crush_location=zone:east-zone1|region:east"`
|
||||||
|
kernel mount options during cephfs mount operation.
|
||||||
|
If enabled, this option will be added to all CephFS subvolumes mapped by Ceph CSI.
|
||||||
|
Well known labels can be found
|
||||||
|
[here](https://kubernetes.io/docs/reference/labels-annotations-taints/).
|
||||||
|
|
||||||
|
>Note: Label values will have all its dots `"."` normalized with dashes `"-"`
|
||||||
|
in order for it to work with ceph CRUSH map.
|
||||||
|
|
||||||
## CephFS Volume Encryption
|
## CephFS Volume Encryption
|
||||||
|
|
||||||
Requires fscrypt support in the Linux kernel and Ceph.
|
Requires fscrypt support in the Linux kernel and Ceph.
|
||||||
|
Loading…
Reference in New Issue
Block a user