QEMU-KVM యొక్క సాధారణ కార్యాచరణ సూత్రాలు

QEMU-KVM యొక్క సాధారణ కార్యాచరణ సూత్రాలు

నా ప్రస్తుత అవగాహన:

1) KVM

KVM (కెర్నల్-ఆధారిత వర్చువల్ మెషిన్) అనేది Linux OSలో మాడ్యూల్‌గా నడుస్తున్న హైపర్‌వైజర్ (VMM - వర్చువల్ మెషిన్ మేనేజర్). కొన్ని సాఫ్ట్‌వేర్‌లను ఉనికిలో లేని (వర్చువల్) వాతావరణంలో అమలు చేయడానికి మరియు అదే సమయంలో ఈ సాఫ్ట్‌వేర్ అమలు చేసే నిజమైన భౌతిక హార్డ్‌వేర్‌ను ఈ సాఫ్ట్‌వేర్ నుండి దాచడానికి హైపర్‌వైజర్ అవసరం. హైపర్‌వైజర్ భౌతిక హార్డ్‌వేర్ (హోస్ట్) మరియు వర్చువల్ OS (అతిథి) మధ్య “స్పేసర్” వలె పనిచేస్తుంది.

KVM అనేది Linux కెర్నల్ యొక్క ప్రామాణిక మాడ్యూల్ కాబట్టి, ఇది కెర్నల్ (మెమరీ మేనేజ్‌మెంట్, షెడ్యూలర్ మొదలైనవి) నుండి అవసరమైన అన్ని గూడీస్‌ను పొందుతుంది. మరియు తదనుగుణంగా, చివరికి, ఈ ప్రయోజనాలన్నీ అతిధులకే అందుతాయి (అతిథులు Linux OS కెర్నల్‌లో పనిచేసే హైపర్‌వైజర్‌లో పని చేస్తారు కాబట్టి).

KVM చాలా వేగవంతమైనది, కానీ వర్చువల్ OSని అమలు చేయడానికి ఇది సరిపోదు, ఎందుకంటే... దీనికి I/O ఎమ్యులేషన్ అవసరం. I/O కోసం (CPU, డిస్క్‌లు, నెట్‌వర్క్, వీడియో, PCI, USB, సీరియల్ పోర్ట్‌లు మొదలైనవి) KVM QEMUని ఉపయోగిస్తుంది.

2) QEMU

QEMU (క్విక్ ఎమ్యులేటర్) అనేది వివిధ పరికరాల కోసం ఒక ఎమ్యులేటర్, ఇది ఒక ఆర్కిటెక్చర్ కోసం రూపొందించబడిన ఆపరేటింగ్ సిస్టమ్‌లను మరొకదానిపై అమలు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది (ఉదాహరణకు, ARM -> x86). ప్రాసెసర్‌తో పాటు, QEMU వివిధ పరిధీయ పరికరాలను అనుకరిస్తుంది: నెట్‌వర్క్ కార్డ్‌లు, HDD, వీడియో కార్డ్‌లు, PCI, USB, మొదలైనవి.

ఇది ఇలా పనిచేస్తుంది:

సూచనలు/బైనరీ కోడ్ (ఉదాహరణకు, ARM) TCG (చిన్న కోడ్ జనరేటర్) కన్వర్టర్‌ని ఉపయోగించి ఇంటర్మీడియట్ ప్లాట్‌ఫారమ్-ఇండిపెండెంట్ కోడ్‌గా మార్చబడుతుంది మరియు ఈ ప్లాట్‌ఫారమ్-స్వతంత్ర బైనరీ కోడ్ లక్ష్య సూచనలు/కోడ్‌గా మార్చబడుతుంది (ఉదాహరణకు, x86).

ARM –> intermediate_code –> x86

ముఖ్యంగా, మీరు ఇంటెల్ VT-x (ఇంటెల్ వర్చువలైజేషన్ టెక్నాలజీ) / AMD SVM (AMD సురక్షిత వర్చువల్ మెషిన్)కి మద్దతు ఇవ్వని పాత ప్రాసెసర్ మోడల్‌లతో కూడా QEMUలో ఏదైనా హోస్ట్‌లో వర్చువల్ మిషన్‌లను అమలు చేయవచ్చు. అయితే, ఈ సందర్భంలో, TCG (TCG అనేది జస్ట్-ఇన్-టైమ్ కంపైలర్) ఉపయోగించి, ఎగ్జిక్యూటింగ్ బైనరీ కోడ్‌ను ఫ్లైలో రెండుసార్లు రీకంపైల్ చేయాల్సిన అవసరం ఉన్నందున, ఇది చాలా నెమ్మదిగా పని చేస్తుంది.

ఆ. QEMU మెగా కూల్‌గా ఉంది, కానీ ఇది చాలా నెమ్మదిగా పని చేస్తుంది.

3) రక్షణ వలయాలు

QEMU-KVM యొక్క సాధారణ కార్యాచరణ సూత్రాలు

