በAI የተፈጠረ ኮድን በደህንነት ስለማስኬድ ማንኛውንም ነገር አንብበው ከሆነ፣ microVM የሚለውን ቃል አይተዋል፣ ብዙውን ጊዜ ከFirecracker አጠገብ። ብዙውን ጊዜ ወይ „ቀላል ቨርቹዋል ማሽን“ ተብሎ (እውነት፣ ግን አይጠቅምም) ወይ በከርነል ውስጣዊ ክፍሎች ሥዕላዊ መግለጫ ይብራራል። ይህ በመሃል ያለው ስሪት ነው።
ሁለት የቆዩ አማራጮች፣ እና ለምን አንዳቸውም አይስማሙም
microVM በመካከላቸው ካለባቸው ሁለት ነገሮች ይጀምሩ።
ኮንቴይነር በማሽንዎ ላይ ያሉ የተለመዱ ሂደቶች ቡድን ነው፣ ከርነሉ „ሊዋሻቸው“ የተስማማባቸው። namespaces የራሳቸውን የፋይል ሲስተም፣ የሂደቶች ዝርዝርና ኔትወርክ ያሳያቸዋል፤ cgroups ምን ያህል CPU እና ማህደረ ትውስታ እንደሚጠቀሙ ይገድባል። ምንም አዲስ ነገር ስለማይነሳ በሚሊሰከንዶች ይጀምራል። ነገር ግን በአንድ አስተናጋጅ ላይ ያሉ ሁሉም ኮንቴይነሮች ከአንድ ከርነል ጋር ይነጋገራሉ። ከአንድ ኮንቴይነር ውስጥ ሊደረስበት የሚችል የከርነል ስህተት ከሁሉም መውጫ መንገድ ነው።
ቨርቹዋል ማሽን የራሱን ከርነል ያመጣል። የአስተናጋጁ CPU በሃርድዌር ቨርቹዋላይዜሽን (በLinux ላይ KVM) እንግዳውን የራሱ ኮምፒውተር እንዳለው አድርጎ ያስኬዳል። ድንበሩ ሃይፐርቫይዘሩ ነው፣ እሱም ከከርነል በመቶዎች ከሚቆጠሩ የሲስተም ጥሪዎች እጅግ ያነሰ ያጋልጣል። ዋጋው ክብደት ነው። ባህላዊ ቨርቹዋል ማሽን ሙሉ PCን ያስመስላል፦ ፈርምዌር፣ PCI ባስ፣ የUSB መቆጣጠሪያዎች፣ የግራፊክስ ካርድ፣ አንዳንዴም የድምፅ ካርድ። በእነዚህ ሁሉ አልፎ ይነሳል፣ ከሰከንዶች እስከ ደቂቃዎች ይወስዳል፣ እያንዳንዱ ቅጂም በአስር ወይም በመቶ የሚቆጠሩ ሜጋባይቶች ተጨማሪ ጫና ይሸከማል።
በትክክል የሚሰራ ምሳሌ፦ ኮንቴይነሮች በአንድ ሕንፃ ውስጥ ያሉ አፓርትመንቶች ናቸው፣ መሠረቱን፣ ቧንቧዎቹንና ሽቦዎቹን የሚጋሩ። ቨርቹዋል ማሽኖች የተለያዩ ቤቶች ናቸው። ቤቶች የበለጠ ደህንነታቸው የተጠበቀ ጎረቤቶች ናቸው፣ ነገር ግን ለ20 ሰከንድ ጉብኝት ማንም ቤት አይገነባም።
Firecracker የሚያስወግደው
Firecracker virtual machine monitor ነው (በKVM ላይ ቨርቹዋል ማሽን የሚያዘጋጅና የሚያስኬድ ፕሮግራም)፣ በRust የተጻፈ እና ከ2018 ጀምሮ ክፍት ምንጭ የሆነ። ለአንድ ስራ ነው የተሰራው፦ እርስ በርስ የማይተማመኑ እጅግ ብዙ አጭር ዕድሜ ያላቸውን የስራ ጫናዎች በጋራ ሃርድዌር ላይ ማስኬድ። እዚያ የሚደርሰው በአብዛኛው ነገሮችን በማስወገድ ነው፦
- ፈርምዌር የለም፣ የሃርድዌር ፍለጋ የለም። ከርነሉ በቀጥታ ወደ ማህደረ ትውስታ ተጭኖ ይጀምራል። የሌሉ መሳሪያዎችን የሚፈልግ ምንም ነገር የለም።
- በጣም ትንሽ የመሳሪያ ሞዴል። የኔትወርክ ካርድ፣ የብሎክ መሳሪያ፣ ተከታታይ ኮንሶል እና ጥቂት ሌሎች፣ ሁሉም virtio (የአካላዊ መሳሪያዎች አስመሳይ ሳይሆኑ ለቨርቹዋል ማሽኖች የተነደፉ መሳሪያዎች)። USB የለም፣ ግራፊክስ የለም፣ PCI የለም።
- ትንሽ፣ በማህደረ ትውስታ ደህንነቱ የተጠበቀ ኮድ። መሳሪያዎችን የሚያስመስል ትንሽ ኮድ ማለት እንግዳው አስተናጋጁን እንዲደርስ ለሚያስችል ስህተት ጥቂት ቦታዎች ማለት ነው።
- በVMM ራሱ ዙሪያ እስር ቤት። እያንዳንዱ የFirecracker ሂደት በchroot ውስጥ ይሄዳል፣ የራሱን የሲስተም ጥሪዎች በሚገድቡ seccomp ማጣሪያዎች እና ሀብቶቹን በሚገድቡ cgroups። የሆነ ነገር ከእንግዳው ቢያመልጥ እንኳ የሚያርፈው በአስተናጋጁ ላይ ሳይሆን በጓዳ ውስጥ ነው።
ፕሮጀክቱ ራሱ ያሳተማቸው ቁጥሮች፦ በ125 ms ብቻ ወደ ተጠቃሚ ቦታ፣ እና በእያንዳንዱ microVM ከ5 MiB በታች የማህደረ ትውስታ ተጨማሪ ጫና። እነዚህ የቤተ ሙከራ ምርጥ ቁጥሮች ናቸው፤ እውነተኛ sandbox ዲስኩና ኔትወርኩ መዘጋጀት እና ትዕዛዞችን ለመቀበል ዝግጁ የሆነ ኤጀንት ውስጡ መኖር ያስፈልገዋል፣ ለዚህም ነው የእኛ በአንድ ሰከንድ ገደማ ዝግጁ የሚሆነው። ይህም ለእያንዳንዱ ስራ አንድ ፈጥረው ከዚያ እንዲጥሉት ለማስቻል ከኮንቴይነር ፍጥነት ጋር በበቂ ሁኔታ ይቀራረባል።
ኮንቴይነር ከmicroVM ጋር፣ በተግባር
| ኮንቴይነር | Firecracker microVM | |
|---|---|---|
| ከርነል | ከአስተናጋጁ ጋር የጋራ | የራሱ |
| ከአስተናጋጁ ጋር ያለው ድንበር | ወደ የጋራ ከርነል የሲስተም ጥሪዎች | ሃይፐርቫይዘር + ትንሽ VMM |
| የመነሻ ጊዜ | ሚሊሰከንዶች | ~0.1–1 ሰ |
| በቅጂ ተጨማሪ ጫና | በጣም ትንሽ | ጥቂት MiB |
| መሳሪያዎች | አስተናጋጁ የሚያጋልጠው | ኔትወርክ፣ ዲስክ፣ ኮንሶል |
| GPU | ይቻላል | አይቻልም |
| የሚስማማው | የሚታመን ኮድ፣ መተግበሪያዎችን ማሸግ | የማይታመን ኮድ፣ ብዙ ተከራይ የስራ ጫናዎች |
አስፈላጊው ረድፍ ሁለተኛው ነው። በኮንቴይነር „ይህ ኮድ ሊያመልጥ ይችላል?“ የሚለው ጥያቄ „በአስተናጋጁ ከርነል ውስጥ የትም ቦታ ሊደረስበት የሚችል ስህተት አለ?“ ይሆናል። በmicroVM ደግሞ „በሃይፐርቫይዘሩ ወይም በጥቂት ቨርቹዋል መሳሪያዎች ውስጥ ስህተት አለ?“ ይሆናል። ሁለተኛው ገጽ በእጅጉ ያነሰ ነው፣ የደመና መድረኮችም ለራሳቸው ብዙ ተከራይ ማስተናገጃ አስቀድመው የሚከላከሉት ይህንኑ ነው።
የሚተዉት
microVM ነፃ ማሻሻያ አይደለም።
- GPU የለም፣ ማሳያም የለም። ለኮድ ማስኬጃ ነው፣ ለዴስክቶፕ ወይም ለግራፊክስ የስራ ጫናዎች አይደለም።
- ጥቂት መሳሪያዎች፣ ያነሰ ተለዋዋጭነት። እውነተኛ ሃርድዌር ወይም ረጅም የከርነል ሞጁሎች ዝርዝር የሚጠብቅ ማንኛውም ነገር እዚህ አይመቸውም።
- ድንበሮች አሁንም ፖሊሲ ይፈልጋሉ። ወጪ ትራፊኩ ክፍት የሆነ microVM የማይፈልጉትን ትራፊክ አሁንም መላክ ይችላል፤ የAPI ቁልፎችዎ ውስጡ ያሉበት አሁንም ሊያፈሳቸው ይችላል። ማግለል አስተናጋጁን ከእንግዳው ይጠብቃል እንጂ ምስጢሮችዎን ከሰጡት ኮድ አይጠብቅም።
የእኛ sandboxes እንዴት እንደሚጠቀሙበት
እያንዳንዱ EQVPS sandbox የራሱ ከርነል ያለው አንድ Firecracker microVM ነው፣ ከ0.25 vCPU እና 512 MB እስከ 8 vCPU እና 16 GB። Python 3.12፣ Node.js 22፣ bash፣ git እና curl ይዞ ይመጣል፣ ወጪ ኢንተርኔት አለው፣ ገቢ ፖርት የለውም። ጊዜያዊ sandboxes ሲጨርሱ ይሰረዛሉ፤ persistent የሆኑት ዲስካቸውን ያቆያሉ፣ ማቆም (pause) ደግሞ የmicroVMን ቅጽበታዊ ምስል በዲስክ ላይ ይጽፋል፣ ስለዚህ እስኪቀጥል ድረስ ምንም አያስከፍልም። የቆሙ snapshotዎች ለ14 ቀናት ይቀመጣሉ። ከዚያ በኋላ sandbox ይሰረዛል እና idው 410 sandbox_deleted ይመልሳል።
ከኮንቴይነሮች ይልቅ microVMን የመረጥነው በአንድ ምክንያት ነው፦ በsandbox ውስጥ የሚሄደው ኮድ በዲዛይኑ ማንም ያልገመገመው ኮድ ነው። የAI ኤጀንት ውጤት፣ የማያውቁት ሰው pull request፣ በሞዴል የተጻፉ የሺህ ፕሮግራሞች ቤንችማርክ። ለእነዚህ የራስ ከርነል ሊከፈልበት የሚገባ ድንበር ነው። በዙሪያው ያስቀመጥነው ዝርዝር — ታሪፎች፣ ኮታዎች፣ ለተመሳሳይ ጊዜ ትዕዛዞች የ55 ሰከንድ ገደብ — በsandbox ሰነዶች ውስጥ አለ።
ይህንን ድንበር ከሌሎቹ አማራጮች ጋር በጥልቀት ማወዳደር ከፈለጉ፣ ለማይታመን ኮድ የማግለል ደረጃዎች ሂደቶችን፣ ኮንቴይነሮችን፣ microVMን እና ሙሉ ቨርቹዋል ማሽኖችን ጎን ለጎን ያስቀምጣል። በሰከንድ ያለው ዋጋ ትኩረትዎን ከሳበ ደግሞ፣ በሰከንድ ክፍያ በእርግጥ እንዴት እንደሚሰራ ስሌቱን ያሳያል።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።