Skip to content

Releases: openebs/mayastor

v2.7.2

24 Dec 18:40
Compare
Choose a tag to compare

Release v2.7.2

Release Date: 24th December, 2024

Summary

OpenEBS Replicated PV Mayastor version 2.7.2 provides some important stability bugfixes for the data and control plane.
It's recommended that you upgrade to 2.7.2 from any previous version.

Fixes

  • fix(self-shutdown): abort frozen ios when unsharing shutdown nexus
  • chore: increase ps_retries and silence log once logged
  • fix(nexus): don't persist if child faults during nexus create
  • fix: check valid sct and sc combinations for pi error
  • fix: use auto-detected sector size for blockdev
  • fix(csi/controller): don't return error on host mismatch
  • feat(csi-driver): add pre-publish hook to cleanup stale entries
  • fix(rest): make readiness check atomic The readiness check API depends on the agent-core service's Node gRPC endpoint. The current RwLock lets multiple tokio threads probe the agent-core. This is not ideal. This change makes the get operation atomic, so that agent-core state cache updates could be performed by only a single thread, and the updated cache should feed the next few ready calls.
  • fix(csi-driver): trace was mistakenly added as info
  • feat(csi-driver): use tokio_stream unixlistenerstream
  • fix(volume): don't allow unpublish from non-frontend node
  • fix(resize): atomically check for the required size
  • fix(fsfreeze): improved error message when volume is not staged
  • fix(deployer): increasing the max number of allowed connection attempts to the io-engine
  • fix(topology): hasTopologyKey overwites affinityTopologyLabels
  • refactor: allow importing the diskpool cr only

Full Change Log:

Mayastor

Mayastor Control Plane

Mayastor Extensions

v2.7.2-rc.4

19 Dec 18:10
Compare
Choose a tag to compare
v2.7.2-rc.4 Pre-release
Pre-release

What's Changed

Full Changelog: v2.7.2-rc.3...v2.7.2-rc.4

v2.7.2-rc.3

18 Dec 18:18
Compare
Choose a tag to compare
v2.7.2-rc.3 Pre-release
Pre-release

What's Changed

Full Change Log:

Mayastor

Mayastor Control Plane

Mayastor Extensions

v2.7.2-rc.2

13 Dec 22:44
Compare
Choose a tag to compare
v2.7.2-rc.2 Pre-release
Pre-release

What's Changed

Full Change Log:

Mayastor

Mayastor Control Plane

Mayastor Extensions

v2.7.2-rc.1

05 Dec 15:13
Compare
Choose a tag to compare
v2.7.2-rc.1 Pre-release
Pre-release

What's Changed

Full Changelog: v2.7.1...v2.7.2-rc.1

v2.7.1

20 Sep 14:44
Compare
Choose a tag to compare

Release v2.7.1

Release Date: 20th September, 2024

Summary

OpenEBS Replicated PV Mayastor version 2.7.1 provides some important stability bugfixes for the data-plane.
It's recommended that you upgrade to 2.7.1 from any previous version.

Fixes

Full Change Log:

Mayastor

Mayastor Control Plane

Mayastor Extensions

v2.7.0

05 Jul 15:43
Compare
Choose a tag to compare

Release v2.7.0

Release Date: 5th July, 2024

Summary

OpenEBS Replicated PV Mayastor version 2.7 provides placement of replica volumes across different nodes/pools. Version 2.7 has enhanced snapshot capabilities to ensure file-system consistency across multiple replicas before taking snapshots. This release provides the capability to restore from snapshot across multiple and supports volume expansion even in the presence of snapshots. In addition, this release has fixes related to snapshots, upgrades and supportability.

Features

Placement of Replica Volumes Across Different Nodes/Pools

Mayastor now uses topology parameters defined in the storage class to determine the placement of volume replicas. This allows replicas can be controlled via labels from the storage class.

Snapshot Across Multiple Replicas

Mayastor has enhanced its snapshot capabilities to ensure file-system consistency across multiple replicas before taking snapshots. This ensures that snapshots are consistent and reliable across multiple replicas

Restore Across Multiple Replicas