ప్రాసెసర్‌లలోని బైనరీ ప్రోగ్రామ్ కోడ్ ఒక కారణంతో పనిచేస్తుంది, కానీ వివిధ స్థాయిలలో (రింగ్‌లు / ప్రొటెక్షన్ రింగ్‌లు) డేటా యాక్సెస్‌తో, అత్యంత ప్రాధాన్యత కలిగిన (రింగ్ 0) నుండి అత్యంత పరిమితమైన, నియంత్రించబడిన మరియు “గింజలు బిగించి ఉంటాయి. ” (రింగ్ 3 ).

ఆపరేటింగ్ సిస్టమ్ (OS కెర్నల్) రింగ్ 0 (కెర్నల్ మోడ్)పై నడుస్తుంది మరియు ఏదైనా డేటా మరియు పరికరాలతో కావలసినది చేయగలదు. వినియోగదారు అప్లికేషన్‌లు రింగ్ 3 స్థాయి (యూజర్ మోడ్)లో పనిచేస్తాయి మరియు వారు కోరుకున్నది చేయడానికి అనుమతించబడవు, కానీ బదులుగా ఒక నిర్దిష్ట ఆపరేషన్ చేయడానికి ప్రతిసారీ యాక్సెస్‌ని అభ్యర్థించాలి (అందువలన, వినియోగదారు అప్లికేషన్‌లు వారి స్వంత డేటాకు మాత్రమే ప్రాప్యత కలిగి ఉంటాయి మరియు “పొందలేవు వేరొకరి శాండ్‌బాక్స్‌లోకి) రింగ్ 1 మరియు 2 డ్రైవర్ల ఉపయోగం కోసం ఉద్దేశించబడ్డాయి.

Intel VT-x / AMD SVM ఆవిష్కరణకు ముందు, హైపర్‌వైజర్‌లు రింగ్ 0పై నడిచారు మరియు అతిథులు రింగ్ 1పై నడిచారు. రింగ్ 1కి OS యొక్క సాధారణ ఆపరేషన్‌కు తగినంత హక్కులు లేనందున, అతిథి సిస్టమ్ నుండి ప్రతి ప్రత్యేక కాల్‌తో, ది హైపర్‌వైజర్ ఫ్లైలో ఈ కాల్‌ని సవరించాలి మరియు రింగ్ 0 (QEMU లాగా) అమలు చేయాలి. ఆ. అతిథి బైనరీ NOT నేరుగా ప్రాసెసర్‌లో అమలు చేయబడింది మరియు ప్రతిసారీ ఫ్లైలో అనేక ఇంటర్మీడియట్ సవరణలు జరిగాయి.

ఓవర్‌హెడ్ ముఖ్యమైనది మరియు ఇది పెద్ద సమస్య, ఆపై ప్రాసెసర్ తయారీదారులు ఒకరికొకరు స్వతంత్రంగా, అతిథి OS కోడ్‌ని అమలు చేయడానికి అనుమతించే పొడిగించిన సూచనల సమితిని (Intel VT-x / AMD SVM) విడుదల చేశారు. ప్రత్యక్షంగా హోస్ట్ ప్రాసెసర్‌లో (ఇంతకు ముందు జరిగినట్లుగా ఏదైనా ఖరీదైన ఇంటర్మీడియట్ దశలను దాటవేయడం).

Intel VT-x / AMD SVM రాకతో, ఒక ప్రత్యేక కొత్త రింగ్ స్థాయి -1 (మైనస్ ఒకటి) సృష్టించబడింది. మరియు ఇప్పుడు హైపర్‌వైజర్ దానిపై నడుస్తుంది మరియు అతిథులు రింగ్ 0పై రన్ చేస్తారు మరియు CPUకి ప్రత్యేక ప్రాప్యతను పొందుతారు.

ఆ. చివరికి:

  • హోస్ట్ రింగ్ 0పై నడుస్తుంది
  • అతిథులు రింగ్ 0లో పని చేస్తారు
  • హైపర్‌వైజర్ రింగ్ -1పై నడుస్తుంది

4) QEMU-KVM

KVM అతిథులకు రింగ్ 0కి ప్రాప్తిని ఇస్తుంది మరియు I/O (ప్రాసెసర్, డిస్క్‌లు, నెట్‌వర్క్, వీడియో, PCI, USB, సీరియల్ పోర్ట్‌లు మొదలైనవి అతిథులు “చూసే” మరియు పని చేసే) అనుకరించడానికి QEMUని ఉపయోగిస్తుంది.

అందువల్ల QEMU-KVM (లేదా KVM-QEMU) :)

క్రెడిట్స్
దృష్టిని ఆకర్షించే చిత్రం
రక్షణ వలయాల చిత్రం

PS ఈ కథనం యొక్క వచనం వాస్తవానికి టెలిగ్రామ్ ఛానెల్‌లో ప్రచురించబడింది @RU_Voip ఛానెల్‌లో పాల్గొనేవారిలో ఒకరి ప్రశ్నకు సమాధానంగా.

నేను టాపిక్ సరిగ్గా అర్థం చేసుకోని చోట లేదా జోడించడానికి ఏదైనా ఉంటే వ్యాఖ్యలలో వ్రాయండి.

ధన్యవాదాలు!

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి