Hébergement avec Proxmox

Bonjour à tous,

Je décide de modifier mon hébergement en utilisant Proxmox.

Actuellement, je propose mes services via la location de VM auprès de différents hébergeurs (OVH, Online, Gandi).
Mais je commence en avoir pas mal (5 actuellement) et le coùt commence à ne pas être négligeable.

Je prévois donc de partir sur louer des serveurs physiques et de le couper moi-même en VM avec Proxmox.
Je vais commencer par 1 premier où je déplacerais quelques VM et dans un second temps j’en louerais un deuxième (chez un autre fournisseur, histoire de pas mêtre tout ces oeufs dans le même panier) pour y migrer les autres.
Je pense quand même que je garderais au final 1 VM : celle qui me sert de serveur SMTP afin qu’elle devienne un relai MTA SMTP chaude (voir SM2TP : GT mutualisation SMTP).
A noter que cela me permettra aussi de proposer d’autres services, comme la fourniture d’une VM dédiée sous Yunohost à certain de mes clients.

Je commence à monter en compétence sur Proxmox en l’ayant installer sur un petit serveur en auto-hébergement pour y migrer tout ma mécanique de sauvegarde.

Néanmoins, je suis intéressé pour avoir tout plein de retour de CHATONS ayant déjà réaliser ce genre de manipulation.
Que me conseillez vous ?

  • Taille du serveur physique host
  • Taille max/min des VM (ou contrainte)
  • Plutôt des VM ou des LXC
  • Gestion des IP externe
  • Backup
  • Règles et contraintes à prévoir

En tout cas, merci de partager votre expérience sur le sujet.
Je ne manquerais pas de faire une REX sur ce petit chantier, pourquoi pas au prochain camp CHATONS 2025 (qui se tiendra du jeudi 07/08/2025 au lundi 11/08/2025 - pub en passant)

Merci à tous d’avance de vos idées et conseils.

2 « J'aime »

Salut Laurent,

Dimensionnement

Pour la taille du serveur, ben ça dépend du nombre de VPS, quelle charge ces VPS doivent encaisser (genre 1vcpu suffit ou il en faut 8), de la ram (en pensant à laisser 1Go de ram par terra de stockage zfs), du stockage nécessaire, etc.

Chez ARN on se demande si à nombre de VPS égale, il vaut pas mieux mettre 2 vcpu minimum plutôt qu’un seul.

Pour l’instant, on estime pourvoir aller jusqu’à un ratio de 1 thread = 2vcpu. (on est sur des processeurs xeon)

Type de stockage

Je suggère d’utiliser zfs en raid10 pour:

  • faciliter les snapshot
  • avoir de meilleurs IO
  • avoir une tolérance de panne de disque correcte (si tu as un spare dedans)
  • pouvoir utiliser les fonctionnalités de push.

Sinon, j’aurais bien testé btrfs (hors raid5 ou raid6), chez yuno on discute de fonctionnalités sur les FS avec btrfs plutôt que zfs.

VM vs LXC

LXC = moins de ressources nécessaire (donc plus écolo)
VM = plus de sécurité (meilleure isolation), système pouvant être vraiment différent de l’hôte

IPv4

Pour la partie IP, si tu n’as pas assez d’IPv4 publique à dispo, il faudra faire des reverse proxy à partir de l’hôte ou d’une VM (à noter que YunoHost sait faire ça maintenant).

J’ai pas d’expérience avec les IPAM et la répartition d’IP dans proxmox, car chez ARN, on migre depuis Ganeti et ça a influencé la config réseau: on voulait ne pas avoir à changer la config réseau des VPS qui sont sur des os différents (genre openbsd ou du chiffré).

En mode cluster ?

Proxmox permet la redondance des noeuds, mais sauf si je dis une bêtise, il faut que les serveurs soient proches (latence faible), idéalement dans un vlan.

Dans ce cas il faudra aussi synchronisé certains contenus nécessaire à la création de vm (image cloudinit, hook, etc.). Nous on fait ça avec un bête rsync sur chaque nœud.

Backup

Le proxmox backup a bonne réputation et permet de fouiller facilement pour retrouver un fichier

Cloudinit

Pour info, cloud init permet de configurer divers éléments de la VM, l’interface proxmox ne va pas aussi loin que ce que peut faire cloudinit. Mais on peut aller plus loin en ligne de commande.

Il y a une image cloudinit yunohost 12 dispo.

J’espère que ça t’aide.
A+,
ljf

3 « J'aime »

Chez katzei on est en full vm avec proxmox. On utilise Debian pour nos VM (ça a une influence). A l’origine une « unité » de vm¹ était:

  • 1vcpu¹
  • 1Go de RAM

A partir de debian 11 ( de mémoire) 1Go de RAM commençait a ne pas faire beaucoup pour les grosses maj (genre changement de version mineur de debian) du coup on est passé a 2go/vm minimum.

Après comme dit ljf ça dépend beaucoup des services, bitwarden (vaultwarden en réalité) tourne sur une patate et est très large avec 1vcpu, 2go de RAM et 32Go de ssd alors que Nextcloud est parfois a l’étroit avec 8Go de RAM et 2vcpu.

