Skip to content

[Sandbox] HwameiStor #29

Closed
Closed
@zhaosimon

Description

@zhaosimon

Application contact emails

liang.sun@daocloud.io

mingming.zhou@daocloud.io

simon.zhao@daocloud.io

Project Summary

HwameiStor is an open-source local storage solution for cloud-native stateful workloads with High-Availability (HA) capabilities. It will address the limitation of the local volume by a mechanism to enable data drifting with applications.

Project Description

HwameiStor provides a full life cycle management of the local disks (HDD, SSD, NVMe) on the Kubernetes worker nodes. The local disk can be discovered, identified, managed and allocated automatically, besides, HwameiStor will monitor the disk’s health (S.M.A.R.T.) regularly, analyze the metrics to detect any current or potential problem, and process them.

By group the local disks in LVM group, HwameiStor can provision LVM volume in non-HA or HA mode (with HA module). It is trying to address the limitations of the local volume by

  1. intelligently locate the data volume replica for the app/pod and schedule it without user interrupt;
  2. When reschedule the app/pod across nodes, enable the data volume replica to follow the pod through the features of volume conversion, migration, eviction, etc…

HwameiStor provides a feature of volume group to enable an app/pod to have multiple local volumes, and also can be converted, migrated, evicted as well.

With high-availability replicas in HwameiStor, data can be synchronized & migrated cross-node within the cluster. Storage capacities can also be dynamically expanded (node expansion, disk expansion, volume expansion) to meet the application data persistence requirements.

HwameiStor is easy to deploy and can be installed with HwameiStor-Operator.

Org repo URL

https://github.com/hwameistor

Project repo URL

https://github.com/hwameistor/hwameistor

Additional repos

https://github.com/hwameistor/hwameistor-operator

https://github.com/hwameistor/hwameistor-ui

Website URL

https://hwameistor.io/

Roadmap

https://github.com/hwameistor/hwameistor/blob/main/README.md

Roadmap context

As an enterprise level storage solution, data secutiry will always be our top priority. On the base of HA, we have planned on some data recovery, and data protection features such as snapshot, clone etc.. Observability and performance QoS features are also under our consideration in plan. Data encryption and thin provisioning will be in our future enhancements.

Features Status Release Description
CSI for LVM volume Completed v0.3.2 Provision volume with lvm
CSI for disk volume Completed v0.3.2 Provision volume with disk
HA LVM Volume Completed v0.3.2 Volume with HA
LVM Volume expansion Completed v0.3.2 Expand LVM volume capacity online
LVM Volume conversion Completed v0.3.2 Convert a non-HA LVM volume to the HA
LVM Volume migration Completed v0.4.0 Migrate a LVM volume replica to a different node
Volume Group Completed v0.3.2 Support volume group allocation
Disk health check Completed v0.7.0 Disk fault prediction, status reporting
LVM HA Volume Recovery Planed Recover the LVM HA volume in problem
HwameiStor Operator Completed 0.9.3 Operator for HwameiStor install, maintain, etc.
Observability Completed 0.9.3 Observability, such as metrics, logs, etc.
GUI / Monitor Dashboard Completed 0.9.3 Graphic User Interface monitoring dashboard in Promethues / Kibana
Failover In Plan Fail over the pod with HwameiStor volume
IO throttling Developing Limit IO bandwith to access the HwameiStor volume
Disk replacement In Plan Replace disk which fails or will fail soon
LVM volume auto-expansion Developing Expand LVM volume automatically
LVM volume snapshot Developing Snapshot of LVM volume
LVM volume clone In Plan Clone LVM volume
LVM volume thin provision In Plan LVM volume thin provision
LVM volume stripe mode In Plan LVM volume stripe read/write
Data encryption In Plan Data encryption
System Consistency In Plan Consistent check and recovery from a disaster
Volume backup In Plan Backup the volume data to remote server and restore
Consistent Group In Plan A collection of volumes managed as a single unit for data consistency

Contributing Guide

https://github.com/hwameistor/hwameistor/blob/main/CONTRIBUTING.md

Code of Conduct (CoC)

https://github.com/hwameistor/hwameistor/blob/main/CODE_OF_CONDUCT.md

Adopters

https://github.com/hwameistor/hwameistor/blob/main/adopters.md

Contributing or Sponsoring Org

https://www.daocloud.io/

Maintainers file

https://github.com/hwameistor/hwameistor/blob/main/MAINTAINERS.md

IP Policy

  • If the project is accepted, I agree the project will follow the CNCF IP Policy

Trademark and accounts

  • If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF

Why CNCF?

HwameiStor is a Kubernetes native local storage system naturally integrated with some CNCF ecosystems' technologies and tools, such as CSI, CRD, Operator, Scheduler,Helm etc.. By contributing this project to the CNCF, HwameiStor can gain access to a wider audience of users and potential contributors, as well as increased visibility and recognition from the community. Being part of the CNCF can also help HwameiStor to stay up-to-date with the latest industry standards and best practices, and to benefit from the experiences and knowledge of other contributors and projects within the CNCF ecosystem.

Benefit to the Landscape

As more organizations move to cloud native architectures, they need storage solutions that can handle the high volumes of data generated by modern applications that can scale dynamically to meet the changing demands. HwameiStor can play a critical role in supporting the data management needs of cloud native stateful applications, such as high performance, high availability, operation and maintenance automation etc..

Cloud Native 'Fit'

HwameiStor is cloud native designed and architectured on Kubernetes CRD mechanism. It is built for cloud native application.

Cloud Native 'Integration'

HwameiStor is working as the storage solution of the Kubernetes cluster to provide data persistency. HwameiStor-Operator is for the system installation and management

Cloud Native Overlap

There are two overlaps with other local storage projects:

