QEmu에서 virtio2 및 virtio3과 같은 장치 식별

QEmu에서 virtio2 및 virtio3과 같은 장치 식별

QEmu에서 가상 머신을 실행하고 있습니다. 게스트 가상 머신에서 다음 명령을 실행하면 cat /proc/interrupts | egrep 'virtio.*(input|output)'다음과 같은 출력이 제공됩니다.

 26:          0       3376          0          0          0          0          0          0   PCI-MSI-edge      virtio2-input
 27:          0          1          0          0          0          0          0          0   PCI-MSI-edge      virtio2-output
 29:          0       3368          0          0          0          0          0          0   PCI-MSI-edge      virtio3-input
 30:          0          2          0          0          0          0          0          0   PCI-MSI-edge      virtio3-output
 32:          0       3490          0          0          0          0          0          0   PCI-MSI-edge      virtio4-input
 33:          0          1          0          0          0          0          0          0   PCI-MSI-edge      virtio4-output
 35:          0       4995          0          0          0          0          0          0   PCI-MSI-edge      virtio5-input
 36:          0          1          0          0          0          0          0          0   PCI-MSI-edge      virtio5-output
 38:          0    1818743          0          0          0          0          0          0   PCI-MSI-edge      virtio6-input
 39:          0          1          0          0          0          0          0          0   PCI-MSI-edge      virtio6-output
 41:          0    1822784          0          0          0          0          0          0   PCI-MSI-edge      virtio7-input
 42:          0          1          0          0          0          0          0          0   PCI-MSI-edge      virtio7-output
 44:          0       2470          0          0          0          0          0          0   PCI-MSI-edge      virtio8-input
 45:          0          0          2          0          0          0          0          0   PCI-MSI-edge      virtio8-output
 47:          0          0         94          0          0          0          0          0   PCI-MSI-edge      virtio9-input
 48:          0          0          1          0          0          0          0          0   PCI-MSI-edge      virtio9-output

virtio2... virtio9네트워크 카드가 8개 있는 것 같습니다. 하지만 그 중 어떤 것이 어떤 카드에 해당하는지 알 수 없습니다. MAC 주소를 얻 virtio3거나 네트워크 카드를 식별할 수 있는 방법이 있습니까 ?

답변1

나에게 방법이 있습니다 (몇 번 전에 다른 포럼에서 사용함)

# vm mac address list
for vm in $(virsh list | grep running | awk '{print $2}'); do \
  echo -n "$vm "; \
  virsh dumpxml $vm| grep -oP "52:54:[\da-f:]+" ; 
done > vm_mac.list

# vm ip list
arp -i virbr0 | grep '52:' | while read addr ; do \
  ip=$(echo $addr | awk '{print $1}'); \
  mac=$(echo $addr | awk '{print $3}'); \
  vm=$(grep "$mac" vm_mac.list | awk '{print $1}'); \
  echo "$vm $ip $mac"; \
done | sort

관련 정보