Die Frage ist wo PVE dann die Auslastung der virtuellen Disk herhaben soll. VMs arbeiten ja mit Block Devices und nicht mit Dateisystemen. Da kommt man also nicht ohne weiteres an dessen Auslastung ohne extra das Block Device und die dadrauf befindlichen Dateisysteme einzuhängen. Und das möchte man ja eigentlich nicht, weil doppeltes Einhängen die Daten korrumpiert. Und dann kann ich auf einem einzigen Blockdevice ja auch endlos viele verschiedene Dateisysteme nutzen. Da könnte ich ja z.B. auch 5 Partitionen drauf haben die etx4+xfs+ntfs+fat32+btrfs nutzen. Da wird es dann wirklich kompliziert herauszufinden wie voll da das Block Device ist, da ja auch alle Partitionen wieder ihre eigenen Limits haben können. Vielleicht ist die ext4 Partition dann zu 100% voll, die anderen 4 Partitionen haben aber vielleicht nur je 10-50% Füllung.
Und beim Thin-Provisioning kann man auch nicht einfach auf die Größe gucken. Sagen wir PVE weiß dass das Block Device ein Zvol mit einer Größe von 1TB ist. Dann könnte PVE zwar mit ZFS Befehlen gucken, wieviel Platz vom Pool das Zvol belegt, aber das ist auch nicht gerage aussagekräftig. Sagen wir z.B. die Volblocksize ist nicht ideal und man hat ordentlich (sagen wir +50%) Padding Overhead. Wenn das Zvol dann 500GB vom Pool belegen würde, dann wäre das 1TB Zvol nicht zu 50% sondern erst zu 33% voll, weil 1TB an Daten wegen dem Padding Overhead 1,5TB belegen würden. Und dann können Dinge wie Deduplication und Kompression ja auch noch zusätzlich reinspielen.
Und selbst wenn man all das irgendwie toll berechnen könnte, hat man ja immer noch das Problem, dass da eine Partitionen durchaus längst zu 100% voll sein kann und bereits Probleme verursacht, auch wenn das ganze Zvol noch lange nicht voll ist.
Sehe ich also nicht wie man den verfügbaren Platz von VMs sinnvoll überwachen könnte sollte, wenn man nicht einen Monitoring-Agent direkt in den VMs laufen lässt.