Привет! У меня свежеустановленная PVE 8.0 на лабораторном сервере, пытаюсь провести тесты производительности для разных бэкендов хранилища. Конфигурация сервера (если важно): Xeon W-2145 на Supermicro X11SRA-RF с парой NVMe Micron 7300 Pro 1.92tb каждая. nvme0n1 используется как LVM PV с установленной PVE + /boot. nvme1n1 — это то, что я хотел бы передать виртуальной машине и использовать потом для тестов в формате qcow2/lvm. Я внимательно изучил инструкции . Пошагово все необходимые модули загружены:
```bash
# lsmod | grep vfio
vfio_pci 16384 0
vfio_pci_core 94208 1 vfio_pci
irqbypass 16384 2 vfio_pci_core,kvm
vfio_iommu_type1 49152 0
vfio 57344 3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd 73728 1 vfio
```
Но столкнулся с проблемой, как решить, пока не знаю:
```bash
05:00.0 Non-Volatile memory controller [0108]: Micron Technology Inc 7300 PRO NVMe SSD [1344:51a2] (rev 01)
Subsystem: Micron Technology Inc 1920GB U.2 [1344:3000]
Kernel driver in use: nvme
Kernel modules: nvme
06:00.0 Non-Volatile memory controller [0108]: Micron Technology Inc 7300 PRO NVMe SSD [1344:51a2] (rev 01)
Subsystem: Micron Technology Inc 1920GB U.2 [1344:3000]
Kernel driver in use: nvme
Kernel modules: nvme
```
Учитывая, что у обоих накопителей одинаковый vendor id и один и тот же драйвер ядра и модуль, использование в качестве драйвера vfio-pci – плохая идея.
Я нашел способ отвязать устройство от драйвера nvme:
```bash
echo 0000:06:00.0 > /sys/bus/pci/drivers/nvme/unbind
```
Но не представляю, как привязать к vfio-pci (и как сохранить это после перезагрузки).
```bash
# echo 0000:06:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
-bash: echo: write error: No such device
```
В плановом производственном кластере я хочу, чтобы некоторые из этих четырех одинаковых NVMe были выделены для виртуальных машин с высокой нагрузкой (в случае больших различий в производительности), а другие использовались как общая память. Есть ли способ выставить похожие NVMe так, чтобы один был виден базовой системе, а другой работал в режиме передачи?
P.S. В xcp-ng (с которым я ранее работал) это было бы тривиально (просто добавить xen-pciback.hide=(0000:06:00.0) к опциям grub) и было основано на физическом pci-адресе, а не на vendor id.
```bash
# lsmod | grep vfio
vfio_pci 16384 0
vfio_pci_core 94208 1 vfio_pci
irqbypass 16384 2 vfio_pci_core,kvm
vfio_iommu_type1 49152 0
vfio 57344 3 vfio_pci_core,vfio_iommu_type1,vfio_pci
iommufd 73728 1 vfio
```
Но столкнулся с проблемой, как решить, пока не знаю:
```bash
05:00.0 Non-Volatile memory controller [0108]: Micron Technology Inc 7300 PRO NVMe SSD [1344:51a2] (rev 01)
Subsystem: Micron Technology Inc 1920GB U.2 [1344:3000]
Kernel driver in use: nvme
Kernel modules: nvme
06:00.0 Non-Volatile memory controller [0108]: Micron Technology Inc 7300 PRO NVMe SSD [1344:51a2] (rev 01)
Subsystem: Micron Technology Inc 1920GB U.2 [1344:3000]
Kernel driver in use: nvme
Kernel modules: nvme
```
Учитывая, что у обоих накопителей одинаковый vendor id и один и тот же драйвер ядра и модуль, использование в качестве драйвера vfio-pci – плохая идея.
Я нашел способ отвязать устройство от драйвера nvme:
```bash
echo 0000:06:00.0 > /sys/bus/pci/drivers/nvme/unbind
```
Но не представляю, как привязать к vfio-pci (и как сохранить это после перезагрузки).
```bash
# echo 0000:06:00.0 > /sys/bus/pci/drivers/vfio-pci/bind
-bash: echo: write error: No such device
```
В плановом производственном кластере я хочу, чтобы некоторые из этих четырех одинаковых NVMe были выделены для виртуальных машин с высокой нагрузкой (в случае больших различий в производительности), а другие использовались как общая память. Есть ли способ выставить похожие NVMe так, чтобы один был виден базовой системе, а другой работал в режиме передачи?
P.S. В xcp-ng (с которым я ранее работал) это было бы тривиально (просто добавить xen-pciback.hide=(0000:06:00.0) к опциям grub) и было основано на физическом pci-адресе, а не на vendor id.
