Paraqitet TinyKVM për virtualizimin në nivel të proceseve të veçanta

Kompania Varnish Software, e cila zhvillon sisteme për ndërtimin e rrjeteve të shpërndarjes dhe keCaching të përmbajtjes, ka prezantuar projektin hapur TinyKVM, i cili zhvillon një mjet për izolimin e ekzekutimit të proceseve të veçanta duke përdorur hipervizorin KVM. Qëllimi i projektit është krijimi i sistemit më të shpejtë të izolimit sandbox të proceseve 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 një licencë komerciale).

TinyKVM është projektuar për ekzekutimin e izoluara të çdo programi konsolë për Linux me performancë të ngjashme me ekzekutimin normal. Shpenzimet për çdo thirrje sistemike janë rreth 2 mikrosekonda. Si shembuj të përdorimit të projektit përmendet izolimi shtesë i proceseve në sistemet e cachimit dhe përpunimit të kërkesave web. TinyKVM është zhvilluar për të zëvendësuar emulatorin libriscv, i cili përdoret për izolimin e përpunimit të çdo kërkese web në platformën Varnish. Gjithashtu është krijuar një version i bibliotekës libvmod, i cili lejon ekzekutimin e moduleve për Varnish me përdorimin e TinyKVM.

Paraqitet TinyKVM për virtualizimin në nivel të proceseve të veçantaParaqitet TinyKVM për virtualizimin në nivel të proceseve të veçanta

Kur ekzekutohet me TinyKVM, kodi makinerik i programeve përfundon pa shtresa emulatorësh në CPU dhe është i kufizuar përmes API-së së hipervizorit KVM, çka lejon eliminimin e shpenzimeve dhe arritjen e një performancë më të ngjashme me ekzekutimin pa virtualizim. Mundësitë kryesore të TinyKVM:

  • Kufizimi i kohĂ«s maksimale pĂ«r ekzekutim. Programi mund tĂ« ndalohet me forcĂ« pas pĂ«rfundimit tĂ« kohĂ«s, pa thirrjen e trajtuesve tĂ« sinjaleve dhe çdo rrjedhe.
  • Kufizimi i konsumit tĂ« memories.
  • MundĂ«sia pĂ«r ndarjen (fork) e instancave tĂ« pa-iniziluara makinave virtuale nga njĂ« instancĂ« tĂ« inicuar tĂ« programit tĂ« izoluar. Kopjet e makinerive virtuale krijohen nĂ« modin copy-on-write, çka lejon ruajtjen e konsiderueshme tĂ« memories, duke ruajtur vetĂ«m njĂ« instancĂ« tĂ« tĂ« dhĂ«nave tĂ« pĂ«rbashkta.
  • Proceset e ndara mund tĂ« kthehen nĂ« gjendjen e mĂ«parshme (pĂ«r shembull, trajtuesi i kĂ«rkesave http i ndarĂ« mund tĂ« kthehet nĂ« gjendjen fillestare pas pĂ«rpunimit tĂ« çdo kĂ«rkese pa rivendosur programin). NjĂ« instancĂ« e procesit tĂ« izoluar gjithashtu mund tĂ« kthehet nĂ« gjendjen e njĂ« makinerie virtuale tjetĂ«r, jo asaj nga e cila Ă«shtĂ« ndarĂ«, por shpenzimet nĂ« kĂ«tĂ« rast do tĂ« jenĂ« mĂ« tĂ« larta pasi do tĂ« kĂ«rkohet ndryshimi i tabelĂ«s sĂ« faqeve tĂ« memories.
  • MundĂ«sia pĂ«r krijimin e faqeve statike tĂ« memories gjatĂ« inicializimit, tĂ« pĂ«rshtatshme edhe pĂ«r runtime tĂ« avancuara, pĂ«r shembull, si nĂ« gjuhĂ«n Go. NĂ« kĂ«tĂ« rast, modifikimi lejohet vetĂ«m pĂ«r faqet qĂ« ndodhen nĂ« modin copy-on-write.
  • MbĂ«shtetje pĂ«r debugin e largĂ«t pĂ«rmes GDB. Debuguar nĂ« flakĂ« me rinisje tĂ« ekzekutimit.

Mjedisi mikpritës TinyKVM formon një bërthamë të reduktuar, të mbrojtur nga ndryshimet, e ndërtuar duke përfshirë mbrojtjen e faqeve të memories dhe duke përdorur SMAP (Mbrojtja e Qasjes në Modin e Mbikëqyrës) dhe SMEP (Mbrojtja e Ekzekutimit në Modin e Mbikëqyrës) për izolim të shtuar midis bërthamës dhe hapësirës së përdoruesit. TinyKVM përdor faqe të mëdha të memories (hugepage) për përmirësimin e performancës. Thirrjet sistemore të programeve kapen nga emulatori dhe redirigjohen në mjedisin mikpritës (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ë drejtues, hyrje/dalje dhe pajisje virtuale.

Paraqitet TinyKVM për virtualizimin në nivel të proceseve të veçanta


Burimi: opennet.ru
Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster