Date : 03-01-2026 Status : En attente de validation Impact : Élevé (downtime prévu)
PVE (192.168.1.10)
├── VM 201 - win11 (192.168.1.30)
│ ├── scsi0: local-lvm 350G (système)
│ ├── scsi1: Samsung 870 QVO 1TB (passthrough)
│ ├── scsi3: LDLC 500G (passthrough)
│ └── scsi4: Crucial BX500 2TB (passthrough)
│
├── VM 206 - prod-portainer (192.168.1.11)
│ └── scsi0: vm-ssd 100G (Crucial MX500)
│ └── Docker, Portainer, Redis, Supabase, HelloCar...
│
└── Stockage
├── stock_36to: RAIDZ2 5x12TB HGST (~33TB)
└── stock_8to: RAIDZ1 3x4TB Seagate (~7.8TB)
PVE (192.168.1.10)
├── VM 201 - win11 (192.168.1.30)
│ ├── scsi0: local-lvm 350G (système)
│ └── scsi1: zvol win_storage 3TB (sur stock_36to)
│ └── Remplace les 3 SSDs passthrough
│
├── VM 2XX - claude (192.168.1.11 ou nouvelle IP)
│ └── scsi0: vm-ssd 50G (Crucial MX500)
│ └── Debian minimal, SSH, Claude sessions
│
├── VM 2XX - docker-prod (nouvelle IP)
│ └── scsi0: vm-ssd 50G (Crucial MX500)
│ └── Docker, Portainer, tous les containers
│
└── Stockage
├── stock_36to: RAIDZ2 (~33TB)
│ └── zvol win_storage 3TB (nouveau)
└── stock_8to: RAIDZ1 (~7.8TB)
└── windows_backup (SMB)
# Sur pve.local
sudo qm create 207 \
--name docker-prod \
--memory 8192 \
--cores 4 \
--net0 virtio,bridge=vmbr0 \
--scsihw virtio-scsi-pci \
--scsi0 vm-ssd:50,format=raw \
--ide2 local:iso/debian-12.iso,media=cdrom \
--boot order=scsi0
# SSH, sudo, mDNS
apt update && apt install -y openssh-server sudo avahi-daemon
# Docker
curl -fsSL https://get.docker.com | sh
usermod -aG docker gouroubleu
# NFS client
apt install -y nfs-common
mkdir -p /mnt/stock_36to
echo "192.168.1.10:/stock_36to /mnt/stock_36to nfs defaults,_netdev 0 0" >> /etc/fstab
# Docker data-root sur NFS
cat > /etc/docker/daemon.json << 'EOF'
{
"data-root": "/mnt/stock_36to/data/33800-stack/docker/prod/"
}
EOF
systemctl restart docker
Les containers utilisent déjà le NFS pour leurs données, donc :
# Sur prod-portainer (ancien)
docker stop $(docker ps -q)
# Sur docker-prod (nouveau)
cd /mnt/stock_36to/data/33800-stack/docker/stacks/
docker compose -f redis-prod/docker-compose.yml up -d
docker compose -f supabase-prod/docker-compose.yml up -d
# etc.
# Supprimer Docker (les données sont sur NFS)
systemctl stop docker
apt remove -y docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
# Sur pve.local
sudo qm set 206 --name claude
# Sur la VM
sudo hostnamectl set-hostname claude
sudo sed -i 's/prod-portainer/claude/g' /etc/hosts
# Depuis win11, copier vers W: (stock_8to)
robocopy E:\ W:\backup-games /E /Z /MT:8
robocopy I:\ W:\backup-mini /E /Z /MT:8
# etc.
# Sur pve.local
sudo zfs create -V 3T stock_36to/win_storage
# Retirer les disques passthrough
sudo qm set 201 --delete scsi1
sudo qm set 201 --delete scsi3
sudo qm set 201 --delete scsi4
# Ajouter le zvol
sudo qm set 201 --scsi1 /dev/zvol/stock_36to/win_storage
Les 3 SSDs (Samsung, LDLC, Crucial BX500) deviennent disponibles pour d'autres usages.
| Service | Ancienne IP | Nouvelle IP |
|---|---|---|
| Portainer | 192.168.1.11:9443 | 192.168.1.12:9443 |
| Redis | 192.168.1.11:6379 | 192.168.1.12:6379 |
| Supabase API | 192.168.1.11:8200 | 192.168.1.12:8200 |
| Supabase Studio | 192.168.1.11:8201 | 192.168.1.12:8201 |
| HelloCar API | 192.168.1.11:4510 | 192.168.1.12:4510 |
| etc. | ... | ... |
# Sur nginx.local - mettre à jour les configs
sudo sed -i 's/192.168.1.11/192.168.1.12/g' /etc/nginx/sites-available/*-prod*
sudo nginx -t && sudo systemctl reload nginx
| Étape | Durée estimée | Downtime |
|---|---|---|
| 1. Créer VM docker-prod | 30 min | Non |
| 2. Migrer containers | 15 min | Oui (services) |
| 3. Mettre à jour Nginx | 5 min | Non |
| 4. Convertir prod-portainer → claude | 15 min | Non |
| 5. Backup données Windows | 1-2h | Non |
| 6. Créer zvol + reconfigurer win11 | 30 min | Oui (Windows) |
| 7. Restaurer données Windows | 1-2h | Oui (Windows) |
| 8. Documentation | 15 min | Non |
Downtime total services : ~20 min Downtime Windows : 2-4h (backup + restauration)
| Risque | Mitigation |
|---|---|
| Perte données Windows | Backup complet sur stock_8to avant migration |
| Containers ne redémarrent pas | Données sur NFS, images rebuildables |
| Performances zvol vs SSD | zvol sur RAIDZ2 = lecture rapide, écriture correcte |
| IP conflicts | Planifier les IPs avant migration |
Signature utilisateur : Date :