อ่าน 6 นาที
เครื่องเสมือนแบบเคอร์เนล
Kernel-based Virtual Machine ( KVM ) เป็น โมดูล การจำลองเสมือนแบบ โอเพนซอร์สและฟรี ใน เคอร์เนล Linux ที่ช่วยให้ เคอร์เนล ทำงานเป็น ไฮเปอร์ไวเซอร์ได้ มันถูกรวมเข้ากับ เคอร์เนล...
เครื่องเสมือนแบบเคอร์เนล
| เควีเอ็ม | |
|---|---|
| ผู้เขียนต้นฉบับ | คุมราเน็ต |
| นักพัฒนา | ชุมชนเคอร์เนลลินุกซ์ |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | เหมือนยูนิก |
| แพลตฟอร์ม | ARM , PowerPC , z/Architecture , IA-32 , x86-64 , RISC-V , LoongArch |
| พิมพ์ | ไฮเปอร์ไวเซอร์ |
| ใบอนุญาต | GNU GPLหรือLGPL |
| เว็บไซต์ | www.linux-kvm.org |
| ที่เก็บข้อมูล |
|
Kernel-based Virtual Machine ( KVM ) เป็น โมดูล การจำลองเสมือนแบบโอเพนซอร์สและฟรี ในเคอร์เนล Linuxที่ช่วยให้เคอร์เนลทำงานเป็นไฮเปอร์ไวเซอร์ได้มันถูกรวมเข้ากับเคอร์เนล Linux หลักในเวอร์ชัน 2.6.20 ซึ่งเผยแพร่เมื่อวันที่ 5 กุมภาพันธ์ 2550 [ 1 ] KVM ต้องการโปรเซสเซอร์ที่มี ส่วนขยายการจำลอง เสมือนฮาร์ดแวร์เช่นIntel VTหรือAMD-V [ 2 ] KVMยังได้รับการพอร์ตไปยังระบบปฏิบัติการอื่น ๆ เช่นFreeBSD [ 3 ]และillumos [ 4 ]ในรูปแบบของโมดูลเคอร์เนลที่สามารถโหลดได้
KVM ได้รับการออกแบบ มาสำหรับ โปรเซสเซอร์ x86 ในตอนแรก แต่ต่อมาได้ถูกพอร์ตไปยัง z / Architecture [ 5 ] [ 6 ] PowerPC [ 5 ] IA-64 [ 5 ] และ ARM [ 7 ] [ 8 ] [ 9 ] พอร์ต IA-64 ถูกลบออกในปี2014 [ 10 ]
KVM รองรับการจำลองเสมือนด้วยฮาร์ดแวร์สำหรับระบบปฏิบัติการแขกหลากหลายประเภท รวมถึงBSD , Solaris , Windows , Haiku , ReactOS , Plan 9 , AROS , macOSและแม้แต่ระบบ Linux อื่นๆ[ 11 ] [ 12 ]นอกจากนี้ Android 2.2, GNU/Hurd [ 13 ] ( Debian K16), Minix 3.1.2a, Solaris 10 U3 และDarwin 8.0.1 พร้อมด้วยระบบปฏิบัติการอื่นๆ และบางเวอร์ชันที่ใหม่กว่าของระบบเหล่านี้ เป็นที่ทราบกันว่าสามารถใช้งานได้โดยมีข้อจำกัดบางประการ[ 11 ]
นอกจากนี้ KVM ยังให้การ สนับสนุน พาราเวอร์ชวลไลเซชันสำหรับ Linux, OpenBSD [ 14 ] FreeBSD [ 15 ] NetBSD [ 16 ] Plan 9 [ 17 ]และ Windows guest โดยใช้ VirtIO API [ 18 ] ซึ่งรวมถึงการ์ด อีเธอร์เน็ตแบบพาราเวอร์ ชวล ตัวควบคุม I/O ดิสก์[ 19 ]ไดรเวอร์บอลลูนและ อินเทอร์ เฟซกราฟิกVGA โดยใช้ ไดรเวอร์ SPICEหรือVMware
ประวัติศาสตร์
Avi Kivityเริ่มพัฒนา KVM ในช่วงกลางปี 2549 ที่Qumranet [ 20 ] ซึ่ง เป็น บริษัทสตาร์ทอัพด้านเทคโนโลยี[ 21 ]ที่ถูกRed Hat เข้าซื้อกิจการ ในปี 2551 [ 22 ]
KVM ปรากฏขึ้นในเดือนตุลาคม พ.ศ. 2549 [ 23 ]และถูกรวมเข้ากับเคอร์เนล Linux หลักในเวอร์ชัน 2.6.20 ซึ่งเผยแพร่เมื่อวันที่ 5 กุมภาพันธ์ พ.ศ. 2550 [ 1 ]
KVM ได้รับการดูแลโดย Paolo Bonzini [ 24 ]
ภายใน

