Multiple Disk Support
Longhorn supports to use more than one disk on the nodes to store the volume data.
By default, /var/lib/longhorn
on the host will be used for storing the volume data. You can avoid using the default directory by adding a new disk, then disable scheduling for /var/lib/longhorn
.
Add a disk
To add a new disk for a node, heading to Node
tab, select one of the node, and select Edit Disks
in the drop down menu.
To add any additional disks, user needs to:
- Mount the disk on the host to a certain directory.
- Add the path of the mounted disk into the disk list of the node.
Longhorn will detect the storage information (e.g. maximum space, available space) about the disk automatically, and start scheduling to it if it's possible to accommodate the volume. A path mounted by the existing disk won't be allowed.
A certain amount of disk space can be reserved to stop Longhorn from using it. It can be set in the Space Reserved
field for the disk. It's useful for the non-dedicated storage disk on the node.
The kubelet needs to preserve node stability when available compute resources are low. This is especially important when dealing with incompressible compute resources, such as memory or disk space. If such resources are exhausted, nodes become unstable. To avoid kubelet Disk pressure
issue after scheduling several volumes, by default, longhorn reserved 30% of root disk space (/var/lib/longhorn
) to ensure node stability.
Use an alternative path for disk on the node
If the users don't want to use the original mount path of a disk on the node, they can use mount --bind
to create an alternative/alias path for the disk then use the it with Longhorn. Notice that soft link ln -s
won't work since it will not get populated correctly inside the pod.
Longhorn will identify the disk using the path, so the users need to make sure the alternative path are correctly mounted when the node reboots, e.g. by adding it to fstab
.