Description
Application contact emails
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
- intelligently locate the data volume replica for the app/pod and schedule it without user interrupt;
- 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
Project repo URL
https://github.com/hwameistor/hwameistor
Additional repos
https://github.com/hwameistor/hwameistor-operator
https://github.com/hwameistor/hwameistor-ui
Website URL
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
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 commentedon Mar 7, 2023
Anither similar project is TopoLVM: https://github.com/topolvm/topolvm
sun7927 commentedon Mar 16, 2023
Lots of diffs between HwameiStor and TopoLVM, including HA, data migration, disk mgmt, etc ...
zhaosimon commentedon Mar 16, 2023
Thanks Josh! I have added into 'Similar Projects' section immediately after your reply, and will provide completed comparison info in later review stage.
zhaosimon commentedon Mar 21, 2023
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.
[-][Sandbox] <HwameiStor>[/-][+][Sandbox] HwameiStor[/+]chira001 commentedon May 18, 2023
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 commentedon May 19, 2023
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 commentedon Jun 7, 2023
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 commentedon Jun 7, 2023
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