Skip to content

v2.8.0

Latest
Compare
Choose a tag to compare
@pchandra19 pchandra19 released this 14 Feb 14:35
· 27 commits to develop since this release
bcb7fbe

Release v2.8.0

Release Date: 14th Feb., 2025

Summary

OpenEBS Replicated PV Mayastor version 2.8 introduces new features and several critical functional fixes.

Features

NVMEoF-RDMA

Mayastor volume targets now have capability to be shared over RDMA transport, which the application hosts can make use of to get high throughput and reduced latency. The enablement option is provided via helm chart, which needs to be used in combination with existing option of network interface name to provide an RDMA capable interface name. This allows nvme hosts to reap benefits of the high performance RDMA network infrastructure, while talking to storage targets.

CSAL ftl bdev support

The SPDK ftl bdev allows to create a layered device with a (fast) cache device for buffering writes that get eventually flushed out sequentially to a base device. SDPK ftl is also known as the Cloud Storage Acceleration Layer (CSAL). This kind of device potentially enables the use of emerging storage interfaces like Zoned Namespace (ZNS) or Flexible Data Placement (FDP) capable NVMe devices.

Fixes:

fix(nexus): don't persist if child faults during nexus create by dsharma-dc · Pull Request #1780 · openebs/mayastor

fix(cli): add missing arguments for grpc ip&port by tiagolobocastro · Pull Request #1766 · openebs/mayastor

fix: check valid sct and sc combinations for pi error by dsharma-dc · Pull Request #1756 · openebs/mayastor

Fix stuck rebuilds and stuck nexus subsystems by tiagolobocastro · Pull Request #1720 · openebs/mayastor

[ BUGFIX ] Fabrics connect timeouts by tiagolobocastro · Pull Request #1711 · openebs/mayastor

fix(spdk): propagate child I/O error for split I/O by dsavitskiy · Pull Request #1696 · openebs/mayastor

fix: use auto-detected sector size for blockdev by dsharma-dc · Pull Request #1692 · openebs/mayastor

Cherry-Pick: HA: ReShutdown the Target by tiagolobocastro · Pull Request #930 · openebs/mayastor-control-plane

fix(volume_reconciler): changes in replica disown logic by abhilashshetty04 · Pull Request #920 · openebs/mayastor-control-plane

fix(topology): hasTopologyKey overwrites affinityTopologyLabels by sinhaashish · Pull Request #847 · openebs/mayastor-control-plane

Cherry-pick PR 917 by tiagolobocastro · Pull Request #921 · openebs/mayastor-control-plane

Cherry Pick 914: use topology when decreasing replicas by tiagolobocastro · Pull Request #916 · openebs/mayastor-control-plane

fix(plugin/block-devices): don't panic on unmanaged pools by tiagolobocastro · Pull Request #914 · openebs/mayastor-control-plane

fix(ha-node): use transport info from nvme connect response by dsharma-dc · Pull Request #912 · openebs/mayastor-control-plane

Cherry pick #905 by Abhinandan-Purkait · Pull Request #909 · openebs/mayastor-control-plane

Cherry-pick 907 by tiagolobocastro · Pull Request #908 · openebs/mayastor-control-plane

fix(volume): don't allow unpublish from non-frontend node by dsharma-dc · Pull Request #889 · openebs/mayastor-control-plane

fix(csi-node): handle devices for existing subsystems by tiagolobocastro · Pull Request #892 · openebs/mayastor-control-plane

Fix regression for pool creation timeout retry by tiagolobocastro · Pull Request #887 · openebs/mayastor-control-plane

Enhancements:

feat(io-engine): add persistent store transaction API by dsharma-dc · Pull Request #1791 · openebs/mayastor

Introduce new CSAL ftl bdev by MaisenbacherD · Pull Request #1771 · openebs/mayastor

Reuse Rebuild IO handles by tiagolobocastro · Pull Request #1755 · openebs/mayastor

fix(host-devices): extend allowed major list by tiagolobocastro · Pull Request #1740 · openebs/mayastor

feat: add RDMA listener to Mayastor Nvmf target by dsharma-dc · Pull Request #1701 · openebs/mayastor

Refactor more explicit uses of Lvol with the backend interface by tiagolobocastro · Pull Request #1700 · openebs/mayastor

Upgrading to SPDK 24.05 by dsavitskiy · Pull Request #1667 · openebs/mayastor

fix: account for builtin nvme-tcp module in initContainer by dsharma-dc · Pull Request #602 · openebs/mayastor-extensions

refactor(csi-driver): use tokio process command for findmnt and add path prefix by Abhinandan-Purkait · Pull Request #913 · openebs/mayastor-control-plane

Readiness probe changes by niladrih · Pull Request #900 · openebs/mayastor-control-plane

feat(csi-driver): make csi-driver operations async by Abhinandan-Purkait · Pull Request #886 · openebs/mayastor-control-plane

build: update nixpkgs and deps by tiagolobocastro · Pull Request #883 · openebs/mayastor-control-plane

feat(csi-node): allow listening on IPv6 Pod IPs by michaelbeaumont · Pull Request #872 · openebs/mayastor-control-plane

Don't destroy replicas part of shutdown nexuses by tiagolobocastro · Pull Request #862 · openebs/mayastor-control-plane

feat: handle new nvmf uri scheme by dsharma-dc · Pull Request #858 · openebs/mayastor-control-plane

feat(topology): restrict users from deleting created-by label on pools by sinhaashish · Pull Request #853 · openebs/mayastor-control-plane

feat(chart): add eviction tolerations to localpv,dsp operator,csi controller by niladrih · Pull Request #616 · 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 the capacity expansion of DiskPools as of v2.8.0
  • Under heavy IO and constant scaling up-down of volume replicas, the io-engine pod has been observed to restart occasionally.
  • fsfreeze fails for published,not mounted volume: If a pod-based workload is scheduled on a node that reboots and the pod does not have a controller (such as a Deployment or StatefulSet), the volume unpublish operation is not triggered. This causes the control plane to incorrectly assume that the volume is still published, even though it is not mounted. As a result, the FIFREEZE operation fails during the snapshot process, preventing the snapshot from being taken. The recommended resolution is to reinstate or recreate the pod to ensure proper volume mounting.

New Contributors

Thanks to our new contributors on Mayastor !!

@michaelbeaumont - feat(ha-node): allow listening on IPv6 Pod IPs by michaelbeaumont · Pull Request #873 · openebs/mayastor-control-plane

@MaisenbacherD and @imukherjee-sndk - Introduce new CSAL ftl bdev by MaisenbacherD · Pull Request #1771 · openebs/mayastor