Local Disk Manager is one of HwameiStor components

Local Disk Manager (LDM)

Hwameistor Logo

README: English | δΈ­ζ–‡

local-disk-manager (LDM) is a sub module of HwameiStor.

Local Disk Manager (LDM) is one of modules of HwameiStor. LDM is to simplify the management of disks on nodes. It can abstract the disk on the node into a resource and can be monitored and managed. It's a daemon that will be deployed on each node, then detect the disk on the node, abstract it into local disk (LD) resources and save it to kubernetes.

At present, the LDM project is still in the alpha stage.

Architecture of HwameiStor

image

Concepts

LocalDisk(LD): LDM abstracts disk resources into objects in k8s. A LD resource object represents the disk resources on the host.

LocalDiskClaim(LDC): The way to use disk, users can add a description of the disk to select the disk to be used.

At present, LDC supports the following disk description options:

  • NodeName
  • Capacity
  • DiskType(e.g. HDD/SSD)

Usage

If you want to entirely deploy HwameiStor, please refer to here. If you just want to deploy LDM separately, you can refer to the following installation steps.

Install Local Disk Manager

1. Clone this repo to your machine:

# git clone https://github.com/hwameistor/local-disk-manager.git

2. Change to deploy directory:

# cd deploy

3. Deploy CRDs and run local-disk-manager

3.1 Deploy LD and LDC CRDs

# kubectl apply -f deploy/crds/

3.2 Deploy RBAC CRs and operators

# kubectl apply -f deploy/

4. Get LocalDisk Infomation

# kubectl get localdisk
10-6-118-11-sda    10-6-118-11                             Unclaimed
10-6-118-11-sdb    10-6-118-11                             Unclaimed

Get locally discovered disk resource information. There are four columns of information.

  • Column NAME represents how this disk is displayed in the cluster resources.
  • Column NODEMATCH indicates which host this disk is on.
  • Column CLAIM indicates which localdiskclaim statement this disk is used by.
  • Column PHASE represents the current state of the disk.

kuebctl get localdisk -o yaml View more information about disks.

5. Claim Available Disks

5.1 Apply a LocalDiskClaim

# kubectl apply -f deploy/samples/hwameistor.io_v1alpha1_localdiskclaim_cr.yaml

Allocate available disks by issuing a disk usage request. In the description of the request, you can add disk requirements, such as disk type and disk capacity

5.2 Get LocalDiskClaim Infomation

# kubectl get localdiskclaim 

Check the status of claim. If there is a disk available, you will see that the status is bound and the status is on the corresponding localdisk is Claimed and points to the claim that references the disk.

Roadmap

Feature Status Release TP Date GA Date Description
CSI for disk volume Planed CSI driver for provisioning Local Pvs with bare disk
Disk management Planed Disk management, disk allocation, disk event aware processing
Disk health management Planed Fault prediction, status information reporting and so on
HA disk Volume Planed Disk Volume with HA

Feedbacks

Please submit any feedback and issue at: Issues

Similar Resources

A terraform plugin that no-one should use that keeps pacman packages synced to a configured list

A provider for pacman packages Manages installation of pacman packages, theoretically works on most places where pacman is installed. Danger notice Wh

Nov 4, 2021

Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step.

Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step.

Epinio Opinionated platform that runs on Kubernetes, that takes you from App to URL in one step. Contents Epinio Contents What problem does Epinio sol

Nov 13, 2022

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.

Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.

Table of contents 1. About 2. Getting started 2.1. Requirements 2.2. Installation 3. Usage 3.1. CLI Usage 3.2. Using Docker 3.3. Older versions 3.4. U

Jan 7, 2023

self-made curl because windows doesn't have one 😑

Go-Curl Basic Feature of Curl made on go Installation go mod tidy then go build . Usage go-curl get "https://jsonplaceholder.typicode.com/posts/1" -b=

Dec 12, 2021

StoneWork is a high-performance, all-(CNFs)-in-one network solution.

StoneWork, high-performance dataplane, modular control-plane solution StoneWork is used by PANTHEON.tech to integrate its CNFs on top of a single shar

Dec 23, 2022

Pulumi provider for Vultr (based on the Terraform one), not official

Vultr Resource Provider The Vultr Resource Provider lets you manage Vultr resources. Installing This package is currently not available for most langu

Apr 23, 2022

Conjur Kubernetes All-in-One Dockerfile

conjur-authn-k8s-aio Conjur Kubernetes All-in-One Dockerfile Supported Authenticators Usage Build Secretless Broker Build Conjur Authn-K8s Client Buil

Sep 14, 2022

A simple CLI and API client for One-Time Secret

OTS Go client otsgo is a simple CLI and API client for One-Time Secret written i

Dec 27, 2021

Small tool to pull/push several projects in one go

gitTool Small tool to push and pull several projects in one go. Written in Go 1.17 by Roy Dybing Contact: location name/handle github: rDybing linked

Dec 28, 2021
Machine controller manager provider local

Out of tree (controller-based) implementation for local as a new provider. The local out-of-tree provider implements the interface defined at MCM OOT driver.

Feb 20, 2022
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)
Terraform Provider for Azure (Resource Manager)Terraform Provider for Azure (Resource Manager)

Terraform Provider for Azure (Resource Manager) Version 2.x of the AzureRM Provider requires Terraform 0.12.x and later, but 1.0 is recommended. Terra

Oct 16, 2021
Container Storage Interface components for SPIFFE

SPIFFE CSI Driver WARNING: This project is in the "Development" phase of the SPIFFE Project Maturity Phases. A Container Storage Interface driver for

Jan 3, 2023
A set of components that can be composed into a highly available metric system with unlimited storage capacity
A set of components that can be composed into a highly available metric system with unlimited storage capacity

Overview Thanos is a set of components that can be composed into a highly available metric system with unlimited storage capacity, which can be added

Oct 20, 2021
TiDB Mesh: Implement Multi-Tenant Keyspace by Decorating Message between Components
TiDB Mesh: Implement Multi-Tenant Keyspace by Decorating Message between Components

TiDB Mesh: Implement Multi-Tenant Keyspace by Decorating Message between Compone

Jan 11, 2022
Harbormaster - Toolkit for automating the creation & mgmt of Docker components and tools

My development environment is MacOS with an M1 chip and I mostly develop for lin

Feb 17, 2022
πŸ’» A one-line installer for GitHub projects!
πŸ’» A one-line installer for GitHub projects!

instl Instl is an installer that can install most GitHub projects on your system with a single command. Installation | Documentation | Contributing In

Jul 23, 2022
The server-side reproduction, similar the one of https://popcat.click, improve the performance and speed.

PopCat Echo The server-side reproduction, similar the one of https://popcat.click, improve the performance and speed. Docker Image The docker image is

Dec 15, 2022
Hardening a sketchy containerized application one step at a time

Road to Secure Kubernetes Hardening a containerized application one step at a time This repository hosts a tutorial on security hardening a containeri

Jun 8, 2022
Docker image for setting up one or multiple TCP ports forwarding, using socat

Docker socat Port Forward Docker image for setting up one or multiple TCP ports forwarding, using socat. Getting started The ports mappings are set wi

Dec 20, 2022