mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Support virtio-blk root disk controller (#10229)
This commit is contained in:
parent
d3170bfa16
commit
4f604c00b6
@ -3109,7 +3109,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
|
||||
disk.setBusType(DiskDef.DiskBus.SCSI);
|
||||
}
|
||||
} else {
|
||||
if (diskBusType == DiskDef.DiskBus.SCSI ) {
|
||||
if (diskBusType == DiskDef.DiskBus.SCSI || diskBusType == DiskDef.DiskBus.VIRTIOBLK) {
|
||||
disk.setQemuDriver(true);
|
||||
disk.setDiscard(DiscardType.UNMAP);
|
||||
}
|
||||
|
||||
@ -639,7 +639,7 @@ public class LibvirtVMDef {
|
||||
}
|
||||
|
||||
public enum DiskBus {
|
||||
IDE("ide"), SCSI("scsi"), VIRTIO("virtio"), XEN("xen"), USB("usb"), UML("uml"), FDC("fdc"), SATA("sata");
|
||||
IDE("ide"), SCSI("scsi"), VIRTIO("virtio"), XEN("xen"), USB("usb"), UML("uml"), FDC("fdc"), SATA("sata"), VIRTIOBLK("virtio-blk");
|
||||
String _bus;
|
||||
|
||||
DiskBus(String bus) {
|
||||
|
||||
@ -1423,12 +1423,14 @@ public class KVMStorageProcessor implements StorageProcessor {
|
||||
if (disk.getDeviceType() == DeviceType.DISK) {
|
||||
if (disk.getBusType() == DiskDef.DiskBus.SCSI) {
|
||||
busT = DiskDef.DiskBus.SCSI;
|
||||
} else if (disk.getBusType() == DiskDef.DiskBus.VIRTIOBLK) {
|
||||
busT = DiskDef.DiskBus.VIRTIOBLK;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
diskdef = new DiskDef();
|
||||
if (busT == DiskDef.DiskBus.SCSI) {
|
||||
if (busT == DiskDef.DiskBus.SCSI || busT == DiskDef.DiskBus.VIRTIOBLK) {
|
||||
diskdef.setQemuDriver(true);
|
||||
diskdef.setDiscard(DiscardType.UNMAP);
|
||||
}
|
||||
|
||||
@ -6411,4 +6411,14 @@ public class LibvirtComputingResourceTest {
|
||||
assertEquals(DiskDef.DiscardType.UNMAP, rootDisk.getDiscard());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetDiskModelFromVMDetailVirtioBlk() {
|
||||
VirtualMachineTO virtualMachineTO = Mockito.mock(VirtualMachineTO.class);
|
||||
Map<String, String> details = new HashMap<>();
|
||||
details.put(VmDetailConstants.ROOT_DISK_CONTROLLER, "virtio-blk");
|
||||
Mockito.when(virtualMachineTO.getDetails()).thenReturn(details);
|
||||
DiskDef.DiskBus diskBus = libvirtComputingResourceSpy.getDiskModelFromVMDetail(virtualMachineTO);
|
||||
assertEquals(DiskDef.DiskBus.VIRTIOBLK, diskBus);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4978,7 +4978,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
|
||||
if (HypervisorType.KVM.equals(hypervisorType)) {
|
||||
options.put(VmDetailConstants.NIC_ADAPTER, Arrays.asList("e1000", "virtio", "rtl8139", "vmxnet3", "ne2k_pci"));
|
||||
options.put(VmDetailConstants.ROOT_DISK_CONTROLLER, Arrays.asList("osdefault", "ide", "scsi", "virtio"));
|
||||
options.put(VmDetailConstants.ROOT_DISK_CONTROLLER, Arrays.asList("osdefault", "ide", "scsi", "virtio", "virtio-blk"));
|
||||
options.put(VmDetailConstants.VIDEO_HARDWARE, Arrays.asList("cirrus", "vga", "qxl", "virtio"));
|
||||
options.put(VmDetailConstants.VIDEO_RAM, Collections.emptyList());
|
||||
options.put(VmDetailConstants.IO_POLICY, Arrays.asList("threads", "native", "io_uring", "storage_specific"));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user