የ QEMU-KVM አሠራር አጠቃላይ መርሆዎች

የ QEMU-KVM አሠራር አጠቃላይ መርሆዎች

አሁን ያለኝ ግንዛቤ፡-

1) KVM

KVM (በከርነል ላይ የተመሠረተ ቨርቹዋል ማሽን) በስርዓተ ክወናው ላይ እንደ ሞዱል የሚሰራ ሃይፐርቪዘር (VMM - ቨርቹዋል ማሽን አስተዳዳሪ) ነው። Linuxሶፍትዌርን በሌለበት (ምናባዊ) አካባቢ ለማስኬድ ሃይፐርቪዘር ያስፈልጋል፤ ከዚያ ሶፍትዌር የሚሰራበትን ትክክለኛ አካላዊ ሃርድዌር ይደብቃል። ሃይፐርቪዘር በአካላዊ ሃርድዌር (አስተናጋጁ) እና በምናባዊ ስርዓተ ክወና (እንግዳው) መካከል እንደ "ንብርብር" ሆኖ ያገለግላል።

KVM መደበኛ የከርነል ሞዱል ስለሆነ Linuxከከርነል (የማህደረ ትውስታ አስተዳደር፣ የጊዜ ሰሌዳ፣ ወዘተ) አስፈላጊ የሆኑትን ነገሮች ሁሉ ያገኛል። እናም በዚህ መሠረት፣ እነዚህ ሁሉ ጥቅሞች በመጨረሻ ለእንግዶች ይከማቻሉ (ምክንያቱም እንግዶች በስርዓተ ክወና ከርነል ላይ/በስርዓተ ክወና ከርነል ውስጥ የሚሰራ ሃይፐርቪዘር ስለሚሰሩ)። Linux).

KVM በጣም ፈጣን ነው ፣ ግን በራሱ ቨርቹዋል ስርዓተ ክወናን ለማሄድ በቂ አይደለም ፣ ምክንያቱም… ይህ I/O መኮረጅ ያስፈልገዋል። ለአይ/ኦ (ሲፒዩ፣ ዲስኮች፣ ኔትወርክ፣ ቪዲዮ፣ ፒሲ፣ ዩኤስቢ፣ ተከታታይ ወደቦች፣ ወዘተ.) KVM QEMU ይጠቀማል።

2) QEMU

QEMU (ፈጣን ኢሙሌተር) ለአንድ አርክቴክቸር የተነደፉ ኦፕሬቲንግ ሲስተሞችን በሌላ (ለምሳሌ ARM -> x86) እንዲያሄዱ የሚያስችልዎ ለተለያዩ መሳሪያዎች ኢሙሌተር ነው። ከአቀነባባሪው በተጨማሪ QEMU የተለያዩ ተጓዳኝ መሳሪያዎችን ይኮርጃል-የአውታረ መረብ ካርዶች ፣ ኤችዲዲ ፣ የቪዲዮ ካርዶች ፣ PCI ፣ USB ፣ ወዘተ.

እንደሚከተለው ይሰራል።

መመሪያዎች/ሁለትዮሽ ኮድ (ለምሳሌ ARM) TCG (ጥቃቅን ኮድ ጀነሬተር) መቀየሪያን በመጠቀም ወደ መካከለኛ መድረክ-ገለልተኛ ኮድ ይቀየራሉ ከዚያም ይህ ከመድረክ-ነጻ የሆነ የሁለትዮሽ ኮድ ወደ ኢላማ መመሪያዎች/ ኮድ (ለምሳሌ x86) ይቀየራል።

ARM -> መካከለኛ_ኮድ -> x86

በመሠረቱ ኢንቴል VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine) በማይደግፉ የቆዩ ፕሮሰሰር ሞዴሎችም ቢሆን በማንኛውም አስተናጋጅ ላይ በQEMU ላይ ቨርቹዋል ማሽኖችን ማሄድ ይችላሉ። ሆኖም ፣ በዚህ ሁኔታ ፣ በ TCG (TCG Just-in-Time compiler) በመጠቀም የሁለትዮሽ ኮድ ሁለት ጊዜ በራሪ ላይ እንደገና ማጠናቀር ስለሚያስፈልገው በጣም በዝግታ ይሠራል።

እነዚያ። QEMU ራሱ ሜጋ አሪፍ ነው፣ ግን በጣም በዝግታ ይሰራል።

3) የመከላከያ ቀለበቶች

የ QEMU-KVM አሠራር አጠቃላይ መርሆዎች

በአቀነባባሪዎች ላይ ያለው የሁለትዮሽ ፕሮግራም ኮድ በምክንያት ይሰራል ነገር ግን በተለያዩ ደረጃዎች (ቀለበቶች / መከላከያ ቀለበቶች) በተለያዩ የመረጃ ተደራሽነት ደረጃዎች ፣ በጣም ልዩ መብት ካለው (ቀለበት 0) ፣ እስከ በጣም ውስን ፣ ቁጥጥር እና “ለውዝ በማጥበቅ ላይ ይገኛል ” (ቀለበት 3)

