SSD Nodes Learn Hosting plans →
Guides Matt ConnorPar Matt Connor

Qu’est-ce qu’un VPS et à quoi sert-il ?

Un VPS est un serveur privé virtualisé sur du matériel partagé. Découvrez ce que permet l’accès root, comment fonctionne l’isolation et quelles sont ses limites.

Qu’est-ce qu’un VPS ?

Un VPS (serveur privé virtuel) est une partie d’un ordinateur réel situé dans un data center, que vous louez comme s’il s’agissait d’une machine complète vous appartenant. Un logiciel découpe cet ordinateur en plusieurs serveurs indépendants, et vous en attribue un : une quantité de mémoire qui vous est réservée, un espace disque dédié, une adresse IP et un accès administrateur pour installer des logiciels dans les limites de l’offre. Il fonctionne en permanence, et les offres accessibles depuis Internet répondent sur une adresse publique.

Il suffit de prendre les trois mots séparément pour comprendre le produit. Un server est un ordinateur qui reste allumé et répond aux requêtes sur le réseau. Virtual signifie qu’il a été créé par un logiciel. Votre serveur est une partition d’une machine physique plus grande. Private signifie que cette partition vous est réservée. Vos fichiers et les programmes que vous exécutez sont invisibles pour la personne qui loue la partition voisine.

Si vous n’avez jamais eu accès à un compte root, c’est la dernière partie qui compte le plus. Un VPS vous donne un accès administrateur à votre environnement serveur. Ce qui est déjà configuré et ce que vous pouvez modifier dépend de l’image, de la technologie de virtualisation et de l’offre.

Ce que l’hyperviseur découpe et ce qu’il partage

Sur un VPS avec machine virtuelle, le programme qui effectue cette division s’appelle un hyperviseur. Il s’exécute sur la machine physique, appelée l’hôte. Pour chaque client, il fournit un ensemble de matériel simulé : un processeur, une quantité de mémoire, un disque et une carte réseau. Un système d’exploitation est installé sur ce matériel simulé et démarre comme s’il possédait un ordinateur réel. Ce système invité est votre VPS. KVM (kernel-based virtual machine), Xen, VMware ESXi et Microsoft Hyper-V remplissent ce rôle. Les VPS en conteneur, comme OpenVZ, utilisent à la place une couche de virtualisation dans le kernel du système d’exploitation de l’hôte, sans kernel invité distinct.

La mémoire et le disque sont divisés par espace. Le processeur est divisé par temps. Cette différence explique la plupart des comportements qui surprennent ensuite. La mémoire attribuée ne constitue pas automatiquement une réservation de RAM physique : KVM prend en charge le surengagement de mémoire, et l’hôte peut utiliser le swap pour la mémoire des systèmes invités. Votre disque est un fichier ou un volume logique sur le stockage de l’hôte, et il reste le vôtre jusqu’à sa suppression. Vos cœurs virtuels sont des files d’attente vers les cœurs réels de l’hôte, et l’hyperviseur planifie le prochain système invité à exécuter.

Une commande identifie la virtualisation qu’elle peut détecter.

systemd-detect-virt
uname -r

systemd-detect-virt affiche kvm sur un VPS KVM. Cela signifie qu’un hyperviseur complet a démarré un kernel qui vous est propre. La commande affiche lxc ou openvz pour ces technologies de conteneurs : votre serveur est alors une zone isolée dans le système d’exploitation de l’hôte, et le kernel est partagé avec les autres conteneurs de la machine ; container-other signifie qu’un autre environnement de conteneur a été détecté. Elle affiche none lorsqu’aucune virtualisation n’est détectée. Cette différence a des conséquences concrètes, car un kernel partagé est un kernel que vous ne pouvez pas modifier. Dans un conteneur utilisant un kernel partagé, le chargement de modules est contrôlé par l’hôte. Une fonctionnalité du kernel comme le module VPN WireGuard nécessite donc la prise en charge par l’hôte. Dans un conteneur utilisant un kernel partagé, uname -r affiche normalement la release du kernel de l’hôte, mais les runtimes de conteneurs diffèrent : gVisor exécute les conteneurs sans partager le kernel de l’hôte, et son exemple officiel affiche 5.15.0-gvisor. Sur un serveur KVM, la même commande affiche un kernel installé dans votre propre système invité. Vous le mettez à niveau ou le remplacez comme sur n’importe quelle autre machine.

Que signifie « virtuel » ici ?

