Dự án NetBSD đang phát triển bộ ảo hóa NVMM mới

Nhà phát triển dự án NetBSD công bố về việc tạo ra một trình ảo hóa mới và ngăn xếp ảo hóa liên quan, đã được đưa vào nhánh NetBSD-hiện tại thử nghiệm và sẽ được cung cấp trong bản phát hành ổn định của NetBSD 9. NVMM hiện bị giới hạn trong việc hỗ trợ kiến ​​trúc x86_64 và cung cấp hai chương trình phụ trợ cho kích hoạt các cơ chế ảo hóa phần cứng: x86-SVM có hỗ trợ các phần mở rộng ảo hóa CPU AMD và x86-VMX cho CPU Intel. Ở dạng hiện tại, có thể chạy tối đa 128 máy ảo trên một máy chủ, mỗi máy có thể được phân bổ tối đa 256 lõi xử lý ảo (VCPU) và 128 GB RAM.

NVMM bao gồm trình điều khiển chạy ở cấp nhân hệ thống và điều phối quyền truy cập vào các cơ chế ảo hóa phần cứng cũng như ngăn xếp Libnvmm chạy trong không gian người dùng. Tương tác giữa các thành phần kernel và không gian người dùng được thực hiện thông qua IOCTL. Một tính năng của NVMM giúp phân biệt nó với các phần mềm ảo hóa như KVM là HAXM và Bhyve, là ở cấp hạt nhân, chỉ có bộ liên kết bắt buộc tối thiểu xung quanh các cơ chế ảo hóa phần cứng được thực hiện và tất cả mã mô phỏng phần cứng được chuyển ra khỏi hạt nhân vào không gian người dùng. Cách tiếp cận này cho phép bạn giảm số lượng mã được thực thi với các đặc quyền nâng cao và giảm nguy cơ xâm phạm toàn bộ hệ thống trong trường hợp xảy ra các cuộc tấn công vào các lỗ hổng trong bộ ảo hóa. Ngoài ra, việc gỡ lỗi và thử nghiệm làm mờ dự án được đơn giản hóa đáng kể.

Tuy nhiên, bản thân Libnvmm không chứa các chức năng giả lập mà chỉ cung cấp API cho phép bạn tích hợp hỗ trợ NVMM vào các trình giả lập hiện có, ví dụ như QEMU. API bao gồm các chức năng như tạo và khởi chạy máy ảo, phân bổ bộ nhớ cho hệ thống khách và phân bổ VCPU. Để cải thiện tính bảo mật và giảm các vectơ tấn công có thể xảy ra, libnvmm chỉ cung cấp các chức năng được yêu cầu rõ ràng—theo mặc định, các trình xử lý phức tạp không được gọi tự động và hoàn toàn không được sử dụng nếu có thể tránh được. NVMM cố gắng giữ mọi thứ đơn giản, không quá phức tạp và cho phép bạn kiểm soát nhiều khía cạnh công việc của mình nhất có thể.

Dự án NetBSD đang phát triển bộ ảo hóa NVMM mới

Phần cấp nhân của NVMM được tích hợp khá chặt chẽ với nhân NetBSD và cho phép cải thiện hiệu suất bằng cách giảm số lượng chuyển đổi ngữ cảnh giữa hệ điều hành khách và môi trường máy chủ. Về phía không gian người dùng, libnvmm cố gắng tổng hợp các hoạt động I/O phổ biến và tránh thực hiện các cuộc gọi hệ thống một cách không cần thiết. Hệ thống cấp phát bộ nhớ dựa trên hệ thống con pmap, cho phép bạn chuyển các trang bộ nhớ khách sang phân vùng trao đổi trong trường hợp thiếu bộ nhớ trong hệ thống. NVMM không có khóa toàn cầu và có quy mô tốt, cho phép bạn sử dụng đồng thời các lõi CPU khác nhau để chạy các máy ảo khách khác nhau.

Một giải pháp dựa trên QEMU đã được chuẩn bị sử dụng NVMM để kích hoạt các cơ chế ảo hóa phần cứng. Công việc đang được tiến hành để đưa các bản vá đã chuẩn bị vào cấu trúc chính của QEMU. Sự kết hợp QEMU+NVMM đã sẵn sàng cho phép chạy thành công các hệ thống khách với FreeBSD, OpenBSD, Linux, Windows XP/7/8.1/10 và hệ điều hành khác trên các hệ thống x86_64 với bộ xử lý AMD và Intel (chẳng hạn như bản thân NVMM không bị ràng buộc với một kiến ​​trúc cụ thể nếu phần phụ trợ thích hợp được tạo , nó sẽ có thể hoạt động trên hệ thống ARM64). Trong số các lĩnh vực ứng dụng tiếp theo của NVMM, việc cách ly hộp cát của các ứng dụng riêng lẻ cũng được lưu ý.

Dự án NetBSD đang phát triển bộ ảo hóa NVMM mới

Nguồn: opennet.ru

Thêm một lời nhận xét