ኦፕሬቲንግ ሲስተም (OS kernel) በ Ring 0 (የከርነል ሞድ) ላይ ይሰራል እና በማንኛውም ዳታ እና መሳሪያዎች የፈለገውን ማድረግ ይችላል። የተጠቃሚ አፕሊኬሽኖች የሚሠሩት በሪንግ 3 ደረጃ (የተጠቃሚ ሞድ) ነው እና የፈለጉትን እንዲያደርጉ አይፈቀድላቸውም ፣ ግን ይልቁንስ አንድን የተወሰነ ተግባር ለማከናወን በእያንዳንዱ ጊዜ መዳረሻ መጠየቅ አለባቸው (ስለዚህ የተጠቃሚ አፕሊኬሽኖች የራሳቸው መረጃ ብቻ ናቸው እና ማግኘት አይችሉም) ወደ ሌላ ሰው ማጠሪያ)። ቀለበት 1 እና 2 በአሽከርካሪዎች ለመጠቀም የታሰቡ ናቸው።

ኢንቴል VT-x / AMD SVM መፈልሰፍ በፊት, hypervisors Ring 0 ላይ ሮጡ, እና እንግዶች ቀለበት 1 ላይ ሮጡ. Ring 1 መደበኛ ስርዓተ ክወና የሚሆን በቂ መብቶች ስለሌለው ከእንግዶች ሥርዓት እያንዳንዱ ልዩ ጥሪ ጋር, የ. ሃይፐርቫይዘር ይህን ጥሪ በበረራ ላይ አስተካክሎ Ring 0 ላይ (ልክ QEMU እንደሚያደርገው) ማስፈጸም ነበረበት። እነዚያ። እንግዳ ሁለትዮሽ አይደለም በቀጥታ በማቀነባበሪያው ላይ ተፈጽሟል, እና በእያንዳንዱ ጊዜ በበረራ ላይ ብዙ መካከለኛ ማሻሻያዎችን አልፏል.

ክፍያው በጣም አስፈላጊ ነበር እና ይህ ትልቅ ችግር ነበር ፣ እና የአቀነባባሪዎች አምራቾች ፣ አንዳቸው ከሌላው ተለይተው ፣ የእንግዳ ስርዓተ ክወና ኮድን ለማስፈፀም የሚያስችል የተራዘመ መመሪያዎችን (Intel VT-x / AMD SVM) አውጥተዋል ። በቀጥታ በአስተናጋጁ ፕሮሰሰር ላይ (ከዚህ በፊት እንደነበረው ማንኛውንም ውድ የሆኑ መካከለኛ ደረጃዎችን ማለፍ)።

ኢንቴል VT-x / AMD SVM መምጣት ጋር, ልዩ አዲስ Ring ደረጃ -1 (አንድ ሲቀነስ) ተፈጠረ. እና አሁን ሃይፐርቫይዘር በላዩ ላይ ይሰራል፣ እና እንግዶቹ ቀለበት 0 ላይ ይሮጣሉ እና ወደ ሲፒዩ ልዩ መብት ያገኛሉ።

እነዚያ። በመጨረሻ፡-

  • አስተናጋጁ ቀለበት 0 ላይ ይሰራል
  • እንግዶች ቀለበት 0 ላይ ይሰራሉ
  • hypervisor Ring -1 ላይ ይሰራል

4) QEMU-KVM

KVM ለእንግዶች የቀለበት 0 መዳረሻ ይሰጣል እና I/O (ፕሮሰሰር፣ ዲስኮች፣ አውታረ መረብ፣ ቪዲዮ፣ ፒሲ፣ ዩኤስቢ፣ ተከታታይ ወደቦች፣ ወዘተ. እንግዶች “ያያሉ” እና አብረው የሚሰሩትን) ለመምሰል QEMU ይጠቀማል።

ስለዚህ QEMU-KVM (ወይም KVM-QEMU) :)

ክሬዲት
ትኩረትን ለመሳብ ስዕል
የጥበቃ ቀለበቶች ምስል

PS የዚህ ጽሁፍ ጽሑፍ በመጀመሪያ የታተመው በቴሌግራም ቻናል ነው። @RU_Voip ከሰርጡ ተሳታፊዎች ለአንዱ ጥያቄ እንደ መልስ።

ርዕሱን በትክክል ያልገባኝ ወይም የሚጨምረው ነገር ካለ በአስተያየቶቹ ውስጥ ይፃፉ።

እናመሰግናለን!

ምንጭ: hab.com

በDDoS ጥበቃ፣ VPS VDS አገልጋዮች ለጣቢያዎች አስተማማኝ ማስተናገጃ ይግዙ 🔥 አስተማማኝ የድር ጣቢያ ማስተናገጃ በዲዶኤስ ጥበቃ፣ በቪፒኤስ ቪዲኤስ አገልጋዮች ይግዙ | ProHoster