9.3 KiB
Executable File
Procédure de Migration des Containers LXC : prox2 → prox (LVM → ZFS)
Objectif : Migrer les containers LXC de prox2 (192.168.0.95) vers prox (192.168.0.94) sur stockage LVM, puis déplacer leur stockage vers ZFS (rpool/data).
Basé sur : Migration réussie du container 103 (AdGuard).
⚠️ NOTE IMPORTANTE : Stockages déjà configurés sur prox
✅ Les stockages suivants existent déjà sur prox (192.168.0.94) :
local-lvm(119G, lvmthin) sur/dev/sdb- VGpve, thin pooldatapve-zfs(447G, dir) pointant vers/rpool/data(dataset ZFS)
→ Pour les prochaines migrations, SAUTEZ les étapes de création de ces stockages (Étape 1 et Étape 3).
🔍 Vérification rapide des stockages existants
Avant de commencer, vérifiez sur prox (192.168.0.94) :
pvesm status | grep -E 'local-lvm|pve-zfs'
zfs list | grep rpool/data
Si les stockages existent → Passez directement à l'Étape 2 (Migration).
📋 Prérequis
1. Cluster Proxmox fonctionnel
- Les deux nœuds (prox2 et prox) doivent être en cluster et en quorum.
- Vérifier avec :
→ Doit afficher :
pvecm statusQuorateavec les 2 nœuds + Qdevice (Pi3).
2. Stockage local-lvm disponible sur prox
- Un disque supplémentaire (
/dev/sdbdans notre cas) doit être disponible sur prox. - Vérifier avec :
lsblk
3. Stockage ZFS existant sur prox
- Le pool ZFS
rpooldoit exister avec un datasetrpool/data. - Vérifier avec :
zfs list
🚀 Étape 1 : Préparer le stockage LVM sur prox (À SAUTER si déjà configuré)
Objectif : Créer un stockage local-lvm sur prox pour permettre la migration des containers depuis prox2.
⚠️ À SAUTER : Ce stockage existe déjà sur prox (119G sur /dev/sdb).
Commandes à exécuter sur prox (192.168.0.94) *(uniquement si local-lvm n'existe pas) :
# 1. Nettoyer le disque (si partitionné)
wipefs -a /dev/sdb
# 2. Créer un volume physique LVM
pvcreate /dev/sdb
# 3. Créer un volume group (nommé 'pve' pour cohérence avec prox2)
vgcreate pve /dev/sdb
# 4. Créer un thin pool pour les containers
lvcreate -L <TAILLE>G -n data pve --thinpool data
# Exemple pour 119G :
lvcreate -L 119G -n data pve --thinpool data
# 5. Ajouter le stockage dans Proxmox
pvesm add lvmthin local-lvm --vgname pve --thinpool data
# 6. Vérifier le stockage
pvesm status
Résultat attendu :
Name Type Status Total Used Available
local-lvm lvmthin active 119G 0B 119G
🔄 Étape 2 : Migrer un container de prox2 vers prox (sur LVM)
Objectif : Déplacer un container (ex: 103) de prox2 vers prox en conservant le stockage local-lvm.
Commandes à exécuter sur prox2 (192.168.0.95) :
# 1. Arrêter le container (obligatoire pour la migration)
pct stop <CTID>
# Exemple :
pct stop 103
# 2. Lancer la migration vers prox
pct migrate <CTID> prox
# Exemple :
pct migrate 103 prox
# 3. Vérifier la migration sur prox
ssh root@192.168.0.94 "pct list"
Résultat attendu :
- Le container apparaît sur prox avec le stockage
local-lvm. - Statut :
stopped(à redémarrer manuellement).
# 4. Redémarrer le container sur prox
pct start <CTID>
# Exemple :
pct start 103
# 5. Vérifier le statut
pct status <CTID>
⚠️ Problèmes courants :
- Erreur :
storage 'local-lvm' does not exist→ Vérifier quelocal-lvmexiste bien sur prox (Étape 1). - Erreur :
migration aborted→ Vérifier la connectivité réseau entre les nœuds.
💾 Étape 3 : Préparer le stockage ZFS pour les containers sur prox (À SAUTER si déjà configuré)
Objectif : Créer un stockage Proxmox pointant vers le dataset ZFS rpool/data.
⚠️ À SAUTER : Le stockage pve-zfs (pointant vers /rpool/data) existe déjà sur prox.
Commandes à exécuter sur prox (192.168.0.94) *(uniquement si pve-zfs n'existe pas) :
# 1. Vérifier que rpool/data existe et est monté
zfs list
# Doit afficher : rpool/data 96K 443G 96K /rpool/data
# 2. Créer un stockage Proxmox de type 'dir' pointant vers /rpool/data
# (ZFS est monté automatiquement, pas besoin de 'zfs mount')
pvesm add dir pve-zfs --path /rpool/data --content rootdir
# 3. Vérifier le stockage
pvesm status
Résultat attendu :
Name Type Status Total Used Available
pve-zfs dir active 447G 0B 447G
🔀 Étape 4 : Déplacer le container de LVM vers ZFS sur prox
Objectif : Déplacer le stockage du container de local-lvm vers pve-zfs (ZFS).
Commandes à exécuter sur prox (192.168.0.94) :
# 1. Arrêter le container
pct stop <CTID>
# Exemple :
pct stop 103
# 2. Déplacer le volume racine (rootfs) vers pve-zfs
pct move-volume <CTID> rootfs pve-zfs
# Exemple :
pct move-volume 103 rootfs pve-zfs
# 3. Redémarrer le container
pct start <CTID>
# Exemple :
pct start 103
# 4. Vérifier la configuration
pct config <CTID>
Résultat attendu :
rootfs: pve-zfs:103/vm-103-disk-0.raw,size=2G
⚠️ Problèmes courants :
- Erreur :
cannot move volumes of a running container→ Arrêter le container avant. - Erreur :
storage 'rpool/data' contains illegal characters→ Utiliser le stockagepve-zfs(créé à l'Étape 3).
✅ Étape 5 : Vérifications finales
Sur prox :
# 1. Vérifier que le container est en running
pct status <CTID>
# 2. Vérifier le stockage utilisé
pct config <CTID> | grep rootfs
# 3. Vérifier l'IP du container
pct exec <CTID> -- hostname -I
Sur prox2 :
# 1. Vérifier que le container a disparu
pct list
# 2. Nettoyer les anciens volumes (si nécessaire)
# Les anciens volumes sur local-lvm sont marqués comme 'unused' et peuvent être supprimés
pct config <CTID> # Vérifier les entrées 'unusedX'
📊 Exemple complet : Migration du container 103 (AdGuard)
⚠️ Note : Pour le container 103, les stockages n'existaient pas sur prox. Pour les prochains containers (101, 102, 104, 105, 106), les stockages existent déjà → Sautez la partie "Préparation".
Sur prox (192.168.0.94) - Préparation (uniquement pour le premier container) :
# Créer le stockage LVM
wipefs -a /dev/sdb
pvcreate /dev/sdb
vgcreate pve /dev/sdb
lvcreate -L 119G -n data pve --thinpool data
pvesm add lvmthin local-lvm --vgname pve --thinpool data
# Créer le stockage ZFS
pvesm add dir pve-zfs --path /rpool/data --content rootdir
Sur prox2 (192.168.0.95) - Migration :
pct stop 103
pct migrate 103 prox
Sur prox (192.168.0.94) - Déplacement vers ZFS :
pct stop 103
pct move-volume 103 rootfs pve-zfs
pct start 103
Vérification :
pct config 103 | grep rootfs
# → rootfs: pve-zfs:103/vm-103-disk-0.raw,size=2G
pct status 103
# → status: running
⚡ Procédure simplifiée pour les PROCHAINS containers (101, 102, 104, 105, 106)
Les stockages local-lvm et pve-zfs existent déjà sur prox → Sautez les Étapes 1 et 3.
Commandes à exécuter :
# Sur prox2 (192.168.0.95) :
pct stop <CTID>
pct migrate <CTID> prox
# Sur prox (192.168.0.94) :
pct stop <CTID>
pct move-volume <CTID> rootfs pve-zfs
pct start <CTID>
🎯 Résumé des commandes clés
| Action | Commande | Nœud |
|---|---|---|
| Créer LVM | pvcreate /dev/sdb; vgcreate pve /dev/sdb; lvcreate -L 119G -n data pve --thinpool data |
prox |
| Ajouter stockage LVM | pvesm add lvmthin local-lvm --vgname pve --thinpool data |
prox |
| Ajouter stockage ZFS | pvesm add dir pve-zfs --path /rpool/data --content rootdir |
prox |
| Arrêter container | pct stop <CTID> |
prox2 ou prox |
| Migrer container | pct migrate <CTID> prox |
prox2 |
| Déplacer vers ZFS | pct move-volume <CTID> rootfs pve-zfs |
prox |
| Redémarrer container | pct start <CTID> |
prox |
⚠️ Notes importantes
-
Compatibilité : Cette procédure fonctionne pour les containers LXC uniquement. Pour les VMs KVM, utiliser
qm migrate. -
Espace disque : Vérifier que prox a assez d'espace sur
local-lvmetrpool/dataavant migration. -
Cluster : La migration entre nœuds nécessite un cluster Proxmox fonctionnel.
-
Stockage ZFS : Le dataset
rpool/datadoit exister. Si ce n'est pas le cas, le créer avec :zfs create rpool/data -
Nettoyage : Après migration, les anciens volumes sur prox2 (marqués
unusedX) peuvent être supprimés avec :pct set <CTID> --delete unused0