Releases: openebs/mayastor
v2.10.0
Release v2.10.0
Release Date: 20th November, 2025
Summary
OpenEBS Replicated PV Mayastor version 2.10.0 introduces new features and several critical functional fixes.
What's New
DiskPool Expansion
It's now possible to expand a DiskPool's capacity by expanding the underlying storage device.
NOTE: As a precondition you must create the DiskPool with sufficient metadata to accommodate/support future growth, please read more about this here.
Configurable ClusterSize
You can now configure the cluster size when creating a pool - larger cluster sizes may be beneficial when using very large storage devices.
NOTE: As an initial limitation volumes may not be placed across pools with different cluster sizes
Pool Cordon
Extend cordoning functionality to pools. This can be used to prevent new replicas from being created on a pool, and also as a way of migrating a volume replica out of it via scale-up/scale-down operations.
Orphaned Retain Snapshot Delete
Similar to volumes, when with snapshots retain move are deleted, the underlying storage is kept by the provisioner and must be deleted with provisioner specific commands.
We've added a plugin sub-command to delete these orphaned snapshots safely.
Node Spread
Node spread topology may now be used
Affinity Group ScaleDown
Affinity group volumes may now be scaled down to 1 replica, provided the anti-affinity across nodes is not violated.
Enhancements
- Update replica health as an atomic etcd transaction
- Exit io-engine with error if the gRPC port is busy
- Set PR_SET_IO_FLUSHER for io-engine to resolve potential deadlock
- Don't let 1 bad nexus lockup the entire nexus subsystem
- Clean up uuid from DISKS output uri
- Honor stsAffinity on backup restores via external tools
- Validate K8s secret in diskpool operator ahead of pool creation request
- Allow pool creation with zfs volume paths
- Added support for kubeconfig context switching (kubectl-mayastor plugin)
- Fixed creating pools on very-slow/very-large storage devices
- Use udev kernel monitor
- Fixed race condition where udev events were lost leading to connecting nvme devices
- Fixed HA enablement on the latest rhel and derivatives
- Fixed open permissions on call-home encryption dir
- Configurable ports of services with hostNetwork
- Add support for 1GiB hugepages
- etcd dependency updated to
12.0.14 - Use normalized etcdUrl in default etcd-probe init containers
- Use correct grpc port in metrics exporter
- Fix volume mkfs stuck on very large pools/volumes
- Fix agent-core panic when scheduling replicas
- Add default priority class to the daemon sets
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.24.14
- 1.25.10
- 1.29.6-1.1
Known Behavioural Limitations
- The IO engine fully utilizes all allocated CPU cores regardless of the actual I/O load, as it runs a poller at full speed.
- Each DiskPool is limited to a single block device and cannot span across multiple devices.
- The data-at-rest encryption feature does not support rotation of Data Encryption Keys (DEKs).
- Volume rebuilds are only performed on published volumes.
Known Issues
- if a node hosting a pod reboots and the pod lacks a controller (like a Deployment), the volume unpublish operation may not trigger. This causes the control plane to assume the volume is still in use, which leads to
fsfreezeoperation failure during snapshots.
Workaround: Recreate or rebind the pod to ensure proper volume mounting. - If a disk backing a DiskPool fails or is removed (Example: A cloud disk detaches), the failure is not clearly reflected in the system. As a result, the volume may remain in a degraded state for an extended period.
- Large pools (Example: 10–20TiB) may take a while during recovery after a dirty shutdown of the node hosting the io-engine.
New Contributors
- @urso made their first contribution in #1906
- @daclash made their first contribution in #1911
- @voyvodov made their first contribution in openebs/mayastor-control-plane#1018
- @cjfinnell made their first contribution in openebs/mayastor-extensions#739
Full Changelog:
v2.9.3
What's Changed
- ci: update github runners to oci gh arc runners by @tiagolobocastro in #1902
Full Changelog: v2.9.2...v2.9.3
v2.7.8
What's Changed
- fix: exit with error if gRPC port is busy by @tiagolobocastro in #1904
- fix: move bitnami images to openebs by @tiagolobocastro in openebs/mayastor-extensions#746
Full Changelog: v2.7.7...v2.7.8
v2.9.2
v2.9.2
This patch bring in a few fixes, as well as update of the bitnami repo which is needed. For more details see here.
What's Changed
- fix: volume mkfs stuck on very large pools by @dsharma-dc in #1891
- fix: exit with error if gRPC port is busy by @tiagolobocastro in #1901
- fix: allow zfs volume paths by @Abhinandan-Purkait in openebs/mayastor-control-plane#1011
- fix: agent-core panic when scheduling replicas by @tiagolobocastro in openebs/mayastor-control-plane#1012
- fix: move bitnami images to openebs by @tiagolobocastro in openebs/mayastor-extensions#723
- feat: add support for updating etcd image repo and debug by @niladrih in openebs/mayastor-extensions#724
- feat: add default priority class to the ds by @Abhinandan-Purkait in openebs/mayastor-extensions#731
Full Changelog
v2.9.1...v2.9.2
openebs/mayastor-control-plane@v2.9.1...v2.9.2
openebs/mayastor-extensions@v2.9.1...v2.9.2
v2.7.7
chore(tag): create tag for release v2.7.7
Description: Mayastor release v2.7.7
Release Date: 18th July, 2025
v2.9.1
What's Changed
- Bump future helm chart version on the release branch by @openebs-ci in openebs/mayastor-extensions#700
- fix: normalize release name for alloy by @Abhinandan-Purkait in openebs/mayastor-extensions#703
- fix(labels): use the newer paperclip which allows tail match by @tiagolobocastro in openebs/mayastor-control-plane#1001
v2.9.0
Release v2.9.0
Release Date: 13th June, 2025
Summary
OpenEBS Replicated PV Mayastor version 2.9.0 introduces new features and several critical functional fixes.
What's New - Replicated Storage
At-Rest Encryption
You can now configure disk pools with your own encryption key, allowing volume replicas to be encrypted at rest. This is useful if you are working in environments with compliance or security requirements.
Enhancements - Replicated Storage
- Added
formatOptionssupport via storage class. - Cordoned nodes are now preferred when removing volume replicas (Example: Scale down).
- Restricted pool creation using non-persistent devlinks like
/dev/sdX. - You no longer need to recreate the StorageClass when restoring volumes from thick snapshots.
- New volume health information is available to better represent volume state.
- A plugin command is available to delete volumes with
RETAINpolicy - useful when a volume remains after its PV is deleted. - Full volume rebuilds are now avoided if a partial rebuild fails due to reaching the max rebuild limit.
Upgrading
- Volume Health information now reflects the true status of the volume
This means that a volume status may now be reported asDegradedwhereas it would have previously been reported asOnline. This has a particular impact for unpublished volumes (in other words, volumes which are not mounted used by a pod) since volume rebuilds are currently not available for unpublished volumes.
This behaviour can be reverted by setting a helm chart variable:agents.core.volumeHealth=false. - This version of the mayastor chart adds two new components out of the box, i.e. Minio and Alloy and removes Promtail, this change is necessary as the previous Loki stack using Promtail was not highly available and Promtail is going to be EOL. This includes the newer Loki stack that can be deployed in a HA fashion given there exists one object storage backing it, which is Minio in this case as a default option. Users can choose to avoid Minio or object storage backend and deploy Loki with filesystem storage, as defined here. The new Loki stack would be enabled by default with 3 replicas of Loki and 3 replicas of Minio. This behaviour can be disabled by setting a helm chart variable:
loki.enabled=false, alloy.enabled=false.
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.24.14
- 1.25.10
- 1.29.6-1.1
Known Behavioural Limitations
- The IO engine fully utilizes all allocated CPU cores regardless of the actual I/O load, as it runs a poller at full speed.
- Each DiskPool is limited to a single block device and cannot span across multiple devices.
- The data-at-rest encryption feature does not support rotation of Data Encryption Keys (DEKs).
- Volume rebuilds are only performed on published volumes.
Known Issues
- DiskPool capacity expansion is not supported as of v2.9.0.
- if a node hosting a pod reboots and the pod lacks a controller (like a Deployment), the volume unpublish operation may not trigger. This causes the control plane to assume the volume is still in use, which leads to
fsfreezeoperation failure during snapshots.
Workaround: Recreate or rebind the pod to ensure proper volume mounting. - If a disk backing a DiskPool fails or is removed (Example: A cloud disk detaches), the failure is not clearly reflected in the system. As a result, the volume may remain in a degraded state for an extended period.
- Large pools (Example: 10–20TiB) may hang during recovery after a dirty shutdown of the node hosting the io-engine.
- Provisioning very large filesystem volumes (Example: More than 15TiB) may fail due to filesystem formatting timeouts or hangs.
v2.9.0-rc.0
What's Changed
- Various Security Updates by @tiagolobocastro in #1813
- docs: refactor README and CONTRIBUTING by @Abhinandan-Purkait in #1815
- Rename action and add ci-report by @tiagolobocastro in #1811
- docs: add event-bus, switchover and integrations by @tiagolobocastro in #1816
- chore: add CODEOWNERS by @niladrih in #1820
- docs: refactor signpost header by @Abhinandan-Purkait in #1817
- ci(gha/bdd): coredump before cleanup by @tiagolobocastro in #1819
- fix: fetch depth 0 by @pchandra19 in #1821
- chore: scaffold for new pool API by @dsharma-dc in #1818
- chore: fix CODEOWNERS by @niladrih in #1826
- feat(encryption): add crypto vbdev by @dsharma-dc in #1824
- chore: update dependencies by @Abhinandan-Purkait in #1829
- chore: handle bool for pool encryption status by @dsharma-dc in #1830
- request encrypted pool crypto vbdev by @dsharma-dc in #1827
- chore: expose diskpool encryption feature for Mayastor by @dsharma-dc in #1837
- Populate disk info for encrypted pools by @dsharma-dc in #1836
- feat(encryption): fetch secret params from secret source by @dsharma-dc in #1833
- chore: reflect encryption state of replica by @dsharma-dc in #1842
- Fix IPv6 support by @tiagolobocastro in #1840
- chore: use secret name as the key name by @dsharma-dc in #1845
- fix(lvs/export): destroy bdevs correctly considering crypto pool by @dsharma-dc in #1846
- fix(crypto): use Cstring while type converting to c_char by @dsharma-dc in #1847
- fix(ipv6): set correct adrfam and ip for nvmx by @tiagolobocastro in #1851
- fix: nexus multipath test to retry on resetting by @Abhinandan-Purkait in #1856
- feat(encryption): allow pools on same node to share keys by @dsharma-dc in #1848
- ci: remove journalctl from the uploaded ci-report by @tiagolobocastro in #1858
- chore(ci): inject github token post nix installation by @pchandra19 in #1862
- refactor: specify the events stream replicas by @tiagolobocastro in #1860
- test(encryption): basic component test for encrypted pool by @dsharma-dc in #1861
- ci: use cachix instead of determinate systems by @Abhinandan-Purkait in #1866
- Prepare release branch by @openebs-ci in #1870
Full Changelog: v2.8.0...v2.9.0-rc.0
v2.7.6
Release v2.7.6
Release Date: 22nd May, 2025
Summary
It's recommended that you upgrade to 2.7.6 from any previous version.
Fixes
- Allow scaling up of volumes of affinity group by @Abhinandan-Purkait in openebs/mayastor-control-plane#983
v2.7.5
Release v2.7.5
Release Date: 18th April, 2025
Summary
OpenEBS Mayastor version 2.7.5 provides some important stability bugfixes for the data and control plane.
It's recommended that you upgrade to 2.7.5 from any previous version.
Features
- Allows specification of formatOptions on storage class for volumes by @abhilashshetty04 in openebs/mayastor-control-plane#959
- Add Volume Health information to release/2.7 by @tiagolobocastro in openebs/mayastor-control-plane#965
Fixes
- Regression to due multipath being not enabled by @tiagolobocastro in openebs/mayastor-control-plane#951
- Allow thick volume snapshot restore by making it thin if not specified explicitly by @abhilashshetty04 in openebs/mayastor-control-plane#964
CI
- Krew fix - only push the latest version by @tiagolobocastro in openebs/mayastor-extensions#637
Helm Chart
- fix: add knob for volume health by @tiagolobocastro in openebs/mayastor-extensions#656