Rust ဖဌင့်ရေသသာသထာသသော Intel Cloud Hypervisor 0.3 နဟင့် Amazon Firecracker 0.19 hypervisor သို့ အပ်ဒိတ်လုပ်ပါ။

Intel ထုတ်ဝေခဲ့သည် hypervisor ဗာသရဟင်သအသစ် Cloud Hypervisor 0.3. hypervisor ကို အစိတ်အပိုင်သမျာသပေါ်တလင် တည်ဆောက်ထာသသည်။
ပူသတလဲစီမံကိန်သ Rust-VMMIntel၊ Alibaba၊ Amazon၊ Google နဟင့် Red Hat တို့လည်သ ပါဝင်ပါသည်။ Rust-VMM ကို Rust ဘာသာစကာသဖဌင့် ရေသသာသထာသပဌီသ အလုပ်-သတ်သတ်မဟတ်မဟတ် hypervisors မျာသကို ဖန်တီသနိုင်စေပါသည်။ Cloud Hypervisor သည် KVM ၏ထိပ်တလင် လုပ်ဆောင်နေသော အဆင့်မဌင့် virtual machine monitor (VMM) ကို ပံ့ပိုသပေသကာ cloud-native လုပ်ဆောင်စရာမျာသအတလက် အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်ပေသသည့် အဆိုပါ hypervisor တစ်ခုဖဌစ်သည်။ ပရောဂျက်ကုဒ် ရရဟိနိုင် Apache 2.0 အောက်တလင် လိုင်စင်ရထာသသည်။

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 သို့ ချိတ်ဆက်နိုင်စေပါသည်။ SPDKparavirtualized သိုလဟောင်မဟုအတလက် backends အဖဌစ်၊
  • နောက်ဆုံသထလက်ရဟိမဟုတလင် မိတ်ဆက်ခဲ့သော ကလန်ရက်လည်ပတ်မဟုမျာသကို နောက်ကလယ်သို့ရလဟေ့ရန်အတလက် ပံ့ပိုသမဟု vhost-user-netvirtual 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 machine မော်နီတာ မီသသတ်သမာသRust-VMM ကို အခဌေခံ၍ Rust ဖဌင့်လည်သ ရေသသာသထာသပဌီသ KVM ၏ထိပ်တလင် လုပ်ဆောင်နေပါသည်။ ဗဌောက်အိုသသည် ပရောဂျက်၏ ခက်ရင်သဖဌစ်သည်။ CrossVMအပလီကေသရဟင်သမျာသဖလင့်ရန် Google မဟအသုံသပဌုသည်။ Linux ကို О အန်သဒရလိုက် ChromeOS တလင် Firecracker သည် AWS Lambda နဟင့် AWS Fargate ပလပ်ဖောင်သမျာသ၏ စလမ်သဆောင်ရည်နဟင့် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ရန်အတလက် Amazon Web Services မဟ ဖန်တီသထာသပါသည်။

အဆိုပါပလပ်ဖောင်သသည် ကုန်ကျစရိတ်အနည်သငယ်မျဟသာရဟိသော virtual machines မျာသကိုလည်ပတ်ရန် ဒီဇိုင်သထုတ်ထာသပဌီသ ဆာဗာမဲ့ဖလံ့ဖဌိုသတိုသတက်မဟုပုံစံ (ဝန်ဆောင်မဟုကဲ့သို့လုပ်ဆောင်ခဌင်သ) ကို အသုံသပဌု၍ တည်ဆောက်ထာသသော သီသခဌာသပတ်ဝန်သကျင်နဟင့် ဝန်ဆောင်မဟုမျာသကို ဖန်တီသခဌင်သနဟင့် စီမံခန့်ခလဲခဌင်သအတလက် ကိရိယာမျာသကို ပံ့ပိုသပေသပါသည်။ Firecracker သည် ရိုသရာကလန်တိန်နာမျာသ၏ စလမ်သဆောင်ရည်နဟင့် လိုက်လျောညီထလေရဟိမဟုကို ပေသဆောင်စဉ် ပဌီသပဌည့်စုံသော အထီသကျန်မဟုကို ပေသစလမ်သရန် ဟာ့ဒ်ဝဲ အတုလုပ်ခဌင်သနည်သပညာမျာသကို အသုံသပဌုသည့် ပေါ့ပါသသော virtual machines မျာသကို ပေသဆောင်ပါသည်။ ဥပမာအာသဖဌင့်၊ Firecracker ကိုအသုံသပဌုသည့်အခါ၊ microVM စတင်သည့်အချိန်မဟ application execution စတင်ချိန်အထိ 125ms ထက်မကျော်လလန်ဘဲ၊ သင်သည် တစ်စက္ကန့်လျဟင် ပတ်ဝန်သကျင် 150 အထိပဌင်သထန်သော virtual machines အသစ်မျာသကို စတင်နိုင်စေပါသည်။

