ວ່າດ້ວຍເລື່ອງ KVM (KERNEL-BASE VIRTUAL MACHINE)

ວ່າດ້ວຍເລື່ອງ KVM (KERNEL-BASE VIRTUAL MACHINE)

 

ຫຼາຍໆຄົນຄົງພໍຈະຮູ້ຈັກກັບ Virtualization ຫຼື ລະບົບຄອມພິວເຕີຈໍາລອງກັນມາແລ້ວ ແລະ KVM ກໍເປັນ 1 ໃນຊັອບແວທີ່ເຮັດໜ້າທີ່ເປັນ virtual machine ເຊັ່ນດຽວກັບ VMWare , VirtualBox ເຊິ່ງຈະແຕກຕ່າງກໍຄື KVM ນັ້ນເຮັດວຽກຢູ່ໃນລະດັບ Kernel ເຊັ່ນດຽວກັບ XEN ນັ້ນເອງ ແລະ ໃນປະຈຸບັນທາງ Redhat ເອງກໍໄດ້ໄປໃຊ້ KVM ເປັນຕົວຫຼັກໃນການສ້າງ virtualization ອີກດ້ວຍ

 

ການແບ່ງປະເພດຂອງ VIRTUALIZATION

ການສ້າງລະບົບ Virtualization ໄດ້ກໍານົດຊື່ເອີ້ນຕົວ software ທີ່ເຮັດໜ້າທີ່ virtual ວ່າ Hypervisor ຫຼື Virtual Machine Manager (VMM) ໄດ້ມີການແບ່ງ hypervisor ອອກເປັນ 2 ປະເພດຄື

  • Type 1 – native ຫຼື bare metal ຄືການທີ່ hypervisor ຖືກຕິດຕັ້ງລົງໄປໃຕ້ OS ຕົວຢ່າງຜະລິດຕະພັນໃນຮູບແບບນີ້ຄື VMware ESX, Citrix Xen Server ແລະ Microsoft Hyper-V ແບບນີ້ຈື່ງ່າຍຄື ລົງ Hypervisor ໄປແລ້ວຈະບໍ່ມີການຕິດຕັ້ງ Application ໃດໆ ໃນ hypervisor (ເຖິງວ່າ Hyper-V ຈະເຮັດໄດ້ ແຕ່ເປັນສິ່ງທີ່ບໍ່ຄວນເຮັດ ຄວນໄປສ້າງ quest ແລ້ວລົງ software ໃນ guest)
  • Type 2 – hosted ຄືການທີ່ hypervisor ເຮັດວຽກເໝືອນ application ໃນ OS ຕົວຢ່າງຜະລິດຕະພັນໄດ້ແກ່ VMware workstation, Microsoft virtual PC ແລະ Oracle Virtual Box ເປັນຕົ້ນ ແບບນີ້ຈື່ງ່າຍຄື ເມື່ອໄດ້ຮາດແວ ມາແລ້ວກໍລົງ OS ເຊັ່ນ Windows ແລ້ວລົງ virtual ໃນຖານະເປັນ application ຕົວໜຶ່ງເຊັ່ນດຽວກັບການລົງ Microsoft Office

