Bonsoir,

Ce n'est pas du KVM ni du Xen, mais as-tu regardé systemd-nspawn ?
Ça me semble correspondre à ton besoin. Il a remplacé LXC depuis quelques temps sur mes serveurs perso, et c'est pareil en plus simple à l'usage.

Par rapport à tes contraintes :

  1. Tu peux utiliser un LV par conteneur, ou un subvolume btrfs (cloner un conteneur devient juste faire un snapshot rw du subvolume et copier un fichier de conf).
  2. La gestion du réseau est automatique. Tu peux définir une zone dans la section "[Network]" du fichier de configuration ("Zone=public" par exemple créera un bridge nommé "vz-public" sur le host).
  3. C'est du conteneur, donc tout tourne sur le noyau de l'hôte, comme avec LXC.
  4. Il gère la règle snat pour sortir tout seul, les interfaces sont en DHCP est par défaut (mais tu peux configurer des IP fixes si tu préfères t'embêter).

Autres éléments :

Globalement, ça ne fait "que" gérer des cgroups pour isoler les ressources.

Sylvain

Le 13/11/2020 à 19:15, Daniel Caillibaud a écrit :
Bonjour,

Je vous lis depuis qq temps mais c'est mon premier post ici, bonjour tout
le monde !

Sur un host debian devant héberger des vms debian, je cherche un
orchestrateur kvm en cli me permettant :
1) chaque vm dans son lv, avec ce lv montable sur le host
2) conf réseau permettant de définir une (ou deux) interface dans la vm
   sur le (ou les) bridges du host (un public et un privé, la plupart
   des vms n'ont pas d'ip publique)
3) si possible pas de grub dans la vm, on la démarre avec noyau/initrd du
   host
4) pas de nat (sauf snat pour que les vm privées puissent sortir sur
   internet), ni dhcp, ni dnsmask, ni autre fioriture. Pas besoin de HA (ni
   drbd ni ceph)

J'ai testé, plus ou moins rapidement

- libvirt+virsh : man virsh fait un peu peur, galère pour arriver à booter
  une première VM et s'y connecter, pas réussi à configurer le réseau
  proprement

- ganeti : leur système de hook debootstrap semble sympa, mais idem, je
  suis resté comme un idiot sur la conf réseau.

- proxmox : la doc est pas mal, commandes cli claires, j'ai une vm qui boot
  mais je réalise qu'avec un storage lvm-thin je peux pas monter son
  filesystem sur le host, je me suis arrêté là.

Le montage du lvm sur le host, c'est ce qui me permet du backup incrémental
avec plein de snapshots sur le serveur de backup (j-1, j-2, …,
month-12, merci btrfs), ne pas avoir ça serait une vraie galère (doubler
toute la procédure de backup/snapshots, car j'ai encore des hosts en
stretch/lxc2).

Si c'est plus simple avec xen plutôt que kvm, why not, mais j'ai pas
l'impression que j'arriverai mieux à mes fins…

Je suis donc preneur de tout conseil, merci à ceux qui prendront un peu de
temps pour en donner !



PS: un peu plus d'infos sur le contexte

J'utilise depuis pas mal d'années lxc en cli (vm debian sur host debian),
tout marchait très bien
- un lv par vm
- création de vm simple avec
  - pour le contenu copie de lv ou debootstrap sur un lv vide
  - génération du /var/lib/lxc/lavm/config avec awk (y'a que l'ip qui
    change)
- config réseau très simple avec un bridge sur le host et ip/nic déclarée
  dans la conf de la vm	(en fait deux, br0 pour l'interface
  publique et br1 pour l'interface privée, sur vrack ovh), rien à modifier
  dans la vm (le host crée un nic veth-lavm qui s'appelle veth0 dans la vm
  et a la bonne ip)

Mais depuis buster et lxc3, les choses se compliquent, y'a plein de
services qui déconnent à cause de la nouvelle gestion des cgroup par
systemd, et d'après mes lectures (nombreuses), pas tellement d'espoir, ma
façon de faire avec un linux complet dans un conteneur n'est plus tellement
dans l'esprit de lxc, le seul moyen d'y parvenir à peu près est de faire
sauter pas mal d'isolations, lxc servirait alors plus à grand chose, autant
tout faire tourner sur le host directement.