While Apache CloudStack has open source roots going back over a decade and is currently on its fourth major version release, the platform has been gaining more attention as more businesses and organizations seek open source alternatives to commercial offerings such as VMware virtualization management solutions.
Since early 2021, the LINBIT® team has actively developed for the CloudStack platform, with most of the work focusing on a CloudStack storage plugin that integrates the open source software-defined storage (SDS) management system, LINSTOR®, with CloudStack. The plugin was merged into the Apache CloudStack codebase in September 2021 and brings SDS, high availability (HA), and disaster recovery (DR) capabilities to CloudStack primary storage.
By using LINSTOR, you can have highly available CloudStack primary storage for your KVM1 virtual machine (VM) virtual disks, because the back-end storage will be replicated by DRBD®. You will also bring to your CloudStack primary storage other benefits that come with LINSTOR. Some of these benefits are:
- Automatic primary storage provisioning
- Highly available CloudStack primary storage and VM live migrations
- Quality of Service (QoS) control and tiered storage
- Snapshots and backup shipping for disaster recovery
- Monitoring and alerting
This article provides an overview of these benefits.

Automatic primary storage provisioning
A CloudStack administrator has a variety of storage types available to use to back CloudStack primary storage. However, as discussed in CloudStack documentation, there are two ways an administrator can manage CloudStack primary storage: statically and dynamically.
Static storage management is the traditional way. Here, an administrator allocates a set amount of some storage, such as a NFS share, iSCSI target, or even local storage. Administrators can then use that set amount of storage in CloudStack to carve out storage volumes that will back VM disks.
The newer way to provision CloudStack primary storage is dynamically. By using a CloudStack storage plugin, such as the LINSTOR plugin, an administrator turns over the storage allocation control to a storage system, such as LINSTOR. This storage system then handles requests from CloudStack to provision storage dynamically, as needed. This opens up doors to other benefits discussed in this article such as high availability, tiered storage, backups, and more.
Highly available CloudStack primary storage and VM live migrations
LINSTOR is known as an SDS tool for creating and managing DRBD block device resources. While this is not a strict requirement, by using DRBD in-real-time data replication, you can create high availability storage clusters. Creating and managing highly available storage is LINSTOR’s most frequent use case.
With the LINSTOR storage plugin for CloudStack, your CloudStack primary storage can be highly available. One of the benefits of bringing high availability to CloudStack primary storage is that you can then live migrate CloudStack VMs, that is, you can migrate a VM to another node, while the VM is up and running.
Quality of service control and tiered storage
By integrating LINSTOR with CloudStack, an administrator can also have the flexibility to control QoS offerings related to storage. You can configure different storage pools in LINSTOR that have different physical disks backing them, and then connect different disk offerings in CloudStack to these different LINSTOR storage pools. One disk offering might connect to a LINSTOR storage pool backed by slower disks, another by faster disks, to give a basic example.
You can then select different disk offerings to back different VM disks which will affect VM performance on your platform. If you are a service provider, you can use these different offerings to create tiered storage offerings for your customers, as part of your business model. Another article on the LINBIT blog, “Configuring Tiered Storage in CloudStack Using LINSTOR”, has more details on this topic, including step-by-step instructions for how to set this up.
You can also restrict a disk offering’s performance by setting an IOPS value for the disk offering in CloudStack. The LINSTOR CloudStack plugin takes this value and translates it into LINSTOR settings that constrain the storage performance.
âť—Â IMPORTANT:Â Currently, setting CloudStack QoS IOPS values when using the LINSTOR storage plugin requires cgroups v1 on the storage nodes. Setting QoS storage IOPS values do not affect storage performance on cgroups v2 systems. To manage QoS settings on systems running cgroups v2, use the QoS type “Hypervisor” rather than “Storage” within CloudStack disk offerings.
Snapshots and disaster recovery
If you deal at all with data, the topic of backups and disaster recovery should never be too far from your thoughts. This is especially true if you deal with data that is not your own, for example, when in a service provider role. LINSTOR can provide the means to back up storage resources, and data stored within them, when you use either thin-provisioned LVM or ZFS logical volumes as a back-end storage layer.
Backups in LINSTOR take the form of logical volume point-in-time snapshots. You can send these backups to the same LINSTOR cluster, a remote off-site LINSTOR cluster, or else to S3 compatible storage, such as AWS S3, MinIO, Storj storage, and others.
A LINSTOR administrator can take resource snapshots manually or else automatically, on a schedule, by using the LINSTOR scheduled backup shipping feature. In a disaster recovery situation, you can use backups to restore LINSTOR storage resources and the data they contain to known good point-in-time states.
Within a CloudStack deployment where you are using the LINSTOR storage plugin, this can be a way that you can restore CloudStack primary storage, that is, your or your customers’ virtual machines, and their data, if you need to.
Monitoring
Just as CloudStack has Prometheus endpoints that you can use to monitor CloudStack resources and metrics, LINSTOR also has Prometheus endpoints and alerts for LINSTOR and DRBD states. You can use these to create alerting rules or Grafana dashboards to help monitor your deployment and resources so that you and your team can react when needed.


A LINBIT blog article, “Monitoring Clusters Using Prometheus & DRBD Reactor”, can tell you more on the topic of monitoring with LINBIT software. You can use DRBD Reactor as an easier way to export Prometheus metrics related to DRBD, for example. If you are following LINSTOR best practices and have made the LINSTOR controller service highly available in your cluster, DRBD Reactor will already be there for you to use for exporting Prometheus metrics, at least on nodes that can potentially run the LINSTOR controller service. For monitoring using Prometheus metrics, you would also need to install and configure DRBD Reactor on any LINSTOR satellite nodes, if these are not also potential LINSTOR controller nodes.
Beyond a storage plugin
Besides releasing new features and other improvements to the LINSTOR CloudStack storage plugin, and the upstream CloudStack codebase, the LINBIT team released the LINBIT® CloudStack® HCI Appliance in late 2024. This software appliance, distributed as a freely available ISO installer image, makes it easy to install a ready-made CloudStack deployment with LINSTOR-managed CloudStack storage in a hyperconverged 3-or-more-node architecture.
If you or your team are new to CloudStack or LINBIT software, the HCI Appliance can be a great way to get up and running quickly. The appliance includes LINBIT-developed open source software such as DRBD, LINSTOR, DRBD Reactor, LINSTOR Gateway, and related utilities, plus the LINSTOR integration plugin for CloudStack, all of which facilitate SDS, HA, and DR capabilities for storage within CloudStack.
Of course you are not limited to an HCI deployment. You can deploy LINSTOR in a storage cluster separate from but connected to your CloudStack deployment.
A CloudStack chapter in the LINSTOR User Guide
The CloudStack chapter in the LINSTOR User Guide describes how you can install and use the LINSTOR CloudStack plugin for KVM hypervisors. The chapter includes instructions for creating a sample LINSTOR and CloudStack deployment to get you quickly into a testing environment.
A video tutorial for integrating LINSTOR with CloudStack
LINBIT developer Rene Peinthor also made a video that overviews installing the LINSTOR CloudStack plugin.
- You can only use LINSTOR to create and manage HA storage for KVM (QCOW2 format) VM disks. However, you might be able to use the open source LINSTOR Gateway software which can help you create HA iSCSI or NFS storage, which you can then use as a storage back end for other hypervisors in CloudStack such as VMware vSphere, XCP-ng, or XenServer.↩︎