github Corsinvest/cv4pve-diag v2.0.0
Release v2.0.0

13 hours ago

What's new

New diagnostic checks:

  • Thin Provisioning Overcommit — detects when the total disk space allocated to VMs/CTs exceeds the actual physical capacity of thin-provisioned storages (LVM-thin, ZFS, Ceph). Helps prevent unexpected out-of-space failures.
  • Disk Cache Unsafe — warns when a VM disk is configured with cache=unsafe. This setting improves performance but risks data loss on power failure.
  • Snapshot Count — warns when a VM/CT has too many snapshots. Long snapshot chains degrade I/O performance.
  • Snapshot Age — warns when snapshots are older than a configured number of days. Old snapshots are often forgotten and waste storage space.
  • Health Score — a composite score (0–100) based on CPU, memory and disk usage. Raises a warning or critical when the score drops below configured thresholds.
  • LXC Nesting without Keyctl — warns when a container has nesting=1 (required for Docker inside LXC) but is missing keyctl=1, which is needed for full compatibility.
  • Unused disks on containers — detached disks (unused0, unused1, …) are now detected and reported on LXC containers too, not only on VMs.
  • VM/CT locked — warns when a VM or container is locked (e.g. during a backup or migration that did not complete).
  • CPU x86-64 compatibility — detects mismatched CPU feature levels across cluster nodes that could prevent safe live migration.

Settings

Two new sections in settings.json:

  • Snapshot — configure max snapshot count and max snapshot age in days
  • HealthScore — configure warning and critical score thresholds

Breaking change for library users

The Application class has been replaced by DiagnosticEngine. If you use the NuGet package directly, update your code:

// Before (v1.x)
var result = await Application.AnalyzeAsync(client, settings, ignoredIssues);

// After (v2.0)
var result = await new DiagnosticEngine(client, settings).AnalyzeAsync(ignoredIssues);

Other changes

  • License changed from GPL-3.0 to MIT
  • Unused/detached disks (unused0, unused1, …) are now reported for both VMs and containers
  • Fixed: unused/detached disks were incorrectly reported as "disk excluded from backup"
  • Fixed: thin overcommit calculation was inflated by LXC bind mounts

What's Changed

  • Refactor: DiagnosticEngine v2.0.0 — new checks, MIT license, CHANGELOG by @franklupo in #19

Full Changelog: v1.10.0...v2.0.0

Don't miss a new cv4pve-diag release

NewReleases is sending notifications on new releases.