Թարմացրեք Intel Cloud Hypervisor 0.3 և Amazon Firecracker 0.19 հիպերվիզորներին՝ գրված Rust-ով

Intel опубликовала hypervisor-ի նոր տարբերակը Cloud Hypervisor 0.3. Հիպերվիզորը կառուցված է բաղադրիչների վրա
համատեղ նախագիծ Rust-VMM, որին, բացի Intel-ից, մասնակցում են նաև Alibaba-ն, Amazon-ը, Google-ը և Red Hat-ը։ Rust-VMM-ը գրված է Rust լեզվով և թույլ է տալիս ստեղծել առաջադրանքի հատուկ հիպերվիզորներ: Cloud Hypervisor-ը նման հիպերվիզորներից մեկն է, որն ապահովում է բարձր մակարդակի վիրտուալ մեքենայի մոնիտոր (VMM), որն աշխատում է KVM-ի վերևում և օպտիմիզացված է ամպի բնիկ առաջադրանքների համար: Ծրագրի կոդը հասանելի է լիցենզավորված Apache 2.0-ի համաձայն:

Cloud Hypervisor-ը կենտրոնացած է ժամանակակից Linux բաշխումներ գործարկելու վրա՝ օգտագործելով virtio-ի վրա հիմնված paravirtualized սարքեր: Նշված հիմնական նպատակներից են՝ բարձր արձագանքում, ցածր հիշողության սպառում, բարձր կատարողականություն, պարզեցված կոնֆիգուրացիա և հարձակման հնարավոր վեկտորների կրճատում:

Էմուլյացիայի աջակցությունը նվազագույնի է հասցվում, և ուշադրությունը կենտրոնացված է պարավիրտուալիզացիայի վրա: Ներկայումս միայն x86_64 համակարգերն են աջակցվում, սակայն նախատեսվում է AArch64-ի աջակցություն: Հյուր համակարգերի համար ներկայումս աջակցվում են Linux-ի միայն 64-բիթանոց կառուցվածքները: CPU-ն, հիշողությունը, PCI-ն և NVDIMM-ը կազմաձևված են հավաքման փուլում: Հնարավոր է վիրտուալ մեքենաներ տեղափոխել սերվերների միջև:

Նոր տարբերակում.

  • Աշխատանքը շարունակվեց պարավիրտուալացված I/O-ի առանձին գործընթացներ տեղափոխելու ուղղությամբ: Բլոկային սարքերի հետ փոխգործակցելու համար ավելացվել է հետին պլաններ օգտագործելու հնարավորությունը vhost-user-blk. Փոփոխությունը թույլ է տալիս միացնել բլոկ սարքերը, որոնք հիմնված են vhost-user մոդուլի վրա Cloud Hypervisor-ին, ինչպիսիք են. SPDK, որպես պարավիրտուալացված պահեստավորման հետքեր;
  • Աջակցություն ցանցային գործառնությունները հետնամասեր տեղափոխելու համար, որը ներկայացված է վերջին թողարկումում vhost-user-net, ընդլայնվել է նոր հետին պլանով, որը հիմնված է վիրտուալ ցանցի դրայվերի վրա Թակել. Backend-ը գրված է Rust-ով և այժմ օգտագործվում է Cloud Hypervisor-ում՝ որպես հիմնական para-virtualized ցանցային ճարտարապետություն;
  • Հյուրընկալող միջավայրի և հյուրի համակարգի միջև հաղորդակցության արդյունավետությունն ու անվտանգությունը բարձրացնելու համար առաջարկվում է AF_VSOCK հասցեագրմամբ վարդակների հիբրիդային ներդրում (վիրտուալ ցանցային վարդակներ), որոնք աշխատում են virtio-ի միջոցով: Իրականացումը հիմնված է ծրագրի զարգացումների վրա Հրեղեն, մշակված Amazon-ի կողմից: VSOCK-ը թույլ է տալիս օգտագործել ստանդարտ POSIX Sockets API-ը հյուրի և հյուրընկալող կողմերի հավելվածների միջև փոխազդեցության համար, ինչը հեշտացնում է սովորական ցանցային ծրագրերի հարմարեցումը նման փոխազդեցության համար և իրականացնել մի քանի հաճախորդի ծրագրերի փոխազդեցությունը մեկ սերվերի հավելվածի հետ.
  • Տրամադրել է նախնական աջակցություն կառավարման API-ին՝ օգտագործելով HTTP արձանագրությունը: Ապագայում այս API-ն հնարավորություն կտա նախաձեռնել ասինխրոն գործողություններ հյուրերի համակարգերի վրա, ինչպես օրինակ՝ «hot plugging» ռեսուրսները և միգրացիոն միջավայրերը.
  • Ավելացվել է շերտ, որն ունի տրանսպորտային ներդրում, որը հիմնված է virtio MMIO-ի վրա (Memory mapped virtio), որը կարող է օգտագործվել մինիմալիստական ​​հյուր համակարգեր ստեղծելու համար, որոնք չեն պահանջում PCI ավտոբուսի էմուլացիա;
  • Որպես ներդրված հյուր համակարգերի գործարկման աջակցության ընդլայնման նախաձեռնության մաս՝ Cloud Hypervisor-ը ավելացրել է virtio-ի միջոցով պարավիրտուալացված IOMMU սարքերը փոխանցելու հնարավորությունը, ինչը բարելավում է սարքերի տեղադրվող և ուղղակի փոխանցման անվտանգությունը:
  • Աջակցություն է տրամադրել Ubuntu 19.10-ին;
  • Ավելացվել է ավելի քան 64 ԳԲ օպերատիվ հիշողություն ունեցող հյուր համակարգեր գործարկելու հնարավորություն:

