Code Monkey home page Code Monkey logo

topolvm-operator's Introduction

Topolvm-Operator

Topolvm-Operator

Topolvm-Operator is an open source cloud-native local storage orchestrator for Kubernetes, which bases on topolvm.

Supported environments

  • Kubernetes: >= 1.19
  • Node OS: Linux with LVM2
  • Filesystems: ext4, xfs

if kubernetes < 1.21 The CSIStorageCapacity feature gate should be turned on

Features

  • Orchestrate topolvm
  • Storage capacity expand dynamically
  • Perception of storage topology
  • Volume capacity limit
  • PVC snapshot
  • Prometheus metric and alarm
  • Auto discover available devices

OperatorHub.io

Topolvm Operator had been shared in operatorhub.io home.

Planned features

  • Raid of volume group
  • Manage volume group that user created

see our roadmap

Components

  • operator: orchestrate topolvm include TopolvmCluster controller and ConfigMap controller
  • preparevg: prepare volume group on each node

Diagram

A diagram of components and the how they work see below: component diagram

How components work

  1. Topolvm-operator watch the TopolvmCluster(CRD)
  2. Topolvm-operator watch the operator-setting ConfigMap
  3. Topolvm-operator start discover devices Daemonset
  4. Topolvm-operator start ConfigMap controller to watch lvmd ConfigMap if TopolvmCluster created
  5. TopolvmCluster controller create preparevg Job,Topolvm-controller Deployment depend on TopolvmCluster
  6. preparevg Job on specific node check disk that provided in TopolvmCluster and create volume group, if volume group created successfully and then create lvmd ConfigMap for the node
  7. ConfigMap controller finds the new lvmd ConfigMap then create Topolvm-node Deployment
  8. TopolvmCluster controller update TopolvmCluster status

Getting started and Documentation

docs directory contains documents about installation and specifications

Topolvm-operator vs Other local storage Implement

nfs rook ceph longhorn host path topolvm
filesystem yes yes yes yes yes
filesystem type nfs ext4/xfs driver specific ext4/xfs ext4/xfs
block no yes (rbd) yes no yes
bandwidth standard high high high high
IOPS standard standard standard high high
latency standard standard standard low low
snapshot no yes yes no yes
clone no yes no no no
quota no yes yes no yes
access mod ReadWriteOnce ReadOnlyMany ReadWriteMany ReadWriteOnce ReadOnlyMany ReadWriteMany ReadWriteOnce ReadOnlyMany ReadWriteOnce ReadWriteOnce ReadWriteOncePod
resizing yes yes yes yes yes
data redundancy Hardware RAID yes yes Hardware RAID Hardware RAID
protocol type nfs rados iscsi fs lvm
ease of maintainess driver specific high maintainess effort medium medium ops-free
usage scenarios general storage extremly scalability container attach storage temporary data high performance block device for cloudnative applications

Topolvm

topolvm-operator is based on topolvm, we fork topolvm/topolvm and do some enhancements.

see alauda/topolvm

the enhancements are below:

  • remove topolvm-scheduler
  • lvmd containerized
  • add new feature snapshot

Docker images

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

topolvm-operator's People

Contributors

little-guy-lxr avatar leelavg avatar jmolmo avatar sp98 avatar gowthamshanmugam avatar muyan0828 avatar fanzy618 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.