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

Varnish Software, une sociĂ©tĂ© qui dĂ©veloppe des systĂšmes pour crĂ©er des rĂ©seaux de diffusion et de mise en cache de contenu, a prĂ©sentĂ© le projet open source TinyKVM, qui dĂ©veloppe des outils permettant d'isoler l'exĂ©cution de processus individuels Ă  l'aide de l'hyperviseur KVM. L’objectif dĂ©clarĂ© du projet est de crĂ©er le systĂšme d’isolation sandbox le plus rapide pour les processus individuels Ă  l’aide de 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 sont pas prĂȘts Ă  se conformer aux exigences de la GPLv3, une licence commerciale est fournie).

TinyKVM est conçu pour exĂ©cuter n'importe quel programme console de maniĂšre isolĂ©e. Linux Avec des performances proches de l'exĂ©cution standard, le temps de traitement de chaque appel systĂšme est d'environ 2 microsecondes. L'isolation supplĂ©mentaire des processus dans les systĂšmes de mise en cache et de traitement des requĂȘtes web est citĂ©e en exemple d'application du projet. TinyKVM est conçu pour remplacer l'Ă©mulateur libriscv, utilisĂ© pour isoler le traitement de chaque requĂȘte web sur la plateforme Varnish. Une variante de la bibliothĂšque libvmod a Ă©galement Ă©tĂ© créée, permettant l'exĂ©cution de modules Varnish avec TinyKVM.

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

Lors de l'exĂ©cution avec TinyKVM, le code natif des programmes est exĂ©cutĂ© sans couches d'Ă©mulation sur le processeur et est contraint Ă  l'aide de l'API de l'hyperviseur KVM, Ă©liminant ainsi les frais gĂ©nĂ©raux et obtenant des performances proches de celles de l'exĂ©cution sans virtualisation. Principales caractĂ©ristiques de TinyKVM :

  • Limitation du temps d'exĂ©cution maximal. Le programme peut ĂȘtre arrĂȘtĂ© de force aprĂšs un dĂ©lai d'attente, sans appeler les gestionnaires de signaux et les threads.
  • Limitation de la consommation de mĂ©moire.
  • PossibilitĂ© de crĂ©er des instances non initialisĂ©es machines virtuelles À partir d'une seule instance initialisĂ©e d'un programme isolĂ©, des copies de machines virtuelles sont créées en mode copie Ă  l'Ă©criture, ce qui permet de rĂ©aliser d'importantes Ă©conomies de mĂ©moire en ne stockant qu'une seule copie des donnĂ©es partagĂ©es.
  • Les processus forkĂ©s peuvent ĂȘtre rĂ©initialisĂ©s Ă  un Ă©tat antĂ©rieur (par exemple, un gestionnaire de requĂȘtes http forkĂ© peut ĂȘtre rĂ©initialisĂ© Ă  son Ă©tat d'origine aprĂšs le traitement de chaque requĂȘte sans redĂ©marrage). Une instance de processus isolĂ©e peut Ă©galement ĂȘtre rĂ©initialisĂ©e sur un Ă©tat de machine virtuelle diffĂ©rent de celui Ă  partir duquel elle a Ă©tĂ© dĂ©rivĂ©e, mais la surcharge sera plus Ă©levĂ©e dans ce cas car la table des pages de mĂ©moire devra ĂȘtre modifiĂ©e.
  • La possibilitĂ© de crĂ©er des pages de mĂ©moire statiques lors de l'initialisation, adaptĂ©e mĂȘme aux environnements d'exĂ©cution sophistiquĂ©s tels que le langage Go. Dans ce cas, les modifications ne sont autorisĂ©es que pour les pages en mode copie sur Ă©criture.
  • Prise en charge du dĂ©bogage Ă  distance Ă  l'aide de GDB. Le dĂ©bogage Ă  la volĂ©e avec reprise d'exĂ©cution est possible.

L'environnement invité TinyKVM est un noyau allégé et inviolable, conçu avec la pagination mémoire activée et utilisant SMAP (Supervisor Mode Access Prevention) et SMEP (Supervisor Mode Execution Prevention) pour une isolation renforcée entre le noyau et l'espace utilisateur. TinyKVM utilise des pages mémoire de grande taille (hugepages) pour optimiser les performances. Les appels systÚme effectués par les programmes sont interceptés par l'émulateur et redirigés vers l'environnement hÎte (la latence de traitement et de traduction de l'appel émulé est d'environ 2 microsecondes). machine virtuelle Aucun pilote, périphérique d'entrée/sortie ou périphérique virtuel n'est utilisé.

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


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