The capability to restore from snapshots across multiple replicas has been introduced in recent releases, enhancing data recovery options​.

Expansion of volumes with snapshots

The latest release, Mayastor v2.7, includes support for volume expansion even when snapshots are present

Snapshot Fixes

feat(snapshot): plugin changes for snapshot operation by hrudaya21 · Pull Request #500 · openebs/mayastor-extensions

fix(snapshot): scale volume with snapshot can go for replica rebuild by hrudaya21 · Pull Request #826 · openebs/mayastor-control-plane

Upgrade Fixes

fix(upgrade-job): fix deserialize failures with helm v3.13+ installations by niladrih · Pull Request #512 · openebs/mayastor-extensions

fix: don't add replica to nexus which can't rebuild properly · openebs/mayastor-control-plane@53500c0

Enhancements:

feat: expose io-engine version via rest · openebs/mayastor-control-plane@9dfb153

feat(rebuild): prefer a local replica as a rebuild source · openebs/mayastor@c3816b9

feat(config): extends config yaml with core config and delay mode · openebs/mayastor@6d6fc65

fix: crash when there are no bdevs · openebs/mayastor@5575858

fix(ha/node): don't replace path if nqn is not found · openebs/mayastor-control-plane@07ca344

fix: crash when there are no bdevs · openebs/mayastor@5575858

feat(lvs): special error code for out-of-metadata condition · openebs/mayastor@349a07c

fix: update blob metadata during properties update · openebs/mayastor@7ad7a33

Solutions:

  1. Mayastor support in GKE with local SSD’s
  2. Mayastor support in Talos
  3. Provisioning RWX PVC’s
  4. Velero DR for LocalPV ZFS

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

Known Behavioural Limitations

As with the previous versions, the Mayastor IO engine makes full utilisation of the allocated CPU cores regardless of I/O load. This is the poller operating at full speed, waiting for I/O.

As with the previous versions, a Mayastor DiskPool is limited to a single block device and cannot span across more than one block device.

Known Issues

Mayastor does not support the capacity expansion of DiskPools as of v2.6.0
Under heavy IO and constant scaling up-down of volume replicas, the io-engine pod has been observed to restart occasionally.

v2.6.1

19 Apr 15:13
Compare
Choose a tag to compare

Release v2.6.1

Release Date: 19th April, 2024

Summary

OpenEBS Replicated PV Mayastor version 2.6 provides volume expansion support for a Mayastor volume with automatic resizing of file-system by the CSI-resizer. Mayastor v2.6 enhances snapshot capabilities by ensuring file-system consistency before taking a snapshot. Mayastor v2.6 also enhances monitoring by exporting performance metrics like IOPs, throughput, and latency for Mayastor pools, volumes, and replicas. In this release, the event generation capabilities have been expanded to include more events. In addition, this release has fixes related to snapshots, upgrades, availability, stability, and supportability.

What's Changed

This patch fixes an issue for older Linux kernels (<5.8) where /proc/mounts iteration would deadlock causing CSI volumes to get stuck during the staging process.

Fixes

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

Known Behavioural Limitations

As with the previous versions, the Mayastor IO engine makes full utilisation of the allocated CPU cores regardless of I/O load. This is the poller operating at full speed, waiting for I/O.

As with the previous versions, a Mayastor DiskPool is limited to a single block device and cannot span across more than one block device.

Known Issues

Mayastor does not support the capacity expansion of DiskPools as of v2.6.1.

v2.6.0

16 Apr 19:05
fcfb6ad
Compare
Choose a tag to compare

Release v2.6.0

Release Date: 16th April, 2024

Summary

OpenEBS Replicated PV Mayastor version 2.6 provides volume expansion support for a Mayastor volume with automatic resizing of file-system by the CSI-resizer. Mayastor v2.6 enhances snapshot capabilities by ensuring file-system consistency before taking a snapshot. Mayastor v2.6 also enhances monitoring by exporting performance metrics like IOPs, throughput, and latency for Mayastor pools, volumes, and replicas. In this release, the event generation capabilities have been expanded to include more events. In addition, this release has fixes related to snapshots, upgrades, availability, stability, and supportability.

Features

Volume Expansion

Mayastor 2.6 adds support for allowVolumeExpansion CSI capability to resize the volumes and the mounted file-systems. Mayastor CSI plugin provides support for the expansion of volume in both online and offline states.

Refer to the documentation for more details.

Filesystem Consistent Snapshot

Mayastor 2.6 makes a best effort to ensure the mounted filesystem is consistent while taking a snapshot of the underlying volume. This allows the file-system to be recovered in a good state when the volume is restored from the snapshot.

Refer to the documentation for more details.

Performance Metrics

Mayastor 2.6 enhances product monitoring by exposing performance metrics like in the Prometheus format in addition to the existing metrics for capacity and state. IO, Throughput and Latency counters for Read and Write operations of DiskPools, Volumes and Replicas are added to the list of metrics exported from the IO Engine exporter.

Refer to the documentation for more details.

Events

The eventing framework was introduced in the Mayastor 2.4. The generated events are published onto a NATS message bus.

In 2.6, new events get generated during the provisioning of snapshots and clones, and state changes for nexus, sub-system, reactor, replica, and node.

Refer to the documentation for the list of available events.

Improvements and Stability Fixes

Rebuild refactoring by tiagolobocastro · Pull Request #1581 · openebs/mayastor

fix(nexus): fixing missing I/Os during nexus rebuild by dsavitskiy · Pull Request #1583 · openebs/mayastor

refactor(io-engine): use SafeMountIter instead of proc_mounts::MountIter by niladrih · Pull Request #1591 · openebs/mayastor

Rebuild Rangers by tiagolobocastro · Pull Request #1594 · openebs/mayastor

fix(rebuild/partial): set bits for written blks only by tiagolobocastro · Pull Request #1597 · openebs/mayastor

refactor(rebuild/bdev): use builder pattern by tiagolobocastro · Pull Request #1604 · openebs/mayastor

fix(stats/lock): sync calls with pool service by tiagolobocastro · Pull Request #1607 · openebs/mayastor

fix(lock): make import pool, create replica and share replica operations mutually exclusive by hrudaya21 · Pull Request #1611 · openebs/mayastor

fix(nvmf): fixing duplicate QID error by dsavitskiy · Pull Request #1616 · openebs/mayastor

Reconnect IO log on Detach by tiagolobocastro · Pull Request #1619 · openebs/mayastor

fix(rebuild): reconnect log on own channel when faulting by tiagolobocastro · Pull Request #1622 · openebs/mayastor

feat: capacity limit for volumes by chriswldenyer · Pull Request #710 · openebs/mayastor-control-plane

Repo chores by tiagolobocastro · Pull Request #717 · openebs/mayastor-control-plane

refactor(rest-plugin): make it more modular by tiagolobocastro · Pull Request #720 · openebs/mayastor-control-plane

refactor(rest-plugin): make executor more generic by tiagolobocastro · Pull Request #721 · openebs/mayastor-control-plane

Delete Orphaned Volumes on a timer by tiagolobocastro · Pull Request #724 · openebs/mayastor-control-plane

Node labelling UX by tiagolobocastro · Pull Request #726 · openebs/mayastor-control-plane

fix(core/ha): re-share the nexus on republish by tiagolobocastro · Pull Request #728 · openebs/mayastor-control-plane

feat(app node): register csi nodes to control plane by Abhinandan-Purkait · Pull Request #730 · openebs/mayastor-control-plane

fix(pstor): when lease is lost exit instead of panic by tiagolobocastro · Pull Request #732 · openebs/mayastor-control-plane

check cluster capacity limit during volume resize, and also allow volume resize via rest plugin by dsharma-dc · Pull Request #747 · openebs/mayastor-control-plane

fix(legacy prefix detection): calculate range end for legacy prefix instead of empty by Abhinandan-Purkait · Pull Request #761 · openebs/mayastor-control-plane

fix(csi-driver): support getting device size from devpath by niladrih · Pull Request #765 · openebs/mayastor-control-plane

