Update voor Intel Cloud Hypervisor 0.3 en Amazon Firecracker 0.19 geschreven in Rust

Intel опубликовала nieuwe versie van hypervisor Cloud-hypervisor 0.3. De hypervisor is opgebouwd rond componenten
gezamenlijk project Roest-VMM, waaraan naast Intel ook Alibaba, Amazon, Google en Red Hat deelnemen. Rust-VMM is geschreven in de Rust-taal en stelt u in staat taakspecifieke hypervisors te maken. De Cloud Hypervisor is zo'n hypervisor die een virtuele machinemonitor (VMM) op hoog niveau biedt die bovenop KVM draait en is geoptimaliseerd voor cloud-native taken. Projectcode is beschikbaar gelicentieerd onder Apache 2.0.

Cloud Hypervisor is gericht op het uitvoeren van moderne Linux-distributies met behulp van op virtio gebaseerde paravirtuele apparaten. Tot de genoemde kerntaken behoren: hoge responsiviteit, laag geheugengebruik, hoge prestaties, vereenvoudiging van de configuratie en vermindering van mogelijke aanvalsvectoren.

Emulatieondersteuning wordt tot een minimum beperkt en de nadruk ligt op paravirtualisatie. Momenteel worden alleen x86_64-systemen ondersteund, maar ondersteuning voor AArch64 is onderweg. Van de gastsystemen worden momenteel alleen 64-bit Linux-builds ondersteund. CPU-, geheugen-, PCI- en NVDIMM-instellingen worden tijdens de bouwfase gemaakt. Het is mogelijk om virtuele machines tussen servers te migreren.

In de nieuwe versie:

  • Er werd verder gewerkt aan het verplaatsen van geparavirtualiseerde I/O naar afzonderlijke processen. De mogelijkheid toegevoegd om backends te gebruiken voor interactie met blokapparaten vhost-gebruiker-blk. Met de wijziging kunt u blokapparaten op basis van de vhost-gebruikersmodule verbinden met de Cloud Hypervisor, zoals SPDK, als backends voor geparavirtualiseerde opslag;
  • Geïntroduceerd in de laatste release, ondersteuning voor het verplaatsen van netwerkbewerkingen naar backends vhost-gebruiker-net, uitgebreid met een nieuwe backend op basis van een virtueel netwerkstuurprogramma TAP. De backend is geschreven in Rust en wordt nu gebruikt in Cloud Hypervisor als de belangrijkste geparavirtualiseerde netwerkarchitectuur;
  • Om de efficiëntie en veiligheid van de communicatie tussen de hostomgeving en het gastsysteem te vergroten, wordt een hybride implementatie van sockets met AF_VSOCK-adressering (virtuele netwerksockets) voorgesteld die via virtio werken. De uitvoering vindt plaats op basis van de ontwikkelingen van het project voetzoekerontwikkeld door Amazon. Met VSOCK kunt u de standaard POSIX Sockets API gebruiken voor interactie tussen applicaties aan de kant van het gastsysteem en de host, waardoor het eenvoudig wordt om gewone netwerkprogramma's aan te passen voor dergelijke interactie en de interactie van verschillende clientprogramma's met één serverapplicatie te implementeren;
  • Er is initiële ondersteuning geboden voor een beheer-API die gebruikmaakt van het HTTP-protocol. In de toekomst zal deze API het initiëren van asynchrone bewerkingen op gastsystemen mogelijk maken, zoals hot plugging-bronnen en migratieomgevingen;
  • Een transportimplementatielaag toegevoegd op basis van virtio MMIO (Memory mapped virtio), die kan worden gebruikt om minimalistische gastsystemen te creëren die geen PCI-bus-emulatie vereisen;
  • Als onderdeel van een initiatief om de ondersteuning voor het uitvoeren van geneste gastsystemen in Cloud Hypervisor uit te breiden, is de mogelijkheid toegevoegd om geparavirtualiseerde IOMMU-apparaten via virtio door te sturen, waardoor u de beveiliging van geneste en directe apparaatdoorsturing kunt vergroten.
  • Ondersteuning geboden voor Ubuntu 19.10;
  • De mogelijkheid toegevoegd om gastsystemen met meer dan 64 GB RAM te gebruiken.

Bovendien kan worden opgemerkt nieuw probleem aangrenzend ontwikkeld virtuele machinemonitor voetzoeker, ook geschreven in Rust, gebaseerd op Rust-VMM en draait bovenop KVM. Firecracker is een vork van het project CrossVMgebruikt door Google om applicaties uit te voeren Linux и Android in ChromeOS. Firecracker wordt ontwikkeld door Amazon Web Services om de prestaties en efficiëntie van de AWS Lambda- en AWS Fargate-platforms te verbeteren.

Het platform is ontworpen om virtuele machines te laten draaien met minimale overhead en biedt tools voor het creëren en beheren van geïsoleerde omgevingen en services die zijn gebouwd met behulp van een serverloos ontwikkelingsmodel (function as a service). Firecracker biedt lichtgewicht virtuele machines, microVM's genaamd, die hardwarevirtualisatietechnologieën gebruiken om ze volledig te isoleren, maar toch de prestaties en flexibiliteit bieden van conventionele containers. Als u bijvoorbeeld Firecracker gebruikt, bedraagt ​​de tijd vanaf het starten van de microVM tot het starten van de applicatie niet meer dan 125 ms, waardoor u nieuwe virtuele machines kunt starten met een intensiteit van maximaal 150 omgevingen per seconde.

De nieuwe release van Firecracker heeft een werkingsmodus toegevoegd zonder een API-handler ("--no-api") uit te voeren, waardoor de omgeving wordt beperkt tot alleen hardgecodeerde instellingen in het configuratiebestand. Statische configuratie wordt gespecificeerd via de optie "--config-file" en wordt gedefinieerd in JSON-formaat. Van de opdrachtregelopties is ook ondersteuning voor het scheidingsteken “—” toegevoegd, waarna de vlaggen zonder verwerking langs de keten worden doorgegeven.

Firecracker-ontwikkelaar Amazon ook kondigde het over sponsoring van ontwikkelaars van de programmeertaal Rust. Opgemerkt wordt dat Rust steeds vaker wordt gebruikt in de projecten van het bedrijf en dat de ontwikkelingen daarop al zijn geïmplementeerd in diensten als Lambda, EC2 en S3. Amazon voorzag het Rust-project van de infrastructuur om releases en builds in S3 op te slaan, regressietests uit te voeren op EC2 en een docs.rs-site te onderhouden met documentatie voor alle pakketten uit de kratten.io-repository.

Amazone ook ingediend het programma AWS-promotiekrediet, waar open projecten gratis toegang kunnen krijgen tot AWS-services die kunnen worden gebruikt voor opslag van bronnen, bouwen, continue integratie en testen. Van de projecten die al zijn goedgekeurd voor deelname aan het programma, worden naast Rust ook AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy en Julia genoteerd. Aanvragen worden geaccepteerd van alle open source-projecten die worden geleverd onder licenties die zijn goedgekeurd door OSI.

Bron: opennet.ru

Voeg een reactie