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 missingkeyctl=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 daysHealthScore— 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