อัปเดตสำหรับ Intel Cloud Hypervisor 0.3 และ Amazon Firecracker 0.19 ที่เขียนด้วย Rust

อินเทล การตีพิมพ์ ไฮเปอร์ไวเซอร์เวอร์ชันใหม่ คลาวด์ไฮเปอร์ไวเซอร์ 0.3. ไฮเปอร์ไวเซอร์ถูกสร้างขึ้นจากส่วนประกอบต่างๆ
โครงการร่วม สนิม-VMMซึ่งนอกจาก Intel, Alibaba, Amazon, Google และ Red Hat ก็เข้าร่วมด้วย Rust-VMM เขียนด้วยภาษา Rust และช่วยให้คุณสร้างไฮเปอร์ไวเซอร์เฉพาะงานได้ Cloud Hypervisor เป็นไฮเปอร์ไวเซอร์ตัวหนึ่งที่ให้ virtual machine monitor (VMM) ระดับสูงที่ทำงานบน KVM และได้รับการปรับให้เหมาะสมสำหรับงานบนคลาวด์ รหัสโครงการ ใช้ได้ ได้รับอนุญาตภายใต้ Apache 2.0

Cloud Hypervisor มุ่งเน้นไปที่การรันการกระจาย Linux สมัยใหม่โดยใช้อุปกรณ์ Paravirtualized ที่ใช้ virtio งานหลักที่กล่าวถึง ได้แก่ การตอบสนองสูง การใช้หน่วยความจำต่ำ ประสิทธิภาพสูง การกำหนดค่าที่ง่ายขึ้น และการลดเวกเตอร์การโจมตีที่เป็นไปได้

การสนับสนุนการจำลองจะถูกเก็บไว้ให้น้อยที่สุดและเน้นที่การจำลองเสมือน ปัจจุบันรองรับเฉพาะระบบ x86_64 แต่การสนับสนุน AArch64 กำลังดำเนินการอยู่ ในระบบเกสต์ ปัจจุบันรองรับเฉพาะ Linux เวอร์ชัน 64 บิตเท่านั้น การตั้งค่า CPU, หน่วยความจำ, PCI และ NVDIMM ดำเนินการในขั้นตอนการสร้าง สามารถย้ายเครื่องเสมือนระหว่างเซิร์ฟเวอร์ได้

ในเวอร์ชันใหม่:

  • งานยังคงดำเนินต่อไปในการย้าย I/O แบบพาราเวอร์ชวลไลซ์ไปยังกระบวนการที่แยกจากกัน เพิ่มความสามารถในการใช้แบ็กเอนด์เพื่อโต้ตอบกับอุปกรณ์บล็อก vhost-ผู้ใช้-blk. การเปลี่ยนแปลงนี้ช่วยให้คุณเชื่อมต่ออุปกรณ์บล็อกตามโมดูลผู้ใช้ vhost กับ Cloud Hypervisor เช่น สพปเป็นแบ็กเอนด์สำหรับการจัดเก็บข้อมูลแบบพาราเวอร์ชวลไลซ์
  • เปิดตัวในรุ่นล่าสุด รองรับการย้ายการดำเนินงานเครือข่ายไปยังแบ็กเอนด์ vhost-ผู้ใช้-netขยายด้วยแบ็กเอนด์ใหม่โดยใช้ไดรเวอร์เครือข่ายเสมือน TAP. แบ็กเอนด์เขียนด้วยภาษา Rust และตอนนี้ใช้ใน Cloud Hypervisor เป็นสถาปัตยกรรมเครือข่ายพาราเวอร์ชวลไลซ์หลัก
  • เพื่อเพิ่มประสิทธิภาพและความปลอดภัยของการสื่อสารระหว่างสภาพแวดล้อมโฮสต์และระบบแขก จึงเสนอการนำซ็อกเก็ตไปใช้แบบไฮบริดพร้อมกับการกำหนดที่อยู่ AF_VSOCK (ซ็อกเก็ตเครือข่ายเสมือน) ที่ทำงานผ่าน virtio การนำไปปฏิบัติจะขึ้นอยู่กับการพัฒนาของโครงการ พลุพัฒนาโดยอเมซอน VSOCK อนุญาตให้คุณใช้ POSIX Sockets API มาตรฐานสำหรับการโต้ตอบระหว่างแอปพลิเคชันที่ด้านข้างของระบบเกสต์และโฮสต์ ซึ่งทำให้ง่ายต่อการปรับโปรแกรมเครือข่ายทั่วไปสำหรับการโต้ตอบดังกล่าว และใช้การโต้ตอบของโปรแกรมไคลเอนต์หลายโปรแกรมด้วยแอปพลิเคชันเซิร์ฟเวอร์เดียว
  • มีการให้การสนับสนุนเบื้องต้นสำหรับ API การจัดการโดยใช้โปรโตคอล HTTP ในอนาคต API นี้จะช่วยให้สามารถเริ่มต้นการดำเนินการแบบอะซิงโครนัสบนระบบแขก เช่น ทรัพยากรแบบปลั๊กร้อนและสภาพแวดล้อมการย้ายข้อมูล
  • เพิ่มเลเยอร์การใช้งานการขนส่งตาม virtio MMIO (Memory mapped virtio) ซึ่งสามารถใช้เพื่อสร้างระบบเกสต์ที่เรียบง่ายซึ่งไม่ต้องการการจำลองบัส PCI
  • ส่วนหนึ่งของความคิดริเริ่มในการขยายการสนับสนุนสำหรับการรันระบบเกสต์แบบซ้อนใน Cloud Hypervisor ได้มีการเพิ่มความสามารถในการส่งต่ออุปกรณ์ IOMMU แบบพาราเวอร์ชวลไลซ์ผ่าน virtio ซึ่งช่วยให้คุณสามารถเพิ่มความปลอดภัยของการส่งต่ออุปกรณ์แบบซ้อนและการส่งต่อโดยตรง
  • ให้การสนับสนุน Ubuntu 19.10;
  • เพิ่มความสามารถในการรันระบบเกสต์ที่มี RAM มากกว่า 64 GB

