Introduction
gVisor est un logiciel qui offre une isolation de type machine virtuelle pour les conteneurs, sans les surcoûts liés aux machines virtuelles traditionnelles. Cependant, son exécution sur Raspberry Pi 5 peut être problématique en raison d'une option de configuration du noyau spécifique.
Contexte Technique
gVisor fonctionne en implémentant un noyau Linux entièrement en espace utilisateur, appelé Sentry, qui intercepte toutes les appels système des conteneurs et les gère dans son propre noyau sandboxé. Cela permet une isolation de type machine virtuelle avec l'efficacité des conteneurs.
Le problème sur Raspberry Pi 5 est dû à la configuration du noyau Raspbian, qui utilise 39 bits pour les adresses virtuelles (VA) au lieu de 48 bits. Cela limite la quantité d'espace d'adresse disponible pour gVisor, qui a besoin de plus d'espace pour gérer ses structures internes, les mappings de mémoire des conteneurs et les tables de pages.
Analyse et Implications
L'utilisation de 39 bits pour les adresses virtuelles sur Raspbian est une option de configuration par défaut qui vise à supporter les applications 32 bits sur un noyau 64 bits. Cependant, cela entraîne des limitations pour les logiciels cloud-natifs comme gVisor, qui nécessitent plus d'espace d'adresse pour fonctionner correctement.
Les hyperviseurs traditionnels comme KVM ou Xen n'ont pas les mêmes exigences que gVisor en termes d'espace d'adresse virtuelle, car ils fonctionnent à un niveau de privilège plus élevé et gèrent la mémoire physique des invités de manière différente.
Perspective
Pour exécuter gVisor sur Raspberry Pi 5, il est nécessaire de configurer le noyau pour utiliser 48 bits pour les adresses virtuelles. Cela peut être fait en modifiant la configuration du noyau Raspbian ou en utilisant une distribution Linux alternative comme Ubuntu, qui utilise déjà 48 bits pour les adresses virtuelles par défaut.
Il est important de surveiller les limitations et les exigences spécifiques des logiciels cloud-natifs comme gVisor pour garantir leur bon fonctionnement sur les plates-formes embarquées comme Raspberry Pi 5.