D’expérience le limitant sur les VM c’est plus la RAM, actuellement (en comptant des services perso hors katzei qui tournent sur le même hyperviseur) on utilise environ 20Go de RAM et la charge tourne autour de 4% du cpu (avec des pics a 40% dans certains cas extrêmes genre maj simultanée de plusieurs vm, ou les calculs/compressions pour les backups).

¹ ce sur quoi je me basait pour savoir si on risquait d’être a l’étroit dans notre infra ou pas. On essayait de rester sur des multiples de cette unité

² le CPU est un R7-2700 donc niveau perfs c’est pas fou selon les standards actuels

edit j’ai pas répondu pour les IP: chez nous c’est tres simple, on est auto-hébergés sur une unique ipv4 publique (techniquement 2 puisqu’on a 2 sites) et on travail avec du revese proxy. Pour les ip privé on laisse le DHCP du réseau nous en attribuer avant de les fixer. En ipv6 publique chaque vm a son range donné par le DHCP6 de la box (mais pour l’instant on drop les connexion en ipv6) donc autant dire qu’on ne gere pas nos ip.

1 « J'aime »

Chez nous c’est les cpu. On a 400Go de ram sur les 4 machines.

1 « J'aime »

Pour ajouter à la question VM / LXC :

  • C’est possible de migrer une VM d’un hyperviseur à un autre d’un même cluster sans downtime (juste un freeze de quelques secondes) mais pas les LXC.
  • C’est pas possible de faire tourner du docker dans LXC, puisque ces deux softs utilisent les mêmes technologies de Linux (les cgroups)

Heu . J’ai des lxc sur mon proxmox avec du docker sans problème

Je suis + LXC que VM .

Et concernant le network, toutes mes lxc sont en ipv4. Mon serveur en ipv6 et le reverse proxy s’occupe de transférer les flux vers les lxc.

Mmh, intéressant, je vais refaire des tests alors :eyes:

Au retzien aussi on est Full LXC multi-site sans cluster

Pour un client je m’occupe d’un cluster de 5 proxmox full LXC (sans réplication chaud, juste pour la répartition de charge), ça marche bien pour ce qu’il a besoin d’y faire.

David

Hello Laurent,

La configuration de votre serveur Proxmox dépend vraiment de vos besoins actuels et futurs.

  • Taille du serveur physique host : La taille dépendra des services que vous souhaitez proposer. Par exemple, Nextcloud consomme beaucoup de CPU, tandis qu’un FileSystem ZFS consomme davantage de RAM.

  • Taille max/min des VM : Il n’y a pas vraiment de taille maximale ou minimale fixe pour les VM, cela dépend de ce que vous voulez faire. Avec la possibilité de faire du nesting, si une architecture conteneurisée (Docker/Podman) n’est pas envisageable, une solution de MicroVM comme FireCracker ou Incus peut être envisagée. Elles consomment moins qu’une VM classique et une VM peut en contenir plusieurs.

  • Plutôt des VM ou des LXC : Personnellement, je ne suis pas fan des conteneurs LXC de Proxmox car je les trouve limités par rapport à des solutions comme Podman. J’utilise Podman sur Fedora ou RHEL, ou Docker sur Debian.

  • Gestion des IP externes : Cela dépendra de l’architecture souhaitée et du fournisseur chez qui le serveur est hébergé. J’ai souvent deux IP publiques : une pour Proxmox avec un renforcement sévère des niveaux SSH et HTTP(s), et une autre IP sur une VM qui fait office de routeur, proxy inverse, VPN. Cette configuration est relativement facile à mettre en place, sauf en cas de haute disponibilité dans un cluster avec basculement, où il faut alors un peu de script.

  • Backup : J’utilise des boxes de stockage de mon fournisseur où je stocke les backups de mes VM avec l’option de Proxmox.

  • Règles et contraintes : Il n’y a pas de règles fixes sans connaître l’infrastructure, les besoins et les contraintes spécifiques. Par exemple, les contraintes pour héberger Nextcloud ne sont pas les mêmes que pour héberger VaultWarden.

Le Ceph pour le stockage est pas mal sur proxmox puisqu’il le gère nativement, si et seulement si la connexion est garantit plus de 10Gbps entre les nœuds, autrement c’est trop lent. Et wireguard pour le VPN, ça fonctionne bien.
Si vous avez plusieurs proxmox, avec des VM dessus possèdant des IP publiques que vous voulez lié entre elles, vous pouvez créer un réseau VPN maillé avec Wireguard.

Il faut se dire aussi que proxmox offre la possibilité de déployer une IaC (infra as code) Terraform (OpenTofu) + Ansible et du cloud init pour la conf.

Du coup ca va vraiment dépendre de ce que vous voulez faire, vos attentes et vos contraites.

cordialement

4 « J'aime »

J’en profite pour demander : quel module OpenTofu/Terraform vous utilisez pour Proxmox ?
J’essaie de m’y mettre avec bpg/proxmox, mais j’ai des bugs bloquants pour un cluster Proxmox en version 7.

Coucou, pour ma part mes proxmox sont en mode 8.2 et j’utilise « telmate/proxmox » en version 3.0.1-rc6