LINSTOR® is the main open source block replication software component behind our cloud storage platform LINBIT SDS®, and in this article, we will try to explain some of the most important questions – such as what is the persistent storage for containers, why do containers need persistent storage, and what are the advantages of using LINSTOR for that purpose.
Definition of storage management
Storage management is a term that usually refers to computer programs and solutions that handle the performance of data storage assets.
These assets could take different shape or forms, such as
- traffic analysis
- process automation
- storage provisioning and data management
These processes combined help companies store more information on their existing equipment, which inevitably speeds up the recovery of lost data, helps them anticipate & prevent data loss to meet the data retention requirements. These consequences inevitably lead to a decrease in IT costs and play a crucial role in helping a business be competitive.
Data management makes it also possible for businesses to change capacities as businesses change. This plays a huge role in adapting to the environment and helping organizations thrive.
What is storage management for containers?
Storage management includes a set of practices that administer and keep storage infrastructure up & ready to serve. Data management devices automate the creation, arrangement, destruction, and scaling of application or system containers.
It is well known that containerization is a form of OS virtualization in which applications are run in isolated user spaces called containers. It’s different from VM virtualization which basically virtualizes hardware then puts the OS on top of it.
As a result of all that, containers are easy to run, as they require the application configuration data and code from the original OS. This architecture additionally increments interoperability compared to regular VM hosting. Every single container can scale autonomously with a request.
The main good thing about container administration is streamlined administration for clusters in container hosts. IT admins and developers can start, stop and restart containers, and release updates or check health status, as well as other activities. Container management incorporates orchestration and schedulers, security tools storage, capacity, as well as virtual network management systems and their monitoring.
Containers have ephemeral storage by default. That means if the POD shuts down, all data created in the container is lost with it. This is “desired” for some cases, but for instance “database” workloads need to preserve data even if they are down. A common example for that is a MySQL database. For these and other use cases, there is a need for containers to have a place to store data permanently, so it can live even if the POD shuts down.
Why is LINSTOR a great choice when it comes to container management?
LINSTOR is natively integrated in container systems with the features below. These are really handy when it comes to “automation” in k8s.
1.LINBIT is an established name when it comes to High Availability.
The main component of LINBIT SDS – LINSTOR is in the spotlight here once more. Traditionally Kubernetes is very conservative in rescheduling stateful workloads in the event of node failures. This means it can take more than 15 minutes for Pods to be moved from unreachable nodes. With the information available to DRBD and LINSTOR, this process can speed up significantly. LINSTOR’s HA Controller aims to improve pod eviction behavior for workloads backed by LINSTOR volumes. It does this by inspecting the quorum status of the DRBD devices that LINSTOR provisions. If the replication network breaks, the active replica of the volume loses quorum, and LINSTOR’s HA Controller will move the pod to another worker that can access a replica of the volume.
STORK, a scheduler extender plugin for Kubernetes which allows a storage driver to give the Kubernetes scheduler hints about where to place a new pod so that it is optimally located for storage performance. We have integration to STORK so data will always be “best in place”
When you use LINSTOR and have experience in container management, you can also take advantage of LINBIT SDS, which combines both LINSTOR and DRBD. DRBD is a block replication technology that LINBIT created 20 years ago. The benefits of replication in your Kubernetes cluster cannot be underestimated. For example, you may be looking for replicated Persistent volumes in your K8s cluster with higher performance, in which case you will enjoy using DRBD to your already established container management tool.
The Container Storage Interface (CSI) is a standard for exposing arbitrary block and file storage systems to containerized workloads on Container Orchestration Systems (COs) like Kubernetes. Using CSI third-party storage providers can write and deploy plugins exposing new storage systems in Kubernetes without ever having to touch the core Kubernetes code. Source
LINSTOR has a container storage interface (CSI) driver for Kubernetes. This helps customers to use the storage interface natively with LINSTOR.
5. Kubernetes Operator
When installing “any” storage solution in k8s, “it is” rocket science. K8s operator makes it easy to deploy LINSTOR into the cluster. Just deploy the operator; it will deploy everything from kernel drivers to software stacks into the k8s itself.
6. HA Controller
When a backing device or a node fails in k8s, POD failover could take up to 15 minutes. It is not acceptable for many cases. With the help of the HA controller in LINSTOR, starting the failed pod in another node takes less than 1 minute. This is crucial for many applications, and quick failover is essential in many cases.
7. KUBECTL Plugin
If you need to edit/modify anything in LINSTOR while working with k8s, you should typically jump into the shell and use the LINSTOR command to do it. With this plugin, you can send orders to the LINSTOR from the kubectl command line. Like: “kubectl linstor sp l ”
8. Separated Data/Controller Path
LINSTOR does not require a controller in the running state for IO operations. K8s is an agile platform. It shifts and changes very quickly. LINSTOR can adapt to that very easily and makes your day2 operations fast and quick. You can upgrade, downgrade or move your LINSTOR components without touching your applications.
9. Open source
LINSTOR, just like DRBD and all other LINBIT software, will always be open source. This allows our community to contribute to the development of our products. Parallel to this, subscription for the LINBIT SDS assure our customers and partners for low TCO and a no Vendor lock-in, which results in great flexibility and scalability.
10. High performance
LINBIT SDS reached 14.8 million read IOPS – a significant jump of 7.2% in a performance test in February 2020.
“Those performance numbers mark a milestone in the development of open-source SDS platforms. The numbers would scale up even further with a larger setup.”