30.6.8. Сопоставление устройств
При работе с локальными ресурсами (например, PCI-устройствами) прямое использование их необработанных адресов или идентификаторов может привести к следующим проблемам:
при использовании HA на разных узлах могут существовать устройства с одинаковыми идентификаторами или путями; при перемещении ВМ между узлами HA может ошибочно назначить неподходящее устройство, что приведёт к нарушению конфигурации;
замена или обновление оборудования может изменить идентификаторы или пути устройств, поэтому потребуется проверить все назначенные устройства для подтверждения их корректности.
Для устранения этих проблем можно настроить сопоставление ресурсов кластера, которое:
Создание сопоставления в веб-интерфейсе:
Перейти на вкладку → .
В соответствующем разделе (Устройства PCI или USB-устройства) нажать кнопку Добавить:
В открывшемся окне указать название сопоставления, узел и устройство.
Добавление сопоставления PCI:
Добавление сопоставления USB:
Нажать кнопку Создать.
После создания соспоставления нажать кнопку

в строке сопоставления и добавить устройство для другого узла кластера:
Результат добавления сопоставления:
Для создания сопоставленного устройства можно использовать команду:
# pvesh create /cluster/mapping/<тип> <опции>
где:
Конфигурация должна включать все идентифицирующие свойства устройства. Это позволяет проверять неизменность оборудования и гарантировать назначение корректного устройства.
Пример добавления сопоставления PCI-устройства с разными путями на узлах кластера:
# pvesh create /cluster/mapping/pci --id device \
--map node=pve01,path=0000:01:00.0,id=0002:0001 \
--map node=pve02,path=0000:02:00.0,id=0002:0001
Параметр
map должен быть указан для каждого узла, на котором устройство должно быть доступно.
Каждому сопоставлению на узле может соответствовать только одно USB-устройство.
Одно физическое PCI-устройство может предоставлять несколько виртуальных функций (VF) на узле. Если такое устройство назначено гостевой системе, при запуске ВМ автоматически выбирается первое свободное устройство из списка сопоставленных. Порядок проверки устройств соответствует порядку их указания в конфигурации, это позволяет реализовать произвольные политики распределения (например, приоритизацию определенных устройств).
Назначить сопоставленное устройство ВМ можно в веб-интерфейсе (см.
Проброс USB и
Проброс PCI(e)) или в командной строке:
устройство PCI:
# qm set <vmid> -hostpci0 <сопоставление>
USB-устройство:
# qm set <vmid> -usb0 <сопоставление>
где:
Для создания сопоставлений требуется привилегия Mapping.Modify на /mapping/<тип>/<сопоставление> (где <тип> — это тип устройства, <сопоставление> — название сопоставления). Для использования сопоставлений необходима привилегия Mapping.Use на /mapping/<тип>/<сопоставление> (дополнительно к стандартным привилегиям на изменение конфигурации ВМ).