Skip to content

Latest commit

 

History

History
1091 lines (778 loc) · 46.7 KB

File metadata and controls

1091 lines (778 loc) · 46.7 KB

Changelog

All notable changes to Linstor will be documented in this file starting from version 1.19.0, for older version see github releases.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[1.34.1] - 2026-07-09

Added

  • Controller property Logging/ArchiveAgeDays to configure the minimum age in days after which error-report log files are archived and compressed (default 60, 0 disables archiving, always whole months); the value is also used by the satellites

Changed

  • SOS reports now include DRBD statistics (e.g. out-of-sync): drbdsetup status and drbdsetup events2 are collected with --statistics, plus a new drbd-status.json from drbdsetup status --json
  • Improved trace logging of DevMgrRuns when creating/merging/deleting core objects
  • If resources already violate resource-group's autoplacer settings (like --replicas-on-same), a tiebreaker ignores the violated --replicas-on-same limitation. "Place anywhere is better than nowhere".
  • Extend ioProgressMode to additionally monitor /sys/[dev/]block//stat in addition to the old /proc//io to survive large flushes.

Fixed

  • Fixed ArrayIndexOutOfBoundsException in the file storage provider when parsing losetup output, which broke the device manager whenever a loop device was present
  • Fixed AutoHTTPS certificate missing SubjectAlternativeName entries
  • Fixed AutoHTTPS certificate never being renewed, now valid for 5 years and automatically renews at controller startup within 90 days of expiry
  • Fixed missing 3370 -> 3371 redirect for the /ui endpoint with AutoHTTPS enabled
  • Fixed manual resource creation no longer fails during a setup which already violates resource-group's autoplacer settings (like --replicas-on-same)
  • Fixed controller package upgrade failing when /var/lib/linstor was set immutable (chattr +i); the immutable flag is now cleared before unpacking

[1.34.0] - 2026-06-29

Added

  • REST list endpoints now support regular-expression matching in their name filters (nodes, resources, resource_definitions, resource_groups, storage_pools, snapshots) and in props filters (on both the property key and value); the props filter is now also available on the per-node storage-pool and per-resource volume list endpoints

Fixed

  • Fixed ZFS clone deletion not cleaning up the clone's source snapshot that was marked for deletion, leaving orphaned CF_* snapshots behind after the cloned resource was deleted
  • Fixed DRBD auto verify algorithm being recomputed over an incomplete node set while satellites reconnect, which could change the algorithm and force an already connected resource into StandAlone without automatic reconnect
  • Fixed implementation error ("attempt to replace an active transMgr") during L2L backup shipping when a new shipment created its snapshot or temporary satellite-remote concurrently with the cleanup of a finished shipment deleting its temporary satellite-remote
  • Fixed implementation error ("attempt to replace an active transMgr") when creating or modifying a resource group concurrently with a backup restore/shipment that moves a resource definition into its target resource group
  • Fixed BalanceResources counting an unhealthy diskful and possibly deleting therefore a healthy diskful
  • Fixed implementation error during DRBD .res file regeneration when the existing on-disk file was empty or truncated, which aborted the regeneration instead of rewriting the file
  • Fixed regular snapshot restore not setting DRBD_INITIALIZED on the restored volume definition, which could cause spurious metadata re-creation and split-brain
  • Another attempt to fix rare bug causing "shipping in progress" that can only be cleared by restarting the controller
  • Release the target-side restore-lock when a backup receive is aborted (both while still preparing and while actively shipping), so a stuck "backup is currently being restored" no longer blocks further shipments to a resource until the controller is restarted
  • Fixed shipmentFailed always being false in AbsBackupShippingService.waitForSnapCreateFinished
  • Fixed NullPointerException on the satellite when concurrently deleting multiple volumes with a FileSystem/Type property, which marked the resource as failed and returned the delete as an internal error

[1.34.0-rc.1] - 2026-05-28

Added

  • Toggle-disk can now be retried or aborted.
  • Added export-db API
  • Satellites report platform and OS variant and Controller exposes that on the REST API.
  • Added property "ExtCmd/WaitTimeout"
  • Added property "ExtCmd/TermTimeout"
  • Added property "ExtCmd/KillTimeout"
  • Added property "ExtCmd/IoStallTimeout"
  • Added property "ExtCmd/IoPollInterval"
  • Added "Linstor/Drbd/OutsideAddress" property for DRBD's outside-address for setups using a NAT
  • Added optional alternative suffixes for external files
  • Added status check (current path + content as expected) for external files
  • Added property "Rest/AutoHTTPs", if enabled will automatically create a SSL certificate and re-start SSL server
  • Added token authentication API and implementation, if enabled only allows Authentication Bearer token access
  • Added property "Clone/DdBlocksize" to configure the DD clone blocksize used
  • Added "BalanceResourcesSkipDiskLimit" property to skip balancing resources with more than X skipDisk resources (default 1)
  • Added property "Autoplacer/MinThinFreeSpace" that disqualifies storPools with less free space than specified
  • Added linstor-config disable-token-auth command
  • Property Clone/BalanceAfterClone to autoplace an extra diskful resource after a clone operation
  • Property Snapshot/BalanceAfterRestore to autoplace an extra diskful resource after a snapshot restore
  • Added property "Luks/AllowDiscards" to enable discard/TRIM pass-through on LUKS volumes; when LUKS sits below DRBD, rs-discard-granularity is also set automatically
  • Added "Client" as DRBD state (non-voting diskless peer)
  • Added property "TcpPortsBlocked" on node level