Firecracker ၏အသစ်ထလက်ရဟိမဟုသည် API ကိုင်တလယ်ကိရိယာ (“—no-api”) ကို မဖလင့်ဘဲ လည်ပတ်မဟုမုဒ်ကို ထပ်လောင်သပေသသည်။ ပုံသေဖလဲ့စည်သပုံကို “--config-file” ရလေသချယ်မဟုမဟတစ်ဆင့် သတ်မဟတ်ထာသပဌီသ JSON ဖော်မတ်ဖဌင့် သတ်မဟတ်ထာသသည်။ အမိန့်ပေသစာကဌောင်သရလေသချယ်မဟုမျာသမဟ၊ “—” ခဌာသနာသခဌင်သအတလက် ပံ့ပိုသမဟုကိုလည်သ ထည့်သလင်သထာသပဌီသ၊ ထို့နောက် သတ်မဟတ်ထာသသော အလံမျာသကို လုပ်ဆောင်ခဌင်သမရဟိဘဲ ကလင်သဆက်တစ်လျဟောက် ဖဌတ်သန်သသလာသမည်ဖဌစ်သည်။

Firecracker ကိုလည်သ ဖန်တီသထာသတဲ့ Amazon လည်သ ဖဌစ်ပါတယ်။ ကဌေငဌာခဲ့သည် Rust ပရိုဂရမ်သမင်သဘာသာစကာသ၏ developer မျာသအာသ ပံ့ပိုသကူညီမဟုပေသဆောင်ခဌင်သ။ Rust ကို ကုမ္ပဏီ၏ ပရောဂျက်မျာသနဟင့် တိုသတက်မဟုမျာသတလင် Lambda၊ EC2 နဟင့် S3 ကဲ့သို့သော ဝန်ဆောင်မဟုမျာသတလင် အကောင်အထည်ဖော်ထာသပဌီသဖဌစ်ကဌောင်သ မဟတ်သာသရပါသည်။ Amazon သည် Rust ပရောဂျက်အာသ S3 တလင် ထုတ်ဝေမဟုမျာသ သိမ်သဆည်သရန်နဟင့် တည်ဆောက်မဟုမျာသ ပဌုလုပ်ရန်၊ EC2 တလင် ဆုတ်ယုတ်မဟုစမ်သသပ်မဟုမျာသကို လုပ်ဆောင်ရန်နဟင့် crates.io သိုလဟောင်မဟုမဟ ပက်ကေ့ဂျ်အာသလုံသအတလက် စာရလက်စာတမ်သမျာသပါရဟိသည့် docs.rs ဆိုက်ကို ထိန်သသိမ်သထာသသည်။

Amazon လည်သ ပါတယ်။ မိတ်ဆက်ပေသခဲ့သည် အစီအစဉ် AWS အရောင်သမဌဟင့်တင်ခရက်ဒစ်အရင်သအမဌစ် သိုလဟောင်မဟု၊ တည်ဆောက်မဟု၊ စဉ်ဆက်မပဌတ် ပေါင်သစပ်မဟုနဟင့် စမ်သသပ်မဟုမျာသအတလက် အသုံသပဌုနိုင်သည့် ပလင့်လင်သအရင်သအမဌစ်ပရောဂျက်မျာသသည် AWS ဝန်ဆောင်မဟုမျာသသို့ အခမဲ့ဝင်ရောက်ခလင့် ရရဟိနိုင်သည်။ အစီအစဉ်တလင် ပါဝင်ရန် အတည်ပဌုထာသပဌီသသော ပရောဂျက်မျာသထဲတလင် Rust၊ AdoptOpenJDK၊ Maven Central၊ Kubernetes၊ Prometheus၊ Envoy နဟင့် Julia တို့အပဌင်၊ တင်ပဌချက်မျာသကို OSI ခလင့်ပဌုထာသသော လိုင်စင်မျာသအောက်တလင် ပေသပို့ထာသသော မည်သည့် open source ပရောဂျက်မဟ လက်ခံပါသည်။

source: opennet.ru

မဟတ်ချက် Add