# Storage and Network Configuration Verification **Last Updated**: 2025-01-11 **Purpose**: Guide for verifying storage and network configuration for optimal deployment performance --- ## Overview Proper storage and network configuration significantly impacts deployment performance. This guide provides verification steps and recommendations for optimal deployment speed. --- ## Storage Configuration ### Why Storage Matters - **Container Creation**: Faster I/O = faster container creation - **OS Template Installation**: Local storage = ~15-30 minutes saved - **Package Installation**: Local storage reduces I/O wait times - **Overall Impact**: Local storage can save 15-30 minutes total ### Storage Types | Storage Type | Performance | Recommendation | |--------------|-------------|----------------| | **local-lvm** | Excellent | ✅ Recommended (local SSD/HDD) | | **local** (dir) | Good | ✅ Recommended for small deployments | | **local-zfs** | Excellent | ✅ Recommended (ZFS pools) | | **nfs** | Variable | ⚠️ Depends on network speed | | **ceph** | Good | ⚠️ Network latency may impact | | **glusterfs** | Variable | ⚠️ Network latency may impact | ### Verification Steps #### 1. Run Storage Verification Script ```bash # Verify storage configuration ./scripts/validation/verify-storage-config.sh ``` This script will: - Check if configured storage exists - Verify storage type (local vs. network) - Check available capacity - Provide recommendations #### 2. Manual Verification ```bash # List available storage pvesm status # Check storage details pvesm status | grep local # Verify configured storage exists grep PROXMOX_STORAGE config/proxmox.conf ``` #### 3. Storage Configuration Ensure `config/proxmox.conf` has: ```bash # Use local storage for best performance PROXMOX_STORAGE="local-lvm" # Or "local" or "local-zfs" ``` ### Recommendations 1. **Use Local Storage**: Prefer `local-lvm`, `local`, or `local-zfs` 2. **SSD Storage**: Use SSD-based storage for fastest performance 3. **Sufficient Capacity**: Ensure ~100GB per container (67 containers ≈ 6.7TB) 4. **Monitor I/O**: Watch storage I/O during deployment --- ## Network Configuration ### Why Network Matters - **Package Downloads**: ~500 MB - 2 GB per container - **OS Template Downloads**: ~200-500 MB (one-time) - **Configuration Transfers**: Minimal but frequent - **Overall Impact**: Good network can save 30-60 minutes total ### Network Requirements | Connection Speed | Performance | Recommendation | |------------------|-------------|----------------| | **1 Gbps (Gigabit)** | Excellent | ✅ Recommended | | **100 Mbps (Fast Ethernet)** | Good | ⚠️ Acceptable, may be slower | | **10 Mbps** | Slow | ❌ Not recommended for large deployments | | **Wireless** | Variable | ⚠️ Use wired if possible | ### Verification Steps #### 1. Run Network Verification Script ```bash # Verify network configuration ./scripts/validation/verify-network-config.sh ``` This script will: - Check network connectivity to Proxmox host - Test latency - Verify network interface speeds - Check DNS resolution - Test internet connectivity and download speed - Verify Proxmox bridge configuration #### 2. Manual Verification ```bash # Check network interfaces ip link show # Check bridge status ip link show vmbr0 # Test connectivity ping -c 3 # Test download speed (rough estimate) curl -o /dev/null -w "Speed: %{speed_download} bytes/s\n" https://github.com ``` #### 3. Network Configuration Ensure `config/proxmox.conf` has: ```bash # Configure bridge (usually vmbr0) PROXMOX_BRIDGE="vmbr0" # Configure Proxmox host (if remote) PROXMOX_HOST="192.168.11.10" # Or hostname ``` ### Network Optimization Recommendations 1. **Use Wired Connection**: Avoid wireless for deployment 2. **Gigabit Ethernet**: Use 1 Gbps or faster connection 3. **Low Latency**: Ensure <50ms latency to Proxmox host 4. **Local Package Mirrors**: Consider apt mirrors for faster package downloads 5. **Pre-cache Templates**: Run `pre-cache-os-template.sh` before deployment 6. **Monitor Bandwidth**: Watch network usage during deployment ### Expected Network Usage For complete deployment (67 containers): | Operation | Data Transfer | Frequency | |-----------|---------------|-----------| | OS Template | ~200-500 MB | One-time (if not cached) | | Package Downloads | ~500 MB - 2 GB per container | Per container | | Configuration Files | ~1-10 MB per container | Per container | | **Total** | **~35-135 GB** | Complete deployment | **Breakdown**: - Besu nodes (12): ~6-24 GB - CCIP nodes (41-43): ~20-86 GB - Other services (14): ~7-28 GB --- ## Pre-Deployment Checklist ### Storage Checklist - [ ] Run `verify-storage-config.sh` - [ ] Verify storage is local (not network-based) - [ ] Check sufficient capacity (6.7TB+ recommended) - [ ] Confirm storage is accessible - [ ] Verify `PROXMOX_STORAGE` in config matches available storage ### Network Checklist - [ ] Run `verify-network-config.sh` - [ ] Verify network interface is Gigabit (1 Gbps) or faster - [ ] Test latency to Proxmox host (<50ms recommended) - [ ] Verify DNS resolution working - [ ] Test internet connectivity - [ ] Check download speed (>100 Mbps recommended) - [ ] Verify Proxmox bridge is UP - [ ] Confirm `PROXMOX_BRIDGE` in config matches actual bridge ### Optimization Steps 1. **Before Deployment**: ```bash # Pre-cache OS template (saves 5-10 minutes) ./scripts/deployment/pre-cache-os-template.sh # Verify storage ./scripts/validation/verify-storage-config.sh # Verify network ./scripts/validation/verify-network-config.sh ``` 2. **During Deployment**: - Monitor storage I/O: `iostat -x 1` - Monitor network usage: `iftop` or `nload` - Watch resource usage: `htop` 3. **After Deployment**: - Review deployment logs for bottlenecks - Adjust parallel execution limits if needed - Consider optimizations for future deployments --- ## Troubleshooting ### Storage Issues **Problem**: Slow container creation - **Solution**: Use local storage instead of network storage - **Check**: Run `pvesm status` to verify storage type **Problem**: Insufficient storage space - **Solution**: Free up space or expand storage - **Check**: `pvesm status` shows available capacity ### Network Issues **Problem**: Slow package downloads - **Solution**: Use local package mirrors or upgrade network - **Check**: Run network verification script **Problem**: High latency - **Solution**: Use wired connection, optimize network path - **Check**: `ping ` shows latency **Problem**: DNS resolution failures - **Solution**: Configure proper DNS servers - **Check**: `nslookup github.com` should resolve --- ## Performance Impact ### Storage Impact | Storage Type | Container Creation | OS Installation | Total Impact | |--------------|-------------------|-----------------|--------------| | Local SSD | Fast | Fast | Optimal | | Local HDD | Good | Good | Good | | Network (1 Gbps) | Moderate | Moderate | Acceptable | | Network (<100 Mbps) | Slow | Slow | Significant delay | **Time Savings**: Local storage saves ~15-30 minutes vs. network storage ### Network Impact | Connection Speed | Package Downloads | Template Download | Total Impact | |------------------|-------------------|-------------------|--------------| | 1 Gbps | Fast | Fast | Optimal | | 100 Mbps | Moderate | Moderate | Acceptable | | 10 Mbps | Slow | Slow | Significant delay | **Time Savings**: 1 Gbps saves ~30-60 minutes vs. 100 Mbps for complete deployment --- ## References - **Deployment Time Estimate**: `docs/DEPLOYMENT_TIME_ESTIMATE.md` - **Optimization Recommendations**: `docs/DEPLOYMENT_OPTIMIZATION_RECOMMENDATIONS.md` - **Parallel Execution Limits**: `docs/PARALLEL_EXECUTION_LIMITS.md` - **Proxmox Storage Documentation**: https://pve.proxmox.com/wiki/Storage --- ## Quick Verification Run both verification scripts before deployment: ```bash # Verify storage configuration ./scripts/validation/verify-storage-config.sh # Verify network configuration ./scripts/validation/verify-network-config.sh ``` Both scripts will provide recommendations for optimal deployment performance.