Code Monkey home page Code Monkey logo

local-disk-manager's Introduction

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 <name> -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 <name>

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

local-disk-manager's People

Contributors

sun7927 avatar ssmallmonster avatar niulechuan avatar floatxd avatar abcdea avatar

Watchers

 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.