LINSTOR

High Performance Software-Defined Block Storage for container, cloud and virtualisation. Fully integrated with Docker, Kubernetes, Openstack, Proxmox etc.

Stars
769
Forks
60
Open issues
130
Closed issues
232
Last release
6 months ago
Last commit
6 months ago
Watchers
769
Total releases
104
Total commits
4.72K
Open PRs
2
Closed PRs
5
Repo URL
Platform
License
gpl-3.0
Category
Offers premium version?
NO
Proprietary?
NO
About

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.

Plugin More Information

iSCSI https://github.com/LINBIT/linstor-iscsi

VSAN https://www.linbit.com/linstor-vsan-software-defined-storage-for-vmware%e2%80%8b/

OpenShift https://www.linbit.com/openshift-persistent-container-storage-support/

OpenNebula https://www.linbit.com/drbd-user-guide/linstor-guide-1_0-en/#ch-opennebula-linstor

Kubernetes https://www.linbit.com/drbd-user-guide/linstor-guide-1_0-en/#ch-kubernetes

OpenStack https://www.linbit.com/drbd-user-guide/linstor-guide-1_0-en/#ch-openstack-linstor

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!

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.