All Projects → openebs → Node Disk Manager

openebs / Node Disk Manager

Licence: apache-2.0
Kubernetes Storage Device Management

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Node Disk Manager

Cortx
CORTX Community Object Storage is 100% open source object storage uniquely optimized for mass capacity storage devices.
Stars: ✭ 426 (+232.81%)
Mutual labels:  hacktoberfest, storage
Sirix
SirixDB is a temporal, evolutionary database system, which uses an accumulate only approach. It keeps the full history of each resource. Every commit stores a space-efficient snapshot through structural sharing. It is log-structured and never overwrites data. SirixDB uses a novel page-level versioning approach called sliding snapshot.
Stars: ✭ 638 (+398.44%)
Mutual labels:  hacktoberfest, storage
Csi Digitalocean
A Container Storage Interface (CSI) Driver for DigitalOcean Block Storage
Stars: ✭ 452 (+253.13%)
Mutual labels:  hacktoberfest, storage
Vagrant Persistent Storage
A Vagrant plugin that creates a persistent storage and attaches it to guest machine.
Stars: ✭ 285 (+122.66%)
Mutual labels:  storage, disk
Oblecto
Oblecto is a media server, which streams media you already own, and is designed to be at the heart of your entertainment experience. It runs on your home server to index and analyze your media such as Movies and TV Shows and presents them in an interface tailored for your media consupmtion needs.
Stars: ✭ 67 (-47.66%)
Mutual labels:  hacktoberfest, storage
Easystash
🗳Easy data persistence in Swift
Stars: ✭ 303 (+136.72%)
Mutual labels:  storage, disk
Vuex Persistedstate
💾 Persist and rehydrate your Vuex state between page reloads.
Stars: ✭ 5,561 (+4244.53%)
Mutual labels:  hacktoberfest, storage
PSDiskPart
DiskPart PowerShell Module
Stars: ✭ 30 (-76.56%)
Mutual labels:  disk, storage
Wsend
wsend: The opposite of wget
Stars: ✭ 64 (-50%)
Mutual labels:  hacktoberfest, storage
Thanos
Highly available Prometheus setup with long term storage capabilities. A CNCF Incubating project.
Stars: ✭ 9,820 (+7571.88%)
Mutual labels:  hacktoberfest, storage
Awesome Go Storage
A curated list of awesome Go storage projects and libraries
Stars: ✭ 3,224 (+2418.75%)
Mutual labels:  hacktoberfest, storage
Ngx Indexed Db
A service that wraps IndexedDB database in an Angular service. It exposes very simple observables API to enable the usage of IndexedDB without most of it plumbing.
Stars: ✭ 84 (-34.37%)
Mutual labels:  hacktoberfest, storage
Storage
An iOS library for fast, easy, and safe threaded disk I/O.
Stars: ✭ 259 (+102.34%)
Mutual labels:  storage, disk
Winspd
Windows Storage Proxy Driver - User mode disk storage
Stars: ✭ 335 (+161.72%)
Mutual labels:  storage, disk
lethe
Secure drive wipe
Stars: ✭ 47 (-63.28%)
Mutual labels:  disk, storage
Binaryprefs
Rapidly fast and lightweight re-implementation of SharedPreferences which stores each preference in files separately, performs disk operations via NIO with memory mapped byte buffers and works IPC (between processes). Written from scratch.
Stars: ✭ 484 (+278.13%)
Mutual labels:  storage, disk
Azurlshortener
An simple and easy Url Shortener
Stars: ✭ 247 (+92.97%)
Mutual labels:  hacktoberfest, storage
BlobHelper
BlobHelper is a common, consistent storage interface for Microsoft Azure, Amazon S3, Komodo, Kvpbase, and local filesystem written in C#.
Stars: ✭ 23 (-82.03%)
Mutual labels:  disk, storage
Openebs
Leading Open Source Container Attached Storage, built using Cloud Native Architecture, simplifies running Stateful Applications on Kubernetes.
Stars: ✭ 7,277 (+5585.16%)
Mutual labels:  hacktoberfest, storage
Fog Google
Fog for Google Cloud Platform
Stars: ✭ 83 (-35.16%)
Mutual labels:  hacktoberfest, storage

node-disk-manager

Build Status Codacy Badge Go Report codecov Slack BCH compliance FOSSA Status CII Best Practices

node-disk-manager (NDM) aims to make it easy to manage the disks attached to the node. It treats disks as resources that need to be monitored and managed just like other resources like CPU, Memory and Network. It contains a daemon which runs on each node, detects attached disks and loads them as BlockDevice objects (custom resource) into Kubernetes.

While PVs are well suited for stateful workloads, the BlockDevice objects are aimed towards helping hyper-converged Storage Operators by providing abilities like:

  • Easy to access inventory of block devices available across the Kubernetes Cluster.
  • Predict failures on the blockdevices, to help with taking preventive actions.
  • Allow for dynamically attaching/detaching blockdevices to a Storage Pod, without requiring a restart.

NDM has 2 main components:

  • node-disk-manager daemonset, which runs on each node and is responsible for device detection.
  • node-disk-operator deployment, which acts as an inventory of block devices in the cluster.

and 2 optional components:

  • ndm-cluster-exporter deployment, which fetches block device object from etcd and exposes it as prometheus metrics.
  • ndm-node-exporter daemonset, which runs on each node, queries the disk for details like SMART and expose it as prometheus metrics.

The design and implementation are currently in progress. The design is covered under this design proposal

Usage

A detailed usage documentation is maintained in the wiki.

Start Node Disk Manager

  • Edit ndm-operator.yaml to fit your environment: Set the namespace, serviceAccount, configure filters in the node-disk-manager-config-map.
  • Switch to Cluster Admin context and create the components with kubectl create -f ndm-operator.yaml.
  • This will install the daemon, operator and the exporters

Using kubectl to fetch BlockDevice Information

  • kubectl get blockdevices displays the blockdevices across the cluster, with NODENAME showing the node to which disk is attached, CLAIMSTATE showing whether the device is currently in use and STATE showing whether the device is connected to the node.
  • kubectl get blockdevices -o wide displays the blockdevice along with the path at which the device is attached on the node.
  • kubectl get blockdevices <blockdevice-cr-name> -o yaml displays all the details of the disk captured by ndm for given disk resource.

Building, Testing and Pushing Image

Before building the image locally, you need to setup your development environment. The detailed instructions for setting up development environment, building and testing are available here.

Push Image

By default Github Action pushes the docker image to openebs/node-disk-manager, with ci tags. You can push to your custom registry and modify the ndm-operator.yaml file for your testing.

License

FOSSA Status

Inspiration

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].