Changed

  • SOS report now uses export-db instead of non-JSON database dump
  • Minimum java version is now java-21, please upgrade if you want to continue building/running LINSTOR.
  • DRBD: create-md now only times out if there was no IO for 45s
  • mkfs: mkfs.ext4 and mkfs.xfs now only time out if there was no IO for 45s
  • Moved old property "ExtCmdWaitTimeout" -> "ExtCmd/WaitTimeout"
  • SOS report: 'tar' command now only times out if there was no IO for 45s
  • Don't call shred on ZFS devices as those are guaranteed to always read 0
  • Upated debian package compat version to 11
  • linstor-controller.service: switch to DynamicUser (i.e., execute as non-root user).
  • Systemd-notify: Use SDNotify library instead of calling "systemd-notify"
  • Thick LVM: New volumes are now placed on the least-used PVs by default. This behavior can be customized via the new "StorDriver/LvcreatePvSelection" property.
  • Check for valid storage pool names on resource-group select filter
  • Controller now ignores case when checking if a NetCom is enabled or not
  • Default evict timeout was increased from 1h to 12h
  • Property "TcpPortAutoRange" can now also be set on node level

Removed

  • ETCD database support is now removed, please convert to SQL or CRD DB, before upgrade
  • Removed K8s migrations older than 2023 / LINSTOR v1.21.0-rc1
  • Removed SQL migrations older than 2023 / LINSTOR v1.21.0-rc1

Fixed

  • Fixed incorrect default LUKS2 header size calculation
  • Parse errors during ctrl -> stlt authentication now result in "AUTHENTICATION_ERROR" instead of "OFFLINE" (regression introduced in 1.32.0-rc.1)
  • Fixed free space reporting of thin storage spaces (Windows) pool
  • Fixed race condition where after a reconnect storage pools might not show correct capacities and freespaces.
  • Fixed PREPARE_SHIPPING backups didn't count as active shippings
  • If a satellite cannot decrypt a LUKS key it no longer goes into FULLSYNC_FAILED, but just marks the resource to have corrupted crypt key
  • Fixed auto-rs-discard-granularity staying set on devices that don't support discards (e.g. LUKS without AllowDiscards)
  • Throw a CriticalError(restart) if a JDK spawn helper exception was caught (usually a JDK version mismatch)
  • Fixed bug where taking a snapshot on a not-only-DRBD resource could hang indefinitely
  • Attempt to fix rare bug causing "shipping in progress" that can only be cleared by restarting the controller
  • Fixed rare race condition when changing the LUKS passphrase
  • Fixed bug where trying to start a backup shipment of a rsc that isn't UpToDate lead to an AccessToDeletedDataException

[1.33.3] - 2026-05-11

Added

  • SOS report now includes drbd-reactor config files, logs, and status

