[LXD/Incus] LXD Project

Bambusa29

Chevalier Jedi
10 Avril 2022
317
143
83
Je me suis acheté en promo un nouveau mini PC avec un CPU N95 et 16Go de Ram pour tester les containers LXD (Linux Containers).

Connaissez vous les Linux Containers ?

C'est en gros une surcouche de LXC qui à l'avantage de pouvoir s'installer facilement au dessus d'une distribution Linux (Debian 12 pour moi). On peut manipuler facilement les containers avec le client ou alors avec un web UI qui peut gérer dans une seule interface plusieurs serveurs LXD (un peu comme Xen Orchestra et les serveurs XCP-ng).
L'import d'un containeur LXC est assez simple à réaliser : On importe simplement l'image d'un dump du containeur LXC.
On retrouve des fonctions de bases comme les snapshot, backup...
J'ai galéré un peu avec la création du pool ZFS, c'est la première fois que j'en utilise un, et dans une partition (pas un disque complet).

J'utilise Incus qui est un fork de LXD (Ecrit en Go) depuis que celui ci est passé Canonical (gérer par Ubuntu). Les commandes sont exactement les mêmes que LXD.
Le serveur est encore en cours de développement (v0.3) mais ca avance assez vite.
Le lancement et l’arrêt des containeurs semble hyper rapide.
Pour l'instant j'ai créé un seul containeur et importé un autre de Proxmox.
Je verrais a terme si je migre mon proxmox vers LXD. Les containeurs sont un peu plus gourmand en mémoire.

incus01.png


J'utilise LXConsole qui est un fork de LXDasboard et qui gère les serveurs LXD et Incus. Il est aussi en cours de développement.

lxconsole01.pnglxconsole02.pnglxconsole03.png
 
  • J'aime
Réactions: EVO
Bonsoir,

Moi, moi je connais ! :)
Ça fait un moment que çà existe LXD: c'est - c'était... - la même équipe qui a développé et maintient LXC. En gros c'est une... «APIsation» des fonctionnalités de LXC oui, qui permet ainsi de définir et d'utiliser les containers avec plus de souplesse et de facilité, y compris à travers le réseau il me semble.

LXD n'est arrivé sur Debian stable qu'avec Bookworm, avant il y avait un bug persistant avec des librairies Go et des dépendances non satisfaites propres à cette distribution, et qui a été réglé avec cette version 12 (çà tourne sur Ubuntu et d'autres distributions depuis le début, bizarrement seul Debian avait un souci, peut-être lié aussi à des problématiques de licences ?).
A mon avis, c'est pour cela que LXD n'est pas intégré à Proxmox, qui s'appuie sur Debian.

LXC et LXD sont des projets Open-Source maintenus par une communauté en effet: et puis (grand classique hélas :mad:), Ubuntu Canonical a décidé il y a peu de ré-internaliser LXD. La communauté s'éloigne donc de ce produit avec un fork appelé Incus: Pour l'instant les deux solutions sont très proches et demeurent encore compatibles, mais çà ne va sans doute pas durer.

Si Proxmox veut rester dans la philosophie Open-Source, je pense que LXD n'y sera jamais intégré - même si supporté désormais sur Debian: peut-être Incus quand il sera plus mûr ... ?

Je pense que je vais pas tarder à me lancer moi aussi, quand je trouverai du temps ;)

Merci, @+

 
Oui j'ai vu que le projet existe depuis longtemps, mais je n'en n'avais jamais entendu parler; je n'utilise plus Ubuntu et je suis sur Debian depuis un bon moment.
J'ai découvert le concept des containeurs avec Docker grâce à OMV, puis LXC via Proxmox.
C'est la chaîne de 'Scotti-BYTE' qui m'a donné envie de me mettre à LXD.

L'import d'image LXC venant de Proxmox dans LXD/Incus est d'une simplicité absolu; j'ai juste besoin de rattacher le bridge de mon LAN au container et tout fonctionne (y) En 3 min chrono le transfert est fait !!
Le client LXD/Incus est très intuitif dans ces commandes et on peut quasiment tout faire !!

Pour l'instant je continu de découvrir mais cela me séduit par la simplicité d'utilisation et la rapidité coté serveur.
 
vous n’auriez pas un lien en français qui explique ce que c’est ? Et comment ça fonctionne ?
J’ai réussi avec bien des galères à comprendre docker et encore superficiellement 😉
 
  • J'aime
Réactions: MilesTEG
  • J'aime
Réactions: Bambusa29
Hello bonsoir,

Quelques liens glanés, ordre chronologique (années des lancements: LXC en 2007 - LXD en 2015), in french...

Ce sont des «introductions» hein...

Bonnes lectures, @+
 
Dernière édition:
  • J'aime