ປະເພດເທັກນິກຂອງການສ້າງ VIRTUALIZATION

  • Full Virtualization ຄືເທັກນິກການສ້າງ virtualization ທີ່ guest machine ເຫັນອຸປະກອນທຸກຢ່າງຈໍາລອງ ທັງໝົດເມື່ອ guest ທີ່ຕ້ອງຕິດຕໍ່ກັບ hardware ຕົວ virtualization ຈະຕ້ອງສ້າງ binary translation ໂດຍ VMM ຈະດັກ hardware call ຈາກ guest OS ແລະ ແປງຄໍາສັ່ງນັ້ນໃຫ້ຢູ່ໃນຮູບແບບທີ່ Host OS ເຮັດວຽກໄດ້ ການແປງນີ້ຕ້ອງການໃຊ້ຊັບພະຍາກອນຫຼາຍ ເຮັດໃຫ້ເຄື່ອງເຮັດວຽກຊ້າລົງ ແລະ ຫຼົດປະສິດທິພາບຂອງເຄື່ອງ
  • Paravirtualization ຄືເທັກນິກທີ່ໃຊ້ເພີ່ມປະສິດທິພາບໃຫ້ກັບ virtualization ໃນສ່ວນທີ່ guest machine ເຄີຍຕ້ອງຈໍາລອງອຸປະກອນຕ່າງໆ ເມື່ອເຮັດວຽກໃນ virtual ນັ້ນ ການອອກແບບ paravitualization ໄດ້ຕັດການແປງຄໍາສັ່ງເຫຼົ່ານີ້ອອກໄປ ແລະ ໄປສ້າງເປັນ software interface ໃນ VMM ໃນຮູບແບບຂອງ driver ແລະ ເຄື່ອງມືຕ່າງໆມາແທນ

    Paravirtualization ຕ້ອງການ CPU ທີ່ສະໜັບສະໜູນນັ້ນຄື Intel-VT ຫຼື AMD-V ໜ້າທີ່ບ່ອນນີ້ໄດ້ແກ່ ເລື່ອງຂອງການຈັດສັນ Memory ຂອງ Server ທີ່ຈໍານວນ RAM ຫຼາຍໆ ທີ່ມີຕໍາແໜ່ງກະຈາຍໄປທົ່ວໆ ແຕ່ຕ້ອງເຮັດໃຫ້ guest ເຫັນວ່າມີຕໍາແໜ່ງຮຽງກັນເຮົາເອີ້ນສ່ວນນີ້ວ່າ hardware page table virtualization ເນື່ອງຈາກ quest OS ບໍ່ສາມາດໄປຈັດສັນ physical memory ແທ້ໆໄດ້ ຈຶ່ງຕ້ອງອາໄສ VMM ທີ່ດູແລການໃຊ້ memory ຈາກ quest ຫຼາຍໆຕົວໃນເວລາດຽວກັນໄດ້ ສ່ວນນີ້ມີຊື່່ເອີ້ນວ່າ Intel Extended Page Table (EPT) ຫຼື AMD Nested Page Table (NPT)

KERNEL-BASE VIRTUAL MACHINE (KVM)

ຜູ້ສ້າງ KVM ມີຊື່ວ່າ Avi Kivity ແລະ Morcelo Tosatti ໄດ້ສ້າງ KVM ຂຶ້ນມາເພື່ອສ້າງ virtualization type – 1 ແລະເປັນ Paravirtualization (Intel VT, AMD-V) ໃນ Linux ຕົວ guest OS ທີ່ສ້າງໃນ KVM ໄດ້ແກ່ Windows ແລະ Linux ເປັນຫຼັກ ໄດ້ມີຜູ້ port KVM ໄປໃຊ້ໃນເຄື່ອງ PowerPC, IA/64 ແລະ ເຄື່ອງທີ່ໃຊ້ CPU ຈໍານວນ ARM ເປັນຕົ້ນ

 

 

ເພື່ອຄວາມງ່າຍຕໍ່ການເຂົ້າໃຈ ຂໍອະທິບາຍຕາມຮູບພາບດ້ານເທິງ KVM ຖືກສ້າງເປັນ device ຕົວໜຶ່ງໃນ Linux ຢູ່ໃນ Kernel ມີການຮຽກນໍາໃຊ້ຜ່ານ /dev/kvm ໃນຕົວ guest ກໍມີ QEMU ທີ່ເຮັດໜ້າທີ່ເປັນ emulator ໄປຕິດຕໍ່ກັບ KVM ໃນ Kernel ເມື່ອທຽບກັບ KVM ກັບ VMware ຫຼື Hyper-V ຈະເຫັນຄວາມແຕກຕ່າງທີ່ວ່າເຄື່ອງທີ່ມີ KVM ຜູ້ນໍາໃຊ້ອື່ນ KVM ໄປໄວ້ໃນ kernel ທີ່ນໍາໃຊ້ຮ່ວມກັບ OS ຕາມປົກກະແລ້ວມີ Normal user process ນໍາໃຊ້ໄປດ້ວຍ ຈຶ່ງຕ້ອງສຶກສາເລື່ອງ security best practice ກັນຕໍ່ໄປວ່າມີການແບ່ງແຍກ process ກັນແນວໃດຕໍ່ໄປ

