libvirtd: больше нет доступных слотов PCI

$ sed -e 's/\(.\)\(..\)\(..\)/\1.\2.\3/' -e 's/\.0/./g' file
4.17.3
1.0.2
3.0.3
4.0.2
4.0.0
2.2.3
2.2.3
3.1.0
5.0.0
5.0.0
5.0.0
5.0.0
7.7.0
7.6.0

Первая замена sedсоздает x.yy.zzиз xyyzz. Он делает это путем захвата трех групп символов в отдельных группах захвата (\(.\)и двух \(..\), где каждая точка соответствует одному символу ), а затем вставляет их снова с точками в -между ними..

Вторая замена удаляет любой нуль сразу после точки.

2
28.02.2020, 11:22
3 ответа

Мне удалось добавить несколько транзитных устройств PCI, используя следующий подход.

Если вы выполняете команду интерфейса attach -только с--config(, удалите --live), libvirt сможет автоматически добавлять порт pcie -root -. то, что он знает, требуется. Тогда вам просто нужно выключить и перезапустить гость для устройства, которое будет добавлено к запущенному гостевому экземпляру (a простой перезагрузки из-под гостя недостаточно, нужно его полностью закрыть вниз, чтобы запустить новый процесс qemu)

В общем.

  1. virsh attach-device VM_NAME PCI_entry.xml --config
  2. virsh destroy VM_NAME
  3. virsh start VM_NAME

Источник:Re :[пользователи libvirt -] не могут добавить сеть pci к существующей виртуальной машине

4
28.04.2021, 23:22

Проблема решена. Есть способ решить эту проблему путем добавления мостов PCI/PCIe, но он кажется достаточно сложным, да и информации мало. Итак, я нашел страницу документации libvirt, предоставленную RedHat, с большим количеством информации. Подводя итог :Есть 3 способа добавить блочные устройства в гостевую виртуальную машину, я использовал самый простой. Просто отредактируйте xml-файл нужной цели с помощью virsh edit "domain"и добавьте следующее содержимое под последним оператором, появляющимся в файле.

<disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none'/>
      <source dev='/dev/sdx'/>
      <target dev='vda' bus='virtio'/>
</disk>

Чтобы все заработало, в вашем случае все равно придется заменить "vda" и "sdx". При использовании этого метода мосты PCI будут созданы автоматически. Очень легко решить эту проблему, используя этот способ.

Ссылка на статью. 13.3.2. Добавление жестких дисков и других блочных устройств к гостю

3
28.04.2021, 23:22

Использовать --в режиме реального времени, когда машина работает, не использовать ее, если она отключена

для создания нескольких тестовых дисков в bash:

for i in {1..12};do sudo qemu-img create -f raw testdisk$i.raw 10G;done

для подключения дисков в python3:

import os
y='g,h,i,j,k,l,m,n,o,p,r,s,t,u,v,y,z'.split(',')
for i in range(1,13):
    s='virsh attach-disk optmb_fileserver '+'/home/gediz/Desktop/testdisk'+str(i)+'.raw '+'vd'+y[i]+' --config --live'
    print(os.popen(s).read())
1
26.09.2021, 15:03

Теги

Похожие вопросы