# Storage Fix Complete - pve and pve2

**Date**: $(date)  
**Status**: ✅ Storage Fixed and Ready

## Summary

Storage configuration has been fixed on both pve and pve2 nodes to enable:
- ✅ Starting all stopped VMs
- ✅ Migrating existing VMs

## Storage Status After Fix

### pve2 (192.168.11.12)
- ✅ **thin1**: Active (51.98% used) - **Ready for stopped VMs**
- ✅ **thin2**: Active (0% used) - Available for new VMs
- ✅ **thin3**: Active (0% used) - Available for new VMs
- ✅ **local**: Active (directory storage) - Available for migrations

**Stopped VMs on pve2 (all use thin1, now ready to start):**
- 100: proxmox-mail-gateway
- 101: proxmox-datacenter-manager
- 102: cloudflared
- 103: omada
- 104: gitea
- 105: nginxproxymanager
- 130: monitoring-1
- 5000: blockscout-1
- 6200: firefly-1

### pve (192.168.11.11)
- ✅ **local**: Active (directory storage) - **Ready for migrations**
- ⚠️ **local-lvm**: Disabled (configured for ml110 only)
- ⚠️ **thin1-thin6**: Disabled (no volume groups available)

**Note**: pve has no volume groups, so LVM thin storage is not available. Migrations should use `local` (directory storage) which is active and ready.

## What Was Fixed

### pve2
1. ✅ Enabled `thin1` storage (was disabled, now active)
2. ✅ Enabled `thin2` storage (was disabled, now active)
3. ✅ Enabled `thin3` storage (was disabled, now active)
4. ✅ Verified all stopped VMs can now start (all use thin1)

### pve
1. ✅ Verified `local` storage is active and ready for migrations
2. ℹ️ No volume groups available, so LVM thin storage cannot be configured

## Next Steps

### Starting Stopped VMs on pve2

All stopped VMs on pve2 can now be started:

```bash
# Start all stopped VMs
ssh root@192.168.11.12
for vmid in 100 101 102 103 104 105 130 5000 6200; do
    pct start $vmid
done

# Or start individually
pct start 100
pct start 101
# ... etc
```

### Migrating VMs to pve

When migrating VMs to pve, use `local` storage:

```bash
# From source node (e.g., ml110)
ssh root@192.168.11.10

# Migrate with local storage
pct migrate <VMID> pve --storage local

# Or using API
pvesh create /nodes/ml110/lxc/<VMID>/migrate --target pve --storage local --online 0
```

### Migrating VMs to pve2

When migrating VMs to pve2, you can use:
- `thin1` (if available space)
- `thin2` or `thin3` (available)
- `local` (directory storage)

```bash
# Migrate to pve2 with thin1
pct migrate <VMID> pve2 --storage thin1

# Or with thin2/thin3
pct migrate <VMID> pve2 --storage thin2
```

## Storage Capacity

### pve2
- **thin1**: 237GB total, 123GB used, 114GB available (51.98% used)
- **thin2**: 237GB total, 0GB used, 237GB available (0% used)
- **thin3**: 237GB total, 0GB used, 237GB available (0% used)
- **local**: 230GB total, 127MB used, 230GB available (0.05% used)

### pve
- **local**: 564GB total, 2.9GB used, 561GB available (0.53% used)

## Verification Commands

### Check Storage Status
```bash
# pve2
ssh root@192.168.11.12 "pvesm status"

# pve
ssh root@192.168.11.11 "pvesm status"
```

### Check Stopped VMs
```bash
# pve2
ssh root@192.168.11.12 "pct list | grep stopped"

# pve
ssh root@192.168.11.11 "pct list | grep stopped"
```

### Start a VM
```bash
# On the node where VM is located
pct start <VMID>

# Check status
pct status <VMID>
```

## Scripts Available

1. **`scripts/fix-storage-pve-pve2.sh`**: Fix storage on both nodes
2. **`scripts/migrate-containers-to-pve-local.sh`**: Migrate containers to pve using local storage
3. **`scripts/diagnose-and-fix-migration-storage.sh`**: Comprehensive diagnostic tool

## Notes

- pve2 has thin storage pools ready for use
- pve uses directory storage (`local`) which is slower but works without LVM setup
- All stopped VMs on pve2 can now start successfully
- Migrations to pve should use `local` storage
- Migrations to pve2 can use `thin1`, `thin2`, `thin3`, or `local`

## Related Documentation

- `docs/MIGRATION_STORAGE_FIX.md`: Complete migration guide
- `docs/MIGRATION_QUICK_REFERENCE.md`: Quick reference
- `docs/STORAGE_MIGRATION_FIX_SUMMARY.md`: Implementation summary

