Sandbox de VM sub-milliseconde utilisant le fork mémoire en écriture différée (CoW)

Je voulais voir à quelle vitesse un sandbox de code isolé pouvait démarrer si je n'avais jamais besoin de démarrer une VM fraîche. Donc, au lieu de lancer une nouvelle microVM par exécution, je démarre Firecracker une seule fois avec Python et numpy déjà chargés, puis je capture l'état complet de la VM. Chaque exécution suivante crée une nouvelle VM KVM soutenue par un mapping `MAP_PRIVATE` de la mémoire du snapshot, donc Linux me fournit automatiquement des pages en copy-on-write. Cela signifie que chaque sandbox démarre à partir d'un processus Python déjà en cours d'exécution dans une vraie VM, exécute le code et se termine. Ce sont de vraies VM KVM, pas des conteneurs : noyau invité séparé, mémoire invité séparée, tables de pages séparées. Quand une VM écrit en mémoire, elle obtient une copie privée de cette page. La partie difficile n'était pas le CoW lui-même. La partie difficile était de reprendre correctement la VM snapshotée. Rust, Apache 2.0.

  • Application Web
  • Cloud Native
  • Open Source

Résumé IA

ZeroBoot est un système qui crée des sandboxes VM en moins d'une milliseconde en snapshotant une microVM Firecracker pré-démarrée avec Python et les bibliothèques chargées. Chaque nouvelle exécution duplique ce snapshot en utilisant des mappings mémoire copy-on-write, offrant une isolation KVM complète sans les frais d'un démarrage de VM complet.

Idéal pour

Plateformes Serverless/FaaS nécessitant des démarrages rapides à partir de l'état dormant, Sandboxing de code haute performance pour du code utilisateur non vérifié, Charges de travail de science des données ou ML nécessitant des environnements Python rapides et isolés

Pourquoi c'est important

Il offre un démarrage de VM quasi instantané avec une isolation totale au niveau matériel, en éliminant le processus de boot grâce à la duplication mémoire d'un snapshot pré-initialisé.

Fonctionnalités clés

  • Démarre des sandbox VM en moins d'une milliseconde grâce à la duplication mémoire avec copie à la demande
  • Lance Firecracker une fois avec Python et numpy préchargés, puis capture l'état complet de la VM
  • Crée de nouvelles VM KVM basées sur des mappings MAP_PRIVATE de la mémoire snapshot pour des pages CoW automatiques
  • Offre une isolation réelle de VM KVM avec des kernels invités, mémoire et tables de pages séparés

Cas d'usage

  • Une plateforme de science des données utilise cette technologie pour exécuter des milliers de transformations de données Python isolées pour différents clients. Chaque script utilisateur s'exécute dans une nouvelle machine virtuelle qui démarre en moins d'une milliseconde, garantissant une isolation complète entre les tâches tout en conservant les performances d'un environnement préchauffé avec des bibliothèques comme numpy déjà chargées.
  • Un fournisseur de calcul serverless adopte cette technologie pour créer des environnements d'exécution de fonctions. Lorsqu'une fonction est invoquée, une nouvelle microVM se divise à partir d'un instantané contenant le runtime, réduisant considérablement la latence de démarrage à froid de centaines de millisecondes à des temps inférieurs à la milliseconde, améliorant ainsi l'expérience utilisateur pour les applications sensibles à la latence.
  • Une entreprise de recherche en sécurité utilise ces sandbox pour exécuter en toute sécurité des échantillons de code non fiables pour l'analyse de logiciels malveillants. Chaque échantillon s'exécute dans une machine virtuelle entièrement isolée qui démarre presque instantanément, permettant aux chercheurs de tester rapidement des milliers de variantes tout en contenant toute activité malveillante dans l'environnement dupliqué.