Принсипҳои умумии кори QEMU-KVM

Принсипҳои умумии кори QEMU-KVM

Фаҳмиши ҳозираи ман:

1) КВМ

KVM (Машинаи виртуалии ба ядро ​​асосёфта) як гипервизор (VMM - Менеҷери мошини виртуалӣ) мебошад, ки ҳамчун модул дар Linux OS кор мекунад. Гипервизор барои ба кор андохтани баъзе нармафзор дар муҳити ғайримавҷуд (виртуал) ва ҳамзамон аз ин нармафзор сахтафзори физикии воқеие, ки ин нармафзор дар он кор мекунад, пинҳон кардан лозим аст. Гипервизор ҳамчун "фосила" байни сахтафзори физикӣ (хост) ва OS виртуалӣ (меҳмон) амал мекунад.

Азбаски KVM як модули стандартии ядрои Linux аст, он ҳама чизҳои заруриро аз ядро ​​(идоракунии хотира, нақшакаш ва ғайра) мегирад. Ва мувофиқан, дар ниҳоят, ҳамаи ин бартариҳо ба меҳмонон мерасанд (зеро меҳмонон дар гипервизоре кор мекунанд, ки дар ядрои Linux OS кор мекунад).

KVM хеле зуд аст, аммо худ аз худ кор кардани ОС-и виртуалӣ кофӣ нест, зеро... Ин эмуляцияи I/O-ро талаб мекунад. Барои I/O (CPU, дискҳо, шабака, видео, PCI, USB, портҳои силсилавӣ ва ғайра) KVM QEMU-ро истифода мебарад.

2) QEMU

QEMU (Эмулятори зуд) як эмулятор барои дастгоҳҳои гуногун мебошад, ки ба шумо имкон медиҳад системаҳои оператсионии барои як меъморӣ дар меъмории дигар тарҳрезӣшударо идора кунед (масалан, ARM -> x86). Илова ба протсессор, QEMU дастгоҳҳои гуногуни перифериро тақлид мекунад: кортҳои шабакавӣ, HDD, кортҳои видеоӣ, PCI, USB ва ғайра.

Ин чунин кор мекунад:

Дастурҳо/рамзи дуӣ (масалан, ARM) бо истифода аз табдилдиҳандаи TCG (Tiny Code Generator) ба рамзи мустақили платформа табдил дода мешаванд ва сипас ин коди дуӣ аз платформаи мустақил ба дастур/коди мақсаднок табдил дода мешавад (масалан, x86).

ARM -> рамзи миёнарав -> x86

Аслан, шумо метавонед мошинҳои виртуалиро дар QEMU дар ҳама гуна ҳост иҷро кунед, ҳатто бо моделҳои кӯҳнаи протсессор, ки Intel VT-x (Intel Virtualization Technology) / AMD SVM (AMD Secure Virtual Machine) пуштибонӣ намекунанд. Аммо, дар ин ҳолат, он хеле суст кор мекунад, зеро рамзи дуии иҷрошаванда бояд ду маротиба бо истифода аз TCG (TCG як компилятори Just-in-Time аст) дубора тартиб дода шавад.

Онхое. Худи QEMU мега сард аст, аммо он хеле суст кор мекунад.

3) ҳалқаҳои муҳофизатӣ

Принсипҳои умумии кори QEMU-KVM

Рамзи барномаи дуӣ дар протсессорҳо бо як сабаб кор мекунад, аммо дар сатҳҳои гуногун ҷойгир аст (ҳалқаҳо / ҳалқаҳои муҳофизатӣ) бо сатҳҳои гуногуни дастрасии додаҳо, аз имтиёзноктарин (Ринг 0), то маҳдудтарин, танзимшаванда ва “бо чормағзҳо пурзӯр карда шудаанд. ” (Занги 3).

Системаи оператсионӣ (ядрои OS) дар Ring 0 (режими ядро) кор мекунад ва метавонад бо ҳама гуна маълумот ва дастгоҳҳо ҳар чизеро, ки хоҳад, иҷро кунад. Барномаҳои корбар дар сатҳи Ring 3 (режими корбар) амал мекунанд ва ба онҳо иҷозат дода намешавад, ки ҳар коре, ки онҳо мехоҳанд, анҷом диҳанд, балки ба ҷои он бояд ҳар дафъа барои иҷрои амалиёти мушаххас дастрасӣ дархост кунанд (ҳамин тавр, барномаҳои корбар танҳо ба маълумоти худ дастрасӣ доранд ва наметавонанд "дастрасӣ кунанд. ба» регзори каси дигар). Ринги 1 ва 2 барои истифода аз ронандагон пешбинӣ шудааст.

Пеш аз ихтирои Intel VT-x / AMD SVM, гипервизорҳо дар Ring 0 кор мекарданд ва меҳмонон дар Ring 1 кор мекарданд. Азбаски Ring 1 барои кори муқаррарии ОС ҳуқуқҳои кофӣ надорад, бо ҳар як занги имтиёзнок аз системаи меҳмонон, гипервизор маҷбур шуд, ки ин зангро фавран тағир диҳад ва онро дар Ring 0 иҷро кунад (ба монанди QEMU). Онхое. бинарии меҳмон ҲАМА бевосита дар протсессори иҷро шуд, ва ҳар дафъа тавассути якчанд тағйироти фосилавӣ дар магасе рафт.

Хароҷоти изофӣ назаррас буд ва ин як мушкили калон буд ва он гоҳ истеҳсолкунандагони протсессор, новобаста аз ҳамдигар, маҷмӯи васеи дастурҳоро (Intel VT-x / AMD SVM) бароварданд, ки барои иҷро кардани рамзи OS-и меҳмонон имкон доданд. БЕРАВОСТ дар протсессори мизбон (аз ҳама қадамҳои фосилавии гаронарзиш, чунон ки қаблан буд).

Бо пайдоиши Intel VT-x / AMD SVM, сатҳи махсуси Ring -1 (минуси як) сохта шуд. Ва ҳоло гипервизор дар он кор мекунад ва меҳмонон дар Ring 0 кор мекунанд ва ба CPU дастрасии имтиёзнок мегиранд.

Онхое. ниҳоят:

  • мизбон дар Ring 0 кор мекунад
  • меҳмонон дар Ring 0 кор мекунанд
  • гипервизор дар Ring -1 кор мекунад

4) QEMU-KVM

KVM ба меҳмонон дастрасӣ ба Ring 0 медиҳад ва QEMU-ро барои тақлид кардани I/O (протсессор, дискҳо, шабака, видео, PCI, USB, портҳои силсилавӣ ва ғайра, ки меҳмонон "мебинанд" ва бо онҳо кор мекунанд) истифода мебарад.

Аз ин рӯ, QEMU-KVM (ё KVM-QEMU) :)

ҚАРЗҲО
Тасвир барои ҷалби таваҷҷӯҳ
Тасвири ҳалқаҳои муҳофизатӣ

P.S. Матни ин мақола аслан дар канали Telegram нашр шудааст @RU_Voip хамчун чавоб ба саволи яке аз иштирокчиёни канал.

Дар коментария нависед, ки ман мавзӯъро дуруст нафаҳмидам ва ё чизе барои илова кардан ҳаст.

Ташаккур!

Манбаъ: will.com

Илова Эзоҳ