fix(csi-controller/pv-watcher): race between creation and gc by tiagolobocastro · Pull Request #768 · openebs/mayastor-control-plane

Blocking nvme disconnect fixes by tiagolobocastro · Pull Request #776 · openebs/mayastor-control-plane

Tracing and Platform fixes by tiagolobocastro · Pull Request #782 · openebs/mayastor-control-plane

fix(volume/resize): handle overflow during volume shrink attempt by dsharma-dc · Pull Request #784 · openebs/mayastor-control-plane

feat(eventing): add target volumeid to nvme path events by datacore-vvarakantham · Pull Request #791 · openebs/mayastor-control-plane

fix(agent/core): rebuild space required by tiagolobocastro · Pull Request #792 · openebs/mayastor-control-plane

XFS compat with older kernels when formatting by tiagolobocastro · Pull Request #799 · openebs/mayastor-control-plane

CI fixes and disable partial rebuild with cli arg by tiagolobocastro · Pull Request #804 · openebs/mayastor-control-plane

chore(deps): address CVE-2023-39325, CVE-2023-47108 and GHSA-m425-mq9… by cmontemuino · Pull Request #402 · openebs/mayastor-extensions

refactor(kubectl-plugin): tidy up error handling and command execution by tiagolobocastro · Pull Request #407 · openebs/mayastor-extensions

fix(uncordon): Rectify uncordon resource by sinhaashish · Pull Request #409 · openebs/mayastor-extensions

feat(volume/resize): don't allow volume resize for snapshot restore vols by dsharma-dc · Pull Request #777 · openebs/mayastor-control-plane

Performance and Scalability Fixes

fix(lvs): fixing issues with large number of volumes by dsavitskiy · Pull Request #1589 · openebs/mayastor

perf: use spdk mempool per-core cache for io objects pool by dsharma-dc · Pull Request #1612 · openebs/mayastor

refactor: use pagination to load values from pstor by Abhinandan-Purkait · Pull Request #737 · openebs/mayastor-control-plane

Supportability Fixes

add json formatting support by abhilashshetty04 · Pull Request #745 · openebs/mayastor-control-plane

feat(supportability): update etcd pagination fetch method by Abhinandan-Purkait · Pull Request #426 · openebs/mayastor-extensions

