This is unreleased documentation for SUSE® Storage 1.10 (Dev). |
Settings
Value Format Types by Supported Data Engines
Each setting supports only one of the following formats, based on its definition. The supported format determines which data engines can be configured and whether their values can differ.
-
Single value for all supported data engines
-
Format: Non-JSON string (for example,
1024
) -
The value applies to all supported data engines and must be the same across them.
-
Data-engine-specific values are not allowed.
-
-
Data-engine-specific values for V1 and V2 data engines
-
Format: JSON object (for example,
{"v1": "value1", "v2": "value2"}
) -
Allows specifying different values for V1 and V2 data engines.
-
-
Data-engine-specific values for V1 data engine only
-
Format: JSON object with
v1
key only (for example,{"v1": "value1"}
) -
Only the V1 data engine can be configured. The V2 data engine is not affected.
-
-
Data-engine-specific values for V2 data engine only
-
Format: JSON object with
v2
key only (for example,{"v2": "value1"}
) -
Only the V2 data engine can be configured. The V1 data engine is not affected.
-
Customizing Default Settings
To configure SUSE Storage before installing it, see this section for details.
System Info
Default Engine Image
The default engine image is the image used by the manager and can be changed only when the manager starts.
Every SUSE Storage release includes a new engine image. A green arrow will appear on the Longhorn volumes not using the default engine, indicating that the volume needs to be upgraded.
Default Instance Manager Image
The default instance manager image is the image used by the manager and can be changed only when the manager starts.
Default Backing Image Manager Image
The default backing image manager image is the image used by the manager and can be changed only when the manager starts.
Support Bundle Manager Image
SUSE Storage uses the support bundle manager image to generate support bundles.
A default image is provided during installation and upgrade, and you can also change this in the settings.
An example of the support bundle manager image:
Default value: longhornio/support-bundle-kit:v0.0.14
General
Node Drain Policy
Default value: block-if-contains-last-replica
Define the policy to use when a node with the last healthy replica of a volume is drained. Available options:
-
block-if-contains-last-replica
: SUSE Storage will block the drain when the node contains the last healthy replica of a volume. -
allow-if-replica-is-stopped
: SUSE Storage will allow the drain when the node contains the last healthy replica of a volume but the replica is stopped. WARNING: possible data loss if the node is removed after draining. -
always-allow
: SUSE Storage will allow the drain even though the node contains the last healthy replica of a volume. WARNING: possible data loss if the node is removed after draining. Also possible data corruption if the last replica was running during the draining. -
block-for-eviction
: SUSE Storage will automatically evict all replicas and block the drain until eviction is complete. WARNING: Can result in slow drains and extra data movement associated with replica rebuilding. -
block-for-eviction-if-contains-last-replica
: SUSE Storage will automatically evict any replicas that don’t have a healthy counterpart and block the drain until eviction is complete. WARNING: Can result in slow drains and extra data movement associated with replica rebuilding.
Each option has benefits and drawbacks. See Node Drain Policy Recommendations for help deciding which is most appropriate in your environment.
Detach Manually Attached Volumes When Cordoned
Default value: false
SUSE Storage will automatically detach volumes that are manually attached to the nodes which are cordoned. This prevent the draining process stuck by the PDB of instance-manager which still has running engine on the node.
Automatically Clean up System Generated Snapshot
Default value: true
SUSE Storage will generate system snapshot during replica rebuild, and if a user doesn’t setup a recurring snapshot schedule, all the system generated snapshots would be left in the replica, and user has to delete them manually, this setting allow SUSE Storage to automatically cleanup system generated snapshot before and after replica rebuild.
Automatically Clean up Outdated Snapshots of Recurring Backup Jobs
Default value: true
If enabled, when running a recurring backup job, SUSE Storage takes a new snapshot before creating the backup. SUSE Storage retains only the snapshot used by the last backup job even if the value of the retain parameter is not 1.
If disabled, this setting ensures that the retained snapshots directly correspond to the backups on the remote backup target.
Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly
Default value: true
If enabled, SUSE Storage will automatically delete the workload pod that is managed by a controller (e.g. deployment, statefulset, daemonset, etc.) when Longhorn volume is detached unexpectedly (e.g. during Kubernetes upgrade, Docker reboot, or network disconnect). By deleting the pod, its controller restarts the pod and Kubernetes handles volume reattachment and remount.
If disabled, SUSE Storage will not delete the workload pod that is managed by a controller. You will have to manually restart the pod to reattach and remount the volume.
This setting does not apply to workload pods without a controller. SUSE Storage never deletes such pods. |
Automatic Salvage
Default value: true
If enabled, volumes will be automatically salvaged when all the replicas become faulty e.g. due to network disconnection. SUSE Storage will try to figure out which replica(s) are usable, then use them for the volume.
Concurrent Automatic Engine Upgrade Per Node Limit
Default value: 0
This setting controls how SUSE Storage automatically upgrades volumes' engines to the new default engine image after upgrading Longhorn manager.
The value of this setting specifies the maximum number of engines per node that are allowed to upgrade to the default engine image at the same time.
If the value is 0, SUSE Storage will not automatically upgrade volumes' engines to default version.
Concurrent Volume Backup Restore Per Node Limit
Default value: 5
This setting controls how many volumes on a node can restore the backup concurrently.
SUSE Storage blocks the backup restore once the restoring volume count exceeds the limit.
Set the value to 0 to disable backup restore.
Create Default Disk on Labeled Nodes
Default value: false
If no other disks exist, create the default disk automatically, only on nodes with the Kubernetes label node.longhorn.io/create-default-disk=true
.
If disabled, the default disk will be created on all new nodes when the node is detected for the first time.
This option is useful if you want to scale the cluster but don’t want to use storage on the new nodes, or if you want to customize disks for Longhorn nodes.
Custom Resource API Version
Default value: longhorn.io/v1beta2
The current customer resource’s API version, e.g. longhorn.io/v1beta2. Set by manager automatically.
Default Data Locality
Default value: disabled
We say a Longhorn volume has data locality if there is a local replica of the volume on the same node as the pod which is using the volume. This setting specifies the default data locality when a volume is created from the SUSE Storage UI. For Kubernetes configuration, update the dataLocality in the StorageClass
The available modes are:
-
disabled
. This is the default option. There may or may not be a replica on the same node as the attached volume (workload). -
best-effort
. This option instructs SUSE Storage to try to keep a replica on the same node as the attached volume (workload). SUSE Storage will not stop the volume, even if it cannot keep a replica local to the attached volume (workload) due to environment limitation, e.g. not enough disk space, incompatible disk tags, etc. -
strict-local
: This option enforces SUSE Storage keep the only one replica on the same node as the attached volume, and therefore, it offers higher IOPS and lower latency performance.
Default Data Path
Default value: /var/lib/longhorn/
Default path to use for storing data on a host.
Can be used with Create Default Disk on Labeled Nodes
option, to make SUSE Storage only use the nodes with specific storage mounted at, for example, /opt/longhorn
when scaling the cluster.
Default SUSE Storage Static StorageClass Name
Default value: longhorn-static
The storageClassName
is for persistent volumes (PVs) and persistent volume claims (PVCs) when creating PV/PVC for an existing Longhorn volume. Notice that it’s unnecessary for users to create the related StorageClass object in Kubernetes since the StorageClass would only be used as matching labels for PVC bounding purposes. The "storageClassName" needs to be an existing StorageClass. Only the StorageClass named longhorn-static
will be created if it does not exist. By default 'longhorn-static'.
Default Replica Count
Default value: {"v1":"3","v2":"3"}
The default number of replicas when creating the volume from SUSE Storage UI. For Kubernetes, update the numberOfReplicas
in the StorageClass
The recommended way of choosing the default replica count is: if you have three or more nodes for storage, use 3; otherwise use 2. Using a single replica on a single node cluster is also OK, but the high availability functionality wouldn’t be available. You can still take snapshots or backups of the volume.
Deleting Confirmation Flag
Default value: false
This flag is designed to prevent SUSE Storage from being accidentally uninstalled which will lead to data loss.
-
Set this flag to true to allow SUSE Storage uninstallation.
-
If this flag false, SUSE Storage uninstallation job will fail.
Disable Revision Counter
Default value: {"v1":"true"}
Allows engine controller and engine replica to disable revision counter file update for every data write. This improves the data path performance. See Revision Counter for details.
Enable Upgrade Checker
Default value: true
Upgrade Checker will check for a new SUSE Storage version periodically. When there is a new version available, it will notify the user in the SUSE Storage UI.
Upgrade Responder URL
Default value: https://longhorn-upgrade-responder.rancher.io/v1/checkupgrade
The Upgrade Responder sends a notification whenever a new SUSE Storage version that you can upgrade to becomes available.
Allow Collecting SUSE Storage Usage Metrics
Default value: true
Enabling this setting will allow SUSE Storage to provide valuable usage metrics to https://metrics.longhorn.io/.
This information will help us gain insights how SUSE Storage is being used, which will ultimately contribute to future improvements.
Node Information collected from all cluster nodes includes:
-
Number of disks of each device type (HDD, SSD, NVMe, unknown).
This value may not be accurate for virtual machines.
-
Number of disks for each Longhorn disk type (block, filesystem).
-
Host system architecture.
-
Host kernel release.
-
Host operating system (OS) distribution.
-
Kubernetes node provider.
Cluster Information collected from one of the cluster nodes includes:
-
Longhorn namespace UID.
-
Number of Longhorn nodes.
-
Number of volumes of each access mode (RWO, RWX, unknown).
-
Number of volumes of each data engine (v1, v2).
-
Number of volumes of each data locality type (disabled, best_effort, strict_local, unknown).
-
Number of volumes that are encrypted or unencrypted.
-
Number of volumes of each frontend type (blockdev, iscsi).
-
Number of replicas.
-
Number of snapshots.
-
Number of backing images.
-
Number of orphans.
-
Average volume size in bytes.
-
Average volume actual size in bytes.
-
Average number of snapshots per volume.
-
Average number of replicas per volume.
-
Average SUSE Storage component CPU usage (instance manager, manager) in millicores.
-
Average SUSE Storage component memory usage (instance manager, manager) in bytes.
-
Longhorn settings:
-
Partially included:
-
Backup Target Type or Protocol (azblob, cifs, nfs, s3, none, unknown). This is from the Backup Target setting.
-
-
Included as true or false to indicate if this setting is configured:
-
Priority Class
-
Registry Secret
-
Snapshot Data Integrity CronJob
-
Storage Network
-
System Managed Components Node Selector
-
Taint Toleration
-
-
Included as it is:
-
Allow Recurring Job While Volume Is Detached
-
Allow Volume Creation With Degraded Availability
-
Automatically Clean up System Generated Snapshot
-
Automatically Clean up Outdated Snapshots of Recurring Backup Jobs
-
Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly
-
Automatic Salvage
-
Backing Image Cleanup Wait Interval
-
Backing Image Recovery Wait Interval
-
Backup Compression Method
-
Backupstore Poll Interval
-
Backup Concurrent Limit
-
Concurrent Automatic Engine Upgrade Per Node Limit
-
Concurrent Backup Restore Per Node Limit
-
Concurrent Replica Rebuild Per Node Limit
-
CRD API Version
-
Create Default Disk Labeled Nodes
-
Default Data Locality
-
Default Replica Count
-
Disable Revision Counter
-
Disable Scheduling On Cordoned Node
-
Engine Replica Timeout
-
Failed Backup TTL
-
Fast Replica Rebuild Enabled
-
Guaranteed Instance Manager CPU
-
Kubernetes Cluster Autoscaler Enabled
-
Node Down Pod Deletion Policy
-
Node Drain Policy
-
Orphan Auto Deletion
-
Recurring Failed Jobs History Limit
-
Recurring Successful Jobs History Limit
-
Remove Snapshots During Filesystem Trim
-
Replica Auto Balance
-
Replica File Sync HTTP Client Timeout
-
Replica Replenishment Wait Interval
-
Replica Soft Anti Affinity
-
Replica Zone Soft Anti Affinity
-
Replica Disk Soft Anti Affinity
-
Restore Concurrent Limit
-
Restore Volume Recurring Jobs
-
Snapshot Data Integrity
-
Snapshot DataIntegrity Immediate Check After Snapshot Creation
-
Storage Minimal Available Percentage
-
Storage Network For RWX Volume Enabled
-
Storage Over Provisioning Percentage
-
Storage Reserved Percentage For Default Disk
-
Support Bundle Failed History Limit
-
Support Bundle Node Collection Timeout
-
System Managed Pods Image Pull Policy
-
-
The Upgrade Checker
needs to be enabled to periodically send the collected data.
Pod Deletion Policy When Node is Down
Default value: do-nothing
Defines the SUSE Storage action when a Volume is stuck with a StatefulSet or Deployment Pod on a node that is down.
-
do-nothing
is the default Kubernetes behavior of never force deleting StatefulSet or Deployment terminating pods. Since the pod on the node that is down isn’t removed, Longhorn volumes are stuck on nodes that are down. -
delete-statefulset-pod
SUSE Storage will force delete StatefulSet terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods. -
delete-deployment-pod
SUSE Storage will force delete Deployment terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods. -
delete-both-statefulset-and-deployment-pod
SUSE Storage will force delete StatefulSet or Deployment terminating pods on nodes that are down to release Longhorn volumes so that Kubernetes can spin up replacement pods.
Replica Replenishment Wait Interval
Default value: 600
When there is at least one failed replica volume in a degraded volume, this interval in seconds determines how long SUSE Storage will wait at most in order to reuse the existing data of the failed replicas rather than directly creating a new replica for this volume.
This wait interval works only when there is at least one failed replica in the volume. And this option may block the rebuilding for a while. |
System Managed Pod Image Pull Policy
Default value: if-not-present
This setting defines the Image Pull Policy of Longhorn system managed pods, e.g. instance manager, engine image, CSI driver, etc.
Notice that the new Image Pull Policy will only apply after the system managed pods restart.
This setting definition is exactly the same as that of in Kubernetes. Here are the available options:
-
always
. Every time the kubelet launches a container, the kubelet queries the container image registry to resolve the name to an image digest. If the kubelet has a container image with that exact digest cached locally, the kubelet uses its cached image; otherwise, the kubelet downloads (pulls) the image with the resolved digest, and uses that image to launch the container. -
if-not-present
. The image is pulled only if it is not already present locally. -
never
. The image is assumed to exist locally. No attempt is made to pull the image.
Backing Image Cleanup Wait Interval
Default value: 60
This interval in minutes determines how long SUSE Storage will wait before cleaning up the backing image file when there is no replica in the disk using it.
Backing Image Recovery Wait Interval
Default value: 300
The interval in seconds determines how long SUSE Storage will wait before re-downloading the backing image file when all disk files of this backing image become failed
or unknown
.
|
Default Min Number Of Backing Image Copies
Default value: 1
The default minimum number of backing image copies SUSE Storage maintains.
Engine Replica Timeout
Default value: {"v1":"8","v2":"8"}
Number of seconds a V1 Data Engine waits for a replica to respond before marking it as failed. Values between 8 and 30 are allowed. This setting takes effect only when there are outstanding input or output requests.
This setting only applies to additional replicas. A V1 engine marks the last active replica as failed only after twice the configured number of seconds (timeout value x 2) have passed. This behavior is intended to balance volume responsiveness with volume availability.
The engine can quickly (after the configured timeout) ignore individual replicas that become unresponsive in favor of other available ones. This ensures future input or output will not be held up.
The engine waits on the last replica (until twice the configured timeout) to prevent unnecessarily crashing as a result of having no available backends.
Support Bundle Failed History Limit
Default value: 1
This setting specifies how many failed support bundles can exist in the cluster.
The retained failed support bundle is for analysis purposes and needs to clean up manually.
SUSE Storage blocks support bundle creation when reaching the upper bound of the limitation. You can set this value to 0 to have SUSE Storage automatically purge all failed support bundles.
Support Bundle Node Collection Timeout
Default value: 30
Number of minutes SUSE Storage allows for collection of node information and node logs for the support bundle.
If the collection process is not completed within the allotted time, SUSE Storage continues generating the support bundle without the uncollected node data.
Fast Replica Rebuild Enabled
Default value: {"v1":"true","v2":"true"}
The setting enables fast replica rebuilding feature. It relies on the checksums of snapshot disk files, so setting the snapshot-data-integrity to enable or fast-check is a prerequisite.
Timeout of HTTP Client to Replica File Sync Server
Default value: 30
The value in seconds specifies the timeout of the HTTP client to the replica’s file sync server used for replica rebuilding, volume cloning, snapshot cloning, etc.
Offline Replica Rebuilding
Default value: false
Controls whether SUSE Storage automatically rebuilds degraded replicas while the volume is detached. This setting only takes effect if the volume-level setting is set to ignored
or enabled
.
Available options:
-
true
: Enables offline replica rebuilding for all detached volumes (unless overridden at the volume level). -
false
: Disables offline replica rebuilding globally (unless overridden at the volume level).
Offline rebuilding occurs only when a volume is detached. Volumes in a faulted state will not trigger offline rebuilding. |
This setting allows SUSE Storage to automatically rebuild replicas for detached volumes when needed.
Long gRPC Timeout
Default value: 86400
Number of seconds that SUSE Storage allows for the completion of replica rebuilding and snapshot cloning operations.
RWX Volume Fast Failover (Experimental)
Default value: false
Enable improved ReadWriteMany volume HA by shortening the time it takes to recover from a node failure.
Log Level
Default value: Log Level
Longhorn Manager uses the following log levels: Panic
, Fatal
, Error
, Warn
, Info
, Debug
, and Trace
. The default log level is Info
.
Log Path
Default value: /var/lib/longhorn/logs/
This setting specifies the directory on the host where SUSE Storage stores log files for the instance manager pod. Currently, this is only used for instance manager pods in the v2 data engine.
Data Engine Log Level
Default value: {"v2":"Notice"}
Applies only to the V2 Data Engine. Specifies the log level for the Storage Performance Development Kit (SPDK) target daemon. Supported values: Error
, Warning
, Notice
, Info
, and Debug
.
Snapshot
Snapshot Data Integrity
Default value: {"v1":"fast-check","v2":"fast-check"}
This setting allows users to enable or disable snapshot hashing and data integrity checking. Available options are:
-
disabled: Disable snapshot disk file hashing and data integrity checking.
-
enabled: Enables periodic snapshot disk file hashing and data integrity checking. To detect the filesystem-unaware corruption caused by bit rot or other issues in snapshot disk files, SUSE Storage system periodically hashes files and finds corrupted ones. Hence, the system performance will be impacted during the periodical checking.
-
fast-check: Enable snapshot disk file hashing and fast data integrity checking. Longhorn system only hashes snapshot disk files if their are not hashed or the modification time are changed. In this mode, filesystem-unaware corruption cannot be detected, but the impact on system performance can be minimized.
Immediate Snapshot Data Integrity Check After Creating a Snapshot
Default value: {"v1":"false","v2":"false"}
Hashing snapshot disk files impacts the performance of the system. The immediate snapshot hashing and checking can be disabled to minimize the impact after creating a snapshot.
Snapshot Data Integrity Check CronJob
Default value: {"v1":"0 0 */7 * *","v2":"0 0 */7 * *"}
Unix-cron string format. The setting specifies when SUSE Storage checks the data integrity of snapshot disk files.
Hashing snapshot disk files impacts the performance of the system. It is recommended to run data integrity checks during off-peak times and to reduce the frequency of checks. |
Snapshot Maximum Count
Default value: 250
Maximum snapshot count for a volume. The value should be between 2 to 250.
Freeze Filesystem For Snapshot
Default value: {"v1":"false"}
This setting only applies to volumes with the Kubernetes volume mode Filesystem
. When enabled, SUSE Storage freezes the
volume’s filesystem immediately before creating a user-initiated snapshot. When disabled or when the Kubernetes volume
mode is Block
, SUSE Storage instead attempts a system sync before creating a user-initiated snapshot.
Snapshots created when this setting is enabled are more likely to be consistent because the filesystem is in a consistent state at the moment of creation. However, under very heavy input or output, freezing the filesystem may take a significant amount of time and may cause workload activity to pause.
When this setting is disabled, all data is flushed to disk just before the snapshot is created, but SUSE Storage cannot completely block write attempts during the brief interval between the system sync and snapshot creation. input or output is not paused during the system sync, so workloads likely do not notice that a snapshot is being created.
The default option for this setting is false
because kernels with version v5.17
or earlier may not respond correctly
when a volume crashes while a freeze is ongoing. This is not likely to happen but if it does, an affected kernel will
not allow you to unmount the filesystem or stop processes using the filesystem without rebooting the node. Only enable
this setting if you plan to use kernels with version 5.17
or later, and ext4 or XFS filesystems.
You can override this setting (using the field freezeFilesystemForSnapshot
) for specific volumes through the SUSE Storage
UI, a StorageClass, or direct changes to an existing volume. freezeFilesystemForSnapshot
accepts the following values:
Default value: ignored
-
ignored
: Instructs SUSE Storage to use the global setting. This is the default option. -
enabled
: Enables freezing before snapshots, regardless of the global setting. -
disabled
: Disables freezing before snapshots, regardless of the global setting.
Orphan
Orphaned Resource Automatic Deletion
Example: replica-data;instance
This setting allows SUSE Storage to automatically delete orphan
resources, which are typically Custom Resources (CRs) created by SUSE Storage to represent detected orphaned entities. The deletion of an orphan
CR subsequently triggers the cleanup of the actual orphaned data or runtime instance it represents. However, orphan
resources associated with nodes that are in a down
or unknown
state will not be automatically cleaned up by this setting.
You can list the resource types to be automatically deleted as a semicolon-separated string. Available types include:
-
replica-data
: Represents replica data store. -
instance
: Represents engine and replica runtime instance.
Orphaned Resource Automatic Deletion Grace Period
Default value: 300
seconds
Number of seconds SUSE Storage waits before automatically deleting an orphaned custom resource (CR) and the actual orphaned data or runtime instance it represents.
The grace period does not take effect when you manually delete an orphaned CR. |
Backups
Allow Recurring Job While Volume Is Detached
Default value: false
If this setting is enabled, SUSE Storage automatically attaches the volume and takes snapshot or backup when it is the time to do recurring snapshot or backup.
During the time the volume was attached automatically, the volume is not ready for the workload. The workload will have to wait until the recurring job finishes. |
Failed Backup Time To Live
Default value: 1440
The interval in minutes to keep the backup resource that was failed. Set to 0 to disable the auto-deletion.
Failed backups will be checked and cleaned up during backupstore polling which is controlled by Backupstore Poll Interval setting. Hence this value determines the minimal wait interval of the cleanup. And the actual cleanup interval is multiple of Backupstore Poll Interval. Disabling Backupstore Poll Interval also means to disable failed backup auto-deletion.
Cronjob Failed Jobs History Limit
Default value: 1
This setting specifies how many failed backup or snapshot job histories should be retained.
History will not be retained if the value is 0.
Cronjob Successful Jobs History Limit
Default value: 1
This setting specifies how many successful backup or snapshot job histories should be retained.
History will not be retained if the value is 0.
Restore Volume Recurring Jobs
Default value: false
This setting allows restoring the recurring jobs of a backup volume from the backup target during a volume restoration if they do not exist on the cluster. This is also a volume-specific setting with the below options. Users can customize it for each volume to override the global setting.
Default value: ignored
-
ignored
: This is the default option that instructs SUSE Storage to inherit from the global setting. -
enabled
: This option instructs SUSE Storage to restore volume recurring jobs or groups from the backup target forcibly. -
disabled
: This option instructs SUSE Storage no restoring volume recurring jobs or groups should be done.
Backup Compression Method
Default value: lz4
This setting allows users to specify backup compression method.
-
none
: Disable the compression method. Suitable for multimedia data such as encoded images and videos. -
lz4
: Fast compression method. Suitable for flat files. -
gzip
: A bit of higher compression ratio but relatively slow.
Backup Concurrent Limit Per Backup
Default value: 2
This setting controls how many worker threads per backup concurrently.
Scheduling
Allow Volume Creation with Degraded Availability
Default value: true
This setting allows user to create and attach a volume that doesn’t have all the replicas scheduled at the time of creation.
It’s recommended to disable this setting when using SUSE Storage in the production environment. See Best Practices for details. |
Disable Scheduling On Cordoned Node
Default value: true
When this setting is checked, the Longhorn Manager will not schedule replicas on Kubernetes cordoned nodes.
When this setting is un-checked, the Longhorn Manager will schedule replicas on Kubernetes cordoned nodes.
Replica Node Level Soft Anti-Affinity
Default value: false
When this setting is checked, the Longhorn Manager will allow scheduling on nodes with existing healthy replicas of the same volume.
When this setting is un-checked, Longhorn Manager will forbid scheduling on nodes with existing healthy replicas of the same volume.
|
Replica Zone Level Soft Anti-Affinity
Default value: true
When this setting is checked, the Longhorn Manager will allow scheduling new replicas of a volume to the nodes in the same zone as existing healthy replicas.
When this setting is un-checked, Longhorn Manager will forbid scheduling new replicas of a volume to the nodes in the same zone as existing healthy replicas.
|
Replica Disk Level Soft Anti-Affinity
Default value: true
When this setting is checked, the Longhorn Manager will allow scheduling new replicas of a volume to the same disks as existing healthy replicas.
When this setting is un-checked, Longhorn Manager will forbid scheduling new replicas of a volume to the same disks as existing healthy replicas.
|
Replica Auto Balance
Default value: disabled
Enable this setting automatically rebalances replicas when discovered an available node.
The available global options are:
-
disabled
. This is the default option. No replica auto-balance will be done. -
least-effort
. This option instructs SUSE Storage to balance replicas for minimal redundancy. -
best-effort
. This option instructs SUSE Storage try to balancing replicas for even redundancy. SUSE Storage does not forcefully re-schedule the replicas to a zone that does not have enough nodes to support even balance. Instead, SUSE Storage will re-schedule to balance at the node level.
SUSE Storage also supports customizing for individual volume. The setting can be specified in UI or with Kubernetes manifest volume.spec.replicaAutoBalance, this overrules the global setting. The available volume spec options are:
Default value: ignored
-
ignored
. This is the default option that instructs SUSE Storage to inherit from the global setting. -
disabled
. This option instructs SUSE Storage no replica auto-balance should be done." -
least-effort
. This option instructs SUSE Storage to balance replicas for minimal redundancy. -
best-effort
. This option instructs SUSE Storage to try balancing replicas for even redundancy. SUSE Storage does not forcefully re-schedule the replicas to a zone that does not have enough nodes to support even balance. Instead, SUSE Storage will re-schedule to balance at the node level.
Replica Auto Balance Disk Pressure Threshold (%)
Default value: 90
Percentage of currently used storage that triggers automatic replica rebalancing.
When the threshold is reached, SUSE Storage automatically rebuilds replicas that are under disk pressure on another disk within the same node.
To disable this setting, set the value to 0.
This setting takes effect only when the following conditions are met:
-
Replica Auto Balance is set to best-effort. To disable this setting (disk pressure threshold) when replica auto-balance is set to best-effort, set the value of this setting to 0.
-
At least one other disk on the node has sufficient available space.
This setting is not affected by Replica Node Level Soft Anti_Affinity, which can prevent SUSE Storage from rebuilding a replica on the same node. Regardless of that setting’s value, this setting still allows SUSE Storage to attempt replica rebuilding on a different disk on the same node for migration purposes.
Storage Minimal Available Percentage
Default value: 25
This setting controls the minimum free space that must remain on a disk, based on its Storage Maximum, before SUSE Storage can schedule a new replica.
By default, SUSE Storage ensures that at least 25% of the disk’s total capacity remains free. If adding a replica would reduce the available space below this limit, SUSE Storage temporarily marks the disk as unavailable for scheduling until sufficient space is freed.
This safeguard helps protect your disks from becoming too full, which can cause performance issues or storage failures. Maintaining a buffer of free space helps keep the system stable and ensures room for unexpected storage needs.
See Multiple Disks Support for details.
Storage Over Provisioning Percentage
Default value: 100
The over-provisioning percentage defines the amount of storage that can be allocated relative to the hard drive’s capacity.
Adjusting this setting allows the Longhorn Manager to schedule new replicas on a disk as long as the combined size of all replicas remains within the permitted over-provisioning percentage of the usable disk space. The usable disk space is calculated as Storage Maximum minus Storage Reserved.
Replicas might consume more space than a volume’s nominal size due to snapshot data. To reclaim disk space, delete snapshots that are no longer needed. |
Suppose a disk has a Storage Maximum of 100 GiB and Storage Reserved of 10 GiB, resulting in 90 GiB of usable capacity.
If the Storage Over-Provisioning Percentage is set to 200%, the maximum allowed Storage Scheduled is 180 GiB (200% of 90 GiB).
This means the Longhorn Manager can continue scheduling replicas to this disk until the total scheduled size reaches 180 GiB, even though the actual usable space is only 90 GiB.
Storage Reserved Percentage For Default Disk
Default value: 30
The reserved percentage specifies the percentage of disk space that will not be allocated to the default disk on each new Longhorn node.
This setting only affects the default disk of a new adding node or nodes when installing SUSE Storage.
Danger Zone
Starting with SUSE Storage v1.6.0, SUSE Storage allows you to modify the Danger Zone settings without the need to wait for all volumes to become detached. Your preferred settings are immediately applied in the following scenarios:
-
No attached volumes: When no volumes are attached before the settings are configured, the setting changes are immediately applied.
-
Engine image upgrade (live upgrade): During a live upgrade, which involves creating a new Instance Manager pod, the setting changes are immediately applied to the new pod.
Settings are synchronized hourly. When all volumes are detached, the settings in the following table are immediately applied and the system-managed components (for example, Instance Manager, CSI Driver, and engine images) are restarted.
If you do not detach all volumes before the settings are synchronized, the settings are not applied and you must reconfigure the same settings after detaching the remaining volumes. You can view the list of unapplied settings in the Danger Zone section of the SUSE Storage UI, or run the following CLI command to check the value of the field APPLIED
.
~# kubectl -n longhorn-system get setting priority-class
NAME VALUE APPLIED AGE
priority-class longhorn-critical true 3h26m
Setting | Additional Information | Affected Components |
---|---|---|
System-managed components |
||
System-managed components |
||
System-managed components |
||
Instance Manager and Backing Image components |
||
Instance Manager component |
||
Instance Manager component |
||
Instance Manager component |
For V1 and V2 Data Engine settings, you can disable the Data Engines only when all associated volumes are detached. For example, you can disable the V2 Data Engine only when all V2 volumes are detached (even when V1 volumes are still attached).
V2 Data Engine
Default value: false
This setting enable the V2 Data Engine, which is an experimental feature based on the Storage Performance Development Kit (SPDK). The V2 Data Engine is an experimental feature and should not be used in production environments. For more information, see V2 Data Engine (Experimental).
|
Concurrent Replica Rebuild Per Node Limit
Default value: 5
This setting controls how many replicas on a node can be rebuilt simultaneously.
Typically, SUSE Storage can block the replica starting once the current rebuilding count on a node exceeds the limit. But when the value is 0, it means disabling the replica rebuilding.
|
Concurrent Backing Image Replenish Per Node Limit
Default value: 5
This setting controls how many backing image copies on a node can be replenished simultaneously.
Typically, SUSE Storage can block the backing image copy starting once the current replenishing count on a node exceeds the limit. But when the value is 0, it means disabling the backing image replenish.
Kubernetes Taint Toleration
Example: nodetype=storage:NoSchedule
If you want to dedicate nodes to just store SUSE Storage replicas and reject other general workloads, you can set tolerations for all SUSE Storage components and add taints to the nodes dedicated for storage.
Longhorn system contains user deployed components (e.g, Longhorn manager, Longhorn driver, Longhorn UI) and system managed components (e.g, instance manager, engine image, CSI driver, etc.) This setting only sets taint tolerations for system managed components. Depending on how you deployed Longhorn, you need to set taint tolerations for user deployed components in Helm chart or deployment YAML file.
To apply the modified toleration setting immediately, ensure that all Longhorn volumes are detached. When volumes are in use, SUSE Storage components are not restarted, and you need to reconfigure the settings after detaching the remaining volumes; otherwise, you can wait for the setting change to be reconciled in an hour. We recommend setting tolerations during SUSE Storage deployment because the Longhorn system cannot be operated during the update.
Multiple tolerations can be set here, and these tolerations are separated by semicolon. For example:
-
key1=value1:NoSchedule; key2:NoExecute
-
:
this toleration tolerates everything because an empty key with operatorExists
matches all keys, values and effects -
key1=value1:
this toleration has empty effect. It matches all effects with keykey1
See Taint Toleration for details.
Priority Class
Default value: longhorn-critical
By default, SUSE Storage workloads run with the same priority as other pods in the cluster, meaning in cases of node pressure, such as a node running out of memory, SUSE Storage workloads will be at the same priority as other Pods for eviction.
The Priority Class setting will specify a Priority Class for the SUSE Storage workloads to run as. This can be used to set the priority for SUSE Storage workloads higher so that they will not be the first to be evicted when a node is under pressure.
Longhorn system contains user deployed components (e.g, Longhorn manager, Longhorn driver, Longhorn UI) and system managed components (e.g, instance manager, engine image, CSI driver, etc.).
Note that this setting only sets Priority Class for system managed components. Depending on how you deployed SUSE Storage, you need to set Priority Class for user deployed components in Helm chart or deployment YAML file.
This setting should only be changed after detaching all Longhorn volumes, as the Longhorn system components will be restarted to apply the setting. The Priority Class update will take a while, and users cannot operate Longhorn system during the update. Hence, it’s recommended to set the Priority Class during SUSE Storage deployment. |
See Priority Class for details.
System Managed Components Node Selector
Example: label-key1:label-value1;label-key2:label-value2
If you want to restrict SUSE Storage components to only run on a particular set of nodes, you can set node selector for all SUSE Storage components.
Longhorn system contains user deployed components (e.g, Longhorn manager, Longhorn driver, Longhorn UI) and system managed components (e.g, instance manager, engine image, CSI driver, etc.) You need to set node selector for both of them. This setting only sets node selector for system managed components. Follow the instruction at Node Selector to change node selector.
Since all SUSE Storage components will be restarted, the Longhorn system is unavailable temporarily. To apply a setting immediately, ensure that all Longhorn volumes are detached. When volumes are in use, SUSE Storage components are not restarted, and you need to reconfigure the settings after detaching the remaining volumes; otherwise, you can wait for the setting change to be reconciled in an hour. Don’t operate the Longhorn system while node selector settings are updated and SUSE Storage components are being restarted. |
Kubernetes Cluster Autoscaler Enabled (Experimental)
Default value: false
Setting the Kubernetes Cluster Autoscaler Enabled to true
allows SUSE Storage to unblock the Kubernetes Cluster Autoscaler scaling.
See Kubernetes Cluster Autoscaler Support for details.
Replica rebuilding could be expensive because nodes with reusable replicas could get removed by the Kubernetes Cluster Autoscaler. |
Storage Network
Example: kube-system/demo-192-168-0-0
The storage network uses Multus NetworkAttachmentDefinition to segregate the in-cluster data traffic from the default Kubernetes cluster network.
By default, the this setting applies only to RWO (Read-Write-Once) volumes. For RWX (Read-Write-Many) volumes, see Storage Network for RWX Volume Enabled setting.
This setting should change after all Longhorn volumes are detached because some pods that run Longhorn system components are recreated to apply the setting. When all volumes are detached, SUSE Storage attempts to restart all Instance Manager and Backing Image Manager pods immediately. When volumes are in use, SUSE Storage components are not restarted, and you need to reconfigure the settings after detaching the remaining volumes; otherwise, you can wait for the setting change to be reconciled in an hour. |
See Storage Network for details.
Storage Network For RWX Volume Enabled
Default value: false
This setting allows SUSE Storage to use the storage network for RWX volumes.
This setting should change after all SUSE Storage RWX volumes are detached because some pods that run SUSE Storage components are recreated to apply the setting. When all RWX volumes are detached, SUSE Storage attempts to restart all CSI plugin pods immediately. When volumes are in use, pods that run SUSE Storage components are not restarted, so the settings must be reconfigured after the remaining volumes are detached. If you are unable to manually reconfigure the settings, you can opt to wait because settings are synchronized hourly. The RWX volumes are mounted with the storage network within the CSI plugin pod container network namespace. As a result, restarting the CSI plugin pod may lead to unresponsive RWX volume mounts. When this occurs, you must restart the workload pod to re-establish the mount connection. Alternatively, you can enable the Automatically Delete Workload Pod when The Volume Is Detached Unexpectedly setting. |
For more information, see Storage Network.
Remove Snapshots During Filesystem Trim
Example: false
This setting allows Longhorn filesystem trim feature to automatically mark the latest snapshot and its ancestors as removed and stops at the snapshot containing multiple children.
Since Longhorn filesystem trim feature can be applied to the volume head and the followed continuous removed or system snapshots only.
Notice that trying to trim a removed files from a valid snapshot will do nothing but the filesystem will discard this kind of in-memory trimmable file info. Later on if you mark the snapshot as removed and want to retry the trim, you may need to unmount and remount the filesystem so that the filesystem can recollect the trimmable file info.
See Trim Filesystem for details.
Guaranteed Instance Manager CPU
Default value: {"v1":"12","v2":"12"}
Percentage of the total allocatable CPU resources on each node to reserve for each instance manager pod. For example, a value of 10
means 10% of the total CPU on a node will be allocated to each instance manager pod on that node. This helps maintain engine and replica stability during periods of high node workload.
In order to prevent unexpected volume instance (engine/replica) crash as well as guarantee a relative acceptable IO performance, you can use the following formula to calculate a value for this setting:
Guaranteed Instance Manager CPU = The estimated max Longhorn volume engine and replica count on a node * 0.1 / The total allocatable CPUs on the node * 100.
The result of above calculation doesn’t mean that’s the maximum CPU resources the SUSE Storage workloads require. To fully exploit the Longhorn volume input or output performance, you can allocate or guarantee more CPU resources via this setting.
If it’s hard to estimate the usage now, you can leave it with the default value, which is 12%. Then you can tune it when there is no running workload using Longhorn volumes.
|
Disable Snapshot Purge
Default value: false
When set to true, temporarily prevent all attempts to purge volume snapshots.
SUSE Storage typically purges snapshots during replica rebuilding and user-initiated snapshot deletion. While purging, SUSE Storage coalesces unnecessary snapshots into their newer counterparts, freeing space consumed by historical data.
Allowing snapshot purging during normal operations is ideal, but this process temporarily consumes additional disk space. If insufficient disk space prevents the process from continuing, consider temporarily disabling purging while data is moved to other disks.
Auto Cleanup Snapshot When Delete Backup
Default value: false
When set to true, the snapshot used by the backup will be automatically cleaned up when the backup is deleted.
Instance Manager Pod Liveness Probe Timeout
Default value: 10
(in seconds)
The setting specifies the timeout for the instance manager pod liveness probe. The default value is 10 seconds.
When applying the setting, SUSE Storage will try to restart all instance-manager pods if all volumes are detached and eventually restart the instance manager pod without instances running on the instance manager. |
Data Engine CPU Mask
Default value: {"v2":"true"}
This setting applies only to the V2 Data Engine. It enables hugepages for the Storage Performance Development Kit (SPDK) target daemon. If this setting is disabled, legacy memory is used. The allocation size for this memory is set through the Data Engine Memory Size setting.
Data Engine Hugepage Enabled
Default value: {"v2":"2048"}
This setting applies only to the V2 Data Engine and specifies the memory size, in MiB, allocated to the Storage Performance Development Kit (SPDK) target daemon.
-
When Hugepage is enabled, this value defines the Hugepage size.
-
When Hugepage is disabled, legacy memory is used.
Data Engine Interrupt Mode Enabled
Default value: {"v2":"false"}
It applies only to the V2 Data Engine. It controls whether the Storage Performance Development Kit (SPDK) target daemon runs in interrupt mode or the default polling mode.
-
true
: It enables interrupt mode, reducing CPU usage by handling I/O through interrupts. -
false
: It keeps polling mode enabled for maximum performance and lowest latency.
DO NOT CHANGE THIS SETTING WITH ATTACHED VOLUMES. SUSE Storage will block this setting update when there are attached v2 volumes. |