Sasisha kwa Intel Cloud Hypervisor 0.3 na Amazon Firecracker 0.19 hypervisors iliyoandikwa kwa Rust

Intel ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° toleo jipya la hypervisor Wingu Hypervisor 0.3. Hypervisor imejengwa juu ya vipengele
mradi wa pamoja Kutu-VMM, ambayo, pamoja na Intel, Alibaba, Amazon, Google na Red Hat pia hushiriki. Rust-VMM imeandikwa katika lugha ya Rust na hukuruhusu kuunda viashiria maalum vya kazi. Hypervisor ya Wingu ni hypervisor moja kama hii ambayo hutoa kifuatiliaji cha kiwango cha juu cha mashine pepe (VMM) inayoendesha juu ya KVM na kuboreshwa kwa kazi za asili za wingu. Msimbo wa mradi inapatikana leseni chini ya Apache 2.0.

Cloud Hypervisor inalenga kuendesha usambazaji wa kisasa wa Linux kwa kutumia vifaa vya paravirtualized kulingana na virtio. Miongoni mwa malengo muhimu yaliyotajwa ni: mwitikio wa juu, matumizi ya kumbukumbu ya chini, utendaji wa juu, usanidi uliorahisishwa na kupunguza uwezekano wa vekta za mashambulizi.

Usaidizi wa kuiga unawekwa kwa kiwango cha chini zaidi na kinachoangazia ni ubinafsishaji. Kwa sasa ni mifumo ya x86_64 pekee ndiyo inayotumika, lakini usaidizi wa AArch64 umepangwa. Kwa mifumo ya wageni, ni miundo ya 64-bit tu ya Linux ndiyo inayotumika kwa sasa. CPU, kumbukumbu, PCI na NVDIMM zimesanidiwa katika hatua ya kusanyiko. Inawezekana kuhamisha mashine za kawaida kati ya seva.

Katika toleo jipya:

  • Kazi iliendelea kusogeza I/O iliyobadilishwa ili kutenganisha michakato. Uwezo wa kutumia viambajengo umeongezwa ili kuingiliana na vifaa vya kuzuia vhost-mtumiaji-blk. Mabadiliko hukuruhusu kuunganisha vifaa vya kuzuia kulingana na moduli ya mtumiaji wa vhost kwa Hypervisor ya Wingu, kama vile SPDK, kama viunga vya uhifadhi wa paravirtualized;
  • Usaidizi wa kuhamisha shughuli za mtandao kwa njia za nyuma, zilizoletwa katika toleo la mwisho vhost-user-net, iliyopanuliwa kwa muundo mpya wa nyuma kulingana na kiendesha mtandao pepe TAP. Mazingira ya nyuma yameandikwa kwa Rust na sasa yanatumika katika Wingu Hypervisor kama usanifu mkuu wa mtandao wa para-virtualized;
  • Ili kuongeza ufanisi na usalama wa mawasiliano kati ya mazingira ya mwenyeji na mfumo wa wageni, utekelezaji wa mseto wa soketi na anwani ya AF_VSOCK (soketi za mtandao halisi), zinazofanya kazi kupitia virtio, inapendekezwa. Utekelezaji unategemea maendeleo ya mradi Firecracker, iliyoandaliwa na Amazon. VSOCK hukuruhusu kutumia API ya kawaida ya POSIX Soketi kwa mwingiliano kati ya programu kwenye mgeni na mwenyeji pande, ambayo inafanya iwe rahisi kurekebisha programu za kawaida za mtandao kwa mwingiliano kama huo na kutekeleza mwingiliano wa programu kadhaa za mteja na programu moja ya seva;
  • Ilitoa usaidizi wa awali kwa API ya usimamizi kwa kutumia itifaki ya HTTP. Katika siku zijazo, API hii itafanya uwezekano wa kuanzisha shughuli zisizolingana kwenye mifumo ya wageni, kama vile rasilimali za kuziba-moto na mazingira yanayohama;
  • Imeongeza safu yenye utekelezaji wa usafiri kulingana na virtio MMIO (Memory mapped virtio), ambayo inaweza kutumika kuunda mifumo ndogo ya wageni ambayo haihitaji uigaji wa basi wa PCI;
  • Kama sehemu ya mpango wa kupanua usaidizi wa kuendesha mifumo ya wageni iliyohifadhiwa, Cloud Hypervisor imeongeza uwezo wa kusambaza vifaa vya IOMMU vilivyoboreshwa kupitia virtio, ambayo huboresha usalama wa usambazaji na usambazaji wa moja kwa moja wa vifaa.
  • Imetolewa msaada kwa Ubuntu 19.10;
  • Imeongeza uwezo wa kuendesha mifumo ya wageni iliyo na zaidi ya GB 64 ya RAM.