Comme le serveur est constitué de logiciels, son provisionnement ne nécessite pas qu’un technicien installe une nouvelle machine physique pour vous. Aucun matériel n’est installé pour vous. Le serveur est créé à partir d’une image modèle. Une reconstruction réinstalle donc un Ubuntu propre, mais efface aussi le contenu actuel du disque. La plupart des interfaces des fournisseurs peuvent également créer un snapshot du disque avant une opération risquée, redimensionner l’offre avec un redémarrage et déplacer votre machine virtuelle vers un autre matériel lorsque l’hôte sous-jacent doit faire l’objet d’une intervention.

Le prix découle du même principe : une seule machine physique est payée simultanément par plusieurs clients. C’est pourquoi le prix d’un VPS diffère de celui de la location d’un serveur entier.

Le coût est directement lié à l’avantage. Le matériel sous-jacent est partagé. Un voisin qui consomme beaucoup de ressources devient donc aussi votre problème. La section consacrée aux limites ci-dessous contient la commande qui permet de le mesurer.

Que signifie « privé » ici ?

Privé signifie isolé. Il est utile de préciser jusqu’à quel point. Vous disposez de votre propre système de fichiers root, de vos propres comptes utilisateur et de votre propre liste de processus. Un VPS basé sur une machine virtuelle dispose également de son propre kernel, tandis qu’un conteneur OpenVZ partage le kernel de l’hôte. Un autre client du même hôte ne peut pas lister vos processus ni lire vos fichiers, car son guest n’a aucun accès à votre mémoire ni à votre disque virtuel. Les machines virtuelles exécutent des systèmes d’exploitation distincts, tandis que les conteneurs à kernel partagé isolent leurs utilisateurs et leurs programmes au sein d’un même système d’exploitation. Cette confidentialité s’arrête toutefois au niveau de l’hôte : la personne qui administre l’hyperviseur peut lire la mémoire de votre guest quand elle le souhaite. Pour supprimer cette dernière limite, il faut utiliser le matériel de chiffrement de la mémoire décrit dans le confidential computing sur un VPS.

L’hébergement mutualisé fonctionne à l’inverse. Vous disposez d’un répertoire sur une machine qui héberge des centaines d’autres sites web, d’un panneau de contrôle et des logiciels que le fournisseur a choisi d’installer. Il n’y a pas de apt install dans ce cas, car l’installation d’un paquet modifie toute la machine, et cette machine ne vous appartient pas. Hébergement mutualisé ou VPS décrit ce compromis en détail. En résumé : l’hébergement mutualisé vous loue un compte, tandis qu’un VPS vous loue un ordinateur.

Une fiche technique de VPS, ligne par ligne

Chaque VPS est vendu avec une courte liste de chiffres. Voici une offre milieu de gamme à titre d’exemple, utilisée dans la suite. Ces valeurs sont indicatives. Elles ne constituent ni un devis ni une étude de marché datée.

GraphiqueAn illustrative mid-range VPS plan
Les données de ce graphique
[
  {
    "plan": "Example mid-range VPS",
    "vcpu_cores": 4,
    "ram_gb": 16,
    "nvme_gb": 160,
    "bandwidth_tb": 8,
    "ipv4_addresses": 1
  }
]

Cette seule ligne décrit tout le produit. Lisez-la de gauche à droite.

4 vCPU. Un vCPU (unité centrale virtuelle) est un processeur virtuel que l’hyperviseur planifie sur les processeurs de l’hôte. Sauf mention d’une ressource dédiée, il s’agit d’une part de ce thread et non d’une réservation. Dans le serveur, nproc affiche normalement 4. Il compte les processeurs disponibles pour le processus courant. L’affinité CPU et les quotas CPU cgroup pris en charge peuvent réduire ce nombre, tandis que OMP_NUM_THREADS et OMP_THREAD_LIMIT définissent respectivement ses valeurs minimale et maximale, et que nproc --all compte tous les processeurs installés. lscpu affiche un nom de modèle qui peut correspondre au véritable CPU de l’hôte ou à un modèle QEMU générique, selon la configuration de l’hôte.

16 Go de RAM. L’offre spécifie une allocation ou une limite mémoire, mais cela ne garantit pas à lui seul la réservation de RAM physique sur l’hôte. free -h indique la mémoire utilisable en unités binaires, en excluant le kernel et les régions mémoire réservées. Comparez donc les unités GB ou GiB du fournisseur avant d’évaluer l’écart. La mémoire supplémentaire au-delà de votre allocation dépend de l’offre et de la configuration de la virtualisation.

