
Vous venez de LXD et voulez passer à Incus ? L'outil lxd-to-incus, livré avec Incus, migre toute l'installation en place : instances, images, profils, réseaux et stockage. Ce guide détaille les prérequis, la procédure et surtout les pièges concrets remontés du terrain (version de LXD, mot de passe de confiance, changement de suffixe DNS, downtime) qui font échouer une migration mal préparée. Pour les administrateurs LXD qui basculent.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Les prérequis avant de lancer la migration.
- La procédure
lxd-to-incus. - Les retouches après bascule (groupes, config CLI, DNS).
- Les pièges qui font échouer la migration.
Prérequis
Section intitulée « Prérequis »-
Incus installé mais NON initialisé : n'exécutez pas
incus admin init. L'outil copie lui-même les données et la configuration depuis LXD ; il a seulement besoin que le service Incus soit démarré. -
Une version de LXD au plus
5.21.99: au-delà,lxd-to-incusrefuse de migrer. -
Si vos pools utilisent ZFS, le paquet
zfsutils-linuxdoit être installé (classique du snap LXD). -
core.trust_passworddésactivé côté LXD, sinon la connexion échoue :Fenêtre de terminal lxc config unset core.trust_password
La procédure
Section intitulée « La procédure »Premier piège, avant même de commencer : l'outil lxd-to-incus n'est pas dans le paquet incus. Sur les dépôts Zabbly, il est fourni par le paquet incus-extra. Sans lui, la commande renvoie lxd-to-incus: command not found alors qu'Incus est bien installé :
sudo apt install incus-extrawhich lxd-to-incus # /usr/bin/lxd-to-incusUne fois les prérequis réunis, la migration tient en une commande :
sudo lxd-to-incusL'outil analyse l'installation LXD, vérifie la compatibilité, puis copie les données vers Incus. Il gère aussi les installations LXD en cluster. À la fin, LXD est désactivé au profit d'Incus. Voici la sortie réelle d'une migration d'un LXD 5.0.2 vers un Incus 7.0.0 (une instance webapp à migrer) :
=> Looking for source server==> Detected: .deb package=> Looking for target server==> Detected: systemd=> Checking server versions==> Source version: 5.0.2==> Target version: 7.0.0=> Validating version compatibility=> Checking that the source server isn't empty=> Checking that the target server is empty=> Validating source server configuration=> Stopping the source server=> Stopping the target server=> Wiping the target server=> Migrating the data=> Migrating database=> Writing database patch=> Starting the target server=> Checking the target server=> Uninstalling the source serverL'outil refuse de migrer si la cible n'est pas vide (d'où la règle « ne pas initialiser Incus avant ») ou si la source est vide. Après le Uninstalling the source server, le service lxd est inactif et Incus a repris la main.
La vérification confirme que l'instance a bien basculé, en conservant son IP et sa configuration (ici la clé user.role=frontend posée côté LXD) :
incus listincus config get webapp user.role+--------+---------+-----------------------+-----------+| NAME | STATE | IPV4 | TYPE |+--------+---------+-----------------------+-----------+| webapp | RUNNING | 10.181.216.145 (eth0) | CONTAINER |+--------+---------+-----------------------+-----------+
frontendL'instance tourne toujours, avec la même adresse qu'avant la migration : lxd-to-incus a repris le disque, la config et le réseau sans les recréer. Le pool de stockage default (driver dir dans ce lab) est repris tel quel.
Après la migration : les retouches
Section intitulée « Après la migration : les retouches »La bascule terminée, plusieurs éléments ne sont pas migrés automatiquement et demandent une intervention manuelle.
- Groupes système : ré-ajoutez les utilisateurs du groupe
lxddansincus-admin(sudo usermod -aG incus-admin <user>), sinonpermission denied. - Configuration de la CLI : recopiez
~/.config/lxc/(ou~/snap/lxd/common/config/) vers~/.config/incus/pour retrouver vos remotes. - Suffixe DNS : le bridge
lxdbr0persiste, mais le suffixe DNS passe de.lxdà.incus. Tout nom d'hôte en dur (.lxd) dans vos configurations ou scripts est à auditer et corriger.
À retenir
Section intitulée « À retenir »- L'outil
lxd-to-incusvit dans le paquetincus-extra, pasincus: à installer d'abord. - N'initialisez pas Incus avant la migration :
lxd-to-incuss'en charge, il faut juste le service démarré (la cible doit être vide). - LXD doit être en version ≤ 5.21.99,
core.trust_passworddésactivé,zfsutils-linuxprésent pour ZFS. - La migration arrête tout et n'est pas réversible : exportez vos instances critiques d'abord.
- L'outil peut être silencieux sur des échecs : vérifiez l'état réel après.
- Retouches manuelles : groupe
incus-admin, config CLI~/.config/incus/, suffixe DNS.lxd→.incus.
FAQ : questions fréquentes sur la migration LXD vers Incus
Section intitulée « FAQ : questions fréquentes sur la migration LXD vers Incus »L'outil lxd-to-incus
sudo lxd-to-incus
Livré avec Incus, il copie en place instances, images, profils, réseaux et stockage depuis LXD (y compris en cluster).Deux conditions : Incus installé mais NON initialisé (pas de incus admin init), et LXD en version ≤ 5.21.99. Sauvegardez vos instances critiques avant : l'opération arrête tout et n'est pas réversible.Non, Incus doit rester vierge
N'exécutez pasincus admin init avant la migration. L'outil lxd-to-incus copie lui-même les données et la config depuis LXD ; il a seulement besoin que le service Incus soit démarré.Initialiser Incus avant l'empêche de repartir d'un état vierge et fait échouer la migration (notamment s'il ne peut pas supprimer /var/lib/incus).Avant et après
Avant : LXD ≤ 5.21.99,lxc config unset core.trust_password, zfsutils-linux présent pour ZFS.Après (retouches manuelles) :- ré-ajouter les utilisateurs au groupe
incus-admin; - recopier
~/.config/lxc/vers~/.config/incus/; - le suffixe DNS passe de
.lxdà.incus: auditez les noms d'hôtes en dur.
Non, sauvegardez d'abord
La migration n'est pas facilement réversible et arrête toutes les instances le temps de l'opération. Des cas de perte d'instances sur migration interrompue (par exemple par ununattended-upgrades) ont été rapportés.Avant de lancer lxd-to-incus :- exportez vos instances critiques ;
- prévoyez une vraie fenêtre de maintenance.