Intel
áá°ážááœá²á
á®áá¶ááááºáž
Cloud Hypervisor ááẠvirtio-based paravirtualized áááááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá±ááºáá® Linux ááŒáá·áºáá±ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠá¡á¬áá¯á¶á áá¯ááºáá¬ážáááºá áá±á¬áºááŒáá²á·ááá·áº á¡ááááááºááœááºáá»ááºáá»á¬ážáá²ááœááº- áá¯á¶á·ááŒááºááá¯ááºá áœááºážááŒáá·áºáá¬ážááŸá¯á ááŸááºáá¬ááºáá¯á¶ážá áœá²ááŸá¯áááºážáá«ážááŸá¯á á áœááºážáá±á¬ááºáááºááŒáá·áºáá¬ážááŸá¯á ááá¯ážááŸááºážáá±á¬ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŸáá·áº ááŒá áºááá¯ááºááá·áºááá¯ááºááá¯ááºááŸá¯ vector áá»á¬ážááᯠáá»áŸá±á¬á·áá»áá±ážááá¯á·ááŒá áºáááºá
Emulation áá¶á·ááá¯ážááŸá¯á¡á¬áž á¡áááá·áºáá¯á¶ážááœááºáá¬ážááŸááá¬ážááŒá®áž paravirtualization ááᯠá¡á¬áá¯á¶á áá¯ááºáá¬ážáááºá áá±á¬áá±á¬ááẠx86_64 á áá áºáá»á¬ážááá¯áᬠáá¶á·ááá¯ážáá¬ážáá±á¬áºáááºáž AArch64 áá¶á·ááá¯ážááŸá¯ááᯠá á®á ááºáá¬ážáá«áááºá á§áá·áºáááºá áá áºáá»á¬ážá¡ááœááºá Linux á 64-bit áááºáá±á¬ááºááŸá¯áá»á¬ážááá¯áᬠáááºááŸáááœáẠáá¶á·ááá¯ážáá±ážáá¬ážáááºá CPUá Memoryá PCI ááŸáá·áº NVDIMM ááá¯á·ááᯠá ááºážáá±ážááœá²á¡ááá·áºááœáẠááŒááºáááºáááºááŸááºáá¬ážáááºá áá¬áá¬áá»á¬ážá¡ááŒá¬áž virtual machines áá»á¬ážááᯠááœáŸá±á·ááŒá±á¬ááºážááá¯ááºáááºá
áá¬ážááŸááºážá¡áá áºááœááº-
- áá®ážááŒá¬ážáá¯ááºáááºážá
ááºáá»á¬ážáá®ááá¯á· paravirtualized I/O ááœáŸá±á·ááŒááºážá¡áá±á«áº áááºáááºáá¯ááºáá±á¬ááºáááºá ááááºááá¯á·áááááá¬áá»á¬ážááŸáá·áº á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºáááºá¡ááœáẠáá±á¬ááºáá¶ááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá¯ááºá
áœááºážááᯠááá·áºááœááºážáá¬ážáááºá
vhost-user-blk . ááŒá±á¬ááºážáá²ááŸá¯ááẠvhost-user module ááá¯á¡ááŒá±áá¶á ááááºááá¯á·áá¬ážáá±á¬áááááá¬áá»á¬ážááŒá áºááá·áº Cloud Hypervisor ááá¯á· áá»áááºáááºááá¯ááºá á±áá«áááºáSPDK paravirtualized ááá¯ááŸá±á¬ááºááŸá¯á¡ááœáẠbackends á¡ááŒá áºá - áá±á¬ááºáá¯á¶ážááœááºááŸáááŸá¯ááœáẠááááºáááºáá²á·áá±á¬ ááœááºáááºáááºáááºááŸá¯áá»á¬ážááᯠáá±á¬ááºááœááºááá¯á·ááœáŸá±á·áááºá¡ááœáẠáá¶á·ááá¯ážááŸá¯
vhost-user-net virtual network driver ááᯠá¡ááŒá±áá¶á backend á¡áá áºááŒáá·áº ááá¯ážáá»á²á·áá¬ážáááºáTAP . áá±á¬ááºáá¶ááᯠRust ááŒáá·áºáá±ážáá¬ážáá¬ážááŒá®áž ááá¯á¡áá«ááœáẠCloud Hypervisor ááœáẠáááºá para-virtualized network architecture á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áá¬ážáááºá - á¡áááºááŸááºáááºáááºážáá»ááºááŸáá·áº á§áá·áºáááºá
áá
áºááŒá¬áž áááºááœááºáá±ážá áááá±á¬ááºááŸá¯ááŸáá·áº áá¯á¶ááŒá¯á¶áá±ážááᯠááá¯ážááŒáŸáá·áºáááºá¡ááœáẠAF_VSOCK ááááºá
á¬áá±á¬áºááŒááŒááºáž (virtual network sockets) ááŸáá·áº virtio ááŸáááá·áº áá¯ááºáá±á¬ááºáá±á¬ socket áá»á¬ážááᯠáá±á«ááºážá
ááºá¡áá±á¬ááºá¡áááºáá±á¬áºááẠá¡ááá¯ááŒá¯áá¬ážáááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠááá±á¬áá»ááºá ááá¯ážáááºááŸá¯á¡áá±á«áº á¡ááŒá±áá¶áááºá
áá®ážáááºááá¬áž Amazon ááŸáá®ááœááºáááºá VSOCK ááẠááá·áºá¡á¬áž á§áá·áºáááºááŸáá·áº host áááºááŸá á¡ááá®áá±ážááŸááºážáá»á¬ážááŒá¬áž á¡ááŒááºá¡ááŸááºá¡ááŒááºá¡ááŸááºáá¯ááºáá±á¬ááºáááºá¡ááœáẠá ᶠPOSIX Sockets API ááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºá ááá¯áá²á·ááá¯á·áá±á¬ á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºááŸá¯á¡ááœáẠáá¬áááºááœááºáááºáááá¯ááááºáá»á¬ážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬ááºááŒá¯áá¯ááºáᬠáá¬áá¬á¡ááºááá®áá±ážááŸááºážáá áºáá¯ááŸáá·áº client áááá¯ááááºáá»á¬ážá áœá¬áá¡ááŒááºá¡ááŸááºá¡áá»áá¯ážáááºáá±á¬ááºááŸá¯ááᯠá¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºá á±áá«áááºá - HTTP áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á á á®áá¶ááá·áºááœá²ááŸá¯ API á¡ááœáẠáááŠáž áá¶á·ááá¯ážááŸá¯ áá±ážáá¬ážáááºá á¡áá¬áááºááœááºá ဠAPI ááẠhot-plugging á¡áááºážá¡ááŒá áºáá»á¬ážááŸáá·áº ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááá·áºáááºáááºážáá»ááºáá»á¬ážáá²á·ááá¯á·áá±á¬ á§áá·áºáááºá áá áºáá»á¬ážááœáẠá¡ááŒáá¯ááºá¡ááá¯ááºáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠá áááºááá¯ááºá á±áááºááŒá áºáááºá
- PCI bus emulation áááá¯á¡ááºáá±á¬ minimalistic á§áá·áºáááºá áá áºáá»á¬ážáááºáá®ážááẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº virtio MMIO (Memory mapped virtio) ááá¯á¡ááŒá±áá¶á áááºáá°ááá¯á·áá±á¬ááºáá±ážá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸáá·áºá¡áá° á¡ááœáŸá¬áá áºáá¯áááºááá·áºáá¬ážáááºá
- nested á§áá·áºáááºá áá áºáá»á¬ážáááºáááºááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááá¯ážáá»á²á·ááẠá¡á áá»áá¯ážááŸá¯ááá áºá áááºáá áºááá¯ááºážá¡áá±ááŒáá·áº Cloud Hypervisor ááẠvirtio ááŸáááá·áº paravirtualized IOMMU á ááºáá á¹á ááºážáá»á¬ážááᯠáá±ážááá¯á·ááá¯ááºááá·áºá áœááºážáááºááᯠááá·áºááœááºážáá¬ážááŒá®ážá áááºážááẠá ááºáá á¹á ááºážáá»á¬ážááá¯á¶ááŒá¯á¶áá±ážááŸáá·áº ááá¯ááºááá¯ááºáá±ážááá¯á·ááŒááºážááá¯á¶ááŒá¯á¶áá±ážááᯠááá¯ááá¯áá±á¬ááºážááœááºá á±áá«áááºá
- Ubuntu 19.10 á¡ááœáẠáá¶á·ááá¯ážááŸá¯áá±ážáá¬ážáááºá
- 64 GB RAM áááºááá¯áá±á¬ á§áá·áºáááºá áá áºáá»á¬ážááᯠáááºáááºááá¯ááºááá·áº á áœááºážáááºááᯠááá·áºááœááºážáá¬ážáááºá
ááá¯á·á¡ááŒááºáááºážááá¯ááŸááºáá¬ážááá¯ááºáááºá
á¡ááá¯áá«ááááºáá±á¬ááºážááẠáá¯ááºáá»á ááááºá¡áááºážáááºáá»áŸáá¬ááŸááá±á¬ virtual machines áá»á¬ážááá¯áááºáááºááẠáá®ááá¯ááºážáá¯ááºáá¬ážááŒá®áž áá¬áá¬áá²á·ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯áá¯á¶á ᶠ(áááºáá±á¬ááºááŸá¯áá²á·ááá¯á·áá¯ááºáá±á¬ááºááŒááºáž) ááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºáá¬ážáá±á¬ áá®ážááŒá¬ážáááºáááºážáá»ááºááŸáá·áº áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºáá®ážááŒááºážááŸáá·áº á á®áá¶ááá·áºááœá²ááŒááºážá¡ááœáẠáááááá¬áá»á¬ážááᯠáá¶á·ááá¯ážáá±ážáá«áááºá Firecracker ááẠááá¯ážáá¬ááœááºááááºáá¬áá»á¬ážá á áœááºážáá±á¬ááºáááºááŸáá·áº ááá¯ááºáá»á±á¬áá®ááœá±ááŸáááŸá¯ááᯠáá±ážáá±á¬ááºá áẠááŒá®ážááŒáá·áºá á¯á¶áá±á¬ á¡áá®ážáá»ááºááŸá¯ááᯠáá±ážá áœááºážááẠáá¬á·ááºáá² á¡áá¯áá¯ááºááŒááºážáááºážááá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº áá±á«á·áá«ážáá±á¬ virtual machines áá»á¬ážááᯠáá±ážáá±á¬ááºáá«áááºá á¥ááá¬á¡á¬ážááŒáá·áºá Firecracker ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡áá«á microVM á áááºááá·áºá¡áá»áááºá០application execution á áááºáá»áááºá¡áá 125ms áááºááá»á±á¬áºááœááºáá²á áááºááẠáá áºá áá¹ááá·áºáá»áŸáẠáááºáááºážáá»áẠ150 á¡ááááŒááºážáááºáá±á¬ virtual machines á¡áá áºáá»á¬ážááᯠá áááºááá¯ááºá á±áá«áááºá
Firecracker áá¡áá áºááœááºááŸáááŸá¯ááẠAPI ááá¯ááºááœááºáááááᬠ(ââno-apiâ) ááᯠáááœáá·áºáá² áááºáááºááŸá¯áá¯ááºááᯠáááºáá±á¬ááºážáá±ážáááºá áá¯á¶áá±ááœá²á·á ááºážáá¯á¶ááᯠâ--config-fileâ ááœá±ážáá»ááºááŸá¯ááŸáá áºááá·áº áááºááŸááºáá¬ážááŒá®áž JSON áá±á¬áºáááºááŒáá·áº áááºááŸááºáá¬ážáááºá á¡áááá·áºáá±ážá á¬ááŒá±á¬ááºážááœá±ážáá»ááºááŸá¯áá»á¬ážááŸá âââ ááŒá¬ážáá¬ážááŒááºážá¡ááœáẠáá¶á·ááá¯ážááŸá¯ááá¯áááºáž ááá·áºááœááºážáá¬ážááŒá®ážá ááá¯á·áá±á¬áẠáááºááŸááºáá¬ážáá±á¬ á¡áá¶áá»á¬ážááᯠáá¯ááºáá±á¬ááºááŒááºážáááŸááá² ááœááºážáááºáá áºáá»áŸá±á¬áẠááŒááºáááºážááœá¬ážáááºááŒá áºáááºá
Firecracker ááá¯áááºáž áááºáá®ážáá¬ážáá²á· Amazon áááºáž ááŒá
áºáá«áááºá
Amazon áááºáž áá«áááºá
source: opennet.ru