นอกจากนี้ยังสามารถสังเกตได้ ปัญหาใหม่ ที่อยู่ติดกัน ที่พัฒนา จอภาพเครื่องเสมือน พลุซึ่งเขียนด้วยภาษา Rust โดยใช้ Rust-VMM และทำงานบน KVM ประทัดเป็นทางแยกของโครงการ CrossVMGoogle ใช้เพื่อเรียกใช้แอปพลิเคชัน ลินุกซ์ и Android ใน ChromeOS Firecracker ได้รับการพัฒนาโดย Amazon Web Services เพื่อปรับปรุงประสิทธิภาพและประสิทธิภาพของแพลตฟอร์ม AWS Lambda และ AWS Fargate

แพลตฟอร์มดังกล่าวได้รับการออกแบบมาเพื่อใช้งานเครื่องเสมือนโดยมีค่าใช้จ่ายน้อยที่สุด และมีเครื่องมือสำหรับการสร้างและจัดการสภาพแวดล้อมและบริการแบบแยกส่วนที่สร้างขึ้นโดยใช้รูปแบบการพัฒนาแบบไร้เซิร์ฟเวอร์ (ทำหน้าที่เป็นบริการ) Firecracker นำเสนอเครื่องเสมือนน้ำหนักเบาที่เรียกว่า microVM ซึ่งใช้เทคโนโลยีการจำลองเสมือนสำหรับฮาร์ดแวร์เพื่อแยกเครื่องเสมือนออกจากกันอย่างสมบูรณ์ แต่ยังให้ประสิทธิภาพและความยืดหยุ่นของคอนเทนเนอร์ทั่วไป ตัวอย่างเช่น เมื่อใช้ Firecracker เวลาตั้งแต่เริ่มต้น microVM จนถึงจุดเริ่มต้นของแอปพลิเคชันจะไม่เกิน 125ms ซึ่งช่วยให้คุณสามารถเปิดตัวเครื่องเสมือนใหม่ด้วยความเข้มข้นสูงสุด 150 สภาพแวดล้อมต่อวินาที

Firecracker รุ่นใหม่ได้เพิ่มโหมดการทำงานโดยไม่ต้องเรียกใช้ตัวจัดการ API ("--no-api") ซึ่งจะจำกัดสภาพแวดล้อมให้เหลือเฉพาะการตั้งค่าแบบฮาร์ดโค้ดในไฟล์กำหนดค่า การกำหนดค่าแบบคงที่ระบุผ่านตัวเลือก "--config-file" และกำหนดไว้ในรูปแบบ JSON จากตัวเลือกบรรทัดคำสั่ง มีการเพิ่มการรองรับตัวคั่น “—” หลังจากนั้นแฟล็กจะถูกส่งไปตามสายโซ่โดยไม่มีการประมวลผล

นักพัฒนา Firecracker ของ Amazon เช่นกัน ประกาศ ในการสนับสนุนนักพัฒนาภาษาโปรแกรม Rust มีข้อสังเกตว่า Rust ถูกนำมาใช้มากขึ้นในโครงการของบริษัท และมีการพัฒนาในบริการต่างๆ เช่น Lambda, EC2 และ S3 แล้ว Amazon จัดเตรียมโครงสร้างพื้นฐานให้กับโปรเจ็กต์ Rust เพื่อจัดเก็บรุ่นและบิวด์ใน S3, รันการทดสอบการถดถอยบน EC2 และดูแลรักษาไซต์ docs.rs พร้อมเอกสารประกอบสำหรับแพ็คเกจทั้งหมดจากพื้นที่เก็บข้อมูล crates.io

อเมซอนอีกด้วย ส่ง โปรแกรม เครดิตส่งเสริมการขาย AWSโดยที่โปรเจ็กต์แบบเปิดสามารถเข้าถึงบริการของ AWS ได้ฟรี ซึ่งสามารถใช้สำหรับการจัดเก็บทรัพยากร การสร้าง การผสานรวมอย่างต่อเนื่อง และการทดสอบ ในบรรดาโครงการที่ได้รับอนุมัติให้เข้าร่วมในโครงการแล้ว นอกเหนือจาก Rust, AdoptOpenJDK, Maven Central, Kubernetes, Prometheus, Envoy และ Julia แล้ว แอปพลิเคชันได้รับการยอมรับจากโครงการโอเพ่นซอร์สใดๆ ที่จัดหาภายใต้ใบอนุญาตที่ได้รับอนุมัติจาก OSI

ที่มา: opennet.ru

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