160 Go de NVMe. NVMe (non-volatile memory express) désigne le mode de connexion du disque à l’intérieur de l’hôte. Il est bien plus rapide que les SSD SATA utilisés par les anciennes offres. Votre part apparaît comme un disque virtuel, généralement /dev/vda avec KVM. df -h / indique la taille du système de fichiers racine en unités binaires. Sa taille affichée diffère donc de celle d’un disque annoncé en Go décimaux. Elle exclut aussi l’espace utilisé par les autres partitions et les métadonnées du système de fichiers. L’espace disponible est encore inférieur, car ext4 réserve par défaut 5 pour cent du système de fichiers à root. Ce que signifie réellement le SSD d’un VPS avec SSD et comment vérifier le disque qui vous a été vendu vont plus loin.

8 To de transfert. Il s’agit du volume de données transférées chaque mois, généralement comptabilisé uniquement en sortie. Ce volume est distinct du débit du port, qui est indiqué séparément dans l’offre. Le dépassement du quota entraîne une facturation ou une limitation du débit selon le fournisseur. Lisez donc cette ligne avant d’héberger des vidéos. sudo apt install vnstat vous fournit votre propre compteur avec vnstat -m, à partir du jour où vous l’installez.

1 adresse IPv4. Cette adresse vous est attribuée pendant toute la durée de la location du serveur. Vous pouvez y faire pointer un domaine et accepter le trafic sur les ports autorisés par votre firewall et la politique réseau du fournisseur. Les paramètres de reverse DNS dépendent également du fournisseur. Les offres très bon marché placent parfois de nombreux clients derrière une même adresse partagée. On parle alors de VPS NAT, et ip -4 addr show indique une adresse privée telle que 10.0.0.5. Les ports entrants sont alors limités.

Quatre commandes permettent de confirmer ce qui vous a été fourni.

nproc
free -h
df -h /
ip -4 addr show

Si l’une de ces valeurs diffère de la fiche technique au-delà de l’arrondi décrit ci-dessus, ouvrez un ticket auprès du support avant de déployer quoi que ce soit sur la machine.

Ce que signifie concrètement l’accès root

Root est le compte administrateur sous Linux et son identifiant utilisateur est 0. Exécutez id -u : 0 s’affiche si vous êtes root. Root peut installer des paquets pour tout le système, ouvrir des ports inférieurs à 1024 (par défaut, le kernel les réserve à root ou aux processus dotés de CAP_NET_BIND_SERVICE ; un processus non root disposant de cette capacité peut donc écouter sur le port 80 sans réduire net.ipv4.ip_unprivileged_port_start), lire et modifier les fichiers système, et détruire le système avec une commande imprudente ; le chargement de modules et le remplacement du kernel nécessitent le contrôle du kernel, ce que les conteneurs à kernel partagé ne permettent pas. Personne ne peut annuler cela à votre place.

La différence concrète est simple. Sur un hébergement mutualisé, vous ouvrez un ticket auprès du support pour demander un logiciel. Sur un VPS, vous exécutez ceci.

sudo apt update
sudo apt install -y nginx
systemctl status nginx

Sur une image Ubuntu utilisant systemd, systemctl status nginx doit afficher active (running) après l’installation. L’adresse IP du serveur doit afficher la page nginx par défaut dans un navigateur si le port 80 est accessible. Si l’état affiche failed, exécutez journalctl -u nginx -n 50 et lisez les dernières lignes, car le service indique pourquoi il a refusé de démarrer. Les causes habituelles sont une faute de frappe dans un fichier de configuration ou un autre programme qui écoute déjà sur le port 80.

Root constitue également toute votre frontière de sécurité. L’accès passe par la méthode de connexion configurée pour le serveur, par exemple une clé SSH ou un mot de passe. La première session sur un nouveau serveur n’est pas le moment d’installer des applications. Créez un utilisateur ordinaire, remplacez la connexion par une clé SSH et placez un firewall devant les ports. Les dix premières minutes sur un nouveau VPS présente cette checklist dans l’ordre, Les bases des clés SSH traite de la connexion elle-même, Les bases du firewall ufw traite des ports et Les utilisateurs avec le principe du moindre privilège explique sous quel compte vos services doivent ensuite s’exécuter. Surveillez les journaux du service SSH avec journalctl -u ssh -f pour repérer les tentatives de connexion.

Quelles sont les limites d’un VPS ?

Le processeur est partagé, et vous pouvez mesurer ce partage. Le steal time correspond à la durée pendant laquelle votre CPU virtuel était prêt à s’exécuter, mais n’a rien obtenu parce que l’hyperviseur a attribué le cœur physique à un autre guest.

vmstat 1 5

