Ngenalkeun TinyKVM pikeun virtualisasi tingkat prosés

Varnish Software, perusahaan anu ngembangkeun sistem pikeun ngawangun pangiriman eusi sareng jaringan cache, parantos ngenalkeun proyék open source TinyKVM, anu ngembangkeun alat pikeun ngasingkeun palaksanaan prosés individu nganggo hypervisor KVM. Tujuan anu dinyatakeun tina proyék nyaéta nyiptakeun sistem isolasi sandbox panggancangna pikeun prosés individu nganggo virtualisasi hardware. Kodeu proyék ieu ditulis dina C jeung C ++ sarta disebarkeun dina lisénsi GPLv3 (pikeun jalma anu teu siap sasuai jeung sarat GPLv3, lisénsi komérsial disadiakeun).

TinyKVM dirancang pikeun ngajalankeun program konsol naon waé sacara misah Linux kalayan kinerja anu caket kana palaksanaan standar. Biaya overhead pikeun unggal panggero sistem sakitar 2 mikrodetik. Isolasi prosés tambahan dina sistem caching sareng pamrosésan pamundut wéb disebatkeun salaku conto aplikasi proyék. TinyKVM dirancang pikeun ngagentos emulator libriscv, anu dianggo pikeun ngasingkeun pamrosésan unggal pamundut wéb dina platform Varnish. Varian perpustakaan libvmod ogé parantos didamel, anu ngamungkinkeun modul Varnish dieksekusi nganggo TinyKVM.

Ngenalkeun TinyKVM pikeun virtualisasi tingkat prosésNgenalkeun TinyKVM pikeun virtualisasi tingkat prosés

Nalika ngajalankeun sareng TinyKVM, kode program asli dieksekusi tanpa lapisan émulasi dina CPU sareng dibatesan nganggo KVM hypervisor API, ngaleungitkeun overhead sareng ngahontal prestasi anu caket sareng ngajalankeun tanpa virtualisasi. Fitur konci TinyKVM:

  • Ngawatesan waktos palaksanaan maksimum. Program éta tiasa ditungtungan sacara paksa saatos waktosna, tanpa nelepon panangan sareng benang.
  • Ngawatesan konsumsi memori.
  • Kamampuh pikeun ngabagi instansi anu teu diinisialisasi mesin virtual tina hiji instansi anu diinisialisasi tina program anu diisolasi. Salinan mesin virtual didamel dina modeu copy-on-write, anu ngamungkinkeun panghematan mémori anu signifikan ku cara nyimpen ngan hiji salinan data anu dibagikeun.
  • Prosés forked bisa ngareset kana kaayaan saméméhna (contona, panangan pamundut http forked bisa ngareset kana kaayaan aslina sanggeus ngolah unggal pamundut tanpa balikan deui). Hiji conto prosés terasing ogé bisa ngareset kana kaayaan mesin virtual béda ti eta ieu forked tina, tapi overhead bakal leuwih luhur dina hal ieu kusabab tabel kaca memori bakal perlu dirobah.
  • Kamampuhan pikeun nyiptakeun halaman mémori statik salami inisialisasi, cocog bahkan pikeun waktos jalan anu canggih sapertos basa Go. Dina hal ieu, parobihan ngan ukur diidinan pikeun halaman dina modeu copy-on-write.
  • Rojongan pikeun debugging jauh maké GDB. On-the-fly debugging sareng resumption of execution is possible.

Lingkungan tamu TinyKVM nyaéta kernel anu dipreteli sareng tahan gangguan, diwangun kalayan paging memori anu diaktipkeun sareng nganggo SMAP (Supervisor Mode Access Prevention) sareng SMEP (Supervisor Mode Execution Prevention) pikeun isolasi tambahan antara kernel sareng rohangan pangguna. TinyKVM nganggo hugepages pikeun ningkatkeun kinerja. Panggilan sistem anu dilakukeun ku program dicegat ku emulator sareng dialihkeun ka lingkungan host (latency pikeun ngolah sareng narjamahkeun panggilan anu ditiru nyaéta sakitar 2 mikrodetik). mesin virtual Teu aya supir, input/output atanapi alat virtual anu dianggo.

Ngenalkeun TinyKVM pikeun virtualisasi tingkat prosés


sumber: opennet.ru
Mésér hosting anu dipercaya pikeun situs anu gaduh panyalindungan DDoS, server VPS VDS 🔥 Meser hosting situs wéb anu tiasa dipercaya nganggo panyalindungan DDoS, server VPS VDS | ProHoster