KVM ให้การทำงานแบบแยกส่วนอุปกรณ์ แต่ไม่มีการจำลองโปรเซสเซอร์ มันเปิดเผย อินเทอร์เฟซ /dev/kvmซึ่งโฮสต์ในโหมดผู้ใช้สามารถใช้เพื่อ:
- ตั้งค่าพื้นที่แอดเดรสของเครื่องเสมือน (VM) ที่เป็นแขก โฮสต์จะต้องจัดเตรียมอิมเมจเฟิร์มแวร์ (โดยปกติจะเป็น BIOS แบบกำหนดเองเมื่อจำลองพีซี) ที่แขกสามารถใช้เพื่อบูตเข้าสู่ระบบปฏิบัติการหลักได้
- ป้อนข้อมูลอินพุต/เอาต์พุตจำลองให้กับแขก
- เชื่อมโยงจอแสดงผลวิดีโอของแขกกลับไปยังเครื่องโฮสต์ของระบบ
เดิมทีQEMU เวอร์ชันที่แยกออกมา นั้นมีไว้สำหรับเรียกใช้งานเครื่องเสมือนและจัดการกับการจำลองฮาร์ดแวร์ที่เคอร์เนลไม่รองรับ แต่ในที่สุดการสนับสนุนนั้นก็ถูกรวมเข้ากับโครงการหลัก ปัจจุบันมีโปรแกรมตรวจสอบเครื่องเสมือน (VMM) จำนวนมากที่สามารถใช้ประโยชน์จากอินเทอร์เฟซ KVM ได้ เช่น kvmtool, crosvm และFirecrackerรวมถึง VMM เฉพาะทางอีกมากมายที่สร้างขึ้นด้วยเฟรมเวิร์ก เช่น rust-vmm
ภายใน KVM ใช้SeaBIOSเป็นการใช้งานBIOS x86 แบบโอเพนซอร์ส [ 26 ]
คุณสมบัติ
KVM รองรับvCPU ที่สามารถเปลี่ยนได้ทันที [ 27 ]การจัดการหน่วยความจำแบบไดนามิก[ 28 ] และ Live Migration ตั้งแต่เดือนกุมภาพันธ์ พ.ศ. 2550 [ 29 ] [ 30 ] นอกจากนี้ยังช่วยลดผลกระทบของภาระงานที่ต้องใช้การเขียนหน่วยความจำจำนวนมากต่อกระบวนการย้ายข้อมูล[ 31 ]
ฮาร์ดแวร์จำลอง
KVM เองจำลองฮาร์ดแวร์เพียงเล็กน้อย แต่จะใช้แอปพลิเคชันไคลเอ็นต์ระดับสูงกว่า เช่นQEMU , crosvm หรือFirecrackerในการจำลองอุปกรณ์แทน
KVM มีอุปกรณ์จำลองดังต่อไปนี้:
เครื่องมือการจัดการแบบกราฟิก