La colonne st indique le steal time. De brèves pointes de steal time sont normales sur les hôtes partagés. Une valeur stable à deux chiffres alors que vos propres processus sont inactifs indique généralement que l’hôte est en surallocation. Aucun réglage effectué dans votre serveur ne pourra corriger cela, car l’attente se produit en dehors de votre serveur. Hostinger distingue le CPU steal de son système de crédits CPU. Sa politique de crédits rétablit la pleine capacité lorsque l’utilisation baisse et que les crédits remontent jusqu’au seuil de récupération. Consultez la politique CPU de votre offre avant d’accuser les autres utilisateurs. Analyser correctement les performances d’un VPS explique comment le démontrer avant de contacter le fournisseur. Le steal est fourni par les guests KVM et Xen. Dans les conteneurs, la valeur rapportée dépend de la manière dont les statistiques CPU sont exposées et ne mesure pas de façon fiable la limitation CPU du conteneur.

La mémoire est fixe, et la limite est brutale. Lorsque la mémoire est épuisée et que la récupération ne peut pas libérer suffisamment d’espace, le tueur OOM (out of memory) du kernel sélectionne un processus et le termine avec SIGKILL.

sudo dmesg -T | grep -i "out of memory"

Une seule ligne explique une interruption qui semblerait sinon mystérieuse :

Out of memory: Killed process 2412 (mysqld) total-vm:2183104kB, anon-rss:1897224kB, file-rss:0kB

Le journal de l’application ne contient généralement rien, car SIGKILL ne laisse au processus aucune possibilité d’écrire quoi que ce soit. Consultez le journal du kernel pour connaître la cause. L’accès d’un conteneur à ce journal dépend de la configuration de l’hôte. Vérifiez si le swap est configuré avant d’ajouter un fichier swap, et consultez les règles de l’hôte pour un VPS avec conteneur.

Le disque est rapide et il est partagé. Le NVMe de l’hôte est rapide, mais votre part des opérations d’entrée-sortie est en concurrence avec celle de tous les autres guests. Un benchmark réalisé à une heure creuse ne garantit pas les mêmes performances sur la même machine en période de pointe.

Le matériel ne vous appartient pas. Vous ne pouvez rien y brancher. Aucun périphérique USB, aucune carte de capture et aucune carte graphique, sauf si l’offre prévoit explicitement un passthrough. Il s’agit alors d’un produit distinct : un VPS avec un GPU.

Il n’y en a qu’un seul. Un VPS est une seule machine. Une panne de l’hôte peut mettre votre serveur hors service. La migration ou le redémarrage sur un autre hôte dépend du service proposé par le fournisseur. Le failover de l’application doit malgré tout être configuré. Les sauvegardes sont sous votre responsabilité. Les sauvegardes restic depuis un VPS doivent donc figurer dans la liste de configuration. Un snapshot fourni par le fournisseur est pratique, mais sa protection dépend de l’endroit où il est stocké et de sa durée de conservation. Conservez également une sauvegarde indépendante.

Le support s’arrête à l’hyperviseur. Avec une offre non gérée, le fournisseur maintient le matériel, le réseau et la couche de virtualisation en bon état. Tout ce qui concerne le système d’exploitation et les couches supérieures relève de votre responsabilité, y compris les mises à jour de sécurité. Hébergement managed et unmanaged précise cette limite, et les mises à niveau unattended sur Ubuntu est la mesure minimale utile à activer.

Comparaison entre un VPS et les notions avec lesquelles il est souvent confondu

Une machine virtuelle est un invité qui dispose de matériel virtualisé et de son propre noyau de système d’exploitation. Un VPS est un service de serveur loué, fourni sous la forme d’une machine virtuelle ou d’un conteneur, généralement avec une adresse publique et un réseau déjà configuré. Un VPC (cloud privé virtuel) est un réseau privé au sein d’un cloud plus vaste, dans lequel résident les serveurs. Il répond donc à une question complètement différente. VPS, machine virtuelle et VPC distingue correctement ces trois notions.

Un serveur dédié est la machine physique entière qui vous est réservée. Aucun invité d’un autre client ne la partage. Vous pouvez y installer vous-même un hyperviseur. Cette solution devient pertinente lorsque le steal time ou la contention sur le disque constitue votre véritable goulot d’étranglement. VPS et serveur dédié présente les critères à prendre en compte.

Un VPN (réseau privé virtuel) partage deux lettres avec VPS, mais rien d’autre. Un VPN est un tunnel chiffré entre des machines. Un VPS est une machine. Il sert notamment à exécuter votre propre VPN, ce qui explique la confusion. VPS et VPN clarifie la différence entre ces deux termes.

