NetBSD նախագիծը մշակում է նոր NVMM հիպերվիզոր

NetBSD Project Developers հայտարարեց նոր հիպերվիզորի և դրա հետ կապված վիրտուալացման ստեկի ստեղծման մասին, որոնք արդեն ներառված են փորձարարական NetBSD ընթացիկ ճյուղում և կառաջարկվեն NetBSD 9-ի կայուն թողարկումում: NVMM-ն ներկայումս սահմանափակված է x86_64 ճարտարապետության աջակցությամբ և տրամադրում է երկու հետնամաս: միացնելով ապարատային վիրտուալացման մեխանիզմները՝ x86-SVM՝ AMD-ի աջակցությամբ և x86-VMX պրոցեսորի վիրտուալացման ընդլայնում Intel CPU-ների համար: Իր ներկայիս տեսքով հնարավոր է մեկ հոսթի վրա գործարկել մինչև 128 վիրտուալ մեքենա, որոնցից յուրաքանչյուրին կարող է հատկացվել մինչև 256 վիրտուալ պրոցեսորի միջուկ (VCPU) և 128 ԳԲ օպերատիվ հիշողություն:

NVMM-ն ներառում է վարորդ, որն աշխատում է համակարգի միջուկի մակարդակով և համակարգում է մուտքը դեպի ապարատային վիրտուալացման մեխանիզմներ, և Libnvmm ստեկ, որն աշխատում է օգտագործողի տարածքում: Միջուկի բաղադրիչների և օգտագործողի տարածության միջև փոխազդեցությունն իրականացվում է IOCTL-ի միջոցով: NVMM-ի առանձնահատկությունն է, որը տարբերում է այն հիպերվիզորներից, ինչպիսին է KVM-ն HAXM և Bhyve-ը, այն է, որ միջուկի մակարդակում կատարվում է միայն ապարատային վիրտուալացման մեխանիզմների շուրջ պարտադիր կապերի մի շարք, և ապարատային էմուլյացիայի բոլոր ծածկագիրը միջուկից դուրս է տեղափոխվում օգտագործողի տարածք: Այս մոտեցումը թույլ է տալիս նվազեցնել բարձր արտոնություններով գործարկվող կոդի քանակը և նվազեցնել ամբողջ համակարգը վտանգելու վտանգը հիպերվիզորի խոցելիության վրա հարձակումների դեպքում: Բացի այդ, նախագծի վրիպազերծման և անորոշության փորձարկումը նկատելիորեն պարզեցված է:

Այնուամենայնիվ, Libnvmm-ն ինքնին չի պարունակում էմուլյատորի գործառույթներ, այլ միայն տրամադրում է API, որը թույլ է տալիս ինտեգրել NVMM աջակցությունը գոյություն ունեցող էմուլյատորների մեջ, օրինակ՝ QEMU: API-ն ընդգրկում է այնպիսի գործառույթներ, ինչպիսիք են վիրտուալ մեքենայի ստեղծումն ու գործարկումը, հյուրերի համակարգին հիշողություն հատկացնելը և VCPU-ների հատկացումը: Անվտանգությունը բարելավելու և հարձակման հնարավոր վեկտորները նվազեցնելու համար libnvmm-ը տրամադրում է միայն գործառույթներ, որոնք բացահայտորեն պահանջվում են. լռելյայնորեն, բարդ մշակողները ավտոմատ կերպով չեն կանչվում և կարող են ընդհանրապես չօգտագործվել, եթե հնարավոր լինի խուսափել դրանցից: NVMM-ն փորձում է ամեն ինչ պարզ պահել՝ առանց չափազանց բարդանալու և թույլ տալով վերահսկել ձեր աշխատանքի հնարավորինս շատ ասպեկտներ:

NetBSD նախագիծը մշակում է նոր NVMM հիպերվիզոր

NVMM-ի միջուկի մակարդակի մասը բավականին սերտորեն ինտեգրված է NetBSD միջուկի հետ և թույլ է տալիս կատարելագործել կատարողականությունը՝ նվազեցնելով հյուրի OS-ի և հյուրընկալող միջավայրի միջև համատեքստային անջատիչների քանակը: Օգտագործողի տարածքի կողմից, libnvmm-ը փորձում է միավորել ընդհանուր մուտքի/ելքի գործառնությունները և խուսափել անտեղի համակարգային զանգեր կատարելուց: Հիշողության բաշխման համակարգը հիմնված է pmap ենթահամակարգի վրա, որը թույլ է տալիս համակարգում հիշողության պակասի դեպքում հյուրերի հիշողության էջերը դուրս հանել swap միջնորմում: NVMM-ն զերծ է գլոբալ կողպեքներից և լավ մասշտաբներից, ինչը թույլ է տալիս միաժամանակ օգտագործել տարբեր CPU միջուկներ՝ տարբեր հյուր վիրտուալ մեքենաներ գործարկելու համար:

Պատրաստվել է QEMU-ի վրա հիմնված լուծում, որն օգտագործում է NVMM՝ ապարատային վիրտուալացման մեխանիզմները միացնելու համար: Աշխատանքներ են տարվում նախապատրաստված կարկատանները QEMU-ի հիմնական կառուցվածքում ներառելու ուղղությամբ։ QEMU+NVMM համակցությունն արդեն կա թույլ է տալիս Հաջողությամբ գործարկել հյուր համակարգերը FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 և այլ ՕՀ-ներով x86_64 համակարգերի վրա AMD և Intel պրոցեսորներով (NVMM-ն ինքնին կապված չէ որոշակի ճարտարապետության հետ, օրինակ, եթե ստեղծվի համապատասխան backend-ը: , այն կկարողանա աշխատել ARM64 համակարգերի վրա): NVMM-ի հետագա կիրառման ոլորտներից նշվում է նաև առանձին հավելվածների ավազարկղային մեկուսացումը։

NetBSD նախագիծը մշակում է նոր NVMM հիպերվիզոր

Source: opennet.ru

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