- Kimchi – เครื่องมือจัดการเวอร์ชวลไลเซชันบนเว็บสำหรับ KVM
- โปรแกรมจัดการเครื่องเสมือน (Virtual Machine Manager ) – รองรับการสร้าง แก้ไข เริ่ม และหยุดเครื่องเสมือนที่ใช้ KVM รวมถึงการย้ายเครื่องเสมือนแบบลากและวางทั้งแบบสดและแบบเย็นระหว่างโฮสต์
- Proxmox Virtual Environment คือแพ็กเกจการจัดการเวอร์ชวลไลเซชันแบบโอเพนซอร์ส ซึ่งรวมถึง KVM และLXCมีตัวติดตั้งแบบ bare-metal, GUI สำหรับการจัดการระยะไกลผ่านเว็บ, สแต็กคลัสเตอร์ HA, พื้นที่จัดเก็บข้อมูลแบบรวมศูนย์, เครือข่ายที่ยืดหยุ่น และการสนับสนุนเชิงพาณิชย์เพิ่มเติม
- OpenQRM – แพลตฟอร์มการจัดการสำหรับบริหารจัดการโครงสร้างพื้นฐานศูนย์ข้อมูลที่หลากหลาย
- GNOME Boxes – อินเทอร์เฟซ Gnome สำหรับจัดการเครื่องเสมือน libvirt บน Linux
- oVirt – เครื่องมือจัดการเวอร์ชวลไลเซชันแบบโอเพนซอร์สสำหรับ KVM ที่สร้างขึ้นบนพื้นฐานของlibvirt
การออกใบอนุญาต
ส่วนประกอบโหมดเคอร์เนลของ KVM เป็นส่วนหนึ่งของเคอร์เนล Linuxซึ่งได้รับอนุญาตภายใต้GNU General Public License เวอร์ชัน 2 [ 33 ]
ดูเพิ่มเติม
บรรณานุกรม
- อามิต ชาห์ (2 พฤศจิกายน 2016). "สิบปีของ KVM" . lwn.net . สืบค้นเมื่อ10 กุมภาพันธ์ 2017 .
ลิงก์ภายนอก
- แนวทางปฏิบัติที่ดีที่สุดสำหรับเครื่องเสมือนแบบใช้เคอร์เนล (Kernel-based Virtual Machine) เก็บถาวรเมื่อวันที่ 6 พฤศจิกายน 2019 ที่Wayback Machine IBM ฉบับที่สอง เมษายน 2012
- การปรับปรุงประสิทธิภาพของ Virtio-blk , KVM Forum 2012, 8 พฤศจิกายน 2012, โดย Asias He
- วิกิบุ๊ก QEMU และ KVM
- crosvm - ตัวตรวจสอบเครื่องเสมือนสำหรับ Chrome OS
- VMM ดอกไม้ไฟสำหรับ KVM
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เครื่องเสมือนแบบเคอร์เนล
Kernel-based Virtual Machine ( KVM ) เป็น โมดูล การจำลองเสมือนแบบ โอเพนซอร์สและฟรี ใน เคอร์เนล Linux ที่ช่วยให้ เคอร์เนล ทำงานเป็น ไฮเปอร์ไวเซอร์ได้ มันถูกรวมเข้ากับ เคอร์เนล...
ประวัติศาสตร์
Avi Kivity เริ่มพัฒนา KVM ในช่วงกลางปี 2549 ที่ Qumranet [ 20 ] ซึ่ง เป็น บริษัทสตาร์ทอัพ ด้านเทคโนโลยี [ 21 ] ที่ถูก Red Hat เข้าซื้อกิจการ ในปี 2551 [ 22 ]
ภายใน
KVM ให้การทำงานแบบแยกส่วนอุปกรณ์ แต่ไม่มีการจำลองโปรเซสเซอร์ มันเปิดเผย อินเทอร์เฟซ /dev/kvm ซึ่งโฮสต์ในโหมดผู้ใช้สามารถใช้เพื่อ:
คุณสมบัติ
KVM รองรับ vCPU ที่สามารถเปลี่ยนได้ทันที [ 27 ] การจัดการหน่วยความจำแบบไดนามิก [ 28 ] และ Live Migration ตั้งแต่เดือนกุมภาพันธ์ พ.ศ.