v2.1.0
Release v2.1.0
Release Date: 27th April, 2023
Summary
Mayastor 2.1 is the first minor release on top of the 2.0 code-base. This release introduces the ability to create thinly-provisioned volumes and has seamless upgrade support from previous 2.0 versions. This release also provides a guided migration path for users running legacy Mayastor installations (v1.0.5 and below). In addition, there are stability and observability fixes as well.
Features
Thinly Provisioned Volumes
Mayastor 2.1 introduces the ability to create thin-provisioned volumes in addition to the current thickly provisioned volumes. When a thinly provisioned volume is created, space is allocated only for the metadata of the underlying replicas. As the usage increases, allocation of space happens on-demand for the new writes. The thin provisioning feature allows users to over-commit on their existing storage capacity and enables them to plan more efficiently. To track the commitment statistics, the disk pool metrics exporter now exports an additional metric named “disk_pool_committed_size“ in Bytes.
Thin provisioning is being released as an experimental feature in this release. We hope to gain valuable feedback on this from our cloud-native users. Please refer the documentation for more information.
Seamless Upgrade
With Mayastor 2.1 release, users get the support for upgrading of the software from version 2.0.0 or 2.0.1 to version 2.1.0. This upgrade process is made as seamless and non-disruptive as possible. The upgrade software checks and strives to preserve the availability of every volume during the upgrade process. Please note that the process is non disruptive only for volumes which have more than 1 replica. For volumes with a single replica, there will be a short duration when the volume will become unavailable while the upgrade is in-progress.
Please refer the documentation for more information.
Support For Migration From Legacy Versions
Mayastor versions 1.0.5 and prior, are being considered as legacy versions. Due to several breaking changes in the 2.0 codebase of the software, it is not possible to support seamless upgrades from the legacy versions to the current version. Mayastor 2.1 provides a documented migration path for users to move their legacy installations to the latest version.
Please refer the documentation for more information.
Changes
Stability fixes
- Fixes an issue where the ordering of child IO failure impacts the error handling by the nexus.
Usability Fixes
- Fixed an issue with pool destroy when it’s not yet loaded.
- Fixed an idempotency issue with volume replica destroy.
Known behavioural limitations
- As with the previous versions, the Mayastor IO engine makes full utilisation of the allocated CPU cores even when there is less or no I/O load. This is the poller operating at full speed, waiting for I/O.
- As with the previous versions, a Mayastor disk pool is limited to a single block device and cannot span across more than one block device.
Known issues
- Mayastor does not support creation of volume snapshots and clones as of v2.1.0. This is a work-in-progress feature.
- Mayastor does not support capacity expansion for volumes v2.1.0.
- Mayastor does not support capacity expansion of disk pools as of v2.1.0.
- Under heavy IO and constant scaling up-down of volume replicas, the io-engine pod has been observed to restart occasionally.
Testing
Mayastor is subject to extensive unit, component and system-level testing throughout the development and release cycle. Resources for system-level (E2E) testing are currently provided by DataCore Software.
At this time, personnel and hardware resource limitations constrain testing by the maintainers to linux builds on x86. This reflects the primary use-case which the maintainers are currently targeting with the OpenEBS Mayastor project. Therefore, the use of Mayastor with other operating systems and/or architectures, if even possible, should be considered serendipitous and wholly experimental.
This release has been subject to End-to-End testing under Ubuntu 20.04.5_LTS (kernel: ubuntu-5.15.0-50-generic)
- Tested k8s versions
- 1.23.7
- 1.22.10
Getting Started
Mayastor user documentation, including a quick deployment guide, can be found here
Support
If you are having issues during installation, configuration or upgrade, you can contact us via:
- OpenEBS on Kubernetes Slack community
- Already signed up? Head to our discussions at #openebs
- Raising an issue
"Unsupported" Architectures and Operating Systems (inc. ARM, Raspberry Pi, MacOS)
As described in the section on software testing above, the maintainers build and test Mayastor only on linux, on x86-64. The use of Mayastor in other environments is therefore not necessarily possible, at least without modification. Where possible, this is currently largely coincidental - it is not "fully" tested and therefore this should be considered an entirely experimental use-case.
The maintainers will be pleased to receive contributions in this area, with the following understanding:
- Such PR's will be reviewed for correctness, good practice, licensing compliance and general quality
- PR's will be accepted on the basis that testing by the maintainers is restricted to demonstrating no negative affect on the stability of x86-64 builds
- The maintainers will not perform acceptance testing or "positive release" of such functionality on any other OS or architecture, which is in accordance with their designation of these environments as experimental use cases at this time.
- The maintainers will not provide build artifacts or container images for these environments