Rust-kielellä kirjoitettu päivitys Intel Cloud Hypervisor 0.3:lle ja Amazon Firecracker 0.19:lle

Intel julkaistu hypervisorin uusi versio Cloud Hypervisor 0.3. Hypervisor on rakennettu komponenteille
yhteinen projekti Rust-VMM, johon Intelin lisäksi osallistuvat myös Alibaba, Amazon, Google ja Red Hat. Rust-VMM on kirjoitettu Rust-kielellä ja sen avulla voit luoda tehtäväkohtaisia ​​hypervisoreita. Cloud Hypervisor on yksi tällainen hypervisor, joka tarjoaa korkean tason virtuaalikoneen monitorin (VMM), joka toimii KVM:n päällä ja on optimoitu pilvipohjaisiin tehtäviin. Projektin koodi saatavilla lisensoitu Apache 2.0:lla.

Cloud Hypervisor on keskittynyt ajamaan nykyaikaisia ​​Linux-jakeluja virtio-pohjaisilla paravirtualisoiduilla laitteilla. Mainittujen tärkeimpien tavoitteiden joukossa ovat korkea reagointikyky, alhainen muistinkulutus, korkea suorituskyky, yksinkertaistettu konfigurointi ja mahdollisten hyökkäysvektorien vähentäminen.

Emulointituki on minimoitu ja painopiste on paravirtualisoinnissa. Tällä hetkellä tuetaan vain x86_64-järjestelmiä, mutta AArch64-tuki on suunnitteilla. Vierasjärjestelmissä tuetaan tällä hetkellä vain 64-bittisiä Linuxin koontiversioita. CPU, muisti, PCI ja NVDIMM konfiguroidaan kokoonpanovaiheessa. Virtuaalikoneita on mahdollista siirtää palvelimien välillä.

Uudessa versiossa:

  • Työ paravirtualisoidun I/O:n siirtämiseksi erillisiin prosesseihin jatkui. Mahdollisuus käyttää taustaohjelmia on lisätty vuorovaikutukseen lohkolaitteiden kanssa vhost-user-blk. Muutos mahdollistaa vhost-user-moduuliin perustuvien lohkolaitteiden yhdistämisen Cloud Hypervisoriin, esim. SPDK, paravirtualisoidun tallennustilan taustaohjelmina;
  • Tuki verkkotoimintojen siirtämiselle taustajärjestelmiin, esitelty viime versiossa vhost-user-net, laajennettu uudella taustalla, joka perustuu virtuaaliseen verkkoohjaimeen TAP. Tausta on kirjoitettu Rust-kielellä, ja sitä käytetään nyt Cloud Hypervisorissa pääasiallisena paravirtualisoituna verkkoarkkitehtuurina;
  • Isäntäympäristön ja vierasjärjestelmän välisen viestinnän tehokkuuden ja turvallisuuden lisäämiseksi ehdotetaan virtion kautta toimivien AF_VSOCK-osoitteiden (virtuaaliset verkkopistokkeet) -vastakkeiden hybriditoteutusta. Toteutus perustuu hankkeen kehitykseen Sähikäinen, jonka on kehittänyt Amazon. VSOCK mahdollistaa standardin POSIX Sockets API:n käytön sovellusten väliseen vuorovaikutukseen vieras- ja isäntäpuolella, mikä helpottaa tavallisten verkkoohjelmien mukauttamista tällaiseen vuorovaikutukseen ja useiden asiakasohjelmien vuorovaikutuksen toteuttamista yhden palvelinsovelluksen kanssa;
  • Tarjosi alustavan tuen hallinta-API:lle HTTP-protokollan avulla. Tulevaisuudessa tämä API mahdollistaa asynkronisten toimintojen käynnistämisen vierasjärjestelmissä, kuten hot-plugging-resurssien ja siirtyvien ympäristöjen;
  • Lisätty kerros, jossa on virtio MMIO (Memory mapped virtio) perustuva siirtototeutus, jonka avulla voidaan luoda minimalistisia vierasjärjestelmiä, jotka eivät vaadi PCI-väyläemulointia;
  • Osana aloitetta sisäkkäisten vierasjärjestelmien tuen laajentamiseksi Cloud Hypervisor on lisännyt mahdollisuuden välittää paravirtualisoituja IOMMU-laitteita virtion kautta, mikä parantaa sisäkkäisten ja laitteiden suoran edelleenlähetyksen turvallisuutta.
  • Tuki Ubuntu 19.10:lle;
  • Lisätty mahdollisuus käyttää vierasjärjestelmiä, joissa on yli 64 Gt RAM-muistia.

