Apa itu IOMMU dan apakah akan meningkatkan kinerja VM saya?

28

Chipset Motherboard saya mendukung fitur ini IOMMU , saya telah membaca (tetapi tidak benar-benar mengerti) bahwa itu meningkatkan kinerja VM dengan membiarkan VM menggunakan perangkat keras fisik yang sebenarnya daripada perangkat keras Virtual.

Apakah ini benar-benar membawa peningkatan kinerja di VM? dan jika ya, bagaimana saya bisa mendapat manfaat dari Virtualbox?

Uri Herrera
sumber

Jawaban:

21

Singkatnya, satu-satunya cara IOMMU akan membantu Anda adalah jika Anda mulai menetapkan sumber daya HW langsung ke VM. Hanya dengan memilikinya tidak membuat segalanya lebih cepat.

Akan sangat membantu untuk mengetahui secara pasti Motherboard / CPU apa yang mengiklankan fitur ini. IOMMU adalah mekanisme pemetaan IO khusus sistem dan dapat digunakan dengan sebagian besar perangkat.

IOMMU terdengar seperti nama generik untuk Intel VT-d dan AMD IOV. Dalam hal ini saya tidak berpikir Anda dapat multipleks perangkat, ini sangat mirip PCI passthrough sebelum semua instruksi virtualisasi mewah ini ada :). SR-IOV berbeda, perangkat itu sendiri harus membawa dukungan. HW tahu itu sedang divirtualisasi dan dapat mendelegasikan sepotong HW sendiri ke VM. Banyak VM dapat berbicara dengan perangkat SR-IOV secara bersamaan dengan overhead yang sangat rendah.

Satu-satunya hal yang lebih cepat daripada SR-IOV adalah PCI passthrough meskipun dalam kasus itu hanya satu VM yang dapat menggunakan perangkat itu, bahkan sistem operasi host pun tidak dapat menggunakannya. PCI passthrough akan berguna untuk mengatakan VM yang menjalankan basis data intens yang akan mendapat manfaat dari terpasang ke SAN FiberChannel.

Semakin dekat ke HW memang memiliki keterbatasan, itu membuat VM Anda kurang portabel untuk penyebaran yang membutuhkan migrasi langsung misalnya. Ini berlaku untuk SR-IOV dan PCI passthrough.

Penggunaan standar Linux virtual biasanya menggunakan VirtIO yang cukup cepat untuk memulai.

ppetraki
sumber
Saya membacanya dari Panduan pengguna Motherboard saya, mengatakan bahwa jika Chipset mendukungnya, itu dapat memberikan semacam akses fisik ke perangkat keras Host.
Uri Herrera
Saya baru saja membaca Xen Wiki, IOMMU tampaknya melakukan apa yang SR-IOV juga lakukan, Tapi saya tidak menggunakan Xen, dan tampaknya Virtualbox tidak memanfaatkan ini.
Uri Herrera
Tidak, kebanyakan komputer tidak memiliki IOMMU. Mungkin Anda berpikir IO-APIC?
psusi
1
Sebenarnya artikel Wikipedia ini menjelaskan ini dengan cukup baik: en.wikipedia.org/wiki/X86_virtualization . Kemenangan besar untuk dukungan IOMMU adalah bahwa kita dapat mengubah perangkat mana yang kita lewati pada saat run time. Sebelumnya kami harus menentukan serangkaian perangkat dalam daftar arg kernel dan hanya periferal yang memenuhi syarat untuk lolos. IOMMU memungkinkan Anda memetakan ulang perangkat sesuai keinginan Anda. Sekali lagi ini adalah akses eksklusif, baik host Anda menggunakannya, atau salah satu dari VM tersebut. Ini benar-benar fitur pusat server.
ppetraki
1
@UriHerrera Saya sarankan Anda menggunakan KVM, yang juga mendukung ekstensi virtualisasi Intel dan AMD. Ini lebih fleksibel dan memiliki lebih banyak fitur termasuk yang ditemukan di VirtualBox.
Oxwivi