diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index a508e4ea29b..e5319d555d8 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -2257,12 +2257,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv disk.defISODisk(volPath); } } else { - int devId = 0; - if (volume.getType() == VolumeType.ROOT) { - devId = 0; - } else { - devId = 1; - } + int devId = (int)volume.getDeviceId(); + disk.defFileBasedDisk(volume.getPath(), devId, diskBusType, DiskDef.diskFmtType.QCOW2); } diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java b/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java index f6c78e9155d..48cf88a5fc7 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java @@ -303,7 +303,12 @@ public class LibvirtVMDef { _bus = bus; } + /*device id starting from 0, but iso is 3*/ private String getDevLabel(int devId, diskBus bus) { + if ( devId >= 2 ) { + devId++; + } + char suffix = (char)('a' + devId); if (bus == diskBus.SCSI) { return "sd" + suffix; @@ -311,7 +316,9 @@ public class LibvirtVMDef { return "vd" + suffix; } return "hd" + suffix; + } + public void defFileBasedDisk(String filePath, int devId, diskBus bus, diskFmtType diskFmtType) { _diskType = diskType.FILE;