Release 3.14.1

Release Date

v3.14.1 was released to the public on Apr 2, 2025.

New in This Release

This release introduces the following changes since version 3.13.x:

ItemDescriptionID
1ansible: Added a new 'cleanup_all' option, to clean up everything. You can use this for repurposing a Lightbits server that was installed with a previous version - and then you want to reinstall it (not upgrade) with a newer version.LBM1-36321
2api-service: Exit gracefully when unable to contact etcd instead of panicking.LBM1-36213
3api-service: api-service: Fixed a bug in the ListChangedBlocks API. Prevented performing the operation on a snapshot that was considered as "deleting" in the ListSnapshots/GetSnapshot API.LBM1-36488
4

cluster-manager:

  1. Prevented replacing a node when encryption was enabled in the cluster, but the target node was located on a server that cannot/has not enabled encryption yet.
  2. When encryption was enabled in the cluster, it prevented the cluster from creating internal resources on servers that cannot/have not enabled encryption yet.
LBM1-34674
5cluster-manager: Allowed for creating a snapshot with the same name as a snapshot waiting for deletion.LBM1-19435
6cluster-manager: When encryption was enabled in the cluster, prevented servers that do not have the latest encryption-info from participating in the election for being the active cluster-manager.LBM1-34671
7control-plane: Fixed an issue where GetVolumeStatistics could get stuck and block the stop node-manager service due to ioctl commands that were not returned while trying to collect the volume's information.LBM1-36308
8data-layer: Fixed FSM retries on snapshot transaction failures, ensured atomic deletion of node and cluster snapshots, and added validation to prevent race conditions when storing node snapshots.LBM1-35984
9datalayer: Fixed an issue that could cause an IDP configuration error when using ADFS.LBM1-36402
10discovery-client: Fixed ctrl-loss-tmo flag support. Previously, this flag was supported on the command line, but not in the configuration file; it is now respected in the configuration file as well.LBM1-36497
11duroslight: /etc/duroslight/conf.yaml now has a max_ctrl_io_queues parameter that allows configuring the maximal number of IO queues allowed per controller (client connection). The default is 128. See NVMe 1.4, 5.21.1.7 for details. This option enables reducing the number of sockets connected per client: every client connection will have min(nr_cpus, max_ctrl_io_queue) + 1 sockets.LBM1-36567
12duroslight: Depending on the PMEM type, duroslight used different allocators. This difference in allocators is no longer needed, so both types - NVDIMM or DCPMM - now use the same allocator.LBM1-36132
13duroslight: Fixed an issue when a snapshot is created immediately following a primary switch/failover. Such a snapshot did not wait for all the previously-written snapshot data to persist in the GFTL storage, which could lead to a possible transient state where a clone from this snapshot or snapshot diff would not observe all the snapshot data correctly.LBM1-36122
14duroslight: Fixed a performance regression introduced in 3.13.x in the encryption layer, which could lead to a degradation of ~30% in read IO throughput when reading encrypted data.LBM1-36515
15duroslight: Performance optimization: do not journal rebuild writes into persistent memory, since this is redundant and abrupt shutdown during rebuild will replay those rebuild writes back.LBM1-33311
16events: Introduced new server event causes: FailedToGetKEK (1500), FailedToInitializeTPM (1501), FailedToReadKEK (1502), and FailedToWriteKEK (1503) - and renamed the event name from FailedToLoadEncryptionKEK to InitializingServerEncryptionFailed.LBM1-35352
17lbcli: Added the parse jwt command, which parses and shows a jwt's content.LBM1-36666
18lbcli: Added a request for confirmation before enabling cluster encryption. To confirm, enter 'y' or 'yes'.LBM1-33826
19lbcli ask: Added context awareness and the ability to submit follow-up questions to the lbcli AI assistant (experimental).LBM1-36574
20lightbits-api: It is only possible to create a clone from a snapshot that is Available. The API will now return Unavailable when attempting to create a clone from a snapshot that is Creating, return FailedPrecondition when the snapshot is Deleting or Failed, return NotFound when the snapshot is Deleted, and return Internal for any other invalid snapshot states.LBM1-20954
21lightbits-api: Updated gRPC and the REST API documentation. Information on required fields was not always correct in the documentation, with various fields missing some information. The documentation is up to date now.LBM1-36161
22

monitoring-stack: Added new Prometheus recording rule alerts for clusters that have volumes in a faulty protection state/availability.

  • DegradedVolumes - Cluster has one or more volumes in degraded protection state (warning).
  • ReadOnlyVolumes - Cluster has one or more volumes in read only protection state (critical).
  • NotAvailableVolumes - Cluster has one or more volumes that are not available for write or read (critical).
LBM1-36262
23node-manager: Fixed unexpected behaviors such as node manager failing to complete rebuilds and volumes stuck in Migrating state, or node-manager crashing and restarting for no apparent reason, following a timed out request to duroslight. This could occur for a dynamic rebalance operation that takes place shortly after a disconnection between the node manager and etcd, and in which the node was previously hosting a replica for the corresponding volume.LBM1-36089
24node-manager: Increased the default LimitNOFILE the node-manager sets in the duroslight-*.service files from 65536 to 300,000. This is to prevent duroslight process failure due to "Too many open files" with a large number of connected clients. duroslight will gracefully reject new connections once the limit of 2030 clients is reached. Each client can have up to 128 I/O connections.LBM1-36478
25node-manager: Removed obsolete code that sets and gets PCIe MaxReadRequests. This is no longer needed since Lightbits moved to userspace in version 3.4.1.LBM1-35938
26node-manager: Fixed a race condition related to Data Integrity (DI) errors that could cause some errors to be detected and reported twice instead of once (which could not have caused a data integrity error to be missed - i.e., a missed event).LBM1-35757
27node-manager: node-manager: make sure every snapshot has a primary node; otherwise, we could miss LBA changes in the snapshot diff.LBM1-36092
28openstack: Added support for Quality of Service (QoS) features specifically designed for block storage workloads. This enables administrators to define and enforce performance policies—such as IOPS (Input/Output Operations Per Second) limits and bandwidth caps—ensuring predictable and consistent storage performance for applications running in OpenStack environments.LBM1-20520
29openstack: Added multi-tenancy capabilities for block storage environments, allowing multiple independent users or tenants (projects) to securely share the same storage infrastructure while maintaining data isolation, access controls, and performance consistency.LBM1-34615
30openstack: Support for Volume Retype functionality for block storage workloads. This feature allows users to seamlessly change the type or properties of an existing volume—such as its performance characteristics or replication settings—without needing to create a new volume or migrate data.LBM1-34717
31upgrade-manager: Fixed a rare race condition in which the running upgrade-manager could miss out on an existing upgrade-server task when handling a cluster-upgrade, causing the cluster-upgrade command to later fail.LBM1-35910
32userlbe: Fault all pages of allocated memory on startup. This can prevent cases where pages are faulted during runtime and there is no available physical memory to back them, which causes the userlbe to OOM and crash.LBM1-36162

Installation and Upgradeability

You can upgrade to this release from all previous Lightbits 3.11.x, 3.12.x, and 3.13.x releases.

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard