U prezantua TinyKVM për virtualizim në nivelin e proceseve individuale

Kompania Varnish Software, që zhvillon sisteme për ndërtimin e rrjeteve të shpërndarjes dhe cache-imit të përmbajtjes, prezantoi projektin e hapur TinyKVM, i cili zhvillon mjete për izolimin e ekzekutimit të proceseve individuale me ndihmën e hipervizorit KVM. Qëllimi i projektit është krijimi i sistemit më të shpejtë të izolimit sandbox për procese të veçanta, duke përdorur virtualizimin harduerik. Kodi i projektit është shkruar në gjuhët C dhe C++ dhe shpërndahet nën licencën GPLv3 (për ata që nuk janë të gatshëm të përmbushin kërkesat e GPLv3, ofrohet licencë komerciale).

TinyKVM është projektuar për nisjen e izoluar të çdo programi konsolë për Linux, me performancë të afërt me ekzekutimin e zakonshëm. Kostoja shtesë për çdo thirrje sistemi është rreth 2 mikrosekonda. Si shembull përdorimi të projektit përmendet izolimi shtesë i proceseve në sistemet e cache-imit dhe të përpunimit të kërkesave web. TinyKVM është zhvilluar për të zëvendësuar emulatorin libriscv, i cili përdoret për të izoluar përpunimin e çdo kërkese web në platformën Varnish. Gjithashtu është krijuar një variant i bibliotekës libvmod, që lejon ekzekutimin e moduleve për Varnish duke përdorur TinyKVM.

U prezantua TinyKVM për virtualizim në nivelin e proceseve individualeU prezantua TinyKVM për virtualizim në nivelin e proceseve individuale

Kur niset me TinyKVM, kodi makinerik i programeve ekzekutohet pa shtresa emulimi drejtpërdrejt në CPU dhe kufizohet përmes API-së së hipervizorit KVM, gjë që bën të mundur eliminimin e kostove shtesë dhe arritjen e një performance të afërt me ekzekutimin pa virtualizim. Veçoritë kryesore të TinyKVM:

  • Kufizimi i kohĂ«s maksimale tĂ« ekzekutimit. Programi mund tĂ« ndalet me forcĂ« pas skadimit tĂ« timeout-it, pa thirrur trajtuesit e sinjaleve dhe thread-et.
  • Kufizimi i konsumit tĂ« memories.
  • MundĂ«sia e degĂ«zimit (fork) tĂ« instancave tĂ« painicializuara makinat virtuale nga njĂ« instancĂ« e inicializuar e programit tĂ« izoluar. Kopjet e makinave virtuale krijohen nĂ« modalitetin copy-on-write, çka mundĂ«son kursim tĂ« ndjeshĂ«m tĂ« memories, duke ruajtur vetĂ«m njĂ« instancĂ« tĂ« tĂ« dhĂ«nave tĂ« pĂ«rbashkĂ«ta.
  • Proceset e degĂ«zuara mund tĂ« rikthehen nĂ« gjendjen e mĂ«parshme (pĂ«r shembull, njĂ« pĂ«rpunues i degĂ«zuar i kĂ«rkesave HTTP mund tĂ« kthehet nĂ« gjendjen fillestare pas pĂ«rpunimit tĂ« çdo kĂ«rkese pa rinisje). NjĂ« instancĂ« e procesit tĂ« izoluar mund tĂ« rikthehet edhe nĂ« gjendjen e njĂ« makine tjetĂ«r virtuale, jo domosdoshmĂ«risht asaj nga e cila Ă«shtĂ« degĂ«zuar, por nĂ« kĂ«tĂ« rast kostoja shtesĂ« do tĂ« jetĂ« mĂ« e lartĂ«, pasi do tĂ« kĂ«rkohet ndryshimi i tabelĂ«s sĂ« faqeve tĂ« memories.
  • MundĂ«si pĂ«r krijimin e faqeve statike tĂ« memories gjatĂ« inicializimit, tĂ« pĂ«rshtatshme edhe pĂ«r runtime mĂ« tĂ« ndĂ«rlikuara, pĂ«r shembull si nĂ« gjuhĂ«n Go. NĂ« kĂ«tĂ« rast, ndryshimet lejohen vetĂ«m pĂ«r faqet qĂ« janĂ« nĂ« regjimin copy-on-write.
  • MbĂ«shtetje pĂ«r debugim nĂ« distancĂ« me GDB. ËshtĂ« i mundur debugimi nĂ« kohĂ« reale me rifillimin e ekzekutimit.

Mjedisi mysafir TinyKVM përbëhet nga një kernel i reduktuar, i mbrojtur nga ndryshimet, i ndërtuar me mbrojtjen e faqeve të memories të aktivizuar dhe që përdor SMAP (Supervisor Mode Access Prevention) dhe SMEP (Supervisor Mode Execution Prevention) për izolim shtesë ndërmjet kernelit dhe hapësirës së përdoruesit. TinyKVM përdor faqe të mëdha memorieje (hugepage) për të rritur performancën. Thirrjet e sistemit të bëra nga programet kapen nga emulatori dhe ridrejtohen në mjedisin host (vonesa për përpunimin dhe përkthimin e thirrjes së emuluar është rreth 2 mikrosekonda). Në vetë makinën virtuale nuk përdoren asnjë lloj drejtuesi, hyrje/dalje apo pajisje virtuale.

U prezantua TinyKVM për virtualizim në nivelin e proceseve individuale


Burimi: opennet.ru
Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster