LINSTOR is a SODA ECO Project
What is LINSTOR®
LINSTOR® developed by LINBIT, is a software that manages replicated volumes across a group of machines. With native integration to Kubernetes, LINSTOR makes building, running, and controlling block storage simple. LINSTOR® is open-source software designed to manage block storage devices for large Linux server clusters. It’s used to provide persistent Linux block storage for cloudnative and hypervisor environments.
Historically LINSTOR started as a resource-file generator for DRBD® which conveniently also created LVM/ZFS volumes. By time LINSTOR steadily grew and got new features and drivers in both directions, south-bound like snapshots, LUKS, dm-cache, dm-writecache or nvme, and north-bound drivers for Kubernetes, Openstack, Open Nebula, Openshift, VMware.
How it works
LINSTOR system consists of multiple server and client components. A LINSTOR controller manages the configuration of the LINSTOR cluster and all of its managed storage resources. The LINSTOR satellite component manages creation, modification and deletion of storage resources on each node that provides or uses storage resources managed by LINSTOR.
The storage system can be managed by directly using a command line utility to interact with the active LINSTOR controller. Alternatively, users may integrate the LINSTOR system into the storage architecture of other software systems, such as Kubernetes. All communication between LINSTOR components uses LINSTOR’s own network protocol, based on TCP/IP network connections.
Features
-
Open Source
-
Main Features
- Provides replicated block storage and persistent container storage
- Separation of Data & Control plane
- Online live migration of backend storage
- Compatible with high I/O workloads like databases
- Storage tiering (multiple storage pools)
- Choose your own Linux filesystem
- Rich set of plugins
-
Storage Related Features
- Network replication through DRBD integration
- LVM Snapshot Support
- LVM Thin Provisioning Support
- RDMA
- Management of persistent Memory (PMEM)
- ZFS support
- NVME over Fabrics
-
Network Related Features
- Replicate via multiple network cards
- Automatic management of TCP/IP port range, minor number range etc. provides consistent data
- Scale-up and scale-out
- Rest API
- LDAP Authentification
User Guide
If you want to use all of the feature set that LINSTOR have (such as quorum, DRBD replication etc), you will need at least 3 nodes to use LINSTOR. Linstor-controller and Linstor-client role should be installed on one node and all nodes should have linstor-satellite.
LINSTOR can also perform disk operations without using DRBD. However, if replication with DRBD is desired, DRBD 9 must be installed on all servers. For DRBD installation, please follow this link.
For a more detailed installation guide, please follow the link below.
Plugins
LINSTOR is currently extended with the following plugins. Instructions on how to use them in your own application are linked below.
Support
LINSTOR is an open source software. You can use our slack channel above link to get support for individual use and development use. If you are going to use it in enterprise and mission critical environments, please contact us via the link below for professional support.
Releases
Releases generated by git tags on github are snapshots of the git repository at the given time. They might lack things such as generated man pages, the configure script, and other generated files. If you want to build from a tarball, use the ones provided by us.
Also for alternative, please look at the "Building" section below.
Building
Gradle is used for building LINSTOR. On a fresh git clone some protobuf java files need to be generated and for that a fitting proto compiler is needed. So before building you need to run:
$ ./gradlew getProtoc
After the correct proto compiler is installed in the ./tools directory you can build with:
$ ./gradlew assemble
Development
Please check the development documentation for details.
Free Software, Hell Yeah!