Files
proxmox/docs/archive/STORAGE_NETWORK_VERIFICATION.md

293 lines
8.0 KiB
Markdown
Raw Normal View History

# 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 <proxmox-host>
# 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 <proxmox-host>` 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.