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:
Item | Description | ID |
---|---|---|
1 | ansible : 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 |
2 | api-service : Exit gracefully when unable to contact etcd instead of panicking. | LBM1-36213 |
3 | api-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 |
| LBM1-34674 |
5 | cluster-manager : Allowed for creating a snapshot with the same name as a snapshot waiting for deletion. | LBM1-19435 |
6 | cluster-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 |
7 | control-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 |
8 | data-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 |
9 | datalayer : Fixed an issue that could cause an IDP configuration error when using ADFS. | LBM1-36402 |
10 | discovery-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 |
11 | duroslight : /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 |
12 | duroslight : 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 |
13 | duroslight : 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 |
14 | duroslight : 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 |
15 | duroslight : 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 |
16 | events : 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 |
17 | lbcli : Added the parse jwt command, which parses and shows a jwt's content. | LBM1-36666 |
18 | lbcli : Added a request for confirmation before enabling cluster encryption. To confirm, enter 'y' or 'yes'. | LBM1-33826 |
19 | lbcli ask : Added context awareness and the ability to submit follow-up questions to the lbcli AI assistant (experimental). | LBM1-36574 |
20 | lightbits-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 |
21 | lightbits-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 |
| LBM1-36262 |
23 | node-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 |
24 | node-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 |
25 | node-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 |
26 | node-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 |
27 | node-manager : node-manager: make sure every snapshot has a primary node; otherwise, we could miss LBA changes in the snapshot diff. | LBM1-36092 |
28 | openstack : 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 |
29 | openstack : 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 |
30 | openstack : 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 |
31 | upgrade-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 |
32 | userlbe : 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.
Was this page helpful?