Kwa kuongeza, inaweza kuzingatiwa toleo jipya karibu kuendelezwa kifuatilia mashine halisi Firecracker, pia imeandikwa kwa Rust, kwa msingi wa Rust-VMM na kukimbia juu ya KVM. Firecracker ni uma wa mradi CrosVM, inayotumiwa na Google kuzindua programu Linux ΠΈ Android katika ChromeOS. Firecracker inatengenezwa na Amazon Web Services ili kuboresha utendaji na ufanisi wa majukwaa ya AWS Lambda na AWS Fargate.

Jukwaa limeundwa ili kuendesha mashine pepe zisizo na rufani ndogo na hutoa zana za kuunda na kudhibiti mazingira na huduma zilizotengwa zilizojengwa kwa kutumia muundo wa ukuzaji usio na seva (kazi kama huduma). Firecracker hutoa mashine nyepesi nyepesi, zinazoitwa microVM, ambazo hutumia teknolojia ya uboreshaji wa maunzi ili kutoa utengaji kamili wakati wa kuwasilisha utendakazi na kunyumbulika kwa vyombo vya kawaida. Kwa mfano, unapotumia Firecracker, muda kutoka wakati microVM inapozinduliwa hadi kuanza kwa utekelezaji wa programu haizidi 125ms, ambayo hukuruhusu kuzindua mashine mpya za mtandaoni zenye nguvu ya hadi mazingira 150 kwa sekunde.

Toleo jipya la Firecracker linaongeza hali ya utendakazi bila kuzindua kidhibiti cha API (β€œβ€”no-api”), ikiweka mipaka ya mazingira kwa mipangilio iliyosimbwa kwa bidii katika faili ya usanidi. Usanidi tuli hubainishwa kupitia chaguo la "--config-file" na hufafanuliwa katika umbizo la JSON. Kutoka kwa chaguzi za mstari wa amri, usaidizi wa kitenganishi cha "-" pia umeongezwa, bendera zilizoainishwa baada ya hapo hupitishwa kwenye mlolongo bila usindikaji.

Amazon, ambayo inakuza Firecracker, pia alitangaza juu ya kutoa ufadhili kwa watengenezaji wa lugha ya programu ya Rust. Imebainika kuwa Rust inazidi kutumika katika miradi ya kampuni na maendeleo juu yake tayari yametekelezwa katika huduma kama vile Lambda, EC2 na S3. Amazon imeupa mradi wa Rust miundombinu ya kuhifadhi matoleo na ujenzi katika S3, kuendesha majaribio ya urekebishaji katika EC2, na kudumisha tovuti ya docs.rs yenye nyaraka za vifurushi vyote kutoka kwenye hazina ya crates.io.

Amazon pia kuletwa mpango Mikopo ya Matangazo ya AWS, ambapo miradi ya programu huria inaweza kupata ufikiaji bila malipo kwa huduma za AWS ambazo zinaweza kutumika kwa hifadhi ya rasilimali, ujenzi, ujumuishaji unaoendelea na majaribio. Miongoni mwa miradi ambayo tayari imeidhinishwa kushiriki katika mpango huo, pamoja na Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Mjumbe na Julia walibainishwa. Mawasilisho yanakubaliwa kutoka kwa mradi wowote wa programu huria unaotolewa chini ya leseni zilizoidhinishwa na OSI.

Chanzo: opennet.ru

Kuongeza maoni