Բացի այդ, կարող եք նշել նոր թողարկում կից զարգացած վիրտուալ մեքենայի մոնիտոր Հրեղեն, գրված է նաև Rust-ով, որը հիմնված է Rust-VMM-ի վրա և աշխատում է KVM-ի վերևում: Firecracker-ը նախագծի պատառաքաղն է CrosVM, որն օգտագործվում է Google-ի կողմից հավելվածներ գործարկելու համար Linux и Android ChromeOS-ում: Firecracker-ը մշակվում է Amazon Web Services-ի կողմից՝ բարելավելու AWS Lambda և AWS Fargate հարթակների աշխատանքը և արդյունավետությունը:

Պլատֆորմը նախատեսված է նվազագույն ծախսերով վիրտուալ մեքենաներ գործարկելու համար և տրամադրում է գործիքներ՝ ստեղծելու և կառավարելու մեկուսացված միջավայրեր և ծառայություններ, որոնք կառուցվել են առանց սերվերի զարգացման մոդելի (գործառույթ որպես ծառայություն): Firecracker-ն առաջարկում է թեթև վիրտուալ մեքենաներ, որոնք կոչվում են microVM, որոնք օգտագործում են ապարատային վիրտուալացման տեխնոլոգիաներ՝ ամբողջական մեկուսացում ապահովելու համար՝ միաժամանակ մատուցելով ավանդական բեռնարկղերի արդյունավետությունն ու ճկունությունը: Օրինակ, Firecracker-ն օգտագործելիս microVM-ի գործարկման պահից մինչև հավելվածի կատարման սկիզբը ժամանակը չի գերազանցում 125 մվ, ինչը թույլ է տալիս գործարկել նոր վիրտուալ մեքենաներ վայրկյանում մինչև 150 միջավայր ինտենսիվությամբ:

Firecracker-ի նոր թողարկումն ավելացնում է գործողության ռեժիմ՝ առանց API կարգավորիչի գործարկման («—no-api»)՝ սահմանափակելով շրջակա միջավայրը միայն կազմաձևման ֆայլում կոշտ կոդավորված կարգավորումներով։ Ստատիկ կոնֆիգուրացիան սահմանվում է «--config-file» տարբերակի միջոցով և սահմանվում է JSON ձևաչափով: Հրամանի տողի տարբերակներից ավելացվել է նաև «—» բաժանարարի աջակցությունը, որից հետո նշված դրոշակները փոխանցվում են շղթայի երկայնքով՝ առանց մշակման։

Amazon-ը, որը մշակում է Firecracker-ը, նույնպես հայտարարվեց Rust ծրագրավորման լեզվի մշակողներին հովանավորություն տրամադրելու վերաբերյալ: Նշվում է, որ Rust-ն ավելի ու ավելի է օգտագործվում ընկերության նախագծերում, և դրա վրա մշակումները արդեն իրականացվել են այնպիսի ծառայություններում, ինչպիսիք են Lambda, EC2 և S3: Amazon-ը Rust նախագծին տրամադրել է ենթակառուցվածք՝ S3-ում թողարկումներն ու կառուցումները պահելու, EC2-ում ռեգրեսիայի թեստեր իրականացնելու և crates.io պահոցից բոլոր փաթեթների փաստաթղթերով docs.rs կայք պահպանելու համար:

Amazon-ը նույնպես ներկայացրեց ծրագիրը AWS գովազդային վարկ, որտեղ բաց կոդով նախագծերը կարող են անվճար մուտք ստանալ AWS ծառայություններ, որոնք կարող են օգտագործվել ռեսուրսների պահպանման, կառուցման, շարունակական ինտեգրման և փորձարկման համար: Ծրագրին մասնակցելու համար արդեն հաստատված նախագծերից բացի Rust-ից նշվել են AdoptOpenJDK-ն, Maven Central-ը, Kubernetes-ը, Prometheus-ը, Envoy-ը և Julia-ն։ Ներկայացումները ընդունվում են ցանկացած բաց կոդով նախագծից, որը տրամադրվում է OSI-ի կողմից հաստատված լիցենզիաների ներքո:

Source: opennet.ru

Добавить комментарий