[fix(kubectl/dump/etcd): use correct namespace by tiagolobocastro · Pull Request #437 · openebs/mayastor-extensions](https://github.com/openebs/mayastor-extensions/pull...

Read more

v2.5.0

18 Dec 17:03
Compare
Choose a tag to compare

Release v2.5.0

Release Date: 18th Dec., 2023

Summary

The version 2.5 adds support for btrfs file-system as a supported file-system on top of a Mayastor volume. Mayastor 2.5 provides for event generation for event categories like volume, nexus, replica, host and switch-over. This release updates SPDK to version 23.05. In addition, this release has fixes related to snapshots, upgrade, availability, stability and supportability.

Features

Support for Btrfs file-system
This release supports creation of Btrfs file-system through the Mayastor CSI provisioner, in addition to the current support for Ext4 and XFS. Kubernetes storage administrators need to specify fsType as “btrfs” in the Mayastor Storage class, and create volumes using PVC from this SC.

Eventing

The eventing framework was introduced in the Mayastor 2.4. The generated events are published onto a NATS message bus.

In the current release, events are generated for creation and deletion of volume nexus and replicas, HA switch-over and state change for node, pool, volume, nexus and replica.

Please refer the documentation for more details. Eventing can be disabled as per the steps here.

Snapshot Fixes

Performance tuning for snapshot operations feat(pool): blobstore cluster size to be set during pool creation through grpc parameter value by hrudaya21 · Pull Request #1512 · openebs/mayastor

feat(snapshot, restore): prevent volume mode conversion for restore as default behaviour by Abhinandan-Purkait · Pull Request #340 · openebs/mayastor-extensions

Security Fixes

Security updates by tiagolobocastro · Pull Request #1543 · openebs/mayastor

Stability Fixes

Updating SPDK library feat(spdk): updating to SPDK 23.05 by dsavitskiy · Pull Request #1508 · openebs/mayastor

Command Retry Delay fixes feat(nvmf): selection different CRD for replicas and certain nexus error by dsavitskiy · Pull Request #1524 · openebs/mayastor

Pull rpc from dependencies submodule and various fixes by tiagolobocastro · Pull Request #1534 · openebs/mayastor

fix(spdk): backport of SPDK fix for zero copy by dsavitskiy · Pull Request #1539 · openebs/mayastor

Fixing I/O engine crashes by dsavitskiy · Pull Request #1549 · openebs/mayastor

Various fixes for idempotency, error messages and concurrency by tiagolobocastro · Pull Request #1552 · openebs/mayastor

nvme/opts: parse timeouts in humantime by tiagolobocastro · Pull Request #1548 · openebs/mayastor

fix(pstor): increase persistence timeouts by tiagolobocastro · Pull Request #1564 · openebs/mayastor

feat(drain): disallow node draining if ha is disabled by Abhinandan-Purkait · Pull Request #692 · openebs/mayastor-control-plane

Nvme addr matches host:port only by tiagolobocastro · Pull Request #687 · openebs/mayastor-control-plane

feat(ha): csi node should label nodes with nvme ana capability, node agent should not report failed paths if ana is not supported by Abhinandan-Purkait · Pull Request #693 · openebs/mayastor-control-plane

Fixup correct nvme controller and make child add v1 idempotent by tiagolobocastro · Pull Request #695 · openebs/mayastor-control-plane

feat(snapshot, restore): prevent volume mode conversion for restore as default behaviour by Abhinandan-Purkait · Pull Request #340 · openebs/mayastor-extensions

refactoring current metrics exporter implementation by abhilashshetty04 · Pull Request #355 · openebs/mayastor-extensions

feat(nvmf/crdt): add crdt to the io-engine by tiagolobocastro · Pull Request #326 · openebs/mayastor-extensions

Supportability Fixes

fix(kubectl-plugin): non-zero exit code on error by datacore-vvarakantham · Pull Request #694 · openebs/mayastor-control-plane

feat(loki): adding multiline support by abhilashshetty04 · Pull Request #344 · openebs/mayastor-extensions

Upgrade Fixes

fix(upgrade-job): remove short args to resolve conflict over '-h' option by niladrih · Pull Request #353 · openebs/mayastor-extensions

feat: upgrade changes by niladrih · Pull Request #358 · openebs/mayastor-extensions

fix(upgrade-job): wait for event worker to exit for errors by niladrih · Pull Request #319 · openebs/mayastor-extensions

fix(upgrade-job): avoid quotes when setting yaml bools, null, int by niladrih · Pull Request #334 · openebs/mayastor-extensions

chore(upgrade) : add volume node validation by sinhaashish · Pull Request #336 · openebs/mayastor-extensions

fix(upgrade-job): set defaults for absent helm values by niladrih · Pull Request #337 · openebs/mayastor-extensions

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

Known behavioural limitations

As with the previous versions, the Mayastor IO engine makes full utilisation of the allocated CPU cores regardless of I/O load. This is the poller operating at full speed, waiting for I/O.

As with the previous versions, a Mayastor DiskPool is limited to a single block device and cannot span across more than one block device.

Known issues

Mayastor does not support capacity expansion for volumes as of v2.5.0.

Mayastor does not support capacity expansion of DiskPools as of v2.5.0.

Under heavy IO and constant scaling up-down of volume replicas, the io-engine pod has been observed to restart occassionally.

Getting Started

Mayastor user documentation, including a quick deployment guide, can be found here

Upgrade

Upgrades from versions of Mayastor prior to v1.0.0 are not supported. Any release earlier than v1.0.0 should be removed prior to installing this version.
Users get the support for upgrading the software from version 2.0.0 | 2.0.1 | 2.1.0 | v2.2.0 | v2.3.0 | v2.4.0 to v2.5.0

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.2 provides a documented migration path for users to move their legacy installations to the latest version.

Please refer the documentation for more information.

Support

If you are having issues during installation, configuration or upgrade, you can contact us via:

"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 tes...
Read more