Що таке IOMMU і чи поліпшить це мої VM продуктивність?


28

Мікросхема моєї материнської плати підтримує цю функцію IOMMU , я читав (але не дуже розумію), що вона покращує продуктивність VM, дозволяючи VM використовувати фактичне фізичне обладнання замість віртуальної апаратури.

Це дійсно приносить поліпшення продуктивності роботи в машині управління? і якщо це зробити, як я можу отримати від цього вигоду Virtualbox ?.

Відповіді:


21

Якщо коротко розповісти, єдиний спосіб, яким IOMMU допоможе вам, це, якщо ви почнете призначати ресурси HW безпосередньо до VM. Якщо це не зробити, це не робить швидше.

Це допоможе точно знати, яка материнська плата / процесор рекламує цю функцію. IOMMU - це специфічний для системи механізм відображення IO, який може використовуватися на більшості пристроїв.

IOMMU звучить як загальна назва для Intel VT-d та AMD IOV. У такому разі я не думаю, що ви можете мультиплексувати пристрої, це дуже схоже на PCI, перш ніж усі ці фантазійні інструкції щодо віртуалізації існували :). SR-IOV відрізняється, периферія сама повинна нести опору. HW знає, що це віртуалізується, і може делегувати шматочок HW самого себе на VM. Багато віртуальних машин можуть спілкуватися з пристроєм SR-IOV одночасно з дуже низькими накладними витратами.

Єдине, що швидше, ніж SR-IOV, - це проходження PCI, хоча в такому випадку лише один VM може використовувати цей пристрій, навіть не хоста операційна система може використовувати його. Прохід PCI був би корисним, наприклад, для VM, який працює з інтенсивною базою даних, яка виграє від приєднання до FiberChannel SAN.

Якщо наблизитися до HW, є обмеження, однак це робить ваші VM менш портативними для розгортань, для яких потрібна, наприклад, жива міграція. Це стосується як SR-IOV, так і PCI проходження.

За замовчуванням віртуалізовані розгортання Linux зазвичай використовують VirtIO, який починається досить швидко.


Я читав це з посібника користувача на моїй материнській платі, кажучи, що якщо чіпсет його підтримує, він може забезпечити певний фізичний доступ до обладнання Host.
Урі Еррера

Я просто прочитав Xen Wiki, і IOMMU, здається, робить те, що робить і SR-IOV, але я не використовую Xen, і, мабуть, Virtualbox не дуже добре використовує це.
Урі Еррера

Ні, на більшості комп'ютерів немає МОММУ. Можливо, ви думаєте про IO-APIC?
psusi

1
Насправді ця стаття у Вікіпедії пояснює це досить добре: en.wikipedia.org/wiki/X86_virtualization . Великий виграш для підтримки IOMMU полягає в тому, що ми можемо змінити, через які пристрої ми проходимо під час виконання. Перш ніж нам довелося вказати діапазон пристроїв у списку аргументів ядра, і лише ті периферійні пристрої мали право на проходження. IOMMU дозволяє переробляти пристрої так, як вважаєте за потрібне. Знову ж таки, це ексклюзивний доступ, або ним користується ваш хост, або одна з VM. Це справді функція, орієнтована на сервер.
ppetraki

1
@UriHerrera Я рекомендую використовувати KVM, який також підтримує розширення віртуалізації Intel та AMD. Він більш гнучкий і має більше функцій, включаючи ті, які знайдені у VirtualBox.
Oxwivi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.