Du matériel dont vous êtes propriétaire, ou un hyperviseur tel que Proxmox installé sur une machine chez vous, vous donne le contrôle du matériel et une connexion résidentielle que de nombreux services traitent avec méfiance. Vous disposez également de l’hôte lui-même. Un invité peut donc exécuter son propre hyperviseur une fois que vous avez activé la virtualisation imbriquée dans Proxmox, à condition que le VPS loué prenne lui aussi explicitement cette fonctionnalité en charge. Proxmox et VPS met en balance la puissance, le bruit et la disponibilité avec un abonnement mensuel.

Que peut-on faire tourner sur un VPS ?

La réponse honnête est la suivante : des logiciels compatibles avec le système d’exploitation, l’architecture et les ressources du VPS, ainsi qu’avec les règles du fournisseur. Les usages courants sont un site web avec sa base de données, un VPN privé, un serveur de jeu, un outil de surveillance de l’état des services, un serveur de messagerie, une bibliothèque multimédia ou un agent de développement qui continue à fonctionner lorsque votre ordinateur portable est fermé. Pour la messagerie, vérifiez d’abord la politique du fournisseur : DigitalOcean, par exemple, bloque par défaut les ports SMTP 25, 465 et 587 sur les Droplets. Les services réseau écoutent sur des ports. Ce qu’est un port sous Linux est donc le prochain concept à apprendre, et ce que vous pouvez faire avec un VPS présente une liste plus complète ainsi que le coût en ressources de chaque usage.

FAQ

Un VPS est-il la même chose qu’une machine virtuelle ?

Un VPS est un serveur qu’une entreprise vous loue, avec un système d’exploitation, généralement une adresse IP publique et un prix associé. Il peut s’agir d’une machine virtuelle avec son propre kernel, ou d’un conteneur tel qu’un VPS OpenVZ qui partage le kernel de l’hôte. Ces termes ne désignent pas la même chose : « machine virtuelle » décrit tout environnement invité exécuté sur un hyperviseur, y compris sur votre propre ordinateur portable, tandis que « VPS » désigne le produit que vous achetez. Un VPC est encore autre chose : un réseau privé au sein d’un fournisseur cloud, et non un serveur.

Dois-je connaître Linux pour utiliser un VPS ?

Vous devez en connaître un peu, et vous pouvez apprendre le reste au fur et à mesure. Les bases consistent à vous connecter avec ssh, à vous déplacer avec cd et ls, à modifier un fichier avec nano, à installer des logiciels avec apt et à consulter les journaux avec journalctl. Un VPS non managé suppose que vous gériez vous-même les mises à jour et le firewall. Si cela dépasse ce que vous souhaitez faire, comparez le prix et les responsabilités d’une offre managée ou d’un control panel.

Pourquoi mon VPS affiche-t-il moins de RAM que ce que prévoit l’offre ?

Linux indique la mémoire utilisable, tandis que l’offre annonce la mémoire allouée. L’image du kernel et plusieurs zones de mémoire réservées sont soustraites avant le calcul du total dans free -h ; ses unités binaires diffèrent également des Go décimaux. Vérifiez donc les unités utilisées par le fournisseur. Comparez l’allocation, les unités et la mémoire réservée avant de juger l’écart. Une différence inexpliquée justifie l’ouverture d’un ticket auprès du support.

Qu’est-ce que le steal time et dois-je m’en préoccuper ?

Le steal time est le pourcentage de temps pendant lequel votre CPU virtuel était prêt à s’exécuter, mais a dû attendre parce que l’hyperviseur avait attribué le cœur physique à un autre environnement invité. La colonne st de vmstat 1 l’affiche. De brèves pointes de steal time sont possibles sur du matériel partagé. Une valeur durable à deux chiffres alors que votre propre charge est faible indique généralement une surallocation de l’hôte physique. La solution consiste à utiliser un autre hôte ou une autre offre, car rien à l’intérieur de votre serveur ne contrôle l’ordonnanceur de l’hôte. Les plafonds d’utilisation du CPU limitent également les performances, et le rétablissement suit la politique du fournisseur, notamment la reconstitution des crédits CPU lorsque cela est nécessaire.

Puis-je exécuter plusieurs services sur un même VPS ?

Oui. C’est l’intérêt de disposer de root : la machine est polyvalente, et les services coexistent tant qu’ils tiennent en mémoire et que chacun écoute sur son propre port. La mémoire est généralement la première limite que vous rencontrez, et la vitesse du disque la deuxième. La messagerie constitue l’exception délicate, car la distribution dépend de la réputation de votre adresse IP et de la politique SMTP du fournisseur, en plus du serveur de messagerie lui-même.

Cet article vous a-t-il été utile ?