# Proxmox Storage Review - Complete Summary and Recommendations **Date:** January 6, 2026 **Review Scope:** All Proxmox nodes and storage configurations **Status:** ✅ Complete --- ## Executive Summary This document provides a comprehensive review of all storage across all Proxmox nodes with detailed recommendations for optimization, capacity planning, and performance improvements. ### Key Findings - **Total Containers:** 51 containers across 3 accessible nodes - **Critical Issues:** 1 storage pool at 97.78% capacity (r630-02 thin1-r630-02) - **Storage Distribution:** Uneven - ml110 has 37 containers, others underutilized - **Available Storage:** ~1.2TB total available across all nodes - **Unreachable Nodes:** r630-03 and r630-04 (require investigation) --- ## Current Storage Status by Node ### ml110 (192.168.11.10) - Management Node **Status:** ✅ Operational **Containers:** 37 **CPU:** 6 cores @ 1.60GHz (older, slower) **Memory:** 125GB (55GB used, 69GB available - 44% usage) #### Storage Details | Storage Name | Type | Status | Total | Used | Available | Usage % | |--------------|------|--------|-------|------|-----------|---------| | local | dir | ✅ Active | 94GB | 7.5GB | 85.5GB | 8.02% | | local-lvm | lvmthin | ✅ Active | 813GB | 227GB | 586GB | 27.92% | | thin1-thin6 | lvmthin | ❌ Disabled | - | - | - | N/A | **Volume Group:** `pve` - 930.51GB total, **16GB free** ⚠️ **Thin Pool:** `data` - 794.30GB (27.92% used, 1.13% metadata) **Physical Disks:** - sda: 931.5GB - sdb: 931.5GB #### Issues Identified 1. ⚠️ **Low Volume Group Free Space:** Only 16GB free in VG (1.7%) - **Impact:** Cannot create new VMs/containers without expansion - **Recommendation:** Expand VG or migrate VMs to other nodes 2. ⚠️ **Multiple Disabled Storage Pools:** thin1-thin6 are disabled - **Impact:** Storage pools configured but not usable - **Recommendation:** Clean up unused storage definitions or enable if needed 3. ⚠️ **Overloaded Node:** 37 containers on slower CPU - **Impact:** Performance degradation - **Recommendation:** Migrate containers to r630-01/r630-02 #### Recommendations **CRITICAL:** 1. **Expand Volume Group** - Add physical volumes or migrate VMs 2. **Monitor Storage Closely** - Only 16GB free space remaining **HIGH PRIORITY:** 1. **Migrate Containers** - Move 15-20 containers to r630-01/r630-02 2. **Clean Up Storage Config** - Remove or enable disabled storage pools **RECOMMENDED:** 1. **Storage Monitoring** - Set alerts at 80% usage 2. **Backup Strategy** - Implement regular backups before migration --- ### r630-01 (192.168.11.11) - Production Node **Status:** ✅ Operational **Containers:** 3 **CPU:** 32 cores @ 2.40GHz (excellent) **Memory:** 503GB (7.5GB used, 496GB available - 1.5% usage) #### Storage Details | Storage Name | Type | Status | Total | Used | Available | Usage % | |--------------|------|--------|-------|------|-----------|---------| | local | dir | ✅ Active | 536GB | 0.1GB | 536GB | 0.02% | | local-lvm | lvmthin | ✅ Active | 200GB | 5.8GB | 194GB | 2.92% | | thin1 | lvmthin | ✅ Active | 208GB | 0GB | 208GB | 0.00% | | thin2-thin6 | lvmthin | ❌ Disabled | - | - | - | N/A | **Volume Group:** `pve` - 465.77GB total, **57GB free** ✅ **Thin Pools:** - `data`: 200GB (2.92% used, 11.42% metadata) - `thin1`: 208GB (0.00% used, 10.43% metadata) **Physical Disks:** - sda, sdb: 558.9GB each (boot drives) - sdc-sdh: 232.9GB each (6 data drives) #### Issues Identified 1. ⚠️ **Disabled Storage Pools:** thin2-thin6 are disabled - **Impact:** Additional storage not available - **Recommendation:** Enable if needed or remove from config 2. ✅ **Excellent Capacity:** 57GB free in VG, 408GB available storage - **Status:** Ready for VM deployment #### Recommendations **HIGH PRIORITY:** 1. **Enable Additional Storage** - Enable thin2-thin6 if needed (or remove from config) 2. **Migrate VMs from ml110** - This node is ready for 15-20 containers **RECOMMENDED:** 1. **Storage Optimization** - Consider using thin1 for new deployments 2. **Performance Tuning** - Optimize for high-performance workloads --- ### r630-02 (192.168.11.12) - Production Node **Status:** ✅ Operational **Containers:** 11 **CPU:** 56 cores @ 2.00GHz (excellent - best CPU) **Memory:** 251GB (16GB used, 235GB available - 6.4% usage) #### Storage Details | Storage Name | Type | Status | Total | Used | Available | Usage % | |--------------|------|--------|-------|------|-----------|---------| | local | dir | ✅ Active | 220GB | 4.0GB | 216GB | 1.81% | | local-lvm | lvmthin | ❌ Disabled | - | - | - | N/A | | thin1 | lvmthin | ⚠️ Inactive | - | - | - | 0.00% | | thin1-r630-02 | lvmthin | 🔴 **CRITICAL** | 226GB | 221GB | **5.0GB** | **97.78%** | | thin2 | lvmthin | ✅ Active | 226GB | 0GB | 226GB | 0.00% | | thin3 | lvmthin | ✅ Active | 226GB | 0GB | 226GB | 0.00% | | thin4 | lvmthin | ✅ Active | 226GB | 28.7GB | 197GB | 12.69% | | thin5 | lvmthin | ✅ Active | 226GB | 0GB | 226GB | 0.00% | | thin6 | lvmthin | ✅ Active | 226GB | 0GB | 226GB | 0.00% | **Volume Groups:** - thin1-thin6: Each 230.87GB with 0.12GB free **Thin Pools:** - `thin1-r630-02`: 226.13GB (**97.78% used**, 3.84% metadata) 🔴 **CRITICAL** - `thin4`: 226.13GB (12.69% used, 1.15% metadata) - `thin2, thin3, thin5, thin6`: All empty (0.00% used) **Physical Disks:** - sda-sdh: 232.9GB each (8 data drives) #### Issues Identified 1. 🔴 **CRITICAL: Storage Nearly Full** - thin1-r630-02 at 97.78% capacity - **Impact:** Cannot create new VMs/containers on this storage - **Action Required:** IMMEDIATE - Migrate VMs or expand storage - **Available:** Only 5GB free 2. ⚠️ **Inactive Storage:** thin1 is inactive - **Impact:** Storage pool not usable - **Recommendation:** Activate or remove from config 3. ⚠️ **Disabled Storage:** local-lvm is disabled - **Impact:** Standard storage name not available - **Recommendation:** Enable if volume group exists 4. ✅ **Excellent Capacity Available:** thin2, thin3, thin5, thin6 are empty (904GB total) #### Recommendations **CRITICAL (IMMEDIATE ACTION REQUIRED):** 1. **Migrate VMs from thin1-r630-02** - Move VMs to thin2, thin3, thin5, or thin6 2. **Expand thin1-r630-02** - If migration not possible, expand the pool 3. **Monitor Closely** - Set alerts for this storage pool **HIGH PRIORITY:** 1. **Activate thin1** - Enable if needed or remove from config 2. **Enable local-lvm** - If volume group exists, enable for standard naming 3. **Balance Storage Usage** - Distribute VMs across thin2-thin6 **RECOMMENDED:** 1. **Storage Monitoring** - Set up automated alerts 2. **Migration Plan** - Document VM migration procedures --- ### r630-03 (192.168.11.13) - Unknown Status **Status:** ❌ Not Reachable **Action Required:** Investigate connectivity issues #### Recommendations 1. **Check Network Connectivity** - Verify network connection 2. **Check Power Status** - Verify node is powered on 3. **Check SSH Access** - Verify SSH service is running 4. **Review Storage** - Once accessible, perform full storage review --- ### r630-04 (192.168.11.14) - Unknown Status **Status:** ❌ Not Reachable **Action Required:** Investigate connectivity issues #### Recommendations 1. **Check Network Connectivity** - Verify network connection 2. **Check Power Status** - Verify node is powered on 3. **Check SSH Access** - Verify SSH service is running 4. **Review Storage** - Once accessible, perform full storage review --- ## Critical Issues Summary ### 🔴 CRITICAL - Immediate Action Required 1. **r630-02 thin1-r630-02 Storage at 97.78% Capacity** - **Impact:** Cannot create new VMs/containers - **Action:** Migrate VMs to other storage pools (thin2-thin6 available) - **Timeline:** IMMEDIATE 2. **ml110 Volume Group Low on Space (16GB free)** - **Impact:** Limited capacity for new VMs - **Action:** Migrate VMs to r630-01/r630-02 or expand storage - **Timeline:** Within 1 week ### ⚠️ HIGH PRIORITY 1. **Uneven Workload Distribution** - ml110: 37 containers (overloaded) - r630-01: 3 containers (underutilized) - r630-02: 11 containers (underutilized) - **Action:** Migrate 15-20 containers from ml110 to r630-01/r630-02 2. **Disabled/Inactive Storage Pools** - Multiple storage pools disabled across nodes - **Action:** Enable if needed or clean up storage.cfg 3. **Unreachable Nodes** - r630-03 and r630-04 not accessible - **Action:** Investigate and restore connectivity --- ## Storage Capacity Analysis ### Total Storage Capacity | Node | Total Storage | Used Storage | Available Storage | Usage % | |------|--------------|--------------|------------------|---------| | ml110 | 907GB | 234.5GB | 671.5GB | 25.9% | | r630-01 | 744GB | 5.9GB | 738GB | 0.8% | | r630-02 | 1,358GB | 253.7GB | 1,104GB | 18.7% | | **Total** | **3,009GB** | **494GB** | **2,515GB** | **16.4%** | ### Storage Distribution - **ml110:** 27.92% of local-lvm used (good, but VG low on space) - **r630-01:** 2.92% of local-lvm used (excellent - ready for deployment) - **r630-02:** 97.78% of thin1-r630-02 used (CRITICAL), but other pools empty ### Capacity Planning **Current Capacity:** ~2.5TB available **Projected Growth:** Based on current usage patterns **Recommendation:** Plan for expansion when total usage reaches 70% --- ## Detailed Recommendations ### 1. Immediate Actions (This Week) #### r630-02 Storage Crisis ```bash # 1. List VMs on thin1-r630-02 ssh root@192.168.11.12 "pvesm list thin1-r630-02" # 2. Migrate VMs to thin2 (or thin3, thin5, thin6) # Example migration: pct migrate r630-02 --storage thin2 # 3. Verify migration pvesm status ``` #### ml110 Storage Expansion **Option A: Migrate VMs (Recommended)** ```bash # Migrate containers to r630-01 pct migrate r630-01 --storage thin1 # Migrate containers to r630-02 pct migrate r630-02 --storage thin2 ``` **Option B: Expand Volume Group** ```bash # Add physical volume (if disks available) pvcreate /dev/sdX vgextend pve /dev/sdX lvextend -l +100%FREE pve/data ``` ### 2. Storage Optimization (Next 2 Weeks) #### Enable Disabled Storage Pools **ml110:** ```bash # Review and clean up disabled storage ssh root@192.168.11.10 pvesm status # Remove unused storage definitions or enable if needed ``` **r630-01:** ```bash # Enable thin2-thin6 if volume groups exist ssh root@192.168.11.11 # Check if VGs exist vgs # Enable storage pools if VGs exist for i in thin2 thin3 thin4 thin5 thin6; do pvesm set $i --disable 0 2>/dev/null || echo "$i not available" done ``` **r630-02:** ```bash # Activate thin1 if needed ssh root@192.168.11.12 pvesm set thin1 --disable 0 ``` #### Balance Workload Distribution **Migration Plan:** - **ml110 → r630-01:** Migrate 10-12 medium workload containers - **ml110 → r630-02:** Migrate 10-12 heavy workload containers - **r630-02 thin1-r630-02 → thin2-thin6:** Migrate VMs to balance storage **Target Distribution:** - ml110: 15-17 containers (management/lightweight) - r630-01: 15-17 containers (medium workload) - r630-02: 15-17 containers (heavy workload) ### 3. Long-term Improvements (Next Month) #### Storage Monitoring **Set Up Automated Alerts:** ```bash # Create monitoring script cat > /usr/local/bin/storage-alert.sh << 'EOF' #!/bin/bash # Check storage usage and send alerts for node in ml110 r630-01 r630-02; do ssh root@$node "pvesm status" | awk '$NF > 80 {print "ALERT: $1 on $node at "$NF"%"}' done EOF # Add to crontab (check every hour) 0 * * * * /usr/local/bin/storage-alert.sh ``` #### Backup Strategy 1. **Implement Regular Backups** - Daily backups for critical VMs - Weekly full backups - Monthly archive backups 2. **Backup Storage** - Use separate storage for backups - Consider NFS for shared backup storage - Implement backup rotation (keep 30 days) #### Performance Optimization 1. **Storage Performance Tuning** - Use LVM thin for all VM disks - Monitor I/O performance - Optimize thin pool metadata size 2. **Network Storage Consideration** - Evaluate NFS for shared storage - Consider Ceph for high availability - Plan for shared storage migration --- ## Storage Type Recommendations ### By Use Case | Use Case | Recommended Storage | Current Status | Action | |----------|-------------------|----------------|--------| | VM/Container Disks | LVM Thin (lvmthin) | ✅ Used | Continue using | | ISO Images | Directory (dir) | ✅ Used | Continue using | | Container Templates | Directory (dir) | ✅ Used | Continue using | | Backups | Directory or NFS | ⚠️ Not configured | Implement | | High-Performance VMs | LVM Thin or ZFS | ✅ LVM Thin | Consider ZFS for future | ### Storage Performance Best Practices 1. **Use LVM Thin for VM Disks** ✅ Currently implemented 2. **Monitor Thin Pool Metadata** ⚠️ Set up monitoring 3. **Balance Storage Across Nodes** ⚠️ Needs improvement 4. **Implement Backup Storage** ❌ Not implemented --- ## Security Recommendations 1. **Storage Access Control** - Review `/etc/pve/storage.cfg` node restrictions - Ensure proper node assignments - Verify storage permissions 2. **Backup Security** - Encrypt backups containing sensitive data - Store backups off-site - Test backup restoration regularly --- ## Monitoring Recommendations ### Storage Monitoring Metrics 1. **Storage Usage** - Alert at 80% 2. **Thin Pool Metadata** - Alert at 80% 3. **Volume Group Free Space** - Alert at 10% 4. **Storage I/O Performance** - Monitor latency ### Automated Alerts Set up alerts for: - Storage usage >80% - Thin pool metadata >80% - Volume group free space <10% - Storage errors or failures --- ## Migration Recommendations ### Workload Distribution Strategy **Current State:** - ml110: 37 containers (overloaded, slower CPU) - r630-01: 3 containers (underutilized, excellent CPU) - r630-02: 11 containers (underutilized, best CPU) **Target State:** - ml110: 15-17 containers (management/lightweight) - r630-01: 15-17 containers (medium workload) - r630-02: 15-17 containers (heavy workload) **Benefits:** - Better performance (ml110 CPU is slower) - Better resource utilization - Improved redundancy - Better storage distribution ### Migration Priority 1. **CRITICAL:** Migrate VMs from r630-02 thin1-r630-02 (97.78% full) 2. **HIGH:** Migrate 15-20 containers from ml110 to r630-01/r630-02 3. **MEDIUM:** Balance storage usage across all thin pools on r630-02 --- ## Action Plan Summary ### Week 1 (Critical) - [ ] Migrate VMs from r630-02 thin1-r630-02 to thin2-thin6 - [ ] Set up storage monitoring alerts - [ ] Investigate r630-03 and r630-04 connectivity ### Week 2-3 (High Priority) - [ ] Migrate 15-20 containers from ml110 to r630-01/r630-02 - [ ] Enable/clean up disabled storage pools - [ ] Balance storage usage across nodes ### Month 1 (Recommended) - [ ] Implement backup strategy - [ ] Set up comprehensive storage monitoring - [ ] Optimize storage performance - [ ] Document storage procedures --- ## Conclusion This comprehensive storage review identifies: ✅ **Current Status:** Storage well configured with LVM thin pools ⚠️ **Critical Issues:** 1 storage pool at 97.78% capacity ✅ **Capacity Available:** ~2.5TB total available storage ⚠️ **Distribution:** Uneven workload distribution **Immediate Actions Required:** 1. Migrate VMs from r630-02 thin1-r630-02 (CRITICAL) 2. Migrate containers from ml110 to balance workload 3. Set up storage monitoring and alerts **Long-term Goals:** 1. Implement backup strategy 2. Optimize storage performance 3. Plan for storage expansion 4. Consider shared storage for HA --- **Report Generated:** January 6, 2026 **Next Review:** February 6, 2026 (Monthly)