Réactions: Bambusa29
J'avoue avoir galérer un peu pour donner une adresse IP fixe a mon 1er container créer de toute pièce avec LXD. Cela est possible que pour les interfaces réseaux 'manager' (créer par LXD). J’utilise un bridge créé en dehors de LXD sur mon hôte pour relier à mon LAN les containers.

Il faut donc faire la modification dans le container (du debian), dans /etc/systemd/network :D et pas l'habituel /etc/network/interfaces

Toutes mes instances sont sur la pâte "GREEN" de mon firewall en ip fixe.

instances.png
 
Bonjour,

Et bien çà se gatte (j'allais dire «comme prévu»... :mad:): Canonical change la licence LXD

Cela devrait booster Incus... j'espère !
 
  • J'aime
Réactions: Bambusa29
Depuis l'achat de mon Syno DS223J, j'ai migré toutes mes données de mon NAS principale sous OMV vers le Syno qui est en raid.
Je viens de migrer aussi tous les services docker qui était hébergé sur OMV en container LXD, sauf 2 ou 3 que j'ai déplacé sur mon vieux NUC qui est sous OMV7.
J'ai donc passez mon OMV principal sous Incus, ce qui m'en fais 2 maintenant. J'ai des services supplémentaires que je souhaite mettre dans mon LAN et qui seront sur le 2eme Incus (une seule interface avec LXConsole) quand j'aurais le temps :)

J'ai donc voulu aussi migrer mon serveur web applicatif perso sous Django qui gère ajoute une surcouche de sécurité au NAS et qui gère toutes les sauvegardes, mais force est de constater que Web Station et Django (Framework Python) ne font pas bon ménage (ca marche que partiellement) !!

Du coup je suis reparti sur la version originale que j'avais développé en PHP mais sans BD (que des fichiers ini) pour refaire toute la partie gestion BD (sous MariaDB maintenant) et j'en ai profité pour améliorer les fonctionnalités du serveur.

C'est toujours en cours, mais l'essentiel est opérationnel :

L'écran qui me sert le plus : Les rsync via SSH (lancé par le Cron) :

- Connexion SSH par échange de clés avec des alias. Pas de mot de passe et blindage des accès SSH par filtrage d'IP,
- Test intégrité à la source (icone ronde bleu) quand cela est utile, si détection altération -> blocage,
- Verrouillage des destinations avec l 'attribut "immutable" pour le local et distant (icone bouclier noir. j'utilise un user spécial pour gérer l'attribut "immutable" a distance via l’exécution d'une commande ssh)
- Blocage en cas de dépassement des limites de fichiers modifiable (icone verte ou rouge quand le quota est dépassé -> blocage),
- Rsync Pull (obliger pour récupérer ce qui est dans ma DMZ qui n'a pas accès au LAN) ou Push

rSyncSSH.png

Les backup avec Borg :

Les dépôts sont aussi verrouillables (c'est le cas ici) avec l'attribut 'immutable'. Pour l'instant, j'ai mis que ces deux dépôts, les plus importants pour moi.

Borg.png


Les répertoires :

Cela me sert seulement a verrouiller et déverrouiller mes répertoires. Par défaut il sont tous le temps verrouiller. Je déverrouille manuellement au besoin.

Repertoire.png

Il me reste des choses a faire qui n'existait pas avant, peut-être la sauvegarde via rsync des backup des containers LXD qui sont dans un pool Zfs et qui irait donc sur mon DD 4To interne Incus2 qui est en ext4 et qui me sert pour le backup du Syno (les Rsync via SSH).
J'ai quelques scripts de surveillance et maintenance a re-ecrire aussi (avant gestion par fichiers ini -> maintenant mariaDB).

Du boulot en perspective :D
 
Wah, c'est du boulot tout ça !
Chapeau et bravo 👏

Aurais-tu le temps et l'envie de faire un tuto Borg Backup ? J'ai toujours un peu de mal à comprendre comment ça fonctionne et comment mettre ça en place sur différents périphériques...
J'aimerais utiliser borgbackup sur l'asustor (source), et destination le Syno, avec aussi une storage box Hetzner qui supporte Borgbackup je crois.
Et pourquoi pas, remplacer CCC sur mes macs par Vorta ou autre pour sauvegarder les données sur le Syno et peut-être sur Hetzner. (sachant que le Syno utilisera Hyperbackup pour faire ses sauvegardes sur le cloud).
 
Tu as un paquet "borg" dans le syno; c'est celui que j'utilise en le scriptant via l'interface Web. Par contre je ne fais que du local pour le moment. Je rajouterais peut-être un rsync pour copier le backup Borg sur mon serveur Incus qui me sert de Backup (que du rsync via ssh).

Je ferais un petit tuto si tu veux mais pas dans le très court terme. Tu as le tuto sur LinuxTricks qui est bien fait : https://www.linuxtricks.fr/wiki/borg-backup-gerer-ses-backups-sous-linux
 
Dernière édition:
  • J'aime
Réactions: MilesTEG