Skip to content

v2.6.0

Compare
Choose a tag to compare
@pchandra19 pchandra19 released this 16 Apr 19:05
· 143 commits to develop since this release
fcfb6ad

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

feat(gha/kubectl-plugin): build aarch64-darwin by tiagolobocastro · Pull Request #442 · openebs/mayastor-extensions

Install and Upgrade Fixes

chore: update libspdk hash in io-engine by dsharma-dc · Pull Request #1603 · openebs/mayastor

fix(replica/entity_id): ignore not implemented error by tiagolobocastro · Pull Request #794 · openebs/mayastor-control-plane

fix(upgrade): don't use reservations without ha by tiagolobocastro · Pull Request #796 · openebs/mayastor-control-plane

feat(upgrade-job): add support for loki-stack helm chart upgrade by niladrih · Pull Request #396 · openebs/mayastor-extensions

fix(upgrade-job): avoid infinite loop when no unhealthy vols have a target by niladrih · Pull Request #397 · openebs/mayastor-extensions

fix(chart): promtail subchart changes for chart v6.13.1 by niladrih · Pull Request #398 · openebs/mayastor-extensions

fix: upgrade-job fixes by niladrih · Pull Request #399 · openebs/mayastor-extensions

refactor(chart): provide CRDs in a subchart by cmontemuino · Pull Request #414 · openebs/mayastor-extensions

feat(app node): update csi node with latests args to enable registration by Abhinandan-Purkait · Pull Request #415 · openebs/mayastor-extensions

feat(eventing): add k8sClusterDomain default value to nats config by datacore-vvarakantham · Pull Request #421 · openebs/mayastor-extensions

feat(csi/node): add nvme-tcp init container by tiagolobocastro · Pull Request #423 · openebs/mayastor-extensions

feat(chart): enhance RBAC permissions for vol expansion by niladrih · Pull Request #425 · openebs/mayastor-extensions

feat(charts): add values to control etcd and loki hostpath sc creation by Abhinandan-Purkait · Pull Request #432 · openebs/mayastor-extensions

docs(chart): update topology segments usage by cmontemuino · Pull Request #439 · openebs/mayastor-extensions

feat(upgrade-job): add migration for logSilenceLevel and pluginMounthPath by niladrih · Pull Request #443 · openebs/mayastor-extensions

feat(chart): prevent CRDs from being recycled by cmontemuino · Pull Request #458 · openebs/mayastor-extensions

Add partial rebuild disable and various fixes by tiagolobocastro · Pull Request #471 · openebs/mayastor-extensions

fix(jaeger): update and use the jaeger bundled CRD by tiagolobocastro · Pull Request #473 · openebs/mayastor-extensions

fix(upgrade-job): use default value for missing values with helm 3.13 & 3.14 by niladrih · Pull Request #479 · openebs/mayastor-extensions

refactor(rebuild): tidy up helm variables for rebuild by tiagolobocastro · Pull Request #481 · openebs/mayastor-extensions

Add failure for when partial rebuild is enabled for source charts >=2.2,<=2.5 by niladrih · Pull Request #483 · openebs/mayastor-extensions

chore: update indexmd by Abhinandan-Purkait · Pull Request #488 · 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 Behavioral 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.