First one is LVM module. LVM2 is adopted by HwameiStor for managing local disks and provisioning volume like some other project. In fact, LVM2 is a stable disk management module and popular in most of OS. It’s also easy to deploy and use.

Second one is DRBD module, which is for data synchronization across nodes. Some other projects provision HA volume and rely on DRBD for data syncronization. In HwameiStor, DRBD is one of options for data synchronization. HwameiStor is still trying to add other tools for the data sync, and provides more choice to meet users’ requirements.

Similar projects

HwameiStor provides similar functionality as these other projects:

OpenEBS https://github.com/openebs

Carina https://gitee.com/bocloud-open-source/carina

TopoLVM https://github.com/topolvm/topolvm

Product or Service to Project separation

N/A

Project presentations

https://youtu.be/6D1vgj86hHY (HwameiStor Demo)
https://youtu.be/FJ2MZuSoSk4 (TAG Meeting for HwameiStor Presentation)

Project champions

No response

Additional information

No response

Activity

joshgav

joshgav commented on Mar 7, 2023

@joshgav

Anither similar project is TopoLVM: https://github.com/topolvm/topolvm

sun7927

sun7927 commented on Mar 16, 2023

@sun7927

Anither similar project is TopoLVM: https://github.com/topolvm/topolvm

Lots of diffs between HwameiStor and TopoLVM, including HA, data migration, disk mgmt, etc ...

zhaosimon

zhaosimon commented on Mar 16, 2023

@zhaosimon
Author

Anither similar project is TopoLVM: https://github.com/topolvm/topolvm

Thanks Josh! I have added into 'Similar Projects' section immediately after your reply, and will provide completed comparison info in later review stage.

zhaosimon

zhaosimon commented on Mar 21, 2023

@zhaosimon
Author

Anither similar project is TopoLVM: https://github.com/topolvm/topolvm

Hello Josh, thanks for your attention on HwameiStor! Just like the other similar CNCF projects, HwameiStor provides high-performance CAS based persistent volumes to cloud native stateful workloads.

However, as an enterprise level storage system already adopted on many production critical applications, we have made very much efforts on some unique data security attributes (compare to the similar projects mentioned above):

  • HwameiStor support multiple disk types: LVM (Logical Volume), non-HA LVM, HA-LVM, Disk. Non-HA LVM can be converted into HA-LVM.

  • The underlying Local Disk Manager (LDM) is used for local disks Life Cycle Management: discovery, allocation, health monitor ……

  • Base on HA & LDM, Hwamstor provide abilities on Volume Migration. Volumes can be migrated from one node to another in case of any node failure or error. This feature can work with Kubernetes node/pod eviction to ensure application continuity

  • Disk replacement (in progress)

  • Data Volume Snapshot (in progress)

We will be happy to provide more detailed information under you request or available at https://hwameistor.io/docs/category/basic-operations.

changed the title [-][Sandbox] <HwameiStor>[/-] [+][Sandbox] HwameiStor[/+] on Mar 27, 2023
chira001

chira001 commented on May 18, 2023

@chira001

Hi - I'm a co-chair of the Storage TAG with @xing-yang and was discussing the HwameiStor after the TAG presentation/recording. We noticed that both the Piraeus Operator (https://piraeus.io/), which is also a sandbox project is also maintained by Daocloud, and both are a local volume manager with DRDB functionality. Could you clarify the differences between the projects please?

sun7927

sun7927 commented on May 19, 2023

@sun7927

Hi - I'm a co-chair of the Storage TAG with @xing-yang and was discussing the HwameiStor after the TAG presentation/recording. We noticed that both the Piraeus Operator (https://piraeus.io/), which is also a sandbox project is also maintained by Daocloud, and both are a local volume manager with DRDB functionality. Could you clarify the differences between the projects please?

Thanks @chira001 for your question. Yes, Piraeus project is co-sponsored by Linbit and DaoCloud. The difference between Piraeus and HwameiStor is as below:

Piraeus is a set of modules and tools for enabling LINSTOR system in Kubernetes, including Piraeus Operator, HA controller, CSI Driver, etc.. LINSTOR system is fully based on DRBD, like features of quorum, sync/semi-sync/async HA, remote access, etc.., and provides plenty of the storage features like disaster recovery, HA volume, local/remote access. While claiming local volume management, Piraeus is focused on DRBD replicas. It manages VGs, but has no definition for disk resources.

HwameiStor is a cloud native local storage system, and provides the fully life cycle management for local disks, including disk auto-discovery, allocation, health monitor, disk group, and provisions multiple classes of volumes to applications, including LVM HA/non-HA volume, disk volume. In addition, HwameiStor tries to address the limitations of the local volume by the functionalities of volume conversion, migration, group, etc.., which enables the local data to follow the application(Pod) at some situations. There is a HA module in HwameiStor, which is for data synchronization between the volume replicas. Currently, DRBD is one of options for the HA module. We are still looking for other options for the HA module. With more choices, HwameiStor can deploy the appropriate HA module to meet the user’s requirements.

jberkus

jberkus commented on Jun 7, 2023

@jberkus
Contributor

How would HwameiStor relate to the Rook project? Does HwameiStor already implement its own operator, or would it be likely to become a storage backend for Rook?

chira001

chira001 commented on Jun 7, 2023

@chira001

How would HwameiStor relate to the Rook project? Does HwameiStor already implement its own operator, or would it be likely to become a storage backend for Rook?

The project team may have more details, but we don't see much intersection between Rook and HwamieStor which has it's own operator. Rook is very Ceph optimised at this stage and support for other storage systems is mostly deprecated.

30 remaining items

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @amye@jberkus@xing-yang@joshgav@chira001

        Issue actions

          [Sandbox] HwameiStor · Issue #29 · cncf/sandbox