Получение счетчиков виртуальных функций Intel SR-IOV

После некоторых исследований Intel SR-IOV я понял, что нет удобного способа получить счетчики VF, когда интерфейс VF подключается к виртуальной машине (например, к виртуальной машине QEMU/KVM с менеджером Libvirt). Кроме того, я не нашел даже неудобного способа сделать это, потому что, как только виртуальная машина создается на HOST и она привязана в конфигурации к некоторому интерфейсу VF (это основной вариант использования VF SRI-OV), интерфейс автоматически отключается от хоста и подключается к виртуальной машине (я думаю, что это сделано специально для того, чтобы позволить сквозному соединению обойти ядро ​​или что-то в этом роде), и я на самом деле не нашел способа найти счетчики VF, используемого подключенной виртуальной машиной на хосте (я использую Ubuntu 16.04, и я пытался искать счетчики на портах VF, с ethtool -S на интерфейсе PF, но безрезультатно) эти счетчики могут быть очень полезны в различных ситуациях. Было бы очень полезно, если бы кто-то, имеющий некоторый опыт работы с SRIOV, смог бы пролить свет на эту проблему и сказать мне, что я неправ, и что есть простой способ.
Спасибо!

Обновление: На самом деле я обнаружил, что ethtool -S может быть полезным, он позволяет вам видеть счетчики очередей TX/RX, и я обнаружил, что функциональный драйвер VF ixgbevf использует ровно одну другую пару очередей TX/RX для каждой VF. И они присваиваются в возрастающем порядке, поэтому может быть возможно сделать сопоставление. Но, к сожалению, это уродливое и зависимое от водителя решение.

1 ответ

К сожалению, вы не ошибаетесь, вся идея SR-IOV заключается в том, что он позволяет ВМ взаимодействовать напрямую с NIC без гипервизора или хоста в середине. Он не видит пакеты для генерации счетчиков, вы не получите ничего, используя ethtool или обычные способы. Возможно, вы сможете получить что-то из корня сетевой карты, но это зависит от используемых вами драйверов и т. Д.

Другие вопросы по тегам