Lisäksi voidaan huomauttaa uusi numero vieressä kehitetty virtuaalikoneen monitori Sähikäinen, kirjoitettu myös Rustilla, perustuu Rust-VMM:ään ja toimii KVM:n päällä. Firecracker on hankkeen haarukka CrosVM, jota Google käyttää sovellusten käynnistämiseen Linux и Android ChromeOS:ssa. Amazon Web Services kehittää Firecrackeria parantaakseen AWS Lambda- ja AWS Fargate -alustojen suorituskykyä ja tehokkuutta.

Alusta on suunniteltu ajamaan virtuaalikoneita minimaalisella ylikuormituksella ja tarjoaa työkaluja erillisten ympäristöjen ja palveluiden luomiseen ja hallintaan, jotka on rakennettu palvelimettomalla kehitysmallilla (toiminto palveluna). Firecracker tarjoaa kevyitä virtuaalikoneita, joita kutsutaan microVM:iksi, jotka käyttävät laitteiston virtualisointiteknologioita tarjotakseen täydellisen eristyksen ja tarjoavat samalla perinteisten säiliöiden suorituskyvyn ja joustavuuden. Esimerkiksi Firecrackeriä käytettäessä aika microVM:n käynnistämisestä sovelluksen suorittamisen alkuun ei ylitä 125 ms, mikä mahdollistaa uusien virtuaalikoneiden käynnistämisen jopa 150 ympäristön intensiteetillä sekunnissa.

Firecrackerin uusi versio lisää toimintatilan käynnistämättä API-käsittelijää ("—no-api"), mikä rajoittaa ympäristön vain asetustiedostoon koodattuihin asetuksiin. Staattinen kokoonpano määritetään "--config-file"-vaihtoehdolla ja määritellään JSON-muodossa. Komentorivivaihtoehdoista on lisätty myös "—"-erottimen tuki, jonka jälkeen määritetyt liput välitetään ketjua pitkin ilman käsittelyä.

Myös Amazon, joka kehittää Firecrackeria ilmoitti sponsoroinnin tarjoamisesta Rust-ohjelmointikielen kehittäjille. Todetaan, että ruostetta käytetään yhä enemmän yhtiön projekteissa ja sen kehitystyöt on jo toteutettu palveluissa, kuten Lambda, EC2 ja S3. Amazon on tarjonnut Rust-projektille infrastruktuurin julkaisujen ja koontiversioiden tallentamiseen S3:ssa, regressiotestien suorittamiseen EC2:ssa ja docs.rs-sivuston ylläpitämiseen, jossa on dokumentaatio kaikille crates.io-arkiston paketeille.

Amazon myös toimitettu ohjelma AWS-tarjoushyvitys, jossa avoimen lähdekoodin projektit voivat saada ilmaisen pääsyn AWS-palveluihin, joita voidaan käyttää resurssien tallentamiseen, rakentamiseen, jatkuvaan integrointiin ja testaukseen. Ohjelmaan jo hyväksyttyjen hankkeiden joukossa mainittiin Rustin lisäksi AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy ja Julia. Lähetykset hyväksytään kaikista avoimen lähdekoodin projekteista, jotka toimitetaan OSI:n hyväksymien lisenssien alla.

Lähde: opennet.ru

Lisää kommentti