All checks were successful
Reindex Knowledge Base / reindex (push) Successful in 3s
Adds title, description, type, domain, and tags frontmatter to every doc for improved KB semantic search. The description field is prepended to every search chunk, and domain/type/tags enable filtered queries. Type values: context, guide, runbook, reference, troubleshooting Domain values match directory structure (networking, docker, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.9 KiB
3.9 KiB
| title | description | type | domain | tags | |||||
|---|---|---|---|---|---|---|---|---|---|
| LXC Migration Quick Start | Quick reference for VM-to-LXC migration on Proxmox: wave order, LXC creation commands, Docker volume migration, cutover process, and rollback procedures. | runbook | vm-management |
|
VM to LXC Migration - Quick Start Guide
Status: Approved & Ready for Execution Last Updated: 2025-01-12
✅ Confirmed Decisions
- Networking: Reuse existing IP addresses
- Storage: Fresh install + volume copy for Docker hosts
- Timeline: 4-6 weeks (expected to accelerate)
- GPU: No GPU hardware - all services can migrate
Migration Order (Risk-Based)
Wave 1: docker-7days (111) - LOWEST RISK
Goal: Validate entire migration process
- Non-critical game server
- Docker-in-LXC test
- Build confidence
Wave 2: docker-pittsburgh (114) + docker-vpn (105)
Goal: Regional/isolated Docker hosts
- Test VPN routing
- Regional services validation
Wave 3: docker-sba (115) + docker-unused (117) + docker-home-servers (116)
Goal: Additional Docker infrastructure
- Use SBA maintenance windows
- Decommission unused if appropriate
Wave 4: discord-bots (110) + databases-bots (112)
Goal: Application & database servers
- ⚠️ EXTRA CARE for database migration
- Full backups required
Wave 5: docker-tdarr (113) + plex (107)
Goal: Media services (software transcoding)
- Monitor CPU usage
- Validate transcode performance
Wave 6: docker-home (106) - MOST CRITICAL
Goal: Final critical infrastructure
- Migrate last after all confidence built
- Most important home services
Keep as VMs
- hass-io (109): HassOS requirement
- ubuntu-template (100): Strategic flexibility
LXC Container IDs (200-series)
| VM → LXC | Service | Wave |
|---|---|---|
| 111 → 211 | docker-7days | 1 |
| 114 → 214 | docker-pittsburgh | 2 |
| 105 → 205 | docker-vpn | 2 |
| 115 → 215 | docker-sba | 3 |
| 117 → 217 | docker-unused | 3 |
| 116 → 216 | docker-home-servers | 3 |
| 110 → 210 | discord-bots | 4 |
| 112 → 212 | databases-bots | 4 |
| 113 → 213 | docker-tdarr | 5 |
| 107 → 207 | plex | 5 |
| 106 → 206 | docker-home | 6 |
Quick Commands
Create LXC for Docker
pct create 2XX local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.zst \
--hostname docker-7days-lxc \
--memory 4096 \
--cores 2 \
--net0 name=eth0,bridge=vmbr0,ip=10.10.0.TMP/24,gw=10.10.0.1 \
--storage local-lvm \
--rootfs local-lvm:32 \
--unprivileged 0 \
--features nesting=1,keyctl=1
pct start 2XX
pct enter 2XX
Install Docker in LXC
apt update && apt upgrade -y
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
apt install docker-compose-plugin -y
Migrate Docker Volumes
# While VM running - initial sync
rsync -avz --progress root@VM_IP:/var/lib/docker/volumes/ root@LXC_IP:/var/lib/docker/volumes/
rsync -avz --progress root@VM_IP:/opt/docker/ root@LXC_IP:/opt/docker/
# During cutover - final sync with VM stopped
rsync -avz --progress --delete root@VM_IP:/var/lib/docker/volumes/ root@LXC_IP:/var/lib/docker/volumes/
Cutover Process
- Stop VM:
qm stop 111 - Reconfigure LXC to production IP
- Start LXC:
pct start 211 - Validate services
- Monitor for 48 hours
- Keep VM stopped for rollback capability
Rollback (if needed)
pct stop 211
qm start 111
Next Immediate Steps
- Schedule Wave 1: Pick maintenance window for docker-7days
- Build LXC 211: Create first container
- Test & Migrate: Execute Wave 1
- Document Learnings: Refine process for Wave 2
Full Documentation
See /mnt/NV2/Development/claude-home/vm-management/lxc-migration-plan.md for comprehensive details.
Expected Benefits
- ~17GB RAM freed (87% reduction in overhead)
- 5-10x faster backups/restores
- Near-instant container starts (1-5 seconds)
- Improved resource density