โครงการ NetBSD กำลังพัฒนาไฮเปอร์ไวเซอร์ NVMM ใหม่

นักพัฒนาโครงการ NetBSD ประกาศ เกี่ยวกับการสร้างไฮเปอร์ไวเซอร์ใหม่และสแต็กการจำลองเสมือนที่เกี่ยวข้อง ซึ่งรวมอยู่ในสาขาปัจจุบันของ NetBSD รุ่นทดลองแล้ว และจะนำเสนอใน NetBSD 9 รุ่นเสถียร ขณะนี้ NVMM ถูกจำกัดให้รองรับสถาปัตยกรรม x86_64 และมีแบ็กเอนด์สองตัวสำหรับ เปิดใช้งานกลไกการจำลองเสมือนของฮาร์ดแวร์: x86-SVM พร้อมรองรับ AMD และส่วนขยายการจำลองเสมือน CPU x86-VMX สำหรับ Intel CPU ในรูปแบบปัจจุบัน คุณสามารถรันเครื่องเสมือนได้มากถึง 128 เครื่องบนโฮสต์เดียว โดยแต่ละเครื่องสามารถจัดสรรแกนประมวลผลเสมือน (VCPU) ได้สูงสุด 256 ตัว และ RAM ขนาด 128 GB

NVMM มีไดรเวอร์ที่ทำงานในระดับเคอร์เนลของระบบและประสานการเข้าถึงกลไกการจำลองเสมือนของฮาร์ดแวร์ และสแต็ก Libnvmm ที่ทำงานในพื้นที่ผู้ใช้ การโต้ตอบระหว่างส่วนประกอบเคอร์เนลและพื้นที่ผู้ใช้ดำเนินการผ่าน IOCTL คุณลักษณะของ NVMM ที่แตกต่างจากไฮเปอร์ไวเซอร์เช่น KVM คือ แฮ็กซ์เอ็ม และ Bhyve ก็คือในระดับเคอร์เนลจะมีการดำเนินการชุดการเชื่อมโยงขั้นต่ำที่จำเป็นรอบกลไกการจำลองเสมือนของฮาร์ดแวร์เท่านั้น และโค้ดการจำลองฮาร์ดแวร์ทั้งหมดจะถูกย้ายออกจากเคอร์เนลไปยังพื้นที่ผู้ใช้ แนวทางนี้ช่วยให้คุณลดจำนวนโค้ดที่ดำเนินการด้วยสิทธิ์ระดับสูง และลดความเสี่ยงที่จะกระทบต่อระบบทั้งหมดในกรณีที่มีการโจมตีช่องโหว่ในไฮเปอร์ไวเซอร์ นอกจากนี้ การทดสอบการดีบักและฟัซซิงของโปรเจ็กต์ยังง่ายขึ้นอย่างเห็นได้ชัด

อย่างไรก็ตาม Libnvmm เองไม่มีฟังก์ชันอีมูเลเตอร์ แต่มีเพียง API ที่ให้คุณรวมการรองรับ NVMM เข้ากับอีมูเลเตอร์ที่มีอยู่ เช่น QEMU API ครอบคลุมฟังก์ชันต่างๆ เช่น การสร้างและเปิดใช้เครื่องเสมือน การจัดสรรหน่วยความจำให้กับระบบเกสต์ และการจัดสรร VCPU เพื่อปรับปรุงความปลอดภัยและลดเวกเตอร์การโจมตีที่เป็นไปได้ libnvmm จัดเตรียมเฉพาะฟังก์ชันที่ได้รับการร้องขออย่างชัดเจน โดยค่าเริ่มต้น ตัวจัดการที่ซับซ้อนจะไม่ถูกเรียกโดยอัตโนมัติและอาจไม่สามารถใช้ได้เลยหากสามารถหลีกเลี่ยงได้ NVMM พยายามทำให้สิ่งต่าง ๆ เรียบง่ายโดยไม่ซับซ้อนเกินไป และช่วยให้คุณควบคุมงานของคุณในหลาย ๆ ด้านได้มากที่สุดเท่าที่จะเป็นไปได้

โครงการ NetBSD กำลังพัฒนาไฮเปอร์ไวเซอร์ NVMM ใหม่

ส่วนระดับเคอร์เนลของ NVMM ค่อนข้างจะผสานรวมกับเคอร์เนล NetBSD ค่อนข้างแน่นหนา และช่วยให้ปรับปรุงประสิทธิภาพโดยการลดจำนวนการสลับบริบทระหว่างระบบปฏิบัติการเกสต์และสภาพแวดล้อมของโฮสต์ ในด้านพื้นที่ผู้ใช้ libnvmm พยายามรวมการดำเนินการ I/O ทั่วไป และหลีกเลี่ยงการเรียกระบบโดยไม่จำเป็น ระบบการจัดสรรหน่วยความจำจะขึ้นอยู่กับระบบย่อย pmap ซึ่งช่วยให้คุณสามารถนำเพจหน่วยความจำของแขกออกไปยังพาร์ติชันสลับได้ในกรณีที่หน่วยความจำในระบบขาดแคลน NVMM ไม่มีการล็อกและปรับขนาดส่วนกลางอย่างดี ช่วยให้คุณสามารถใช้คอร์ CPU ที่แตกต่างกันเพื่อรันเครื่องเสมือนของแขกที่แตกต่างกันได้

มีการเตรียมโซลูชันที่ใช้ QEMU ซึ่งใช้ NVMM เพื่อเปิดใช้งานกลไกการจำลองเสมือนสำหรับฮาร์ดแวร์ งานอยู่ระหว่างดำเนินการเพื่อรวมแพตช์ที่เตรียมไว้ในโครงสร้างหลักของ QEMU ชุดค่าผสม QEMU+NVMM มีอยู่แล้ว ช่วยให้ ใช้งานระบบเกสต์ได้สำเร็จด้วย FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 และระบบปฏิบัติการอื่น ๆ บนระบบ x86_64 ด้วยโปรเซสเซอร์ AMD และ Intel (NVMM เองไม่ได้เชื่อมโยงกับสถาปัตยกรรมเฉพาะ ตัวอย่างเช่น หากสร้างแบ็กเอนด์ที่เหมาะสม ก็จะสามารถทำงานบนระบบ ARM64 ได้) ในด้านการใช้งาน NVMM เพิ่มเติมนั้น ยังมีการระบุถึงการแยกแซนด์บ็อกซ์ของแอปพลิเคชันแต่ละรายการด้วย

โครงการ NetBSD กำลังพัฒนาไฮเปอร์ไวเซอร์ NVMM ใหม่

ที่มา: opennet.ru

เพิ่มความคิดเห็น