IOMMU là gì và nó sẽ cải thiện hiệu suất VM của tôi?


28

Chipset của Bo mạch chủ của tôi hỗ trợ tính năng này IOMMU , tôi đã đọc (nhưng không thực sự hiểu) rằng nó cải thiện hiệu suất VM bằng cách cho phép VM sử dụng phần cứng vật lý thực tế thay vì phần cứng ảo.

Điều này thực sự mang lại một cải tiến hiệu suất trong VM? và nếu nó làm thế nào tôi có thể làm cho Virtualbox được hưởng lợi từ đó?.

Câu trả lời:


21

Tóm lại, cách duy nhất mà IOMMU sẽ giúp bạn là nếu bạn bắt đầu gán tài nguyên CTNH trực tiếp cho VM. Chỉ cần có nó sẽ không làm mọi thứ nhanh hơn.

Nó sẽ giúp biết chính xác Bo mạch chủ / CPU đang quảng cáo tính năng này. IOMMU là một cơ chế ánh xạ IO cụ thể của hệ thống và có thể được sử dụng với hầu hết các thiết bị.

IOMMU nghe giống như một tên chung cho Intel VT-d và AMD IOV. Trong trường hợp tôi không nghĩ bạn có thể ghép kênh các thiết bị, nó rất giống với thông qua PCI trước khi tất cả các hướng dẫn ảo hóa lạ mắt này tồn tại :). SR-IOV thì khác, bản thân thiết bị ngoại vi phải mang bộ phận hỗ trợ. CTNH biết rằng nó đang được ảo hóa và có thể ủy quyền một lát CTNH cho VM. Nhiều máy ảo có thể nói chuyện với một thiết bị SR-IOV đồng thời với chi phí rất thấp.

Điều duy nhất nhanh hơn SR-IOV là thông qua PCI mặc dù trong trường hợp đó chỉ có một VM có thể sử dụng thiết bị đó, thậm chí cả hệ điều hành máy chủ cũng không thể sử dụng. Truyền qua PCI sẽ hữu ích khi nói một VM chạy cơ sở dữ liệu cường độ cao sẽ có lợi khi được gắn vào FiberChannel SAN.

Tuy nhiên, việc tiến gần hơn với CTNH cũng có những hạn chế, điều đó làm cho máy ảo của bạn ít khả năng di chuyển hơn cho các triển khai yêu cầu di chuyển trực tiếp chẳng hạn. Điều này áp dụng cho cả thông qua SR-IOV và PCI.

Các triển khai Linux ảo hóa mặc định thường sử dụng VirtIO khá nhanh để bắt đầu.


Tôi đọc nó từ Hướng dẫn sử dụng của Bo mạch chủ của tôi, nói rằng nếu Chipset hỗ trợ thì nó có thể cung cấp một số quyền truy cập vật lý vào phần cứng Máy chủ.
Uri Herrera

Tôi mới đọc Xen Wiki, IOMMU dường như cũng làm những gì SR-IOV làm, nhưng tôi không sử dụng Xen, và rõ ràng Virtualbox không tận dụng tốt điều này.
Uri Herrera

Không, hầu hết các máy tính không có IOMMU. Có lẽ bạn đang nghĩ IO-APIC?
psusi

1
Trên thực tế bài viết Wikipedia này giải thích điều này khá tốt: en.wikipedia.org/wiki/X86_virtualization . Chiến thắng lớn cho hỗ trợ của IOMMU là chúng tôi có thể thay đổi thiết bị nào chúng tôi đi qua trong thời gian chạy. Trước khi chúng tôi phải chỉ định một loạt các thiết bị trong danh sách arg kernel và chỉ những thiết bị ngoại vi đó mới đủ điều kiện để vượt qua. IOMMU cho phép bạn sắp xếp lại các thiết bị khi bạn thấy phù hợp. Một lần nữa, đây là quyền truy cập độc quyền, hoặc máy chủ của bạn đang sử dụng hoặc một trong các VM là. Đây thực sự là một tính năng trung tâm của máy chủ.
ppetraki

1
@UriHerrera Tôi khuyên bạn nên sử dụng KVM, cũng hỗ trợ các phần mở rộng ảo hóa của Intel và AMD. Nó linh hoạt hơn và có nhiều tính năng hơn bao gồm cả những tính năng được tìm thấy trong VirtualBox.
Oxwivi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.