Product SiteDocumentation Site

30.6.8. Сопоставление устройств

При работе с локальными ресурсами (например, PCI-устройствами) прямое использование их необработанных адресов или идентификаторов может привести к следующим проблемам:
  • при использовании HA на разных узлах могут существовать устройства с одинаковыми идентификаторами или путями; при перемещении ВМ между узлами HA может ошибочно назначить неподходящее устройство, что приведёт к нарушению конфигурации;
  • замена или обновление оборудования может изменить идентификаторы или пути устройств, поэтому потребуется проверить все назначенные устройства для подтверждения их корректности.
Для устранения этих проблем можно настроить сопоставление ресурсов кластера, которое:
  • присваивает каждому устройству уникальный логический идентификатор в рамках кластера;
  • позволяет связывать этот идентификатор с различными физическими устройствами на разных узлах.
Создание сопоставления в веб-интерфейсе:
  1. Перейти на вкладку Центр обработки данныхСопоставления ресурсов.
  2. В соответствующем разделе (Устройства PCI или USB-устройства) нажать кнопку Добавить:
    PVE. Сопоставления ресурсов
  3. В открывшемся окне указать название сопоставления, узел и устройство.
    Добавление сопоставления PCI:
    PVE. Добавление сопоставления PCI
    Добавление сопоставления USB:
    PVE. Добавление сопоставления USB
  4. Нажать кнопку Создать.
  5. После создания соспоставления нажать кнопку в строке сопоставления и добавить устройство для другого узла кластера:
    PVE. Добавление сопоставления устройству на другом узле
    Результат добавления сопоставления:
    PVE. Сопоставление
Для создания сопоставленного устройства можно использовать команду:
# pvesh create /cluster/mapping/<тип> <опции>
где:
  • <тип> — тип оборудования (pci или usb);
  • <опции> — параметры сопоставления и конфигурации устройств.
Конфигурация должна включать все идентифицирующие свойства устройства. Это позволяет проверять неизменность оборудования и гарантировать назначение корректного устройства.
Пример добавления сопоставления 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 <сопоставление>
    
где:
  • <vmid> — идентификатор ВМ;
  • <сопоставление> — имя созданного сопоставления.
Для создания сопоставлений требуется привилегия Mapping.Modify на /mapping/<тип>/<сопоставление> (где <тип> — это тип устройства, <сопоставление> — название сопоставления). Для использования сопоставлений необходима привилегия Mapping.Use на /mapping/<тип>/<сопоставление> (дополнительно к стандартным привилегиям на изменение конфигурации ВМ).