Changed

  • AutoUnplacer now prefers non-UpToDate resources after AP-settings-violating resources before choosing any.
  • Improved error message for shrink operations
  • Disabled DRBD shrink support (It didn't work correctly anyway)
  • DRBD: Thin volumes are now set again as UpToDate

Fixed

  • Fixed the clone status check if no DRBD connection states have been received yet
  • Fixed volume set size (shrinking) never trigger the actual shrink operation
  • Only call "secondary" after an "mkfs" command if LINSTOR was the one that set the DRBD resource primary
  • Fixed only reset auto-verify-algo, if at least two nodes reported their crypto entries
  • Fixed set-plain-port, set-plain-listen in linstor-config tool using wrong property instances
  • Fixed unconditional 2-4s wait time between CRD migrations
  • Fixed node properties not properly applied after LINSTOR's FullSync
  • Fixed deletion of inactive shared storagepool resources
  • Fixed cloning of shared storagepool resource definitions
  • Fixed resource create if no .resource object was given
  • Prevent NPE if make-available is tried on a resource-definition with no active resources
  • Properly reencrypt user-passphrase in VlmDfn during "backup ship"
  • Better handle "null" value inputs for json body rest requests with working defaults (nodes/{restore, evacuate), ...)

[1.33.2] - 2026-04-08

Changed

  • Changed the mechanism how LINSTOR sets DRBD volumes as UptoDate

Removed

  • WinDRBD specific patches regarding missing sha1 and hmac crypto algorithms

Fixed

  • Fixed resource definition delete setting DELETE flag when resources are still in use
  • Fixed retry deletion of already deleting resource (no longer fails if it is the second to last diskful resource)
  • Satellite now properly merges remote nodes + their data (props, netIfs)
  • Fixed potential ConcurrentModificationException when serializing properties
  • Fixed race condition in updateController() that leads to uncompleted ChangedController answers (client timeout)
  • Fixed bug that could lead to NPE when multiple cache layers are processed in one DevMgr cycle
  • Fixed some issues with ReconnectorTask when multiple peers representing the same nodes try to reconnect
  • Fixed possible bug that could have caused orphaned DRBD resources being left on the satellite
  • Fixed autounplacer not prioritizing autoplacer-settings violations over free space properly
  • Fixed EventStreamClosed exception if toggle-disk a single diskful resource
  • Fixed that additional volumes now also run mkfs if configured
  • Fixed property "Linstor/Drbd/auto-block-size": Now works properly on controller level

[1.33.1] - 2025-12-22

Fixed

  • Fixed missing transaction-commits during evacuate's copy-snap
  • Make sure updateDiscGranularity is not called if only DRBD_DELETE is set
  • Also delete error-report text files on error delete api call
  • Properly exit on a CriticalError instead of running into a deadlock

[1.33.0] - 2025-12-11

Changed

  • Added checks if existing resources have enough peerSlots for a new peer

Fixed

  • Clone: Fixed wrong resource-counting for the peerSlots checks
  • DrbdProxy: Fixed ignored DrbdProxy/AutoEnable property when set on controller level
  • Improved error logging on decryption errors

[1.33.0-rc.2] - 2025-12-01

Fixed

  • AutoSnapshot: Fixed "Keep" property (regression introduced in 1.32.0)
  • Fixed bug where clone no longer works with other min-io size than 512
  • Fixed bug where "r c" fails with disabled auto-min-io on a 4k block-sized SP
  • Clone: cleanup source snapshot if cloning failed
  • Clone: mark failed volumes with DELETE flags to allow to delete them afterward
  • Fixed --diskless-on-remaining not working with COMBINED nodes
  • Fixed unnecessary restart of local DRBD peer right after the resource was created
  • ToggleDisk: Added missing free-space check
  • Clone: Added missing free-space check
  • Fixed very rare AccessToDeletedNode during a node-update from the satellite
  • Fixed possible NPE in DrbdLayer.hasMetaData
  • If one resource fails during calculating gross/net size, other resources should still be processed
  • Check resource size on creation and resize
  • Run autohelper.manage tasks after node fullsync (before only on node rc, c, d)
  • Autotiebreaker: do not delete tiebereaker if node is not online/fullsynced
  • Cleanup clone task on satellite reconnect
  • Clone: Fixed race conditions when starting multiple clones at once

[1.33.0-rc.1] - 2025-11-11

Added

  • physical-storage-api: allow passing pv/vg/lv/zpool create arguments
  • Encryption: Added systemd-creds support for masterpassphrase.
  • DRBD: Added Linstor/Drbd/auto-block-size
  • Backup: allow shipment of already existing snapshots
  • Node,evacuate: Added --target and --do-not-target options

Changed

  • Removed keep_res regular expression pattern from options
  • Instead of caching if a DRBD .res file exists, actually check if the file exists
  • Do not delete known Linstor drbd res files, LS_KEEP_RES is now obsolete
  • Increase max packet size 16M -> 64M
  • Increased timeout for tar during sos-report to an hour
  • Removed flywaydb dependency and do migrations (as with other "db"s) ourselves
  • ReconnectorTask: changed logging levels and added more logging
  • API: do not store error reports if required remote parameters are missing
  • Node evacuate: By default node evacuate also evacuates existing snapshots

Fixed

  • Attempt to fix race-condition "Received unknown storage resource from satellite"
  • Prometheus: fix using peerId as peer address in api call duration statistics (GitHub #466)
  • H2 db should no longer prematurely shutdown
  • DRBD: recreate ext-metadata after backing disk needed to be re-created
  • Fixed a bug where a failed clone leads to AccessToDeletedData bug
  • Cache: Properly flush to origin device when suspending
  • Fixed toggle-disk bug when evacuation target has already diskless resource
  • Fixed possible NPE when a satellite updates a storage pool (capacity, supports snapshots, etc)

[1.32.3] - 2025-10-13

Fixed

  • Zfs,rollback via restore: Fixed bug where instead of a rollback LINSTOR creates empty ZVOL
  • DRBD, rollback: Re-adjust (up) DRBD after rollback is finished (GitHub #464)
  • StorPool: Remote storage pools are now properly sent to satellites (not just local)

[1.32.2] - 2025-10-01

Changed

  • safety-snap: shorten safety-snap id length, to stay in LVM name limit

Fixed

  • Fixed potential deadlock on the controller introduced with 1.32.0
  • Clone api: errors are now indicated with HTTP status code 500
  • Fixed un-deletable failed clone resources
  • Res file regenerate check wasn't working anymore because of added header data

[1.32.1] - 2025-09-16

Changed

  • S3: Reduce max-parts from 10.000 to 1.000 to better support non-AWS S3 implementations

Fixed

  • node evacuate: if the node had the tiebreaker, tiebreaker creation was accidentally disabled
  • ETCD, TcpPort migration: Do not delete old port from LAYER_DRBD_RESOURCE_DEFINITION
  • ETCD, TcpPort migration: Fix incorrect nullcheck
  • Rsc,list: JSON now contains .layer_object.drbd.connections after reconnect
  • Fixed incorrect props_instance for Volume properties within a SnapshotVolume
  • DRBD: Fixed still too eager "requires adjust" settings

[1.32.0] - 2025-09-09

Changed

  • Improved INFO logging on auto-diskful and delete resources
  • Try to keep tiebreaker on auto-diskful delete excessive resources

Fixed

  • SQL: SET SCHEMA statement triggered an early transaction start before any data was manipulated
  • ScopeRunner: start DB transaction after scope locks are acquired
  • mkfs: also use nodiscard for thick volumes, as a fullsync is done anyway
  • replication-state-events: ignore events for nodes that are currently unknown
  • quickWipe could have been tried with a null device path

[1.32.0-rc.3] - 2025-08-26

Added

  • Backup,schedule: Add --target-resource-definition. Only usable in combination with "--rd RD"

Fixed

  • Drbd: Fixed bug with introduced drbdadm optimization (resize)
  • Backup,restore: Properly set SnapVlmDfn size to avoid issues after rollback/restore

Removed

  • parentIsVDO wasn't working anymore at all, as lsblk didn't report correctly and is not used anymore with LVM-thin on VDO

[1.32.0-rc.2] - 2025-08-18

Fixed

  • Missing volume device path if no DRBD adjust was necessary

[1.32.0-rc.1] - 2025-08-18

Added

  • Allow setting properties on snapshot definitions
  • Added override_props, delete_props and delete_namespaces to the clone resource-definition endpoint
  • Added property "StorDriver/Zfs/RollbackStrategy" to allow for old "zfs rollback" behavior
  • Added property "StorDriver/Zfs/DeleteStrategy" to fail instead of rename ZVOLs if dependent snapshots exist

Changed

  • LVM-Thin snapshots are set to read-only now
  • Cache drbdsetup status output for the device manager run
  • DevMgr: Do not conf-test the new resource file, but instead restore the backup on failure
  • Ask drbdadm for resources that need to be adjusted instead of adjusting everything all the time
  • Snapshots are now automatically deleted during a "node delete" action (only from deleting node, not the peers)
  • zfs list: will now mostly only ask for the devices it wants to check instead of a global zfs list
  • lsblk output is now parsed with streaming
  • parentIsVDO check: only ask for PV member devices
  • Improved data types in communication protocol between Controller and Satellite, reducing size by 35%
  • BREAKING: Unintentionally broke ctrl<->stlt authentication resulting in "OFFLINE" instead of "OFFLINE (VERSION_MISMATCH)"

Fixed

  • Fixed possible "attempt to replace active transaction Mgr" when updating free space
  • Fixed race condition while cleaning up after cloning for ZFS resources
  • Fixed resource definitions not allowing new resource (or rollback/restores) after "backup ship .. --download-only"

Removed

  • EXOS support
  • Snapshot shipping (use backup shipping instead!)

[1.31.3] - 2025-07-10

Changed

  • UUID mismatch will now trigger a System.exit(70) as the best way to recover is to restart the satellite
  • API: do not store error reports if user-named node/storage-pool/rg/... was not found
  • API: do not store error reports for invalid cron expressions
  • Improve output of property changes messages
  • Restart Satellite service on exit code 70 (critical error)
  • Per default, most linstor operations will now only WARN instead of error if a node is currently not ONLINE

Fixed

  • Fixed error-handling of snapshot-rollback to correctly restore the safety-snap if an error occurs
  • Fixed snapshot-rollback ignoring changes to the volume definitions that also need to be reversed
  • Fixed vlmDfn UUID mismatch occurring after deleting and later creating a new one with the same vlmNr
  • Fixed incorrect zfs-vlm renaming during vlmDfn delete
  • Fixed deleting offline node causing "AccessToDeleted node" exception
  • Fixed allVolumesUpToDate method while creating a snapshot for diskless resources

[1.31.2] - 2025-06-11

Changed

  • Snapshot rollback now allows and restores snapshots on nodes that don't have a local snapshot (with DRBD)
  • Moved TCP ports from resource definitions to resource level

Fixed

  • Fixed "access to deleted storpool" of remote storage pool after deleting local storage pool
  • Fixed AutoplaceTarget property being ignored on controller level
  • Fixed AutoplaceTarget property that controller has higher priority than node
  • Fixed rare deadlock during shutdown
  • Fixed toggle-disk for cache, writecache, bcache, luks and nvme resources
  • Fixed order of resourceDefinitionConnected listener notifiers
  • Fixed restore/deletion of the safety-snap-* if a snapshot rollback was canceled too early

[1.31.1] - 2025-05-21

Changed

  • Move generated crd db drivers into own directory to fix gradlew clean
  • mkfs ext4 and xfs creation are now forced
  • Map replication state entries with actual node names, before drbd peer names were used

Fixed

  • Fixed race condition during "linstor node reconnect" leading to reconnect-cycle
  • Fixed duplicate connections to same satellite (older connection gets dropped now)
  • Fixed problems with JUnit ProcCryptoUtilsTest
  • Fixed possible ConcurrentModificationException when satellite deletes data
  • Fixed duplicated minor number bug (based on orphaned .res file)
  • Fixed reading wrong property for cache's blocksize
  • Fixed incorrect calculation of dm-cache's meta-device size
  • Fixed cases where DrbdVlmData's exists boolean was not properly updated
  • Fixed rare "access to deleted node" in the PingTask
  • Fixed resource-group modify not deleting tiebreaker if quorum property changed
  • Fixed auto-quorum/tiebreaker if quorum property was explicitly set to majority

[1.31.0] - 2025-04-08

Changed

  • Improved TCPConnector logging and only reconnect in client mode
  • physical-storage-api: allow VDO with lvm-thin
  • ETCD: Enabled DrbdOptions/auto-diskful-allow-cleanup on ctrl unless it was already set
  • ReplicationState design wasn't considering replication states per volume connection. This has been reworked and now a map is used and returned to the client.

Fixed

  • Weird access to deleted resource bug on drbd down
  • CreateNetIf didn't close current peer connection
  • UpdateSpaceInfoTask did never commit() its allocation size updates
  • Fix deleting of a drbd resource if it was already down

[1.31.0-rc.2] - 2025-03-21

Fixed

  • Add missing migrations (etcd/crd) for ZFS rename
  • Only satellite zfs migrate nodes that have a ZFS pool

[1.31.0-rc.1] - 2025-03-19

Added

  • Notify controller about replication state changes in DRBD
  • Notify controller about done percentage changes in DRBD
  • Encryption-API: added a GET endpoint to ask for the master passphrase status

Changed

  • BalanceResource: Ignore resources which are in a non-valid replication state
  • sos-report: include backup ship queue
  • sos-report: syslog will only be gathered if messages was not available
  • Clone: check that a resource name for the cloned resource is set
  • Clone: fail clone if the source resource isn't UpToDate or has skip-disk
  • Memory: Limit satellite to 2G max memory (-Xmx2G) and controller to 8G
  • JVM: will now crash on OutOfMemoryError
  • Limit reactor worker threads to 16
  • DRBD .res file now contains the time the file was generated
  • BalanceResource: Improved selection when deleting excess resource
  • AutoDiskfulTask: Improved selection when deleting excess resource
  • Tiebreaker: Improved decision making if a deleting resource should be kept as tiebreaker
  • Write a full documented linstor.toml and remove the linstor.toml-example
  • Snapshot rollback now does internally a resource delete + snapshot restore
  • ZFS resource can now be deleted while having ZFS snapshots (ZFS volumes will be renamed)
  • ZFS snapshots can now be deleted while having ZFS clones (ZFS snapshots will be renamed)
  • Auto-quorum: Reworked auto-quorum property behaviour, property was removed and auto-quorum is now managed through the drbd option quorum. on-no-quorum properties will be inherited.
  • BackupShip: start next queued shipment immediately when sending fails

Fixed

  • Reconnect: Fixed rare race condition in DRBD version check
  • Resource delete: Fixed rare race condition where a delayed DRBD event causes "resource not found" ErrorReports
  • Fixed possible UUID mismatch after deletion of last snapshot failed to properly clean up satellite
  • Fixed "resource not found" bug when restoring from a snapshot when the source-resource was already deleted
  • Satellite: Fixed rare "attempt to replace active transMgr" error
  • SATELLITES_CAPACITY table NODE_NAME size was too short
  • BackupShip: queued backups are now removed if the target cluster goes offline
  • BackupShip: do not use snapshots that are deleting as base for an incremental backup
  • BackupShip: remove snapshots from queued backups that have them as base when deleting them

[1.30.4] - 2025-02-03

Changed

  • Changed ext-tool-check command for "drbd-proxy" from "-v" to "--version" to support v3 and v4

Fixed

  • Reconnect: Fixed rare NoSuchFileException triggered by multiple reconnects in quick succession
  • BackupShip: Fixed bug where shipment was not executed when previous shipping node was unavailable
  • Migration: Fixed incorrect usage of rscGrp's instanceName
  • VlmDfn,Resize: Only allow resize if all peers are online and UpToDate

[1.30.3] - 2025-01-23

Added

  • metrics: Added linstor_node_reconnnect_attempt_count

Changed

  • gradle: support different java home in wrapper scripts
  • sos-report: add more controller json(resource-definitions, snapshots) and zfs list snapshots
  • /proc/crypto: Ignore invalid entries (i.e. entries with missing driver or type)
  • API: do not generate error reports if parent resources are not found
  • volume-definition resize: if current size is set, no satellite/data updates will be triggered

Fixed

  • metrics: don't create error-report on closing connection nodes
  • LVM: Correctly calculate extents with more than one stripes
  • RscDfn and SnapDfn: Properly restore layerStack (!= layerData) from backup and snapshot restore
  • BalanceResources: Only adjust selected rscDfn instead of entire rscGrp

[1.30.2] - 2024-12-18

Fixed

  • Migration: Fixed splitSnapProps bug not properly handling additional properties

[1.30.1] - 2024-12-17

Fixed

  • Migration: Fixed splitSnapProps bug not properly handling KVS properties

[1.30.0] - 2024-12-17

Added

  • Added options dst_rsc_grp and force_rsc_grp to BackupShip, BackupRestore and BackupSchedule
  • Added timing of REST and internal API calls to prometheus /metrics
  • Backup,L2L: Add property to only wait with shipping until snapshot is created

Changed

  • Split snapshot properties into snapshot-specific- and resource-properties
  • SOS: use local timestamp as well as relative delta for dmesg output
  • SOS: use lvmconfig to show full lvm.conf
  • SOS: use lsblk -O, also include json output
  • SOS: include /proc/sys/kernel/tainted
  • DRBD state tracking: Fixed tracking of a peer's diskless volume's client flag
  • Clone: It is now possible to clone into different storage-pools and layer-stacks. This can be done by using the new resource-group and layer-stack arguments

Fixed

  • EBS: Fixed retrieving EC2 instance-id

[1.29.2] - 2024-11-05

Changed

  • luksChangeKey is now also memory limited to 256MB

Fixed

  • Fixed usage of FileSystemWatch to properly trigger when devices appear
  • Do not update disc granularity while resource is cloning
  • Drbd-layer should not try to adjust resource while still cloning
  • Fixed possible "access to deleted resource" in case of an issue during rsc-creation + manual delete
  • AutoPlaceAPI: remove unnecessary resource definition loading
  • Fixed bug that could be lead to violation of configured --x-replicas-on-different restriction
  • Query resource-connection didn't work if source and target node are reversed.
  • Fixed unit tests relying on current timezone offset instead of current timezone

[1.29.1] - 2024-09-24

Changed

  • LVM cache is now time-based, configurable by new property StorDriver/SizesCacheTime
  • sedutils-cli calls will now resolve given paths before using them (as sedutils-cli only allows /dev/nvme*)
  • resource-definition properties are now included in drbd connection net section
  • Attempt to delete LV during DELETE flag even if SkipDisk is enabled (suppressing error reports)
  • SOS: Additionally collect journal-based dmesg from multiple previous boots if necessary

Fixed

  • storage-pool list reporting offline nodes even tough everything is connected
  • SED setup using same password for all drives
  • Fixed stuck deletion of resource during failed / failing resize
  • Fixed failing rsc-dfn-update-chain when updating rsc-grp
  • Fixed rare race-condition during snapshot create
  • Fixed dateformatting with offsets

[1.29.0] - 2024-07-31

Changed

  • Improved responsiveness: Allow some API calls to be executed concurrently on the satellite
  • Added a cache for lvs and vgs/pvs commands, reducing the need to call them
  • Changed logback log format to include logid and full timestamp

Fixed

  • Snap, create: Fixed possible deadlock
  • Incorrect resource definition already exists error message
  • sos-report: Controller not always dumping full log content

[1.28.0] - 2024-07-11

Added

  • Autoplacer: Add --x-replicas-on-different option
  • Resource delete: Add --keep-tiebreaker option

Changed

  • Snapshots now cannot be created while SkipDisk is active
  • Autoplacer: Added very small default weight for the MinResourceCount-strategy for better tiebreaker-distribution
  • Added some more info logging and improved an error message
  • BalanceResourceTask: Do not count skipDisk resources as diskful

Fixed

  • SkipDisk: layers below DRBD now get ignored to prevent errors on the satellites
  • ReconnectorTask,EventProcessor: Attempt to fix possible deadlocks while having many connections/requests
  • Clone: Fix clone waiting if there is more than one diskless resource
  • ToggleDisk: Fix toggle disk for resource spawned with diskles-on-remaining
  • Backups: Ensure snapshots can't be stuck in either sending or receiving, which would render them undeletable
  • PhassPhraseInit: Fixed uncommitted transaction
  • Backup,restore: Check correct SnapVlmDfn property before recalculating AllocationGranularity
  • FreeSpace: Fixed incorrect calculation of reserved space for thin volumes

[1.27.1] - 2024-04-25

Added

  • Support for java-21

Changed

  • Freespace calc: Snapshots only reserve allocated size now instead of volume size
  • resource-definition modify: now only warns if a satellite is offline
  • AutoVerifyAlgo: allow to use algorithm name additionally to the specific implementation
  • ZFS: try to determine default volblocksize

Fixed

  • Deleting a remote can now be safely done even if there are active shippings to said remote
  • MakeAvail: trigger update satellite if only FLAGS changed
  • Resource delete: Don't check user set verify-algo if last resource deleted.
  • If mkfs fails, resources are now being demoted to secondary and can now easily be deleted afterwards
  • Fixed incorrect least common multiple call when calculating AllocationGranularity

[1.27.0] - 2024-04-02

Added

  • Allow users to provide their own encryption passphrase for volumes
  • Allow users to provide their own encryption passphrase after cloning
  • Allow users to change the passphrase for a luks volume definition
  • Backup ship, restore and scheduled backups now have a --force-restore option
  • Added more info logging
  • Added "DrbdOptions/ExactSize" for migration purposes

Changed

  • Default configuration directory for linstor-database utility (export-db and import-db) is now "/etc/linstor"
  • Make-available will no longer return an error if an involved node is offline (warn instead)

Fixed

  • rscDfn-props are no longer reset through --download-only backup restore or if it has rscs deployed
  • Fixed snapshot-rollback more than once on a resource
  • Fixed re-/ordering issues within the AutoSnapshotTask
  • Fixed backup restore not working if one of the backup-parts already existed on the cluster
  • Fixed K8s migrations to use correct generated DB table instances
  • Deleted invalid SpaceHistory entries from K8s.
  • Fixed left-over tiebreaker after evacuation of single DRBD resource
  • Fixed negative result of an allocation granularity calculation
  • Fixed infinite loop and limited range of power-of-2 calculations
  • Workaround for connections where the attached peer object is missing
  • Only show warnings of missing cgroup (v1) if the user actually tries to use it
  • Fixed undelete resources (also remove volume DELETE and DRBD_DELETE flags)

[1.26.2] - 2024-02-28

Changed

  • Snapshots and resources are processed independently of each other

Fixed

  • Luks: Properly cleanup LVs when deleting without having entered the passphrase

[1.26.1] - 2024-02-22

Changed

  • LVM: Removed trailing 'a|.*|' from LVM filter
  • Do not write/check drbd resource files if nothing changed
  • RG spawn: No longer display "TransactionList" when spawn fails
  • Sp,Props: Do not trigger a DevMgrRun for certain property changes
  • Tiebreaker: Allow in all even-numbered (>0) diskful and 0 diskless setups
  • Improved error message when FullSync fails due to missing external tools
  • SOS-report: add more information output (lvs, zfs list, client output....)
  • ProblemReports now also get added to the error-database (i.e. will show in up "err list")
  • Snapshots: allow taking snapshot if at least one diskfull node is online

Fixed

  • Do not update satellites that are evicted
  • Node/Restore: Fixed resource kept in inactive state until controller restart
  • Node/Restore: Fixed node not connected on node restore
  • Luks: Allow deletion without entered master-passphrase
  • SysFs: Warn if /sys/fs/cgroup/blkio does not exist
  • When evacuating or migrating an InUse resources, wait until the resource is no longer in-use to remove resource.
  • Restoring a pre-SP-mixing-backup into an SP mixing scenario
  • SpMixing: ZFS <-> ZFS_THIN is no longer considered as mixed SP
  • Encryption: don't create error-reports for user errors

[1.26.0] - 2024-01-29

[1.26.0-rc.1] - 2024-01-22

Added

  • ResourceDefinition/VolumeDefinition to prometheus /metrics
  • Added PeerSlots to ResourceGroups (create, modify and spawn)
  • Added additional oversubscription calculation
  • Added new oversubscription ratios to QSI result
  • Prometheus/metrics added storage_pool to volume labels
  • Added BalanceResourcesTask that in the first version tries to keep the resource-group place-count for resources
  • Added MathUtils methods for integer-based square root, exponentiation, prime factorization, LCM and GCD calculation
  • Added new checkExtFiles-API
  • Schedule enable and snapshot restore now have a --storpool-rename option
  • /metrics/scrape-target endpoint with drbd-reactor scrape targets

Changed

  • Added copy of GenDbTables to GenCrdV* classes for migrations
  • Escape executed commands in logs, making them paste-able
  • Oversubscription now takes minimum of old and of new calculation
  • Autoplace API answer now contains object refs to nodes and storagepools
  • Make-Available will now retry auto-place with no restrictions on diskless resources
  • StoragePoolMixing is now based on extent-sizes and thin/thick. Also changed implementation
  • Autoplacer now also allows for mixed storage pools if the corresponding property allows
  • Backup ship now uses the --target-storpool as a default storpool name
  • ZFS and ZFS_THIN provider now report REFER for thin-volumes and snapshots and VOLSIZE for thick-volumes
  • Remember node-ids for a later "forget-peer" when SkipDisk is enabled

Fixed

  • Do not allow setting resource-groups with place-count 0
  • Small DB resource leak in health check
  • Fixed unrecoverable state with failed rollback of deleting snapshot
  • Fixed race condition between node lost and backup queue cleanup
  • NetCom SSL reimplementation: Fixed buffer handling, SSL handshake/negotiation/renegotiation
  • Prohibit disk accesses in DrbdLayer while SkipDisk is set

Deprecated

  • Support for EXOS

Removed

  • Support for OpenFlex

[1.25.1] - 2023-11-20

Fixed

  • Fixed version mismatch check between new satellites and a pre v1.25.0 controller
  • Fixed "node restore" to try to (re-) create tiebreaker resources if needed
  • Fixed "node evacuate" no longer keeps diskless resource as a tiebreaker (in evacuating, but never deleting state)
  • Fixed "sp l" showing spurious warning that a diskless SP is offline (due to caching bug)
  • Fixed potential null pointer exception in AutoDiskfulTask
  • Fixed "r c --drbd-diskless" falsely requiring free peer-slot
  • Fixed bug where FILE/-THIN provider did not properly find existing snapshots (thus also not deleting them properly)

[1.25.0] - 2023-10-25

Changed

  • Added ErrorReport when sending a ping request fails
  • Sos-report's tar command no longer use --verbose
  • ErrorReports list now works with paging and a default limit. Fixing node timeouts on large error-reports
  • Resource-group adjust warns now for placement count needs to be reduced (instead of error)

Fixed

  • Fixed setting 'on-no-quorum' to 'suspend-io' at the resource-group level does not propagate down to existing resources
  • Fixed logic in setLogLevel to prevent error log if no error happened
  • Fixed possible 'Access to deleted Resource' in the AutoDiskfulTask
  • Fixed possible left over during AutoDiskfulTask's cleanup of excess resources

[1.25.0-rc.1] - 2023-10-11

Added

  • Added automated addition of --skip-disk to drbdadm adjust when a disk failure is detected
  • Added first version of "effective_props" (currently only used for "DrbdOptions/SkipDisk", other props will follow)
  • Added attempt in setting IP_TOS to LOW_DELAY (works in java11 or with forced IPv4)
  • Added creation time to ApiCallRc

Changed

  • Improved checks for "OtherController" response
  • Do not send fetchFreeSpaces to diskless-only nodes
  • Improved responses during tiebreaker takeover

Fixed

  • Fixed possible FileWatch leak
  • Fixed toggle-disk now properly setting StorPoolName
  • Delete node-connection when last property gets deleted
  • Properly delete DRBD_DELETE flag during undelete ('r c' on a DELETING resource)
  • Fixed regex-pattern for parsing "dmsetup ls [--target TARGET]" command
  • Fixed typo in /v1/action[s]/snapshot/multi
  • Fixed incorrectly documented return type of "snapshot create-multi"
  • Fixed NPE in schedules etcd driver

[1.24.2] - 2023-08-30

Changed

  • Improve wrapped DelayedApiException error reporting
  • Improve logging on deleting for volumes/snapshots
  • Increase timeout for sos create tar command

Fixed

  • Fix "attempt to replace active transMgr" due to unclean core-maps
  • Reassigning resource-definition to new resource-group had no effect on satellite
  • Use correct java-11 on sles based systems
  • Fixed node reconnect scope already entered bug
  • Do not create error reports for no connection to satellite errors
  • Use timeout 0, to workaround missing setsid -w on old systems
  • Backup: Fix possible NPE on non-DRBD resources
  • AutoEvict only warn about offline node
  • Fix hanging controller on multiple parallel snapshots
  • ETCD: fixed exporting empty tables

[1.24.1] - 2023-08-10

Fixed

  • K8s,Crd: limit number of entries in rollback resource
  • gradle: on rhel based systems force to use java-11 jre
  • ETCD,import: Convert Date to long

[1.24.0] - 2023-08-07

Fixed

  • Restore invisible key-value stores, after an old broken migration
  • Cleanup orphaned ACL's in database
  • Remove java.xml.bind dependency, that didn't work with java-17
  • BCache suspend is not supported and wait for device to be created
  • Schedules: use correct DB driver for maxretries field
  • /metrics: error-report fetching exceptions always handled as timeouts
  • RscDfn, peer-slots: fix incorrect cast of peer-slots when modifying resource definitions
  • Volume: fix NPE on getApiData if no volumeProvider and no compatStorpool

[1.24.0-rc.2] - 2023-07-24

Fixed

  • Force all database DATA objects to be comparable

[1.24.0-rc.1] - 2023-07-20

Added

  • Added support for Microsoft Windows (storagespaces)
  • Added queues for backup shipping
  • Added linstor-database tool to migrate from/to different database types
  • Allow drbd-option properties for node-connections
  • Added support for java-17

Changed

  • Update of nearly all 3rd party libraries
  • Minimal required java version is now java-11
  • Improved suspend-io "downtime" for snapshots
  • Improved default INFO logging level

Fixed

  • Fixed UID-mismatch when creating rollback entries in K8s/CRD
  • Resync-After: Update entries after vlm definition delete
  • Resync-After: Ignore diskless resources
  • Enforce s3-remotes for backup create and linstor-remotes for backup ship
  • Allow node-connection drbd options
  • Several fixes in backup-shipping
  • Storpools can only be deleted without snapshots in addition to without volumes
  • Evacuating nodes no longer create snapshots
  • Resources can not be created within a resource-definition that is currently restoring a backup

[1.23.0] - 2023-05-23

Added

  • query-all-size-info API to query-size-info for all currently available resource groups

Changed

  • SOS-Report has now a parent directory in the tgz file
  • SharedSPName have now a less strict name checking
  • Improved error handling with broken storage pools

Fixed

  • MakeAvailable: Fix incorrect deletion of TIE_BREAKER flag
  • SOS-Report missing some rolling .log.zip files
  • Offline satellite: Fixed handling of offline satellites
  • Rsc,Delete,Takeover: Fix possible double tiebreaker scenarios
  • Fixed DRBD config for nodes with purely numerical host names
  • Remove/ignore auto-verify-algo property if disabled on controller

[1.22.1] - 2023-04-27

Fixed

  • NodeCon: Fixed compareTo() causing node connection paths loaded incorrectly.
  • LinstorScope not always enter and exit correctly.
  • Make-Available API not correctly upgrading a tiebreaker to a diskless resource.

[1.22.0] - 2023-04-17

Added

  • "StorDriver/LvcreateSnapshotOptions" and "StorDriver/ZfsSnapshotOptions" properties
  • "FileSystem/User" and "FileSystem/Group" properties for root-owner of newly created FS
  • Support to do multiple snapshots within one device manager run

Changed

  • Autoplacer now ignores occupied values from evicted or evacuating nodes
  • DrbdLayer skips processChildren when DRBD_DELETE flag is set

Fixed

  • Backup list can now handle more than 1000 entries in bucket (truncation/continuation was handled wrong before)
  • NodeConnection path can now be deleted
  • NodeConnections no longer cause NPE on satellites
  • Database loading causing ClassCastException with drbd,luks,storage during toggle disk
  • Aborted snapshot now always should resume-io

[1.21.1] - 2023-03-22

Changed

  • auto-resync-after for DRBD will be disabled by default (because it can triggers a DRBD bug)

Fixed

  • Fixed available size reported by query-size-info API

[1.21.0] - 2023-03-14

Changed

  • Added more details (primary keys) for database-loading exceptions
  • ZFS tool checker now uses zfs -?

Fixed

  • Fixed apparent ETCD corruption / database-loading bug
  • Run resync-after manager on every controller startup

[1.21.0-rc.1] - 2023-02-28

Added

  • query-size-info API as a better version of query-max-value-size API
  • Linstor now automatically sets the resync-after property for drbd resources, grouped by storage pools
  • Added automatic rs-discard-granularity management based on lsblk's DISC-GRAN

Changed

  • Added zfs list check for ZFS support to ensure that the zfs-utils are also installed, not just the kmod
  • Use recommended command sequence for SED initialization and improve error recover

Fixed

  • Fixed DRBD size calculations with non-default peer slots
  • Fixed aborting Snapshot procedure (make sure resume-io is executed)
  • Fixed AutoSnapshot scheduling bug
  • Fixed rollback after clearing entire PropsContainers
  • Fixed that too many concurrent Snapshots led to unnecessarily long suspend-io state
  • Fixed resource getting activated instead of deactivated in shared-sp

[1.20.3] - 2023-01-26

Changed

  • pvdisplay now ignores drbd devices(lvm filter)
  • Volume definition setSize checks now for out of bounds sizes

Fixed

  • Fixed typo in VDO slab size commandline argument
  • Fixed peerslot check also counting diskless resources
  • Fixed storage pool definition delete not checking if there are still other storage pools
  • Fixed resource definition create showing real exception because of a followup exception
  • Fixed resetting resource flags to now incompatible drbd resource flags

[1.20.2] - 2022-12-14

Fixed

  • Can now use snapshot restore on a snapshot created by a backup create
  • Fixed migration of orphan objects

[1.20.1] - 2022-12-13

Added

  • Added NodeConnection API. Currently only used for path settings (similar to rscCon, but on node level)

Changed

  • Only delete DRBD resource files after successful Controller connection (before on startup)
  • MKFS: always skip discard on ZFS backed volumes
  • Client resource DRBD ready state as soon as 2 nodes are connected (before it waited for all)
  • ResourceGroup-Spawn: Always assume partial mode if resource group doesn't have any volume groups
  • Upgraded okhttp 3rd party library, to fix a IPv6 TLS bug
  • Satellite now only deletes old .res files after controller established connection (instead of after startup)

Fixed

  • Orphan StorPooDfn, KeyValueStores and SnapDfn are now deleted with all their child objects
  • ErrorReports delete ignored since parameter if no other was specified

[1.20.0] - 2022-10-18

Added

  • Added SnapshotVolumeNode as part of SnapshotNode to include a snapshot state
  • Status of EBS volumes and snapshots are now queried periodically
  • Added property DrbdOptions/ForceInitialSync that forces thin resources to do an initial full sync

Fixed

  • Snapshots and SnapshotVolumes now properly delete their properties + cleanup migration existing DB entries
  • Randomized Cluster/LocalId for CRD setups since all installations had the same ID
  • Backup restore now creates new DRBD metadata and forces the initial sync to be a full sync

[1.20.0-rc.1] - 2022-09-20

Added

  • Added basic support for SED
  • Added support for Amazon EBS storage
  • Added ignore reason for storage layers. Used to skip processing resource which would fail anyway.

Changed

  • Improved DB-update-logging
  • ZFS: only scan datasets used by Linstor
  • Improved auto-diskful mechanic, also removing exceeding replicas

Fixed

  • Fixed backup with mixing internal and external metadata
  • Fixed storage-pool size-check on snapshot restore
  • Fixed several issues with backup-shipping (NPE, failed shippings, ...)
  • Fixed auto snapshot not working after controller restart
  • Fixed "LinStor" spelling errors
  • Fixed PropsCon concurrentModExc
  • Fixed very long k8s CRD DB backend Controller loading time

[1.19.1] - 2022-07-27

Fixes

  • Fixed loading remotes with ETCD backend
  • Autosnapshot: fix property not working on RG or controller

[1.19.0] - 2022-07-20

Added

  • Added scheduled backup shipping
  • SOS-Report support now sending large files
  • SOS-Report added more filters

Changed

  • Physical-storage api use LVM VDO commands
  • Autoplace: better tiebreaker with autoplace constraints
  • API Version 1.14.0

Fixes

  • CRD backend fixes/improvements
  • Fix user DRBD verify algorithm list reading/setting
  • Attempt to fix stuck volume resizes
  • Fix Postgresql external files updates
  • Fix support for Google/DigitalOcean S3 remotes