NetBSD жобасы жаңа NVMM гипервизорын жасауда

NetBSD жобасының әзірлеушілері жариялады тәжірибелік NetBSD-ағымдық тармағына енгізілген және NetBSD 9 тұрақты шығарылымында ұсынылатын жаңа гипервизор мен байланысты виртуалдандыру стекін жасау туралы. NVMM қазіргі уақытта x86_64 архитектурасын қолдаумен шектелген және екі серверді қамтамасыз етеді. аппараттық виртуалдандыру механизмдерін қосу: AMD қолдауымен x86-SVM және Intel процессорларына арналған x86-VMX CPU виртуалдандыру кеңейтімдері. Қазіргі түрінде бір хостта 128 виртуалды машинаны іске қосуға болады, олардың әрқайсысына 256 виртуалды процессор өзегі (VCPU) және 128 ГБ жедел жады бөлуге болады.

NVMM жүйе ядросы деңгейінде жұмыс істейтін және аппараттық құралдарды виртуалдандыру механизмдеріне қол жеткізуді үйлестіретін драйверді және пайдаланушы кеңістігінде жұмыс істейтін Libnvmm стекін қамтиды. Ядро компоненттері мен пайдаланушы кеңістігі арасындағы өзара әрекеттесу IOCTL арқылы жүзеге асырылады. NVMM-тің оны KVM сияқты гипервизорлардан ерекшелендіретін ерекшелігі HAXM және Bhyve, ядро ​​деңгейінде аппараттық виртуалдандыру механизмдерінің айналасындағы ең аз қажетті байланыстыру жиыны ғана орындалады және барлық аппараттық эмуляция коды ядродан пайдаланушы кеңістігіне жылжытылады. Бұл тәсіл жоғары артықшылықтармен орындалатын код көлемін азайтуға және гипервизордағы осалдықтарға шабуыл жасалған жағдайда бүкіл жүйені бұзу қаупін азайтуға мүмкіндік береді. Сонымен қатар, жобаның отладка және анық емес тестілеуі айтарлықтай жеңілдетілген.

Дегенмен, Libnvmm өзі эмулятор функцияларын қамтымайды, тек NVMM қолдауын бар эмуляторларға біріктіруге мүмкіндік беретін API ұсынады, мысалы, QEMU. API виртуалды машинаны жасау және іске қосу, қонақтық жүйеге жадты бөлу және VCPU бөлу сияқты функцияларды қамтиды. Қауіпсіздікті жақсарту және ықтимал шабуыл векторларын азайту үшін libnvmm тек нақты сұралған функцияларды қамтамасыз етеді — әдепкі бойынша, күрделі өңдеушілер автоматты түрде шақырылмайды және оларды болдырмау мүмкін болса, мүлде пайдаланылмауы мүмкін. NVMM тым күрделі болмай, қарапайым нәрселерді сақтауға тырысады және жұмысыңыздың мүмкіндігінше көп аспектілерін басқаруға мүмкіндік береді.

NetBSD жобасы жаңа NVMM гипервизорын жасауда

NVMM ядро ​​деңгейіндегі бөлігі NetBSD ядросымен өте тығыз біріктірілген және қонақ ОЖ мен хост ортасы арасындағы контекстік қосқыштардың санын азайту арқылы өнімділікті жақсартуға мүмкіндік береді. Пайдаланушы кеңістігінде libnvmm жалпы енгізу/шығару операцияларын біріктіруге тырысады және жүйелік қоңырауларды қажетсіз жасамауға тырысады. Жадты бөлу жүйесі pmap ішкі жүйесіне негізделген, ол жүйеде жад тапшылығы жағдайында қонақтардың жады беттерін своп бөліміне шығаруға мүмкіндік береді. NVMM жаһандық құлыптарсыз және жақсы масштабталмаған, бұл әртүрлі қонақ виртуалды машиналарын іске қосу үшін әртүрлі CPU ядроларын бір уақытта пайдалануға мүмкіндік береді.

Аппараттық құралдарды виртуалдандыру механизмдерін қосу үшін NVMM қолданатын QEMU негізіндегі шешім дайындалды. Дайындалған патчтарды QEMU негізгі құрылымына енгізу жұмыстары жүргізілуде. QEMU+NVMM комбинациясы бұрыннан бар ол мүмкіндік береді AMD және Intel процессорлары бар x7_8.1 жүйелерінде FreeBSD, OpenBSD, Linux, Windows XP/10/86/64 және басқа ОЖ бар қонақ жүйелерін сәтті іске қосыңыз (NVMM өзі белгілі бір архитектураға байланысты емес, мысалы, сәйкес сервер жасалса , ол ARM64 жүйелерінде жұмыс істей алады). NVMM-ді одан әрі қолдану бағыттарының арасында жеке қосымшаларды құмсалғышты оқшаулау да атап өтілген.

NetBSD жобасы жаңа NVMM гипервизорын жасауда

Ақпарат көзі: opennet.ru

пікір қалдыру