ການອອກແບບ KVM ທີ່ເປັນພຽງການຂະຫຍາຍຄວາມສາມາດດ້ານ Virtualization ໃຫ້ Linux ກໍຍັງມີປະເດັນໃຫ້ຜູ້ສົນໃຈມີຄວາມເຫັນບໍ່ກົງກັນວ່າ KVM ເປັນ Hypervisor Type-1 ຫຼື Type-2 ເນື່ອງຈາກ KVM ໄດ້ຖືກນໍາໄປປຽບທຽບກັບ Hypervisor ທີ່ມີມາກ່ອນໜ້ານີ້ທີ່ສ້າງ Kernel ຂຶ້ນມາໃໝ່ເພື່ອເປັນ Hypervisor ແລ້ວ OS ທີ່ໃຊ້ບໍລິຫານລະບົບຈະເປັນ Guest ໃນນັ້ນ ລອງຕິດຕາມອ່ານໄດ້ທີ່

KVM ປະທະ Xen

ຂໍບອກກ່ອນວ່າ KVM ບໍ່ໄດ້ເປັນສາຍຂອງ Xen ຖ້າຄົນບໍ່ຄຸ້ນ Linux ການກໍາເນີດຂອງ Xen ນັ້ນ ໄດ້ມີການສ້າງ Kernel ຂຶ້ນມາໂດຍສະເພາະ (purpose built) ຕິດຕັ້ງລະດັບຕໍ່າສຸດ ແລ້ວມີ Linux ຢູ່ເໜືອກວ່າ ແຕ່ຈາກພາບດ້ານເທິງໄດ້ສະແດງໃຫ້ເຫັນຊັດເຈນວ່າ KVM ໃຊ້ Kernel ຂອງ Linux ຕາມປົກກະຕິ ມີຜູ້ຂຽນບົດຄວາມໃນ ZDNet ໄດ້ລົງບົດສໍາພາດ Ian Pratt – Xen cofounder ໄດ້ກ່າວວ່າ “KVM ບໍ່ແມ່ນ hypervisor ຢ່າງແທ້ຈິງ ແຕ່ເປັນພຽງການເພີ່ມຄວາມສາມາດດ້ານ virtualization ລົງໃນ Linux, KVM ຈຶ່ງເໝາະສົມ desktop ຫຼື ການນໍາໃຊ້ວຽກອື່ນໆ ແຕ່ບໍ່ນໍາໃຊ້ວຽກງານທີ່ຕ້ອງການ high-end virtualization” ນອກຈາກນີ້ Ian ຍັງກ່າວຢ້ຳວ່າ “ເປັນຄວາມຈໍາເປັນສໍາລັບ server ທີ່ຕ້ອງໃຊ້ Hypervisor ທີ່ອອກມາສະເພາະແທ້ໆ” ທີ່ມາ (http://www.zdnet.com/blog/virtualization/kvm-and-xen-cofounders-engage-in-war-of-words/415)

 

 

ຂໍ້ມູນເພີ່ມເຕີມ
http://www.linux-kvm.org/page/Main_Page
http://vm360degree.com/2011/09/24/2011-red-hat-forum-%E0%B8%95%E0%B8%AD%E0%B8%99%E0%B8%97%E0%B8%B5%E0%B9%88-1-%E2%80%93-kvm-kernel-base-virtual-machine-%E0%B8%84%E0%B8%B7%E0%B8%AD-%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/