Рейтинг:1

Передача контроллера рейда на виртуальную машину KVM с использованием сквозного прохода PCI, программная блокировка процессора

флаг cn

У меня есть хост-сервер Debian 10 и гость Ubuntu 20.04 с KVM. Сервер Ubuntu создан с виртуальная установка и работает как положено после установки. Я пытаюсь использовать транзитную передачу PCI для передачи рейд-контроллера (Adaptec 81605Z) гостю. С вирш редактировать my_vm я добавил

<hostdev mode='subsystem' type='pci' managed='yes'>
  <driver name='vfio'/>
  <source>
    <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
  </source>
</hostdev>

к конфигурации. Затем я использовал virsh nodedev-dettach pci_0000_01_00_0 отсоединить рейд-контроллер от хоста, после чего lspci-nnv показывает

01:00.0 Контроллер шины RAID [0104]: Adaptec Series 8 12G SAS/PCIe 3 [9005:028d] (версия 01)
    Подсистема: Adaptec Series 8 12G SAS/PCIe 3 [9005:0557]
    Флаги: fast devsel, IRQ 16
    Память на уровне a2100000 (64-разрядная, без предварительной выборки) [размер = 1M]
    Память на уровне a2280000 (64-разрядная, без предварительной выборки) [размер = 1 КБ]
    Порты ввода-вывода на 4000 [размер = 256]
    Расширение ПЗУ на a2200000 [отключено] [размер = 512K]
    Возможности: [80] Управление питанием версии 3
    Возможности: [90] MSI: Enable- Count=1/32 Maskable+ 64bit+
    Возможности: [b0] MSI-X: Enable- Count=64 Masked-
    Возможности: [c0] Express Endpoint, MSI 00
    Возможности: [100] Расширенные отчеты об ошибках
    Возможности: [300] #19
    Используемый драйвер ядра: vfio-pci
    Модули ядра: aacraid

Однако, когда я запускаю свою виртуальную машину с вирш запустить my_vm --console, консоль просто зависает, ничего не печатается, значит, что-то не так, потому что виртуальная машина не загружается. Через мгновение я начинаю получать

ядро: [ 747.764965] сторожевой таймер: ОШИБКА: мягкая блокировка - ЦП № 1 зависает на 22 с! [qemu-система-x86:1305]

ошибки, и моя хост-машина значительно тормозит. Я отключил kvm от vm, так как это может вызвать проблемы. У моей виртуальной машины 4 ГБ оперативной памяти и 4 VCPU, выделенных для нее.

Что-то не так с моей конфигурацией?

Michael Hampton avatar
флаг cz
Проверьте `dmesg` на хосте.
jaine avatar
флаг cn
Я получаю следующие сообщения относительно vfio-pci: `[ 564.743353] vfio-pci 0000:01:00.0: vfio_ecap_init: скрытие ecap 0x19@0x300`, после чего я получаю несколько `[ 566.554256] vfio-pci 0000:01:00.0: не готов через 1023 мс после FLR; ожидание` а потом `[ 634.041210] vfio-pci 0000:01:00.0: не готов 65535 мс после FLR; отказ от`
Zac67 avatar
флаг ru
Скорее всего, драйвер оборудования не поддерживает сквозную передачу. Вам следует подумать о том, чтобы смонтировать массивы RAID на хосте и просто предоставить доступ гостю.
jaine avatar
флаг cn
На других форумах я видел, как по крайней мере некоторые люди передают контроллеры Adaptec с проходом PCI. Например [здесь] (https://forums.servethehome.com/index.php?threads/epyc-rome-unable-to-pass-through-sata-ports-to-vm-flr-bug.28592/). Откуда мне знать, возможно это или нет?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.