ã€ã³ãã« æ°ããããŒãžã§ã³ã®ãã€ããŒãã€ã¶ãŒ ã ãã€ããŒãã€ã¶ãŒã¯ã³ã³ããŒãã³ããäžå¿ã«æ§ç¯ãããŠããŸã
å
±åãããžã§ã¯ã ãIntelã«å ããŠãAlibabaãAmazonãGoogleãRed Hatãåå ããŠããŸãã Rust-VMM 㯠Rust èšèªã§æžãããŠãããã¿ã¹ã¯åºæã®ãã€ããŒãã€ã¶ãŒãäœæã§ããŸãã ã¯ã©ãŠã ãã€ããŒãã€ã¶ãŒã¯ãKVM äžã§å®è¡ãããã¯ã©ãŠã ãã€ãã£ã ã¿ã¹ã¯çšã«æé©åãããé«ã¬ãã«ã®ä»®æ³ãã·ã³ ã¢ãã¿ãŒ (VMM) ãæäŸãããã€ããŒãã€ã¶ãŒã® XNUMX ã€ã§ãã ãããžã§ã¯ãã³ãŒã Apache 2.0 ã«åºã¥ããŠã©ã€ã»ã³ã¹ãããŠããŸãã
Cloud Hypervisor ã¯ãvirtio ããŒã¹ã®æºä»®æ³åã¢ãã©ã€ã¢ã³ã¹ã䜿çšããŠææ°ã® Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ãå®è¡ããããšã«éç¹ã眮ããŠããŸãã äž»ãªã¿ã¹ã¯ãšããŠã¯ãé«ãå¿çæ§ãäœã¡ã¢ãªæ¶è²»ãé«ãããã©ãŒãã³ã¹ãç°¡çŽ åãããæ§æãããã³èããããæ»æãã¯ãã«ã®åæžãªã©ãæããããŸãã
ãšãã¥ã¬ãŒã·ã§ã³ã®ãµããŒãã¯æå°éã«æããããæºä»®æ³åã«éç¹ã眮ãããŠããŸãã çŸåšãx86_64 ã·ã¹ãã ã®ã¿ããµããŒããããŠããŸãããAArch64 ã®ãµããŒããæºåäžã§ãã ã²ã¹ã ã·ã¹ãã ã®ãã¡ãçŸåšãµããŒããããŠããã®ã¯ 64 ããã Linux ãã«ãã®ã¿ã§ãã CPUãã¡ã¢ãªãPCIãNVDIMM ã®èšå®ã¯ãã«ã段éã§è¡ãããŸãã ãµãŒããŒéã§ä»®æ³ãã·ã³ãç§»è¡ããããšãå¯èœã§ãã
å鲿²:
- æºä»®æ³å I/O ãå¥ã®ããã»ã¹ã«ç§»åããäœæ¥ãç¶ããããŸããã ããã¯ãšã³ãã䜿çšããŠãããã¯ããã€ã¹ãšå¯Ÿè©±ããæ©èœã远å ããŸãã ã ãã®å€æŽã«ãããvhost-user ã¢ãžã¥ãŒã«ã«åºã¥ããŠããã㯠ããã€ã¹ã Cloud Hypervisor ã«æ¥ç¶ã§ããããã«ãªããŸãã ãæºä»®æ³åã¹ãã¬ãŒãžã®ããã¯ãšã³ããšããŠã
- ååã®ãªãªãŒã¹ã§å°å ¥ãããããããã¯ãŒã¯æäœã®ããã¯ãšã³ããžã®ç§»è¡ã®ãµããŒã ãä»®æ³ãããã¯ãŒã¯ãã©ã€ããŒã«åºã¥ããæ°ããããã¯ãšã³ãã§æ¡åŒµ ã ããã¯ãšã³ã㯠Rust ã§æžãããŠãããçŸåšã¯ã¡ã€ã³ã®æºä»®æ³åãããã¯ãŒã¯ ã¢ãŒããã¯ãã£ãšã㊠Cloud Hypervisor ã§äœ¿çšãããŠããŸãã
- ãã¹ãç°å¢ãšã²ã¹ã ã·ã¹ãã éã®éä¿¡ã®å¹çãšã»ãã¥ãªãã£ãåäžãããããã«ãvirtio ãä»ããŠåäœãã AF_VSOCK ã¢ãã¬ã¹æå®ãåãããœã±ãã (ä»®æ³ãããã¯ãŒã¯ ãœã±ãã) ã®ãã€ããªããå®è£ ãææ¡ãããŠããŸãã å®è£ ã¯ãããžã§ã¯ãã®çºå±ã«åºã¥ããŠè¡ãããŸã ã¢ããŸã³ã«ãã£ãŠéçºãããŸããã VSOCK ã䜿çšãããšãã²ã¹ã ã·ã¹ãã åŽã®ã¢ããªã±ãŒã·ã§ã³ãšãã¹ãéã®å¯Ÿè©±ã«æšæºã® POSIX ãœã±ãã API ã䜿çšã§ããŸããããã«ãããéåžžã®ãããã¯ãŒã¯ ããã°ã©ã ããã®ãããªå¯Ÿè©±ã«é©å¿ãããããè€æ°ã®ã¯ã©ã€ã¢ã³ã ããã°ã©ã ãš XNUMX ã€ã®ãµãŒã㌠ã¢ããªã±ãŒã·ã§ã³ã®å¯Ÿè©±ãå®è£ ãããããããšã容æã«ãªããŸãã
- HTTP ãããã³ã«ã䜿çšãã管ç API ã®åæãµããŒããæäŸãããŠããŸãã å°æ¥çã«ã¯ããã® API ã«ããããªãœãŒã¹ã®ããããã©ã°ãç°å¢ã®ç§»è¡ãªã©ãã²ã¹ã ã·ã¹ãã äžã§éåææäœãéå§ã§ããããã«ãªããŸãã
- virtio MMIO (ã¡ã¢ãª ãããã virtio) ã«åºã¥ããã©ã³ã¹ããŒãå®è£ å±€ã远å ããŸãããããã䜿çšãããšãPCI ãã¹ ãšãã¥ã¬ãŒã·ã§ã³ãå¿ èŠãšããªãæå°éã®ã²ã¹ã ã·ã¹ãã ãäœæã§ããŸãã
- Cloud Hypervisor ã§ãã¹ããããã²ã¹ã ã·ã¹ãã ãå®è¡ããããã®ãµããŒããæ¡åŒµããåãçµã¿ã®äžç°ãšããŠãvirtio ãä»ããŠæºä»®æ³å IOMMU ããã€ã¹ã転éããæ©èœã远å ãããŸãããããã«ããããã¹ããããçŽæ¥ããã€ã¹è»¢éã®ã»ãã¥ãªãã£ãåäžãããããšãã§ããŸãã
- Ubuntu 19.10ã®ãµããŒããæäŸããŸããã
- 64 GB ãè¶ ãã RAM ãæèŒããã²ã¹ã ã·ã¹ãã ãå®è¡ããæ©èœã远å ãããŸããã
ããã«ã泚ç®ã§ããã®ã¯ã 飿¥ ä»®æ³ãã·ã³ã¢ãã¿ãŒ ãããã Rust ã§æžãããŠãããRust-VMM ã«åºã¥ããŠãããKVM äžã§å®è¡ãããŸãã Firecracker ã¯ãããžã§ã¯ãã®ãã©ãŒã¯ã§ã Google ãã¢ããªã±ãŒã·ã§ã³ãå®è¡ããããã«äœ¿çš О ChromeOSã§ã¯ã Firecracker ã¯ãAWS Lambda ããã³ AWS Fargate ãã©ãããã©ãŒã ã®ããã©ãŒãã³ã¹ãšå¹çãåäžãããããã«ãã¢ããŸã³ ãŠã§ã ãµãŒãã¹ã«ãã£ãŠéçºãããŠããŸãã
ãã®ãã©ãããã©ãŒã ã¯ãæå°éã®ãªãŒããŒãããã§ä»®æ³ãã·ã³ãå®è¡ããããã«èšèšãããŠããããµãŒããŒã¬ã¹éçºã¢ãã« (ãµãŒãã¹ãšããŠã®æ©èœ) ã䜿çšããŠæ§ç¯ãããåé¢ç°å¢ãšãµãŒãã¹ãäœæããã³ç®¡çããããã®ããŒã«ãæäŸããŸãã Firecracker ã¯ãããŒããŠã§ã¢ä»®æ³åãã¯ãããžã䜿çšããŠä»®æ³ãã·ã³ãå®å šã«åé¢ããªãããåŸæ¥ã®ã³ã³ããã®ããã©ãŒãã³ã¹ãšæè»æ§ãæäŸãã microVM ãšåŒã°ãã軜éã®ä»®æ³ãã·ã³ãæäŸããŸãã ããšãã°ãFirecracker ã䜿çšããå ŽåãmicroVM ã®éå§ããã¢ããªã±ãŒã·ã§ã³ã®éå§ãŸã§ã®æé㯠125 ããªç§ãè¶ ããªãããã150 ç§ãããæå€§ XNUMX ç°å¢ã®åŒ·åºŠã§æ°ããä»®æ³ãã·ã³ãèµ·åã§ããŸãã
Firecracker ã®æ°ãããªãªãŒã¹ã§ã¯ãAPI ãã³ãã©ãŒãå®è¡ããªãæäœã¢ãŒã (ã--no-apiã) ã远å ãããç°å¢ãæ§æãã¡ã€ã«å ã®ããŒãã³ãŒãã£ã³ã°ãããèšå®ã®ã¿ã«å¶éãããŸãã éçæ§æã¯ã--config-fileããªãã·ã§ã³ã§æå®ãããJSON 圢åŒã§å®çŸ©ãããŸãã ã³ãã³ã ã©ã€ã³ ãªãã·ã§ã³ã®ãã¡ããâãåºåãæåã®ãµããŒãã远å ãããŸããããã®åŸããã©ã°ã¯åŠçãããã«ãã§ãŒã³ã«æ²¿ã£ãŠæž¡ãããŸãã
Firecrackeréçºè ã®Amazonã Rust ããã°ã©ãã³ã°èšèªã®éçºè ã®ã¹ãã³ãµãŒã·ããã«ã€ããŠã å瀟ã®ãããžã§ã¯ãã§ã¯ Rust ã®äœ¿çšãå¢ããŠãããRust ã§ã®éçºã¯ãã§ã« LambdaãEC2ãS3 ãªã©ã®ãµãŒãã¹ã«å®è£ ãããŠããããšã泚ç®ãããŸãã Amazon ã¯ããªãªãŒã¹ãšãã«ãã S3 ã«ä¿åããEC2 ã§ååž°ãã¹ããå®è¡ããcrates.io ãªããžããªã®ãã¹ãŠã®ããã±ãŒãžã®ããã¥ã¡ã³ããå«ã docs.rs ãµã€ããç¶æããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã Rust ãããžã§ã¯ãã«æäŸããŸããã
ã¢ããŸã³ã пÑПгÑÐ°ÐŒÐŒÑ ããªãŒãã³ãªãããžã§ã¯ãã¯ããªãœãŒã¹ã¹ãã¬ãŒãžããã«ããç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ããã¹ãã«äœ¿çšã§ãã AWS ãµãŒãã¹ã«ç¡æã§ã¢ã¯ã»ã¹ã§ããŸãã ããã°ã©ã ãžã®åå ããã§ã«æ¿èªãããŠãããããžã§ã¯ãã®ãã¡ãRust ã«å ããŠãAdoptOpenJDKãMaven CentralãKubernetesãPrometheusãEnvoyãJulia ãæ³šç®ãããŠããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ãOSI ã«ãã£ãŠæ¿èªãããã©ã€ã»ã³ã¹ã«åºã¥ããŠæäŸããããªãŒãã³ ãœãŒã¹ ãããžã§ã¯ãããåãä»ããããŸãã
åºæïŒ ãªãŒãã³ããã.ru
