mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-07-24 07:06:33 +00:00
On a Proxmox node, physical disks collected by the host agent were keyed by the NVMe controller (e.g. "nvme0 [nvme]") instead of the namespace, reported sizeBytes 0 (or a stale filesystem-usage value), and flickered as the agent reading intermittently replaced the authoritative Proxmox disks/list reading. Root causes: - smartctl --scan-open reports NVMe disks by their controller char device (/dev/nvme0), and that scan label became the reported devPath. - DiskSMART carried no capacity, so the server backfilled size by matching the SMART device against host filesystem-usage entries, which never match a whole partitioned/LVM/ZFS disk, leaving size 0. - The unified-resource merge let the agent's controller label overwrite the canonical Proxmox /dev/... devPath. Fixes: - The agent now reports the canonical block device (an NVMe controller resolves to its namespace) and the authoritative capacity from /sys/block, with the smartctl user_capacity / nvme_total_capacity as a cross-platform fallback. Disks behind multiplexing controllers (megaraid, cciss, areca) keep their disambiguating label and smartctl-reported size. - SizeBytes flows through the agent report, host model, and adapter; the filesystem-usage match is demoted to a legacy fallback. - The merge keeps a canonical /dev/<device> devPath and never downgrades it to a scan label, so an un-updated agent can no longer corrupt Proxmox data. Refs #1483. |
||
|---|---|---|
| .. | ||
| agent.go | ||
| agent_bench_test.go | ||
| agent_buffering_test.go | ||
| agent_collection_test.go | ||
| agent_flushbuffer_test.go | ||
| agent_metrics_test.go | ||
| agent_new_test.go | ||
| agent_sensors_test.go | ||
| agent_state_test.go | ||
| agent_test.go | ||
| buffer_persist_test.go | ||
| ceph.go | ||
| ceph_test.go | ||
| cluster_sensors.go | ||
| cluster_sensors_test.go | ||
| collector_observability_test.go | ||
| command_client_test.go | ||
| commands.go | ||
| commands_backoff_test.go | ||
| commands_connect_test.go | ||
| commands_coverage_test.go | ||
| commands_deploy.go | ||
| commands_deploy_test.go | ||
| commands_execute_test.go | ||
| commands_registration_test.go | ||
| commands_test.go | ||
| enroll.go | ||
| enroll_test.go | ||
| hostagent_coverage_test.go | ||
| mdadm.go | ||
| mdadm_test.go | ||
| mock_collector_test.go | ||
| network_helpers_test.go | ||
| os_identity.go | ||
| proxmox_setup.go | ||
| proxmox_setup_network_coverage_test.go | ||
| proxmox_setup_test.go | ||
| send_report_test.go | ||
| smartctl.go | ||
| smartctl_coverage_test.go | ||
| smartctl_size_test.go | ||
| smartctl_test.go | ||
| sysinfo.go | ||
| sysinfo_test.go | ||
| unraid.go | ||
| unraid_test.go | ||
| version.go | ||
| zfs.go | ||
| zfs_test.go | ||