Présentation de TinyKVM pour la virtualisation au niveau des processus individuels

L'entreprise Varnish Software, qui développe des systÚmes pour la mise en place de réseaux de livraison et de mise en cache de contenu, a présenté le projet open source TinyKVM, qui développe des outils pour l'isolation de l'exécution de processus individuels à l'aide de l'hyperviseur KVM. L'objectif du projet est de créer le systÚme de sandboxing d'isolement des processus le plus rapide, utilisant la virtualisation matérielle. Le code du projet est écrit en C et C++, et est distribué sous la licence GPLv3 (pour ceux qui ne peuvent pas se conformer aux exigences de la GPLv3, une licence commerciale est disponible).

TinyKVM est conçu pour le lancement isolĂ© de n'importe quel programme en ligne de commande pour Linux avec des performances proches de l'exĂ©cution ordinaire. Les frais gĂ©nĂ©raux pour chaque appel systĂšme s'Ă©lĂšvent Ă  environ 2 microsecondes. Comme exemple d'application du projet, on mentionne l'isolation supplĂ©mentaire des processus dans les systĂšmes de mise en cache et de traitement des requĂȘtes web. TinyKVM est dĂ©veloppĂ© pour remplacer l'Ă©mulateur libriscv, utilisĂ© pour isoler le traitement de chaque requĂȘte web dans la plateforme Varnish. De plus, une variante de la bibliothĂšque libvmod a Ă©tĂ© créée, permettant l'exĂ©cution de modules pour Varnish en utilisant TinyKVM.

Présentation de TinyKVM pour la virtualisation au niveau des processus individuelsPrésentation de TinyKVM pour la virtualisation au niveau des processus individuels

Lors de l'exécution via TinyKVM, le code machine des programmes s'exécute sans couches d'émulation sur le CPU et est limité via l'API de l'hyperviseur KVM, ce qui permet d'éliminer les frais généraux et d'atteindre des performances proches de l'exécution sans virtualisation. Les principales fonctionnalités de TinyKVM :

  • Limitation du temps maximal d'exĂ©cution. Un programme peut ĂȘtre arrĂȘtĂ© de force aprĂšs l'expiration du dĂ©lai, sans appel aux gestionnaires de signaux et aux threads.
  • Limitation de la consommation de mĂ©moire.
  • PossibilitĂ© de forker des instances non initialisĂ©es machines virtuelles Ă  partir d'une instance initialisĂ©e d'un programme isolĂ©. Des copies de machines virtuelles sont créées en mode copy-on-write, ce qui permet d'Ă©conomiser considĂ©rablement de la mĂ©moire en ne conservant qu'une seule instance de donnĂ©es communes.
  • Les processus dĂ©rivĂ©s peuvent ĂȘtre rĂ©initialisĂ©s Ă  leur Ă©tat prĂ©cĂ©dent (par exemple, un gestionnaire de requĂȘtes http dĂ©rivĂ© peut revenir Ă  son Ă©tat initial aprĂšs le traitement de chaque requĂȘte sans redĂ©marrage). Une instance de processus isolĂ© peut Ă©galement ĂȘtre rĂ©initialisĂ©e Ă  l'Ă©tat d'une autre machine virtuelle, et non celle dont elle a Ă©tĂ© dĂ©rivĂ©e, mais les coĂ»ts seront plus Ă©levĂ©s dans ce cas, car cela nĂ©cessitera une modification de la table des pages mĂ©moire.
  • La possibilitĂ© de crĂ©er des pages mĂ©moire statiques lors de l'initialisation, mĂȘme adaptĂ©es aux environnements d'exĂ©cution sophistiquĂ©s, comme dans le langage Go. Dans ce cas, des modifications ne sont autorisĂ©es que pour les pages en mode copy-on-write.
  • Prise en charge du dĂ©bogage Ă  distance Ă  l'aide de GDB. Un dĂ©bogage Ă  chaud est possible avec reprise de l'exĂ©cution.

L'environnement d'hébergement TinyKVM forme un noyau réduit, protégé contre les modifications, construit avec une protection des pages mémoire et utilisant SMAP (Supervisor Mode Access Prevention) et SMEP (Supervisor Mode Execution Prevention) pour une isolation supplémentaire entre le noyau et l'espace utilisateur. TinyKVM utilise de grandes pages mémoire (hugepage) pour améliorer les performances. Les appels systÚme invoqués par les programmes sont interceptés par l'émulateur et redirigés vers l'environnement hÎte (le délai de traitement et de traduction de l'appel émulé est d'environ 2 microsecondes). Dans celui-ci, une machine virtuelle aucuns pilotes, entrées/sorties ou dispositifs virtuels ne sont utilisés.

Présentation de TinyKVM pour la virtualisation au niveau des processus individuels


Source : opennet.ru
Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster