12 KiB
Proxmox Storage Audit Report
Generated: 2026-02-08
Executive Summary
The Proxmox cluster consists of 3 nodes with a mixture of local and shared NFS storage. Total capacity is ~17 TB, with significant redundancy across nodes. Current utilization varies widely by node.
- proxmox-00: High local storage utilization (84.47% root), extensive container deployment
- proxmox-01: Docker-focused, high disk utilization on dlx-docker (81.06%)
- proxmox-02: Lowest utilization, 2 VMs and 1 active container
Physical Hardware
proxmox-00 (192.168.200.10)
NAME SIZE TYPE
loop0 16G loop
loop1 4G loop
loop2 100G loop
loop3 100G loop
loop4 16G loop
loop5 100G loop
loop6 32G loop
loop7 100G loop
loop8 100G loop
sda 1.8T disk → /mnt/pve/dlx-sda (1.8TB dir)
sdb 1.8T disk → NFS mount (nfs-sdd)
sdc 1.8T disk → NFS mount (nfs-sdc)
sdd 1.8T disk → NFS mount (nfs-sde)
sde 1.8T disk → /mnt/dlx-nfs-sde (1.8TB NFS)
sdf 931.5G disk → dlx-sdf4 (785GB LVM)
sdg 0B disk → (unused/not configured)
sr0 1024M rom → (CD-ROM)
proxmox-01 (192.168.200.11)
NAME SIZE TYPE
loop0 400G loop
loop1 400G loop
loop2 100G loop
sda 953.9G disk → /mnt/pve/dlx-docker (718GB dir, 81% full)
sdb 680.6G disk → (appears unused, no mount)
proxmox-02 (192.168.200.12)
NAME SIZE TYPE
loop0 32G loop
sda 3.6T disk → NFS mount (nfs-sdb-02)
sdb 3.6T disk → /mnt/dlx-nfs-sdb-02 (3.6TB NFS)
nvme0n1 931.5G disk → /mnt/pve/dlx-data (670GB dir, 10% full)
Storage Backend Configuration
Shared NFS Storage (Accessible from all nodes)
| Storage | Type | Total | Used | Available | % Used | Content | Shared |
|---|---|---|---|---|---|---|---|
| dlx-nfs-sdb-02 | NFS | 3.9 TB | 2.9 GB | 3.7 TB | 0.07% | images, rootdir, backup | ✓ |
| dlx-nfs-sdc-00 | NFS | 1.9 TB | 139 GB | 1.7 TB | 7.47% | images, rootdir | ✓ |
| dlx-nfs-sdd-00 | NFS | 1.9 TB | 12 GB | 1.8 TB | 0.63% | iso, vztmpl, rootdir, snippets, backup, images, import | ✓ |
| dlx-nfs-sde-00 | NFS | 1.9 TB | 54 GB | 1.7 TB | 2.83% | iso, vztmpl, rootdir, snippets, backup, images, import | ✓ |
| TOTAL NFS | - | ~9.7 TB | ~209 GB | ~8.7 TB | ~2.2% | - | ✓ |
Local Storage by Node
proxmox-00 Storage
| Storage | Type | Status | Total | Used | Available | % Used | Notes |
|---|---|---|---|---|---|---|---|
| dlx-sda | dir | ✓ active | 1.9 TB | 61 GB | 1.8 TB | 3.3% | Local dir storage |
| dlx-sdb | zfspool | ✓ active | 1.9 TB | 4.2 GB | 1.9 TB | 0.2% | ZFS pool |
| dlx-sdf4 | lvm | ✓ active | 785 GB | 157 GB | 610 GB | 20.5% | LVM thin pool |
| local | dir | ✓ active | 62 GB | 52 GB | 6.3 GB | 84.5% | ⚠️ CRITICAL: 90% full on root FS |
| local-lvm | lvmthin | ✓ active | 116 GB | 0 GB | 116 GB | 0% | Thin provisioning pool |
proxmox-01 Storage
| Storage | Type | Status | Total | Used | Available | % Used | Notes |
|---|---|---|---|---|---|---|---|
| dlx-docker | dir | ✓ active | 718 GB | 568 GB | 97 GB | 81.1% | ⚠️ HIGH: Docker container storage |
| local | dir | ✓ active | 62 GB | 42 GB | 15 GB | 69.5% | Template storage |
| local-lvm | lvmthin | ✓ active | 116 GB | 0 GB | 116 GB | 0% | Thin provisioning pool |
proxmox-02 Storage
| Storage | Type | Status | Total | Used | Available | % Used | Notes |
|---|---|---|---|---|---|---|---|
| dlx-data | dir | ✓ active | 702 GB | 63 GB | 602 GB | 9.1% | NVME-backed (fast) |
| local | dir | ✓ active | 92 GB | 43 GB | 44 GB | 47.2% | Template/OS storage |
| local-lvm | lvmthin | ✓ active | 160 GB | 0 GB | 160 GB | 0% | Thin provisioning pool |
Disabled Storage (not currently in use)
| Storage | Type | Node | Reason |
|---|---|---|---|
| dlx-docker | dir | proxmox-00, proxmox-02 | Disabled on these nodes |
| dlx-data | dir | proxmox-00, proxmox-01 | Disabled on these nodes |
| dlx-sda | dir | proxmox-01 | Disabled |
| dlx-sdb | zfspool | proxmox-01, proxmox-02 | Disabled on these nodes |
| dlx-sdf4 | lvm | proxmox-01, proxmox-02 | Disabled on these nodes |
Container & VM Allocation
proxmox-00: Infrastructure Hub (16 LXC Containers, 0 VMs)
All Running:
-
dlx-postgres (103) - PostgreSQL database
- Allocated: 100 GB | Used: 2.8 GB | Mem: 16 GB
-
dlx-gitea (102) - Git hosting
- Allocated: 100 GB | Used: 5.7 GB | Mem: 8 GB
-
dlx-hiveops (112) - Application
- Allocated: 100 GB | Used: 3.7 GB | Mem: 4 GB
-
dlx-kafka (113) - Message broker
- Allocated: 31 GB | Used: 2.2 GB | Mem: 4 GB
-
dlx-redis-01 (115) - Cache
- Allocated: 100 GB | Used: 81 GB | Mem: 8 GB
-
dlx-ansible (106) - Ansible control
- Allocated: 16 GB | Used: 3.7 GB | Mem: 4 GB
-
dlx-pihole (100) - DNS/Ad-block
- Allocated: 16 GB | Used: 2.6 GB | Mem: 4 GB
-
dlx-npm (101) - Nginx Proxy Manager
- Allocated: 4 GB | Used: 2.4 GB | Mem: 4 GB
-
dlx-mongo-01 (111) - MongoDB
- Allocated: 100 GB | Used: 7.6 GB | Mem: 8 GB
-
dlx-smartjournal (114) - Journal Application
- Allocated: 157 GB | Used: 54 GB | Mem: 33 GB
Stopped (5):
- dlx-wireguard (105) - 32 GB allocated
- dlx-mysql-02 (108) - 200 GB allocated
- dlx-mattermost (107) - 32 GB allocated
- dlx-mysql-03 (109) - 200 GB allocated
- dlx-nocodb (116) - 100 GB allocated
Total Allocation: 1.8 TB | Running Utilization: ~172 GB
proxmox-01: Docker & Services (5 LXC Containers, 0 VMs)
All Running:
-
dlx-docker (200) - Docker host
- Allocated: 421 GB | Used: 36 GB | Mem: 16 GB
-
dlx-sonar (202) - SonarQube analysis
- Allocated: 422 GB | Used: 354 GB | Mem: 16 GB ⚠️ HEAVY DISK USER
-
dlx-odoo (201) - ERP system
- Allocated: 100 GB | Used: 3.7 GB | Mem: 16 GB
Stopped (10):
- dlx-swarm-01/02/03 (210, 211, 212) - 65 GB each
- dlx-snipeit (203) - 50 GB
- dlx-fleet (206) - 60 GB
- dlx-coolify (207) - 50 GB
- dlx-kube-01/02/03 (215-217) - 50 GB each
- dlx-www (204) - 32 GB
- dlx-svn (205) - 100 GB
Total Allocation: 1.7 TB | Running Utilization: ~393 GB
proxmox-02: Development & Testing (2 VMs, 1 LXC Container)
Running:
- dlx-www (303, LXC) - Web services
- Allocated: 31 GB | Used: 3.2 GB | Mem: 2 GB
Stopped (2 VMs):
-
dlx-atm-01 (305) - ATM application VM
- Allocated: 8 GB (max disk 0)
-
dlx-development (306) - Dev environment VM
- Allocated: 160 GB | Mem: 16 GB
Total Allocation: 199 GB | Running Utilization: ~3.2 GB
Storage Mapping & Usage Patterns
Shared NFS Mounts
All Nodes can access:
├── dlx-nfs-sdb-02 → Backup/images (3.9 TB) - 0.07% used
├── dlx-nfs-sdc-00 → Images/rootdir (1.9 TB) - 7.47% used
├── dlx-nfs-sdd-00 → Templates/ISO/backup (1.9 TB) - 0.63% used
└── dlx-nfs-sde-00 → Templates/ISO/images (1.9 TB) - 2.83% used
Node-Specific Storage
proxmox-00 (Control Hub):
├── local (62 GB) ⚠️ CRITICAL: 84.5% FULL
├── dlx-sda (1.9 TB) - 3.3% used
├── dlx-sdb ZFS (1.9 TB) - 0.2% used
├── dlx-sdf4 LVM (785 GB) - 20.5% used
└── local-lvm (116 GB) - 0% used
proxmox-01 (Docker/Services):
├── local (62 GB) - 69.5% used
├── dlx-docker (718 GB) ⚠️ HIGH: 81.1% USED
└── local-lvm (116 GB) - 0% used
proxmox-02 (Development):
├── local (92 GB) - 47.2% used
├── dlx-data (702 GB) - 9.1% used (NVME, fast)
└── local-lvm (160 GB) - 0% used
Capacity & Utilization Summary
| Metric | Value | Status |
|---|---|---|
| Total Capacity | ~17 TB | ✓ Adequate |
| Total Used | ~1.3 TB | ✓ 7.6% |
| Total Available | ~15.7 TB | ✓ Healthy |
| Shared NFS | 9.7 TB (2.2% used) | ✓ Excellent |
| Local Storage | 7.3 TB (18.3% used) | ⚠️ Mixed |
Critical Issues & Recommendations
🔴 CRITICAL: proxmox-00 Root Filesystem
Issue: / (root) is 84.5% full (52.6 GB of 62 GB)
Impact:
- System may become unstable
- Package installation may fail
- Logs may stop being written
Recommendation:
- Clean up old logs:
journalctl --vacuum=time:30d - Check for old snapshots/backups
- Consider moving
/varto separate storage - Monitor closely for growth
🟠 HIGH PRIORITY: proxmox-01 dlx-docker
Issue: dlx-docker storage at 81.1% capacity (568 GB of 718 GB)
Impact:
- Limited room for container growth
- Risk of running out of space during operations
Recommendation:
- Audit running containers:
docker ps -a --format "{{.Names}}: {{json .SizeRw}}" - Remove unused images/layers
- Consider expanding partition or migrating data
- Set up monitoring for capacity
🟠 HIGH PRIORITY: proxmox-01 dlx-sonar
Issue: SonarQube using 354 GB (82% of allocated 422 GB)
Impact:
- Large analysis database
- May need separate storage strategy
Recommendation:
- Review SonarQube retention policies
- Archive old analysis data
- Consider separate backup strategy
⚠️ Medium Priority: Storage Inconsistency
Issue: Disabled storage backends across nodes
| Backend | disabled on | Notes |
|---|---|---|
| dlx-docker | proxmox-00, 02 | Only enabled on 01 |
| dlx-data | proxmox-00, 01 | Only enabled on 02 |
| dlx-sda | proxmox-01 | Enabled on 00 only |
| dlx-sdb (ZFS) | proxmox-01, 02 | Only enabled on 00 |
| dlx-sdf4 (LVM) | proxmox-01, 02 | Only enabled on 00 |
Recommendation:
- Document why each backend is disabled per node
- Standardize storage configuration across cluster
- Consider cluster-wide storage policy
⚠️ Medium Priority: Container Lifecycle
Issue: 15 containers are stopped but still allocating space (1.2 TB total)
Recommendation:
- Audit stopped containers (dlx-swarm-, dlx-kube-, etc.)
- Delete unused containers to reclaim space
- Document intended purpose of stopped containers
Recommendations Summary
Immediate (Next week)
- ✅ Compress logs on proxmox-00 root filesystem
- ✅ Audit dlx-docker usage and remove unused images
- ✅ Monitor proxmox-01 dlx-docker capacity
Short-term (1-2 months)
- Expand dlx-docker partition or migrate high-usage containers
- Archive SonarQube data or increase disk allocation
- Clean up stopped containers or document their retention
Long-term (3-6 months)
- Implement automated capacity monitoring
- Standardize storage backend configuration across cluster
- Establish storage lifecycle policies (snapshots, backups, retention)
- Consider tiered storage strategy (fast NVME vs. slow SATA)
Storage Performance Tiers
Based on hardware analysis:
| Tier | Storage | Speed | Use Case |
|---|---|---|---|
| Tier 1 (Fast) | nvme0n1 (proxmox-02) | NVMe | OS, critical services |
| Tier 2 (Medium) | ZFS/LVM pools | HDD/SSD | VMs, container data |
| Tier 3 (Shared) | NFS mounts | Network | Backups, shared data |
| Tier 4 (Archive) | Large local dirs | HDD | Infrequently accessed |
Optimization Opportunity: Align hot data to Tier 1, cold data to Tier 3
Appendix: Raw Storage Stats
Storage IDs & Content Types
- images - VM/container disk images
- rootdir - Root filesystem for LXCs
- backup - Backup snapshots
- iso - ISO images
- vztmpl - Container templates
- snippets - Config snippets
- import - Import data
Size Conversions
- 1 TB = ~1,099 GB
- 1 GB = ~1,074 MB
- All sizes in binary (not decimal)
Report Generated: 2026-02-08 via Ansible
Data Source: pvesm status and pvesh API
Next Audit Recommended: 2026-03-08