Proxmox VE 9.2 → 9.2.17
15 releases · 3 breaking changes · 0 security fixes · 0 advisories fixed
0security3breaking0deprecated23feature17fix
Breaking changes
- breaking ask for the checks that prove an OSD is gone before its leftover lockbox key is removed, and no longer suggest removing the authentication entry of a daemon that only seems gone in 9.2.15
- breaking api: ceph: mds: deprecate hotstandby parameter in the API schema, and do not set the mds_standby_for_name and mds_standby_replay config options any more, they were removed in Ceph 14.1 and setting them has no effect any more in 9.2.10
- breaking ui: qemu: default aarch64 VMs to a KVM-usable CPU model instead of one that QEMU rejects at start, and warn when an incompatible ARM CPU model is selected. in 9.2.9
Security changes
None in the release notes.
Every release in between
9.2.17 Sep 5, 2026
otherceph: Cephx key migration:
featureadd '--rotate-all-storage-keys' to rotate dedicated users of local RBD and CephFS storages together, excluding external clusters and keeping 'client.admin' a separate choice
otherrefuse administrative and storage-user key rotation if any monitor cannot keep both keys valid while consumers refresh
otherkeep both keys valid during rollback until consumers return to the restored key and the operator confirms with '--confirm-abort-clients-refreshed'
otherdetect returning old-key consumers using monitor session fingerprints and recheck consumers before retiring keys or invalidating tickets
otherrefresh CephFS mounts without forced or lazy unmounts; retry busy mounts on a later apply run
otherleave pending daemon keys untouched when their ownership is unclear, and wait for monitor elections to finish before staging
fixcomplete bootstrap and crash key rotations without asking operators to confirm refreshes for Ceph's own tools
featuremake new keys use the new cipher before disabling the old cipher
othershow next steps based on current keys and settings, with concise consumer hints, storage inventories, and recovery instructions
otherceph: auth status: show current and pending key ciphers without exposing secrets, and lead with the next migration command.
9.2.16 Sep 3, 2026
otherceph: Cephx key migration:
featurestage eligible 'client.admin' and storage-user keys while their current keys remain valid, so consumers can refresh before the new key is committed. This requires Ceph 19.2.6-pve3, 20.2.4-pve3, or newer on every monitor; with an older monitor, replace the keys at once as before
otherjournal staged rotations so interrupted work resumes safely; if monitor support disappears, require completion or '--abort-staged-key' instead of falling back to immediate replacement
otherconfirm refreshed consumers per Ceph user or for all ready rotations at once. Refuse confirmation while a recorded consumer is still connected or a monitor did not answer the session query; refuse the all-at-once form entirely if any rotation is not ready
fixadd '--rotate-cluster-keys' as the concise path for the shared 'mon.', bootstrap, crash, and encrypted OSD lockbox keys
otherbefore replacing a Ceph user key at once, tell operators to stop every consumer because its next reconnect can fail immediately
otherprint concise plans by default with affected Ceph users, disruptive steps, warnings, and next commands; provide full inventories with '--verbose'
otheravoid duplicate notices and spurious unfinished records for Ceph user keys rotated by an earlier version of the helper
otherui: ceph: distinguish Cephx migration checks from availability and data health failures, show check-specific next steps, and link to the local documentation
9.2.15 Sep 2, 2026
fixfix #7896: ui: qemu: show the effective implicit machine version for Windows guests and avoid accidentally pinning a fallback when changing other machine settings
otherceph: cephx key migration:
othername the running consumers of every client key a run rotates, and report the recorded consumers that may still hold a replaced key and could fail on a reconnect or ticket expiry
otherconfirm a rotation only for the consumers a run cannot see: the confirmation is refused while a recorded consumer is connected, and an unmeasured rotation is measured first
featureadd --restrict-ciphers to drop the old cipher as a guarded final step, refused while any key depends on it or a recorded consumer may still do so
otherrefuse a rotating-key wipe while a recorded client may still hold a replaced key, and mark the wipe as not recommended, as it invalidates every service ticket and requires all clients and daemons to support aes256k
otheroffer the options that are still open as one command to paste, so the finish of the migration is visible
featureredo the mount of every CephFS storage whose key a run rotates, on each node, so it starts a fresh client with the new key; a mount that is in use is named rather than pulled away, and one that stopped answering is force-unmounted, which frees the processes blocked in it
otherrefuse to rotate a storage key while a pending key is staged for it, as that key would replace the fresh one on its first use and leave the storage copies mismatched
otherfail a run when a node stops answering instead of waiting forever
othersay that the service ticket switch and the cipher restriction make the monitors hold an election, a few seconds in which they do not answer
otherpoint at the independent monitor identity when the admin keyring no longer matches the cluster, instead of a bare permission error
otherignore data directories left by removed or destroyed OSDs while continuing to block existing OSDs without an authentication entry
otheridentify a stopped OSD device by its per-OSD UUID and refuse duplicate data directories, so a reused ID cannot direct a key write at old data
fixvalidate lockbox values as cephx keys rather than accepting any base64 data, and redact lockbox keys from LVM error output to keep them out of task logs and bug reports
breakingask for the checks that prove an OSD is gone before its leftover lockbox key is removed, and no longer suggest removing the authentication entry of a daemon that only seems gone
otherceph: osd: on destroy, remove the empty mount-point directory and the runtime unit enablement ceph-volume left behind, so the OSD stops being reported as a configured service before the next boot
9.2.14 Aug 28, 2026
otherceph: cephx key migration:
otherstop reporting an abort that never happened at the end of every apply run, which the lock heartbeat printed when the run released it
othernever remove the lockbox tag of an encrypted OSD when asked to write the key it already holds, and refuse a value that is not a key, so a mistake cannot leave that OSD unable to unlock
9.2.13 Aug 28, 2026
featurepartially fix #1989: ui: qemu: allow configuring the qcow2 cache size when creating or editing a disk, either directly or derived from the disk size, which can improve performance considerably for some guests
otherapi: apt: accept the HTTP proxy as a URI, so that a password can contain special characters
otherceph: cephx key migration:
featureadd '--rotate-lockbox-keys' to migrate the 'client.osd-lockbox' key of an encrypted OSD. That key lives in the authentication database and in an LVM tag on the OSD's block device that ceph-volume rebuilds the keyring from, so rotating only the entry left the OSD unable to unlock, and recreating it…
otherlist the options that are still open when a run finishes, so that ending the migration does not mean looking up which key groups are left
otherrecover the admin keyring through the 'mon.' credential when a run was interrupted while rotating 'client.admin', which left the cluster without a usable admin key before
othercommit rather than drop a pending key when a live key swap was interrupted after the key reached the bluestore label, as the OSD data directory is rebuilt from that label at boot
otherplan a newer interrupted rotation of an entity even if an older run finished one, for example after a key reset by hand or a reused OSD id
otherrequire every monitor in quorum only for a monitor key rotation, so a cluster with one monitor down can still migrate its daemon keys
otherreport daemons and nodes whose Ceph version or kernel could not be verified apart from those known to be outdated
otherrestore 'auth_preferred_cipher' also when a run fails, and refuse to continue over an unknown recorded value instead of dropping it
otherhold a second apply run on any node back through a lock on the cluster file system, and take the node's bulk restart lock as well, so that a rolling restart from the web interface cannot start there meanwhile
otherrecord which OSDs a run sets 'noout' on before setting it, so that a hard kill in between cannot leave the flag without a record to clean up from
featurerotate the standby managers before the active one, so that a failover lands on a manager that already carries the new key
otherreport whether an authentication check is still an error from what the run itself confirmed, as the monitors recompute on their own tick
othercut the output of a run down to what decides whether to proceed
9.2.12 Aug 22, 2026
fixfix #7136: ui: tree: harmonize folder view resource ordering
fixfix #6113: ui: import: allow selecting a resource pool when importing a guest from an OVA file or from VMware ESXi
otherceph: rolling restart:
featureallow a restart on a cluster whose only errors are the cephx cipher health checks that Ceph 19.2.6 and 20.2.4 raise. Those made every upgraded cluster report HEALTH_ERR, which blocked every rolling restart, so one could not be finished and left daemons on mixed versions
otherjudge each health check on its own severity instead of on the overall cluster status
otherignore health checks that Ceph itself has muted
otherevaluate the OSD map flags only for an OSD restart, as they do not affect monitor quorum, manager failover or MDS takeover. A 'nodown' set to stop OSDs from flapping no longer blocks a monitor restart
otherreport per daemon type whether a check blocks a restart, so the web interface only warns about what applies to the restart at hand
otheronly clear the 'noout' flags the restart set itself. A flag an operator had set on a single OSD, to stop it flapping or while working on its disk, was cleared as soon as any rolling restart finished
featureceph: allow muting and unmuting a health check from the web interface and the API. A muted check is still evaluated and reported, but it no longer counts towards the overall cluster status. That is the only answer for a check that cannot be acted on, and it was previously only possible on the…
featureceph: add 'pveceph auth status', a read-only report on which cephx keys still use the old cipher, whether they can be migrated yet, and what is holding that up, including the kernel version of every node.
fixceph: add a guided helper to migrate the cephx service keys to the aes256k cipher: /usr/share/pve-manager/migrations/pve-cephx-rotate-service-keys It goes through the daemons of the whole cluster one at a time and can be narrowed to a single daemon type or a single daemon. It runs as a dry run…
otherpve8to9: name the cephx key migration health checks instead of asking to resolve them, as an upgraded cluster reports its unmigrated keys as insecure and the client keys cannot be migrated at all on a Bookworm kernel.
fixfix #7927: ui: sdn prefix-lists: change the prefix format to allow bigger subnets, covering the full CIDR prefix range including 0.0.0.0/0.
9.2.11 Aug 14, 2026
otherui: certificates, lxc DNS, VM cloud-init and PCI: encode rendered values with htmlEncode.
featureui: acme: use improved URL rendering implementation from proxmox-widget-toolkit.
9.2.10 Aug 7, 2026
otherpveperf: make bogomips regular expression case insensitive, other architectures like Loong64 use different capitalization
otherui: LXC templates: hide foreign architectures by default, arm64 and amd64 look very similar and can be easily confused
otherui: appliance templates: rename the "Package" column to "Name"
featureui: LXC templates: add a search hint to the "download" dialogue and widen the search input field
breakingapi: ceph: mds: deprecate hotstandby parameter in the API schema, and do not set the mds_standby_for_name and mds_standby_replay config options any more, they were removed in Ceph 14.1 and setting them has no effect any more
9.2.9 Aug 3, 2026
breakingui: qemu: default aarch64 VMs to a KVM-usable CPU model instead of one that QEMU rejects at start, and warn when an incompatible ARM CPU model is selected.
9.2.7 Aug 2, 2026
featureceph: when installing, offer only the Ceph releases that have packages for the node's architecture, from a new per-node API endpoint instead of a hardcoded list, so an arm64 node no longer lists releases without an arm64 build.
othersubscription: bind keys to a CPU architecture; arm64 keys carry an explicit marker, and a key that does not match the node's architecture is rejected in the API and CLI and flagged early in the web interface.
othercontainers: show the appliance template architecture in "pveam available" and the template selector, and point out when it differs from the node it would run on.
fixfix #7187: add the ethtool output for physical network interfaces to the system report, to help debug link and offloading issues.
featureadd tooltips describing the acceleration modes to the VM CPU flag selector.
otherpvesh: support API paths whose parameters are described through composed 'allOf' or 'oneOf' schemas, which the HA rules endpoints use as of libpve-common-perl 9.1.21, so that their options keep being accepted.
9.2.6 Jul 31, 2026
otherfabrics: wireguard: node edit: use network selector for internal nodes, making the semantics of the field more obvious, and entering values less error-prone and manual.
otherapi: apt: versions: track proxmox-enterprise-support-keyring version
featureui: ha: node affinity: refactor and extend UI, allow configuring "positive" or "negative" affinity rules. negative affinity allows declaring nodes on which HA resources must not (strict rule) or should not (non-strict) run on.
featureui: ha: resource affinity: add hint for affinity type config value, mapping "positive" to "Keep Together", and "negative" to "Keep Separate", like the create/edit dialogue already did before.
otherui: ceph: pool: set target ratio to 0 when the value is not set, to explicitly clear the value instead of not sending the value to the backend and keeping the previous value set.
9.2.5 Jul 15, 2026
featureceph: add guided rolling-restart for Ceph daemons, available both from the API and the web interface, so operators can safely cycle all OSDs, monitors, managers or metadata servers of a cluster after a configuration or kernel change without hand-rolled scripts. Each step waits for the previous…
fixceph: osd: drop two obsolete cleanup workarounds now handled elsewhere: Ceph itself runs 'pvremove' while zapping an OSD, so our own call could fail on an already-removed physical volume, and the udev trigger worked around a systemd bug fixed long ago.
otherceph: skip re-broadcasting the Ceph service status to the cluster file system on every pvestatd cycle when nothing changed, avoiding needless pmxcfs writes.
fixfix #6948: ui: ceph: configuration database: automatically show the MASK column once any entry uses a mask, so masked settings such as 'osd/class:hdd' are no longer indistinguishable from cluster-wide ones.
fixui: sdn: fabrics: fix adding and editing BGP unnumbered interfaces, which carry no per-interface IP address. The IPv4 column is now optional and stale 'ip'/'ip6' properties are no longer submitted, which previously made the backend reject the interface as not defined in the schema.
otherapi: sdn: avoid a double slash in delete request URIs, which a strict firewall or proxy could reject even though the server normalizes it.
fixfix #7460: ui: sdn: point the BGP and IS-IS controller help buttons to their own documentation sections instead of the EVPN one.
otherui: VM boot order: hint that OVMF (UEFI) guests need a virtual RNG device for PXE network boot to work.
otherui: VM vCPU: drop the artificial upper limit on the socket count in the edit dialog, matching the backend which imposes none.
featurepostinst: add kernel NBD devices to the global LVM filter on new installations, to avoid clashes with volume groups on NBD-mapped external disks, for example nested Proxmox VE systems or disks accessed by external backup providers.
otherupdate shipped appliance info index.
9.2.4 Jun 29, 2026
fixfix #4130: external metric server: keep node status updates flowing when a TCP metric server is unreachable. A failed connection previously raised an unhandled exception that aborted the whole node status update, so storage and guest status indicators in the UI eventually turned gray.
fixfix #6348: ui: bulk action: render the resource tags in the selection list using the configured tag style instead of plain text.
featureui: node: show the system log in a structured journal view that colors entries by syslog priority and adds server-side filters for the minimum priority, a systemd unit, a syslog identifier and kernel-only messages, with autocompletion for the unit and identifier filters.
otherui: node: open a service's log in that structured journal view, scoped to the service's systemd unit, instead of as plain text.
otherui: VM CPU flag selector: replace the per-flag radio group and the separate read-only state column with a single Off/Default/On segmented button that both shows and sets the state, and re-enable column sorting.
otherui: custom CPU model: validate the name in the creation dialog against the allowed config-ID format, rejecting invalid names in the frontend instead of only after the backend refuses them.
fixui: sdn: fabrics: fix editing a node interface that already has an IPv6 address, which did not show up and failed to submit because the field was named 'ipv6' instead of the 'ip6' the schema expects, and label the interface address column 'IPv4' instead of the ambiguous 'IP'.
fixui: fix the QEMU version comparison behind the dynamic USB port limit, which wrongly required the minor version to also be greater or equal even when the major version was already newer, so the higher USB port count for capable machine and OS types was not offered.
otherui: stop displaying a misleading 0% disk usage for VMs in the resource views; the field is left empty again, as VM disk usage is not currently queried from the guest agent.
9.2.3 May 24, 2026
featureui: storage content: show the owning guest of a volume and add an action to jump to it.
otherapi schema: cluster options: declare the actual return schema type.
9.2.2 May 21, 2026
featuresdn: fabrics: wireguard: drop the separate endpoint-port field added to the node-edit window in 9.1.19. The underlying schema change in proxmox-ve-config has been reverted: the endpoint now stores only the host, and the connect port is derived from the referenced interface's listen_port at…
featuresdn: fabrics: tighten the fabric and node configuration forms: require at least one prefix, hide node address fields for prefix families that are not configured on the fabric, and disable prefix editing once nodes have been added (since changing the prefix would invalidate existing nodes).
otherui: VM CPU flag selector: disable column sorting as a stop-gap, since sorting and then editing a flag could leave the radio-button widgets in moved rows showing the wrong selected state.