Unable to add more than 2 volumes or networks to a vm deployed from a UEFI image
- Ngôn ngữ chính
- Java
- Star
- 3.1k
- Fork
- 1.4k
- Merge trung bình
- 6 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 32
Mô tả
### problem
Unable to add more than 2 volume or network to a vm deployed from a UEFI image
### versions
ACS 4.20.1
### The steps to reproduce the bug
1. Register a UEFI image Template
https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
2. Deploy the vm by enabling UEFI secure mode in advanced settings
3. Once the vm is in running state , attach multiple volumes , Exception observed
Logs
```
2025-07-16 04:28:28,947 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Attaching device:
c6ef61d1300f442a86e5
2025-07-16 04:28:28,953 WARN [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach device to i-2-653-VM: internal error: No more available PCI slots
2025-07-16 04:28:28,953 DEBUG [kvm.storage.KVMStorageProcessor] (AgentRequest-Handler-3:[]) (logid:) Failed to attach volume [id: 394, uuid: c6ef61d1-300f-442a-86e5-e31f482b64ab, name: test2, path: c6ef61d1-300f-442a-86e5-e31f482b64ab], due to org.libvirt.LibvirtException: internal error: No more available PCI slots
```
4. Try to attach multiple networks, Exception observed
```
2025-07-16 04:36:02,019 DEBUG [kvm.resource.BridgeVifDriver] (AgentRequest-Handler-1:[]) (logid:) Successfully executed process [2045246] for command [/usr/share/cloudstack-common/scripts/vm/network/vnet/modifyvlan.sh -v 2144 -p eth1 -b breth1-2144 -o add ].
2025-07-16 04:36:02,021 WARN [resource.wrapper.LibvirtPlugNicCommandWrapper] (AgentRequest-Handler-1:[]) (logid:) Plug Nic failed due to org.libvirt.LibvirtException: internal error: No more available PCI slots org.libvirt.LibvirtException: internal error: No more available PCI slots
at org.libvirt.ErrorHandler.processError(Unknown Source)
at org.libvirt.ErrorHandler.processError(Unknown Source)
```
Workaround
Change the following settings on the vm after stopping
nicAdapter to e1000 or rtl813
rootDiskController to scsi or sata
https://prnt.sc/9wSS5uX0tVYX
### What to do about it?
If the Template is a UEFI enabled , Cloudstack should check if the template is UEFI enabled or not and populated the necessary settings for root disk and nic adapter
yum install libguestfs-tools
virt-inspector --format=raw -a noble-server-cloudimg-amd64.img 2>/dev/null | grep -i 'true'
virt-inspector -a AlmaLinux-8-GenericCloud-UEFI-latest.x86_64.qcow2 2>/dev/null | grep -i 'true'
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu với các đường dẫn KVMStorageProcessor và LibvirtPlugNicCommandWrapper được hiển thị trong log, sau đó kiểm tra cách các thiết lập đĩa root và NIC của VM UEFI được chọn. Tái hiện bằng image UEFI Noble và xác minh rằng nhiều volume và network được gắn vào mà không thay đổi các thiết lập của controller hoặc adapter.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- java, linux
- Lĩnh vực
- cloud, infrastructure
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 35/100