• Stars
    star
    819
  • Rank 54,322 (Top 2 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created over 6 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Open Source

Open Source GPLv3 License Slack Channel Support Active GitHub Release GitHub Commit

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.

LINSTOR GUIDE

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.

LINSTOR 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.

LINSTOR Development

Free Software, Hell Yeah!

LINSTOR Powered by LINBIT

More Repositories

1

drbd

LINBIT DRBD kernel module
C
542
star
2

virter

Virter is a command line tool for simple creation and cloning of virtual machines based on libvirt
Go
150
star
3

csync2

file synchronization tool using librsync and current state databases
C
135
star
4

drbd-utils

DRBD userspace utilities (for 9.x, 8.4, 8.3)
C
74
star
5

windrbd

DRBD driver for windows
C
49
star
6

drbdtop

CLI management tool for DRBD. Like top, but for DRBD resources.
Go
47
star
7

linbit-documentation

Official DRBD documentation
Makefile
34
star
8

k8s-await-election

Start the main process of a pod only if elected via kubernetes leader election. While this was developed for LINSTOR, it may proof useful for other use cases.
Go
33
star
9

linstor-proxmox

Integration pluging bridging LINSTOR to Proxmox VE
Perl
31
star
10

drbd-reactor

Monitors DRBD resources via plugins.
Rust
25
star
11

linstor-gateway

Manages Highly-Available iSCSI targets, NVMe-oF targets, and NFS exports via LINSTOR
Go
24
star
12

linstor-client

Python client for LINSTOR
Python
22
star
13

drbd-8.4

LINBIT DRBD-8.4 (deprecated; use https://github.com/LINBIT/drbd instead)
C
18
star
14

thin-send-recv

zfs send and zfs recv alike for the LVM thin world
C
18
star
15

linstor-api-py

LINSTOR Python API
Python
15
star
16

drbdmanage

Management system for DRBD9
Python
13
star
17

linstor-flexvolume

Go
12
star
18

linstor-external-provisioner

Go
11
star
19

linstor-docker-volume-go

A Go based version of the LINSTOR Docker volume plugin
Go
8
star
20

openstack-cinder

Openstack Cinder, with DRBD driver included
Python
8
star
21

golinstor

golang bindings for linstor
Go
8
star
22

linstor-ansible

Ansible playbook for quickly deploying a LINSTOR storage cluster
Jinja
8
star
23

drbd-flexvolume

DRBD flexvolume plugin for Kubernetes
Go
8
star
24

addon-linstor

OpenNebula driver to manage and access storage managed by LINSTOR
Python
7
star
25

drbd-flex-provision

Kubernetes External Provisioner for DRBD
Go
7
star
26

linstor-common

Code shared between Linstor client and Linstor server
Python
7
star
27

drbdmanage-proxmox

Integration pluging bridging DRBD Manage to Proxmox VE
Perl
6
star
28

drbdmanage-docker-volume

Docker volume plugin to manage DRBD SDS volumes through docker
Python
6
star
29

linstor-operator-builder

Builds the linstor-operator from the piraeus-operator
Smarty
5
star
30

gosshclient

A higher level ssh client in Go that allows for interactive ssh sessions and executing scripts. This started in virter, but is a useful package on its own
Go
5
star
31

cloud-init-for-windows

A minimal version of cloud-init for windows
Shell
5
star
32

saas

Spatch As A Service
Go
4
star
33

lbtest

Execute tests efficiently and concurrently in many VMs
Shell
3
star
34

generate-cat-file

C
3
star
35

libdrbd-perl

A perl library that allows interaction with DRBD resources and their objects (volumes, connections, options). It allows for resource file generation and provides wrappers around low level DRBD commands (drbdadm, drbdsetup, drbdmeta).
Perl
3
star
36

vmshed

shedules tests with virter
Go
2
star
37

linstor-docker-volume

Docker volume plugin for LINSTOR
Python
2
star
38

containerapi

Go bindings to manage containers in a runtime agnostic way (Docker, podman)
Go
2
star
39

gocorosync

Go bindings to interact with Corosync
Go
2
star
40

linstor-wait-until

Go
2
star
41

drbd-headers

DRBD headers used by userspace utils and all kernel components
C
2
star
42

drbd-8.3

LINBIT DRBD-8.3 (historical)
C
2
star
43

drbd-8.0

LINBIT DRBD-8.0 (historical)
C
2
star
44

vagrant-cluster

Vagrant and shell scripts that ease DRBD9/drbdmange testing
Shell
2
star
45

charmed-linstor

Juju charm for deploying LINBIT SDS / Piraeus-Datastore on a Kubernetes cluster
Python
2
star
46

talks

public talks like webinars, conference slides,...
TSQL
2
star
47

linstor-csi-builder

Builds LINBIT's version of the LINSTOR CSI driver
Makefile
2
star
48

dnfjson

A wrapper around libdnf that produces JSON output
Python
1
star
49

prestomanifesto

create multi architecture docker registries
Go
1
star
50

drbd-kernel-compat

DRBD kernel backwards compatibility tests and wrappers
C
1
star
51

wdrbd9

DRBD driver for windows
1
star
52

drbd-0.7

LINBIT DRBD-0.7 (historical)
C
1
star
53

Root-on-DRBD

Example scripts for the Root-on-DRBD TechGuide.
Shell
1
star
54

libtcr

TCR library
C
1
star
55

agentx-rs

RFC conformant AgentX library implementing all PDU types
Rust
1
star
56

bestdrbdmodule

web service to find the best matching kernel module for a RHEL7+ distributions
Go
1
star
57

linstor-api-java

LINSTOR Java API
Java
1
star