IOMMU
IOMMU преобразува и ограничава достъпите до паметта, инициирани от устройства. Неговото поведение при защита и директно пренасочване (passthrough) зависи от топологията на платформата, фърмуера, конфигурацията на ОС и драйверите.
Какво трябва да знаете
IOMMU преобразува и ограничава достъпите до паметта, инициирани от устройства. Неговото поведение при защита и директно пренасочване (passthrough) зависи от топологията на платформата, фърмуера, конфигурацията на ОС и драйверите.
Как работи
Дадено устройство инициира DMA трансакции, използвайки адреси, интерпретирани от I/O преобразуващ модул. Операционната система или хипервайзорът конфигурира домейни и съпоставяния (mappings), които свързват тези заявки с разрешената системна памет. Идентификаторите на устройствата, споделените граници на преобразуване и обработката на прекъсвания влияят на практическата изолация.
Къде е полезно
Дадена VM може да получи поддържано устройство чрез рамка, която налага нейната IOMMU изолационна група. Устройства, споделящи група, може да се наложи да бъдат присвоени заедно, тъй като платформата не може да установи независима изолация при желаната граница.
Как се проверява поддръжката и активирането
Проверете описанието на IOMMU на платформата и състоянието на активиране, групите и изискванията за присвояване на устройства в ОС/хипервайзора. При Intel изследвайте VT-d; при AMD използвайте документираните средства за AMD I/O виртуализация. Проверете точния рестарт (reset) и поведението на драйвера на устройството.
Внедряването с виртуализация включва няколко слоя: физическа възможност, разрешение от фърмуера, активен хипервайзор на хоста, експонирани възможности за госта и поддръжка от операционната система на госта. Проверявайте слоя, в който действително се изпълнява операцията, включително при вложена виртуализация, когато е приложимо.
Какво не гарантира тази функция
Флаг за IOMMU не доказва, че всяко периферно устройство е изолирано независимо или че защитата е активна. Защитите в таблиците със страници на CPU сами по себе си не ограничават всички DMA операции на устройствата. Неподдържаните топологични презаписвания могат да отслабят изолацията и не представляват рутинна корекция за съвместимост.
Съвместимост и производителност на практика
Изпълнението на инструкции от процесора, транслирането на паметта на госта и пренасочването на DMA на устройствата са отделни механизми. Не правете изводи за директно пренасочване (passthrough) или изолация само от едно поле за виртуализация. Използвайте поддържаната диагностика на хипервайзора и точните изисквания на платформата/устройството.
Практически контролен списък за проверка
- Запишете точния модел на процесора или платформата, както и използваните версии на приложението, операционната система и средата за изпълнение. Запазете точния текст на действителната грешка или изискване.
- Проверете документацията от производителя за този точен модел, след което инспектирайте действителните възможности и активираното състояние в средата, където работи програмата.
- Сравнете всяко изискване на избрания двоичен файл или бекенд. Подобно наименувана функция, псевдоним или общ технологичен етикет не са достатъчни.
- Потвърдете, че приложението е избрало планираната реализация. Използвайте неговата документирана диагностика и поддържан резервен вариант, когато изискванията не са изпълнени.
- Правете по една поддържана промяна наведнъж и повтаряйте същото работно натоварване. Запазете достъпни оригиналната конфигурация и плана за възстановяване.
Ако функцията е посочена, но софтуерът не може да я използва
Започнете с точния компонент, който дава грешка. Хардуерната база данни описва записаните възможности; операционната система или хипервайзорът могат да предоставят различна ефективна среда. Грешка за невалидна инструкция (illegal-instruction) също изисква разследване на действителната сриваща се инструкция и компилацията на двоичния файл, тъй като повреда или несвързана неподдържана инструкция може да предизвика подобен симптом.
Инсталирайте версията на приложението, драйвера или средата за изпълнение, която се поддържа за точната платформа, и използвайте документираната от производителя базова или резервна компилация, ако е необходимо. Софтуерна актуализация не може да създаде инструкция, която липсва в процесора. Промените във фърмуера и политиките за сигурност трябва да следват процедурата на производителя на системата и план за възстановяване, а не общи съвети за оптимизация.
Източници и обхват на това обяснение
Intel Virtualization Technology for Directed I/O Architecture Specification · Linux kernel: VFIO device access and IOMMU groups
Тези източници установяват архитектурното поведение и софтуерните изисквания. Те не проверяват независимо всяка стойност на параметър на свързана страница за хардуерен модел. За поддръжка на даден модел използвайте данните от производителя на съответната страница и проверете ефективната системна конфигурация. Тази статия не предоставя бенчмарк, сертификация или дата на независим преглед.
Източници и проверка
Редакционна собственост: Feex. Не е записана дата на независим преглед. Как проучваме.
- Intel Virtualization Technology for Directed I/O Architecture Specification · Архитектура за пренасочване на DMA, домейни за преобразуване, пренасочване на прекъсвания и структури за докладване от фърмуера. Поддръжката от платформата трябва да се установи отделно.
- Linux kernel: VFIO device access and IOMMU groups · Обяснява изолационните групи, собствеността върху устройствата и ограниченията, свързани с passthrough. Не представлява списък за съвместимост за конкретна дънна платка.
Беше ли полезна тази статия?
Достатъчно е "да" или "не". Изберете причина, ако желаете, или добавете кратка бележка.
Благодарим ви. Това ни помага да подобрим тази страница.