diff --git a/chart/README.md b/chart/README.md index a62fbabd5..895a7cbeb 100644 --- a/chart/README.md +++ b/chart/README.md @@ -157,7 +157,7 @@ This removes all the Kubernetes components associated with the chart and deletes | io_engine.​envcontext | Pass additional arguments to the Environment Abstraction Layer. Example: --set {product}.envcontext=iova-mode=pa | `""` | | io_engine.​logLevel | Log level for the io-engine service | `"info"` | | io_engine.​nodeSelector | Node selectors to designate storage nodes for diskpool creation Note that if multi-arch images support 'kubernetes.io/arch: amd64' should be removed. |
{
"kubernetes.io/arch":"amd64",
"openebs.io/engine":"mayastor"
}
| -| io_engine.​nvme.​ioTimeout | Timeout for IOs The default here is exaggerated for local disks but we've observed that in shared virtual environments having a higher timeout value is beneficial. In certain cases, you may have to set this to an even higher value. For example, in Hetzner we've had better results setting it to 300s. Please adjust this according to your hardware and needs. | `"110s"` | +| io_engine.​nvme.​ioTimeout | Timeout for IOs The default here is exaggerated for local disks, but we've observed that in shared virtual environments having a higher timeout value is beneficial. Please adjust this according to your hardware and needs. | `"110s"` | | io_engine.​nvme.​tcp.​maxQueueDepth | You may need to increase this for a higher outstanding IOs per volume | `"32"` | | io_engine.​priorityClassName | Set PriorityClass, overrides global | `""` | | io_engine.​resources.​limits.​cpu | Cpu limits for the io-engine | `""` | diff --git a/chart/templates/mayastor/agents/core/agent-core-deployment.yaml b/chart/templates/mayastor/agents/core/agent-core-deployment.yaml index f86908b14..92b2bb930 100644 --- a/chart/templates/mayastor/agents/core/agent-core-deployment.yaml +++ b/chart/templates/mayastor/agents/core/agent-core-deployment.yaml @@ -61,6 +61,8 @@ spec: - "--disable-ha"{{ end }} - "--fmt-style={{ include "logFormat" . }}" - "--ansi-colors={{ .Values.base.logging.color }}" + - "--create-volume-limit={{ .Values.agents.core.maxCreateVolume }}"{{ if .Values.agents.core.maxRebuilds }} + - "--max-rebuilds={{ .Values.agents.core.maxRebuilds }}"{{ end }} ports: - containerPort: 50051 env: diff --git a/chart/templates/mayastor/csi/csi-controller-deployment.yaml b/chart/templates/mayastor/csi/csi-controller-deployment.yaml index b40dc9480..0c3308a73 100644 --- a/chart/templates/mayastor/csi/csi-controller-deployment.yaml +++ b/chart/templates/mayastor/csi/csi-controller-deployment.yaml @@ -48,7 +48,7 @@ spec: - "--default-fstype=ext4" - "--extra-create-metadata" # This is needed for volume group feature to work - "--timeout=36s" - - "--worker-threads=10" # 10 for create and 10 for delete + - "--worker-threads={{ .Values.csi.controller.maxCreateVolume }}" # 10 for create and 10 for delete {{- if default .Values.csi.controller.preventVolumeModeConversion }} - "--prevent-volume-mode-conversion" {{- end }} @@ -123,6 +123,7 @@ spec: {{- end }} - "--ansi-colors={{ .Values.base.logging.color }}" - "--fmt-style={{ include "logFormat" . }}" + - "--create-volume-limit={{ .Values.csi.controller.maxCreateVolume }}" env: - name: RUST_LOG value: {{ .Values.csi.controller.logLevel }} diff --git a/chart/templates/mayastor/io/io-engine-daemonset.yaml b/chart/templates/mayastor/io/io-engine-daemonset.yaml index 313f25f45..b1d859163 100644 --- a/chart/templates/mayastor/io/io-engine-daemonset.yaml +++ b/chart/templates/mayastor/io/io-engine-daemonset.yaml @@ -64,6 +64,8 @@ spec: env: - name: RUST_LOG value: {{ .Values.io_engine.logLevel }} + - name: NVMF_TCP_MAX_QPAIRS_PER_CTRL + value: "{{ .Values.io_engine.nvme.tcp.maxQpairsPerCtrl }}" - name: NVMF_TCP_MAX_QUEUE_DEPTH value: "{{ .Values.io_engine.nvme.tcp.maxQueueDepth }}" - name: NVME_TIMEOUT diff --git a/chart/values.yaml b/chart/values.yaml index 2e9e9bcf5..8cff09c26 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -178,6 +178,17 @@ agents: # Example: if this value is 40, the pool has 40GiB free, then the max volume size allowed # to be snapped on the pool is 100GiB. snapshotCommitment: "40%" + # -- If a faulted replica comes back online within this time period then it will be + # rebuilt using the partial rebuild capability (using a log of missed IO), hence a bit + # faster depending on the log size. Otherwise, the replica will be fully rebuilt. + # A blank value "" means internally derived value will be used. + partialRebuildWaitPeriod: "" + # The maximum number of system-wide rebuilds permitted at any given time. + # If set to an empty string, there are no limits. + maxRebuilds: "" + # The maximum number of concurrent create volume requests. + maxCreateVolume: 10 + resources: limits: # -- Cpu limits for core agents @@ -189,11 +200,6 @@ agents: cpu: "500m" # -- Memory requests for core agents memory: "32Mi" - # -- If a faulted replica comes back online within this time period then it will be - # rebuilt using the partial rebuild capability (using a log of missed IO), hence a bit - # faster depending on the log size. Otherwise, the replica will be fully rebuilt. - # A blank value "" means internally derived value will be used. - partialRebuildWaitPeriod: "" # -- Set tolerations, overrides global tolerations: [] # -- Set PriorityClass, overrides global. @@ -293,6 +299,8 @@ csi: controller: # -- Log level for the csi controller logLevel: info + # The maximum number of concurrent create volume requests. + maxCreateVolume: 10 resources: limits: # -- Cpu limits for csi controller @@ -368,10 +376,8 @@ io_engine: crdt1: 30 nvme: # -- Timeout for IOs - # The default here is exaggerated for local disks but we've observed that in + # The default here is exaggerated for local disks, but we've observed that in # shared virtual environments having a higher timeout value is beneficial. - # In certain cases, you may have to set this to an even higher value. For example, - # in Hetzner we've had better results setting it to 300s. # Please adjust this according to your hardware and needs. ioTimeout: "110s" # Timeout for admin commands @@ -382,6 +388,9 @@ io_engine: # -- Max size setting (both initiator and target) for an NVMe queue # -- You may need to increase this for a higher outstanding IOs per volume maxQueueDepth: "32" + # Max qpairs per controller. + maxQpairsPerCtrl: "32" + # -- Pass additional arguments to the Environment Abstraction Layer. # Example: --set {product}.envcontext=iova-mode=pa