• Stars
    star
    972
  • Rank 47,085 (Top 1.0 %)
  • Language
    Java
  • License
    GNU General Publi...
  • Created almost 7 years ago
  • Updated about 1 month 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
577
star
2

virter

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

csync2

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

drbd-utils

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

windrbd

DRBD driver for windows
C
51
star
6

drbdtop

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

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
47
star
8

linbit-documentation

Official DRBD documentation
Makefile
36
star
9

thin-send-recv

zfs send and zfs recv alike for the LVM thin world
C
35
star
10

drbd-reactor

Monitors DRBD resources via plugins.
Rust
31
star
11

linstor-proxmox

Integration pluging bridging LINSTOR to Proxmox VE
Perl
31
star
12

linstor-gateway

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

linstor-client

Python client for LINSTOR
Python
22
star
14

drbd-8.4

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

linstor-gui

HTML5 GUI frontend for LINSTOR
TypeScript
17
star
16

linstor-api-py

LINSTOR Python API
Python
15
star
17

drbdmanage

Management system for DRBD9
Python
13
star
18

linstor-flexvolume

Go
12
star
19

linstor-external-provisioner

Go
11
star
20

golinstor

golang bindings for linstor
Go
9
star
21

openstack-cinder

Openstack Cinder, with DRBD driver included
Python
8
star
22

linstor-docker-volume-go

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

linstor-ansible

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

drbd-flexvolume

DRBD flexvolume plugin for Kubernetes
Go
8
star
25

vmshed

shedules tests with virter
Go
7
star
26

addon-linstor

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

drbd-flex-provision

Kubernetes External Provisioner for DRBD
Go
7
star
28

linstor-common

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

drbdmanage-proxmox

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

drbdmanage-docker-volume

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

linstor-operator-builder

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

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
33

cloud-init-for-windows

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

saas

Spatch As A Service
Go
4
star
35

lbtest

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

charmed-linstor

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

generate-cat-file

C
3
star
38

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
39

linstor-docker-volume

Docker volume plugin for LINSTOR
Python
2
star
40

gocorosync

Go bindings to interact with Corosync
Go
2
star
41

prestomanifesto

create multi architecture docker registries
Go
2
star
42

containerapi

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

drbd-headers

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

linstor-wait-until

Go
2
star
45

drbd-8.3

LINBIT DRBD-8.3 (historical)
C
2
star
46

drbd-8.0

LINBIT DRBD-8.0 (historical)
C
2
star
47

vagrant-cluster

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

talks

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

linstor-csi-builder

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

dnfjson

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

drbd-kernel-compat

DRBD kernel backwards compatibility tests and wrappers
C
1
star
52

wdrbd9

DRBD driver for windows
1
star
53

drbd-0.7

LINBIT DRBD-0.7 (historical)
C
1
star
54

Root-on-DRBD

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

libtcr

TCR library
C
1
star
56

agentx-rs

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

bestdrbdmodule

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

linstor-api-java

LINSTOR Java API
Java
1
star