Bosh sahifa Wiki Hypervisor

Hypervisor

Hypervisor — bitta fizik kompyuter resurslarini bir nechta virtual mashina o‘rtasida ajratib, ularning ishlashini boshqaradigan dasturiy yoki firmware qatlami.

Hypervisor CPU, RAM, storage va network qurilmalarini virtual ko‘rinishda guest operatsion tizimlarga taqdim etadi. Har virtual mashina o‘z operatsion tizimi va ilovalariga ega.

Hypervisor virtual mashinalarni bir-biridan va hostdan izolatsiya qilishga mas’ul.

Type 1

Type 1 hypervisor to‘g‘ridan-to‘g‘ri fizik apparat ustida ishlaydi.

Misollar:

Type 1 server va data centerlarda keng qo‘llanadi.

Afzalliklari:

  • yuqori performance;
  • markaziy boshqaruv;
  • kuchli izolatsiya;
  • hardwarega yaqin nazorat.

Type 2

Type 2 hypervisor host operatsion tizim ustida dastur sifatida ishlaydi.

Misollar:

  • VirtualBox;
  • VMware Workstation;
  • Parallels Desktop.

U desktop test, o‘quv va development uchun qulay.

Host OS driver va resurs boshqaruviga tayanadi.

Virtual CPU

Hypervisor fizik CPU vaqtini virtual CPUlar o‘rtasida rejalashtiradi.

Guest vCPU oddiy processor core sifatida ko‘rinadi.

vCPU soni fizik core sonidan ko‘p bo‘lishi mumkin. Bu overcommit hisoblanadi.

Juda katta overcommit CPU ready time va kechikishni oshiradi.

Hardware virtualization

Zamonaviy CPUlar virtualizatsiya extensionlariga ega.

Misollar:

Bu guestning privileged instructionlarini samarali boshqarishga yordam beradi.

Privilege

Guest kernel o‘zini yuqori privilege’da ishlayapti deb hisoblaydi. Hypervisor xavfli instruction va resurs kirishini nazorat qiladi.

Hardware extension trap va transition xarajatini kamaytiradi.

Virtual xotira

Har guest o‘z virtual va fizik deb hisoblangan manzil maydoniga ega.

Hypervisor guest physical address’ni haqiqiy host physical memoryga xaritalaydi.

Texnologiyalar:

  • Extended Page Tables;
  • Nested Page Tables.

Qo‘shimcha tarjima TLB va memory performance’iga ta’sir qiladi.

Memory overcommit

Hypervisor guestlarga fizik RAMdan ko‘proq virtual RAM ajratishi mumkin.

Usullar:

  • ballooning;
  • page sharing;
  • compression;
  • host swapping.

Host memory bosimi kuchaysa, barcha VM performance’i keskin pasayishi mumkin.

Virtual storage

Guest virtual diskni block device sifatida ko‘radi.

Backend:

bo‘lishi mumkin.

Virtual disk formatlari snapshot va thin provisioning imkoniyatiga ega.

Virtual network

Virtual switch VM network adapterlarini o‘zaro va fizik NIC bilan bog‘laydi.

Funksiyalar:

Virtio kabi paravirtual driver emulyatsiya qilingan eski NICga qaraganda tezroq ishlaydi.

Emulyatsiya va paravirtualizatsiya

Emulated device guestga real hardware modelini taqdim etadi.

Afzalligi — eski OS driver bilan ishlaydi. Kamchiligi — ko‘proq overhead.

Paravirtual device hypervisor uchun yaratilgan samarali interfeys.

Misollar:

  • virtio-net;
  • virtio-blk;
  • VMware paravirtual controller.

Passthrough

IOMMU yordamida fizik PCIe qurilma to‘g‘ridan-to‘g‘ri VMga berilishi mumkin.

Qo‘llanishlar:

  • GPU;
  • high-speed NIC;
  • storage controller;
  • accelerator.

Performance yuqori, lekin live migration va sharing cheklanadi.

Snapshot

Snapshot VM disk va ba’zan memory holatini saqlaydi.

Qo‘llanishlar:

Snapshot backupning to‘liq o‘rnini bosmaydi. U asosiy disk chain’iga bog‘liq va uzoq saqlansa performancega ta’sir qiladi.

Live migration

Ishlayotgan VMni boshqa hostga minimal uzilish bilan ko‘chirish mumkin.

Jarayon:

  1. disk umumiy storage’da yoki ko‘chiriladi;
  2. memory sahifalari nusxalanadi;
  3. tez o‘zgaruvchi sahifalar qayta yuboriladi;
  4. VM qisqa to‘xtatiladi;
  5. yakuniy state ko‘chadi;
  6. yangi hostda davom etadi.

CPU feature va network mosligi kerak.

High availability

Host ishlamay qolsa, boshqaruv tizimi VMlarni boshqa hostda qayta ishga tushiradi.

Bu live migration emas, chunki eski host ishlamaydi.

HA uchun:

  • shared yoki replicated storage;
  • cluster quorum;
  • fencing;
  • capacity;
  • network redundancy

kerak.

Isolation

Hypervisor VMlar o‘rtasida:

izolatsiyasini saqlaydi.

Hypervisor zaifligi VM escape’ga olib kelishi mumkin. Patch va minimal management access muhim.

Nested virtualization

Virtual mashina ichida yana hypervisor ishlatish nested virtualization hisoblanadi.

Development, CI va trainingda foydali.

Qo‘shimcha virtualizatsiya qatlami performance va feature cheklovini oshiradi.

Monitoring

Hypervisor darajasida:

kuzatiladi.

Guest ichidagi 100% CPU hostdagi holatni to‘liq ifodalamaydi.

Diagnostika

VM sekin ishlasa:

tekshiriladi.

Muammo guest OS, hypervisor yoki fizik infratuzilma qatlamida bo‘lishi mumkin.

NUMA

Ko‘p socketli serverda CPU va RAM NUMA node’larga bo‘linadi. VM vCPUlari bir node’da, xotirasi boshqa node’da joylashsa, memory latency oshadi.

Katta VM uchun:

  • vNUMA;
  • CPU pinning;
  • memory locality;
  • host topology

hisobga olinadi.

Timekeeping

Virtual mashina soati fizik timer va hypervisor clock source’iga tayanadi. Host overload yoki migration vaqt driftiga sabab bo‘lishi mumkin.

Guest NTP ishlatadi, hypervisor esa stable paravirtual clock taqdim etadi. Bir vaqtda bir nechta zid time sync mexanizmi ishlatilmaydi.

Bog‘liq tushunchalar

Virtualization, Virtual machine, Type 1, Type 2, vCPU, IOMMU, Snapshot, Live migration, KVM, ESXi